DSP实习报告模板

合集下载

dsp实验报告总结doc

dsp实验报告总结doc
3.1 硬件总体结构
3.2 DSP总体结构
3.3 电源模块设计
3.4 时钟模块设计
3.5 存储器模块设计
3.6复位模块设计
篇二:DSP实验报告
DSP课程设计 实 验 报 告
语音压缩、存储和回放
学 院:电子信息工程学院电子科学与技术专业 设计人员: 吴莲梅 08214085电子0803班 杨 莹 08214088电子0803班指导老师: 日 期:
(1)A律限制采样值为12比特,A律的压缩可以按照下列公式进行定义:
A|x|11?lnA|x|1
(0?|x|?)?sgn(x)(?|x|?1)F(x)?sgn(x)
1?lnAA1?lnAA
式中,A是压缩参数(在欧洲,A=87.6)x是需要压缩的归一化整数。从线性到A律的压缩转换如下表所示:(压缩后的码字组成:比特0-3表示量化值,比特4-6表示段值,压缩后
一、 设计目的
设计一个功能完备,能够独立运行的精简DSP硬件系统,并设计简单的DSP控制程序。
二、 系统分析
1.1设计要求 硬件要求:
(1)使用TMS320VC5416作为核心芯片。 (2)具有最简单的led控制功能。 (3)具有存放程序的外部Flash芯片。 (4)外部输入+5V电源。 (5)绘制出系统的功能框图。
(6) 仪器仪表--如频谱分析、函数发生、锁相环、地震处理等。 (7) 自动控制--如引擎控制、深空、自动驾驶、机器人控制、磁盘控制。 (8) 医疗--如助听、超声设备、诊断工具、病人监护等。(9) 家用电器--如高保真音响、音乐合成、音调控制、玩具与游戏、数字 电话/电视等 DSP 的发展前景 DSP 的功能越来越强,应用越来越广,达到甚至超过了微控制器的功能,比 微控制器做得更好而且价格更便宜, 许多家电用第二代 DSP 来控制大功率电机就 是一个很好的例子。汽车、个人通信装置、家用电器以及数以百万计的工厂使用 DSP 系统。数码相机、IP 电话和手持电子设备的热销带来了对 DSP 芯片的巨大需 求。而手机、

DSP技术与应用基础实验报告模板终极版

DSP技术与应用基础实验报告模板终极版

福建农林大学金山学院信息工程类实验报告课程名称:DSP技术姓名:系:信息与机电工程系专业:电子信息工程专业年级:2009级学号:指导教师:范群贞职称:助教2012年 5 月 4 日实验项目列表福建农林大学金山学院信息工程类实验报告系:专业:年级:姓名:学号:实验课程:实验室号:_______ 实验设备号:实验时间:指导教师签字:成绩:实验一 Code Composer Studio 入门1.实验目的和要求1.掌握 Code Composer Studio 2.21 的安装和配置步骤过程。

2.了解 DSP 开发系统和计算机与目标系统的连接方法。

3.了解Code Composer Studio 2.21 软件的操作环境和基本功能,了解TMS320C55xx 软件开发过程。

⑴学习创建工程和管理工程的方法。

⑵了解基本的编译和调试功能。

⑶学习使用观察窗口。

⑷了解图形功能的使用。

2.实验原理*开发 TMS320C55xx 应用系统一般需要以下几个调试工具来完成:-软件集成开发环境(Code Composer Studio 2.21):完成系统的软件开发,进行软件和硬件仿真调试。

它也是硬件调试的辅助手段。

-开发系统(ICETEK 5100-USB 或 ICETEK 5100-PP):实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。

-评估模块(ICETEK VC5509-A 或 ICETEK VC5509-C 等):提供软件运行和调试的平台和用户系统开发的参照。

*Code Composer Studio 2.21 主要完成系统的软件开发和调试。

它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和 C 语言程序编译连接生成 COFF (公共目标文件)格式的可执行文件,并能将程序下载到目标 DSP 上运行调试。

*用户系统的软件部分可以由 CCS 建立的工程文件进行管理,工程一般包含以下几种文件:-源程序文件:C 语言或汇编语言文件(*.C 或*.ASM)-头文件(*.H)-命令文件(*.CMD)-库文件(*.LIB,*.OBJ)3.主要仪器设备(实验用的软硬件环境)1. PC 兼容机一台;操作系统为 Windows2000 (或 WindowsNT、Windows98、WindowsXP,以下假定操作系统为 Windows2000)。

DSP技术 实验一报告模板

DSP技术 实验一报告模板

《DSP技术》课程实验报告学生姓名:所在班级:指导教师:记分及评价:一、实验名称:数据存储实验二、实验目的掌握TMS320F2812的内部结构;熟悉CCS软件的使用三、实验内容修改例子程序,实现以下功能:(1)往0x003F9020地址开始的八个存储单元依次写入0,1,2,……,7八个数;读取0x003F9020地址开始的八个存储单元内容依次写入0x003F9028地址开始的八个存储单元内;(2)从0x003F9020地址开始的八个存储单元的内容依次与0x003F9028地址开始的八个存储单元内容相乘,运算结果依次存入0x003F9030地址开始的八个存储单元内;从0x003F9020地址开始的八个存储单元的内容依次与0x003F9028地址开始的八个存储单元内容相加,运算结果依次存入0x003F9038地址开始的八个存储单元内;(3)将0x003F9020地址开始的32个存储单元的数据从小到大排序,排序后的结果依次存入0x003F9040地址开始的32个存储单元内四、实验程序与结果分析程序:void main(void){int i,n;volatile unsigned int *room = (volatile unsigned int *)0x3f9020;volatile unsigned int *room2= (volatile unsigned int *)0x3f9030;volatile unsigned int *room3= (volatile unsigned int *)0x3f9040;volatile unsigned int *room4= (volatile unsigned int *)0x3f9090;volatile unsigned int *room5= (volatile unsigned int *)0x3f90A0;volatile unsigned int *temp= (volatile unsigned int *)0x3f9090;unsigned int max;// Initialize System Control:// PLL, WatchDog, enable Peripheral ClocksInitSysCtrl();// Disable CPU interruptsDINT;// Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000;IFR = 0x0000;/*对相应的内存空间赋值*/for(i=0;i<8;i++){* room=i;*room4=i;*(room+8)=i;*(room4+8)=i;*room2=(* room)*(*(room+8));*room5=(* room)*(*(room+8));*(room2+8)=(* room)+(*(room+8));*(room5+8)=(* room)+(*(room+8));room++;room2++;room4++;room5++;}/*从小到大排序并将32个数存在room3中*/for(i=0;i<31;i++){for(n=i+1;n<32;n++){if(temp[i]>=temp[n]){max= temp[i];temp[i]=temp[n];temp[n]=max;}}room3[i]=temp[i];}room3[i]=temp[31];}结果:五、小结通过本次对DSP的初次编程,感觉对C语言要求较高,进一步了解了DSP的内存分布情况,基本掌握了CSS的使用。

【最新】dsp实习报告-精选word文档 (14页)

【最新】dsp实习报告-精选word文档 (14页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==dsp实习报告篇一:DSP实习报告DSP实习报告课题名称:学院:电气信息工程学院专业:姓名:班级学号:指导教师:吴勇实验日期:目录一、开发板调试 .................................................................. .. (3)1.1实习目的 .................................................................. (3)1.2实习要求 .................................................................. ................................................... 3 1.3实习内容 .................................................................. (3)1.3.1 CPU 定时器0实验 .................................................................. ....................................... 3 1.3.2 CPU 定时器2实验 .................................................................. ....................................... 4 1.3.3 EVtime1 实验 .................................................................. ................................................ 5 1.3.4数码管显示实验 .................................................................. ............................................ 5 1.3.5外部RAM实验 .................................................................. ............................................. 8 1.3.6外部Flash读写实验 .................................................................. .... 错误!未定义书签。

DSP系统设计实习报告

DSP系统设计实习报告

DSP应用技术课程报告课程课题:基于DSP的婴儿车搭手台的改进专业班级:学生姓名:指导教师:完成时间:2013.6.27一、课程内容:本次课程设计,我做的工程是基于DSP的婴儿车搭手台的改进具体实现方案如图:此改进主要实现的功能首先通过搭手台前的LCD显示屏平时显示“工学院牌”,搭手台上的六个卡通人物在婴儿在拍下任意一个卡通人物按键时会对应想起一首儿歌(如粉刷匠,两只老虎等)与此同时,儿歌的名称会在前方的LCD液晶屏上显示。

在婴儿车右侧的三个红色按钮可以控制风扇的风速大小。

这样就可以让婴儿在婴儿车里娱乐之余听到好听的儿歌,而且此项改进还加上了风扇的驱动,可以在婴儿平时尤其是睡觉时提供一个相对凉爽的环境,这样不但能更加适宜婴儿的成长,还能防止如痱子等因为潮热引起的相关疾病的出现。

二、设计功能及工作原理主要功能为:在LCD上可以显示婴儿车品牌,还有正在播放的歌名、按下不同的卡通按键式会播放不同的儿歌、按下不同的红色按键时风扇可以提供不同的风速。

工作原理:利用DSP试验箱上的诸多元件,具体元件转换方式如下:电机驱动代表婴儿车上的风扇、键盘上的1--6数字按键代表婴儿车上的六个卡通按键、7--9数字按键代表控制电机风速大小的三个红色按钮,试验箱上的LCD显示屏代表婴儿车前端的LCD显示器。

将两只老虎等歌曲的乐谱定义在主函数的字符串中,并把这些音乐名字的字模存放在相应的.h文件中,这样就通过按键控制选择播放的歌曲了,选择后LCD上立刻显示歌曲名称,之后通过定义指针i通过i++用蜂鸣器播放出对应的音调,这样就可以播放出完整的音乐了。

按下7--9键就可以通过更改电机占空比来控制电机的转速即婴儿车上风扇的转速了。

三、设计过程主要代码如下://两只老虎:unsigned intlmusic[36]={1,2,3,1,1,2,3,1,3,4,5,5,3,4,5,5,5,6,5,4,3,1,5,6,5,4,3,1,1,5,1,1,1,5 ,1,1};//欢乐颂:unsigned inthmusic[65]={3,3,4,5,5,4,3,2,1,1,2,3,3,3,2,2,2,2,3,3,4,5,5,4,3,2,1,1,2,3,2,2,1,1 ,1,2,2,3,1,2,3,3,1,2,3,3,2,1,5,3,3,4,5,5,4,3,2,1,1,2,3,2,1,1,1};unsigned intsmusic[31]={5,5,6,5,1,7,7,5,5,6,5,2,1,1,5,5,5,3,1,7,4,3,1,2,3,3,3,5,5,6,6}; unsigned intdmusic[48]={5,5,3,5,5,3,5,3,2,3,5,4,4,5,5,3,6,5,3,5,3,2,1,2,3,5,3,2,1,2,3,2,6,5 ,6,5,2,3,5,6,5,6,5,2,3,1,1,1};unsigned intsxmusic[31]={1,2,3,1,5,5,5,6,6,1,6,5,5,5,6,6,1,5,6,3,6,5,3,5,3,1,2,3,1,1,1}; unsigned intfmusic[57]={5,3,5,3,5,3,1,2,4,3,2,5,5,4,3,5,3,5,3,5,3,1,2,4,3,2,1,1,1,2,2,4,4,3 ,1,5,2,4,3,2,5,4,4,5,3,5,3,5,3,1,2,4,3,2,1,1,1};case 1:CTRLR=0x1;CTRLR=0x40;CTRLCDCMDR=LCDCMDPAGE;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS; // 起始列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for ( i=0;i<64;i++ ){CTRLCDLCR=huanlesong[2*i+1] ;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}CTRLCDCMDR=LCDCMDPAGE+1;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS; // 起始列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for ( i=0;i<64;i++ ){CTRLCDLCR=huanlesong[2*i] ;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}for(n=0;n<100;n++){nMusicCount=hmusic[n];*prd0=music[nMusicCount][0]; // 切换音符*tcr0=0xe0;LBDS=uLED[0]; // 正向顺序送控制字delay(512);}break;case 2:。

dsp实验心得体会范文3篇_dsp实习心得体会(2)

dsp实验心得体会范文3篇_dsp实习心得体会(2)

dsp实验心得体会范文3篇_dsp实习心得体会(2)dsp实习心得体会篇1如果说前几年DSP作为一个器件,一个处理器或一个事物是相对比较新的东西,那么现在DSP已经在我们电子设计开发中非常常见了。

首先我们从定义上简单理解一下DSP。

我们涉及到的DSP主要是只这里特指数字信号处理器芯片,这里我把我的一些学习经验和大家分享。

希望对大家有帮助了解DSP我个人认为学习一个东西首先是了解它,比如DSP到底是什么?用在什么地方?怎么用?和这里我们传统的单片机特点有那些相同与不同?开发需要注意什么?怎么样完成一个最小系统等。

我想了解清楚这些问题我们自然就清楚比较清楚的认识DSP了。

下面我们就来对上面的问题我们在很多地方都可以找到答案,我把其中比较重要的简单的回答一下。

DSP大家注意和传统的概念区分一下,传统我们经常说的DSP(Digital Signal Processing(数字信号处理))的缩写也就是说是一些功能算法,这里的DSP是指(Digital Signal Process(数字信号处理器))的缩写,也就是说他是一个集成一些外设的一个芯片,类似我们的单片机。

我们通过程序实现一些特定的功能。

和传统单片机比较的区别?DSP功能比普通单片机高出很多,当然价格也比较高。

所以直接用DSP和单片机比较是不合适的。

我们这里比较不是从他的应用领域来比较,我们是从开发的角度来比较,为了是使那些熟练使用单片机的朋友可以很快上手。

当然我的主要目的的大家可以比较学习,达到熟悉一种CPU其他就可以很快上手。

下面从几个方面比较一下1,硬件上比较从硬件上比较DSP和传统的单片机主要有几个方面不一样,很多DSP电源系统比传统的复杂,但是这个并不影响我们因为如TI的DSP 都提供相关的测试电路。

开始的时候大家可以完全按照他来设计。

调试方式上有很大不同,DSP一般通过JTAG来进行仿真和烧写的,而单片机是通过直接仿真器来仿真的(这里讲的单片机是比较早的,现在的单片机也有很多采用JTAG调试方式)。

DSP短学期 实验报告

DSP短学期 实验报告

DSP应用系统设计实验报告一、设计任务通过矩阵键盘的输入,利用TMS320LF2407的事件管理模块,可以简单有效的控制步进电机的停转、转速和转向。

系统中设计了相应的人机界面,进行相应变量的显示、操作即可在液晶上实时显示电机当前运行状态。

利用拓展端口控制外围设备的方法,掌握使用2407DSP通用计时器的控制原理及中断服务程序的编程方法;了解蜂鸣器发生原理和音乐发生方法;了解步进电机的使用方法;了解液晶显示控制原理及编程方法及小键盘的应用。

该实验设计分成4个模块完成:•液晶模块•键盘模块•电机模块•其它模块(蜂鸣器、点阵)具体化即:1. DSP芯片接受矩阵键盘的输入。

2. DSP芯片对LED灯,蜂鸣器控制模块。

3. DSP芯片对相应信息的反馈,即:LCD液晶显示。

4. DSP控制电机正反转以及对电机速度调节。

二、系统构成及子模块原理:1.硬件原理方框图1所示,该系统由LCD液晶显示模块、矩阵键盘模块、电机模块及包含蜂鸣器和点阵的模块组成。

图1硬件原理方框图2:系统总流程图:3:子模块工作原理a.键盘输入:键盘在信号采集系统中是一个很关健的部件,它能向系统输入数据、传送命令等功能,是人工干预系统的主要手段,键盘输入功能主要提供控制信号和数据的输入。

键盘的扫描码由DSP的I/O扩展地址0x8001给出,当有键盘输入时,读此端口得到扫描码,当无键按下时读此端口的结果为0。

各按键的扫描码排列如下所示。

0x18,0x14,0x12,0x11 0 1 2 30x28,0x24,0x22,0x21 4 5 6 70x48,0x44,0x42,0x41 8 9 A B0x88,0x84,0x82,0x81 C D E F扫描码对应键值也即,当读8001H端口时,如果其值为‘18H’,则表示键盘按下的键是“0”,如果其值为‘0’,则表示没有键按下。

将键盘扫描得到的数据存入内存,然后根据数据值就能够确定所输入的键,通过映射关系,就能过将每一个键设为特定的功能。

DSP实习报告

DSP实习报告

IIR滤波器的设计一、实习目的1、掌握数字滤波器的设计过程2、了解IIR的原理和特性3、熟悉设计IIR数字滤波器的原理和方法4、设计IIR低通,高通和带通滤波器。

二、实习要求1、DSP初始化。

2、MATLAB初始化。

3、编写MATLAB程序,设计滤波器,得到数据。

4、熟练使用CCS 对程序进行调试。

5、编写DSP程序,得到信号及变化后信号的波形及FFT变换。

6、观察滤波前后波形的FFT变化,对比前后波形变化。

三、实习设备:计算机四、系统原理论述IIR数字滤波器是一种离散时间系统,其系统函数为假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。

IIR数字滤波器的设计实际上是求解滤波器的系数和,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。

如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。

IIR低通和高通滤波器是用契比雪夫窗函数法设计的,而IIR带通滤波器是用双线性变换法设计的切比雪夫数字带通滤波器。

采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。

也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。

这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图1-3所示。

图1-3双线性变换的映射关系为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T 段上,可以通过以下的正切变换实现(1-5)式中,T仍是采样间隔。

当Ω1由-π/T经过0变化到π/T时,Ω由-∞经过0变化到+∞,也即映射了整个jΩ轴。

将式(1-5)写成将此关系解析延拓到整个S平面和S1平面,令jΩ=s,jΩ1=s1,则得o-11Z平面jIm[z]Re[z]π / TjΩ1σ1-π / TS1平面S平面jΩσo o⎪⎭⎫⎝⎛Ω=Ω2tan21TT2/2/2/2/11112TjTjTjTjeeeeTjΩ-ΩΩΩ+-⋅=ΩTsTsTsTsTsTseeTTsTeeeeTs1111111122tanh2212/2/2/2/----+-⋅=⎪⎭⎫⎝⎛=+-⋅=再将S1平面通过以下标准变换关系映射到Z 平面 z=es1T从而得到S 平面和Z 平面的单值映射关系为:(1-6)(1-7) 式(1-6)与式(1-7)是S 平面与Z 平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换式(1-5)与式(1-6)的双线性变换符合映射变换应满足的两点要求。

dsp实验心得体会范文3篇_dsp实习心得体会

dsp实验心得体会范文3篇_dsp实习心得体会

dsp实验心得体会范文3篇_dsp实习心得体会digital signal processor简称DSP,中文意思是数字信号处理,DSP就是用数值计算的方式对信号进行加工的理论和技术,现结合自身,谈谈一些心得体会。

本文是dsp实验的心得体会范文,仅供参考。

dsp实验心得体会范文篇一1. 设置环境时分为软件设置和硬件设置,根据实验的需要设置,这次实验只是软件仿真,可以不设置硬件,但是要为日后的实验做准备,还是要学习和熟悉硬件设置的过程。

2. 在设置硬件时,不是按实验书上的型号选择,而是应该按照实验设备上的型号去添加。

3. 不管是硬件还是软件的设置,都应该将之前设置好的删去,重新添加。

设置好的配置中只能有一项。

4. CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。

但是一般无法构造DSP中的外设,所以软件仿真通常用于调试纯软件算法和进行效率分析等。

5. 这次实验采用软件仿真,不需要打开电源箱的电源。

6. 在软件仿真工作时,无需连接板卡和仿真器等硬件。

7. 执行write_buffer一行时。

如果按F10执行程序,则程序在mian主函数中运行,如果按F11,则程序进入write_buffe函数内部的程序运行。

8. 把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,就可以看到结构体变量中的每个元素了。

9. 在实验时,显示图形出现问题,不能显示,后来在Graph Title 把Input的大写改为input,在对volume进行编译执行后,就可以看到显示的正弦波图形了。

10. 在修改了实验2-1的程序后,要重新编译、连接执行程序,并且必须对.OUT文件进行重新加载,因为此时.OUT文件已经改变了。

如果不重新加载,那么修改执行程序后,其结果将不会改变。

11. 再观察结果时,可将data和data1的窗口同时打开,这样可以便于比较,观察结果。

DSP课程实验报告

DSP课程实验报告

目录目录 (1)实验一试验名称:RGB转灰度,添加噪声实验 (2)实验二试验名称:图像平滑,中值滤波实验 (7)实验三试验名称:图像锐化实验 (9)实验四试验名称:灰度变换实验 (11)实验五试验名称:灰度直方图,直方图均衡实验 (13)实验六试验名称:边沿提取,灰度反转,二值化实验 (16)实验七试验名称:熟悉imgLib的使用实验 (18)实验一试验名称:RGB转灰度,添加噪声实验一、试验目的1、熟悉CCS,学会运用CCS导入图像,并仿真DSP处理图像2、掌握如何将目标图像由彩色转为灰色3、掌握如何给目标图像添加各类噪声二、试验设备1、PC机一台,windows操作系统2、CCS编程环境三、试验原理(1)彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255个中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。

而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。

灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。

在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值。

因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。

图像的灰度化处理,一般有以下三种处理方法:方法一:加权平均法根据重要性及其它指标,将R、G、B三个分量以不同的权值进行加权平均。

由于人眼对绿色的敏感度最高,对蓝色敏感度最低。

因此,在MATLAB中我们可以按下式系统函数,对RGB三分量进行加权平均能得到较合理的灰度图像。

f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))方法二:平均值法将彩色图像中的R、G、B三个分量的亮度求简单的平均值,将得到均值作为灰度值输出而得到灰度图。

DSP技术与应用实验报告

DSP技术与应用实验报告

DSP实验报告姓名:年级:专业:学号:任课教师:目录实验一、CCS入门实验实验二、编写一个以C语言为基础的DSP程序实验三、异步串口通信实验四、A/D及D/A转换实验五、PID算法控制实验实验六、快速傅里叶变换(FFT)算法实验一、CCS入门实验Project/new;输入:volume,按Finish;Project/add files to project;查找范围:C:\CCStudio_v3.3\tutorial\dsk2812\volume1;文件类型:all files;分别添加:Volume.c、Load.asm、Vectors.asm、Volume.cmd;在C:\CCStudio_v3.3\C2000\cgtools\lib中添加:rts2800_ml.lib;将C:\CCStudio_v3.3\tutorial\dsk2812\volume1\volume.h复制到:C:\CCStudio_v3.3\C2000\cgtools\include文件夹中;Project/rebuild all;File/load program;打开C:\CCStudio_v3.3\MyProjects\volume\Debug\volume.out;鼠标双击:volume.c,找到dataIO(),右击,运行toggle software breakpoint;File/data,查找范围:C:\CCStudio_v3.3\tutorial\dsk2812\volume1;文件类型:all files,打开:sina.dat,输入:0x8000、0x2000;View/memory,0x8000;View/graph/time\frequency;如下图波形:频谱实验二、编写一个以C语言为基础的DSP程序一.实验目的1.学习用标准C语言编制程序;了解常用的C语言程序设计方法和组成部分。

2.学习编制连接命令文件,并用来控制代码的连接。

DSP技术 实验三报告模板

DSP技术 实验三报告模板

《DSP技术》课程实验报告学生姓名:所在班级:指导教师:记分及评价:一、实验名称:CPU定时器实验二、实验目的掌握定时器基本工作原理;掌握中断的基本工作原理;掌握定时器控制C语言编程。

三、实验内容(1)调试例子程序,理解程序设计思想,将CPU定时器周期设置成1 S;(2)修改例子程序,实现LED流水灯的功能;(3)在(2)的基础上修改例子程序,实现LED流水灯变化频率可由拨码开关按键控制的功能:由拨码开关1和2控制选择1Hz、2Hz、4Hz和8Hz 不同的LED流水灯变化频率。

四、实验程序与结果分析#include "DSP281x_Device.h" // DSP281x Headerfile Include File#include "DSP281x_Examples.h" // DSP281x Examples Include Fileinterrupt void cpu_timer0_isr(void);#define LED *((volatile int *)0x2200)void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period); void main(void){unsigned int temp=0xff;InitSysCtrl();DINT;InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();EALLOW; // This is needed to write to EALLOW protected registersPieVectTable.TINT0 = &cpu_timer0_isr;EDIS; // This is needed to disable write to EALLOW protected registersInitCpuTimers(); // For this example, only initialize the Cpu Timers ConfigCpuTimer(&CpuTimer0, 150, 1000000);//1sStartCpuTimer0();IER |= M_INT1;PieCtrlRegs.PIEIER1.bit.INTx7 = 1;EINT; // Enable Global interrupt INTMERTM; // Enable Global realtime interrupt DBGMfor(;;){if(LED!=temp){if(LED==0){ConfigCpuTimer(&CpuTimer0, 150, 1000000);}if(LED==1){ConfigCpuTimer(&CpuTimer0, 150, 500000);}if(LED==2){ConfigCpuTimer(&CpuTimer0, 150, 250000);}if(LED==3){ConfigCpuTimer(&CpuTimer0, 150, 125000);}temp=LED;StartCpuTimer0();}if(CpuTimer0.InterruptCount<1){*(int *)0x2200=0x007f;}else if(CpuTimer0.InterruptCount<2){*(int *)0x2200=0x00bf;}else if(CpuTimer0.InterruptCount<3){*(int *)0x2200=0x00df;}else if(CpuTimer0.InterruptCount<4){*(int *)0x2200=0x00ef;}else if(CpuTimer0.InterruptCount<5){*(int *)0x2200=0x00f7;}else if(CpuTimer0.InterruptCount<6){*(int *)0x2200=0x00fb;}else if(CpuTimer0.InterruptCount<7){*(int *)0x2200=0x00fd;}else if(CpuTimer0.InterruptCount<8){*(int *)0x2200=0x00fe;}else{CpuTimer0.InterruptCount = 0;}}}interrupt void cpu_timer0_isr(void){CpuTimer0.InterruptCount++;PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;}五、小结通过这次试验让我们明白了定时器的配置以及相应中断的使用。

DSP实习总结

DSP实习总结

桂林理工大学博文管理学院实习报告实习名称:DSP应用系统设计专业班级:姓名:学号:指导老师:实习时间:2014 年6月23日至2014年7月4日第一个实验——模拟信号发生器。

这个实验主要是为了让我们了解正弦波的产生与波的幅度调整方法,通过这个实验掌握信号产生的一般方法并学习如何用图形显示的方法调试程序,为以后的学习打下基础。

在本次试验中用四个之一(第一象限)的正弦波输出一个幅值可调的完整正弦波,使用一张正弦波产生的数据表来实现。

最后通过View->Graph将产生的波形显示出来,直观的得到结果。

实验的设备需要使用到计算机,DSP硬件仿真器,DSP教学实验平台。

实验结果可见输出是输入的两倍,与程序中的放大倍数一致。

改动Acquisition Buffer Size 栏里数值,可以改变放大倍数。

第二个实验是模拟音频处理实验,本次实验是将模拟输入的音频信号线性放大输出,让使用者熟悉信号处理的基本过程,为以后的数字信号处理与处理算法打下基础。

试验中使用信号产生函数产生一条从0开始线性增加波形,再通过音频处理子程序,将输出的波形整数倍放大,最后输出到内存单元,通过Graph中显示出来。

加载debug目录下的文件CpuTime0.out 后全速运行。

选View->Watch Window , 将数组inp_buffer , out_buffer , combinebuffer放入watch window. 选择View->Graph->Time/Frequency,将3个数组的起始地址和数据长度设置到3个Graph数据栏中。

模拟调制解调实验让我了解信号的调制和解调的完整过程。

实验通过一段程序代码产生截波信号,加入噪声并设置滤波频段和采样值频率,最后将调制的截波信号图形与解调的结果用图形表示出来。

加载.out文件运行后,将结构体g_ModemData加入watch window.,在modemtx.c中main函数内g_ModemData 上点击右键选择“Add to Watch Window”。

DSP实习报告

DSP实习报告

DSP实习报告课题名称:DSP应用技术学院:电气信息工程学院专业:自动化11-1姓名:xxxxxxxx班级学号:00指导教师:吴勇实验日期:2014.12.22--2017.12.26目录一、开发板调试 (3)1.1实习目的 (3)1.2实习要求 (3)1.3实习内容 (3)1.3.1CPU定时器0实验 (3)1.3.2CPU定时器2实验 (4)1.3.3EVtime1实验 (5)1.3.4数码管显示实验 (9)1.3.5外部RAM实验 (11)1.3.6外部Flash读写实验 (12)1.3.7直流电机控制实验 (14)二、基于DSP的直流电动机的闭环调速的系统设计 (16)2.1硬件设计 (16)2.1.1系统硬件设计总体框图 (16)2.1.2主电路 (17)2.1.3驱动电路 (17)2.1.4电流电压采样电路 (18)2.1.5电动机转速检测电路 (18)2.1.6控制电路 (21)2.1.7保护电路 (22)2.1.8显示电路 (22)三、总结 (23)3.1实习心得 (23)四、参考文献一、开发板调试1.1实习目的1)学习DSP内部定时器0、定时器2的使用2)掌握DSP的SPI工作原理3)理解DSP控制步进电机原理1.2实习要求1)通过使用DSP内部的定时器0来实现对LED灯的控制实现LED灯循环闪烁2):QQ2812通过SPI接口控制LED数码管实现数码管从0~F循环显示3)由DSP输出的PWM3~6做为步进电机的4个信号线输入完成DSP控制步进电机1.3实习内容1.3.1CPU定时器0实验#include"DSP28_Device.h"//8个LED灯的地址,由CPLD得知unsigned int*Led8=(unsigned int*)0x4100;unsigned int LedCount;Uint16LedCode[]={0xfe,0xfd,0xfc,0xf7};左四循环右四灭//定时器0中断函数,这里我们是另外写了,大家也可以把他直接放在#include "DSP28_Device.h"中.interrupt void ISRTimer0(void);void main(void){/*初始化系统*/InitSysCtrl();/*关中断*/DINT;IER=0x0000;IFR=0x0000;//清中断LedCount=0;/*初始化PIE*/InitPieCtrl();/*初始化PIE中断矢量表*/InitPieVectTable();/*初始化定时器0*/InitCpuTimers();/*初始化外设*/InitPeripherals();/*受EALLOW保护的定时器0中断矢量*/EALLOW;//允许访问EALLOW保护的寄存器PieV ectTable.TINT0=&ISRTimer0;//指向中断服务寄存器定时器0的地址EDIS;//重新EALLOW保护/*设置CPU,配置定时器0多长时间中断一次,这里的配置可参见课本P61*/ ConfigCpuTimer(&CpuTimer0,10,1000000);CpuTimer0Regs.TCR.bit.TSS=0;///开启CPU定时器0//StartCpuTimer0();/*开中断,查看中断向量表可知CPU定时器0位于INT1.7,见课本P82*/IER|=M_INT1;PieCtrl.PIEIER1.bit.INTx7=1;EINT;//开放全局中断,Enable Global interrupt INTMERTM;//开放全局实时中断,Enable Global realtime interrupt DBGMfor(;;);}interrupt void ISRTimer0(void){//响应中断寄存器清除,写1清0,进而才能接收下一外围中断PieCtrl.PIEACK.bit.ACK7=1;//向CPLD控制的LED灯地址写数据,进而实现对灯的控制*Led8=LedCode[LedCount];LedCount++;if(LedCount>=6)LedCount=0;}1.3.2CPU定时器2实验奇亮偶灭#include"DSP28_Device.h"unsigned int*Led8=(unsigned int*)0x4100;//二极管地址,由CPLD提供unsigned int Led_Flag;//二极管全亮,全灭标志位interrupt void ISRTimer2(void);//中断服务寄存器定时器2函数void main(void){/*初始化系统*/InitSysCtrl();/*关中断*/DINT;IER=0x0000;IFR=0x0000;Led_Flag=0;/*初始化PIE*/InitPieCtrl();/*初始化PIE中断矢量表*/InitPieVectTable();/*初始化外设*/InitPeripherals();EALLOW;PieV ectTable.TINT2=&ISRTimer2;EDIS;/*设置CPU*/ConfigCpuTimer(&CpuTimer2,50,1000000);CpuTimer2Regs.TCR.bit.TSS=0;//启动定时器2///StartCpuTimer2();/*开中断*/IER|=M_INT14;//内部定时器在PIE分组中位于14EINT;//Enable Global interrupt INTMERTM;//Enable Global realtime interrupt DBGMfor(;;);}interrupt void ISRTimer2(void){CpuTimer2.InterruptCount++;//中断计数if(Led_Flag==1){*Led8=0x55;//全亮Led_Flag=0;}else{*Led8=0xaa;//全灭Led_Flag=1;}}1.3.3EVtime1实验实验目的:了解事件管理器的定时器的应用,大家在学习时要结合第四章的事件管理器来进行实验说明:这里我们只使用了EvaTimer1来控制LED灯的亮灭,你在学习中可通过它来了解EV的定时器工作原理,对以后做电机之类的控制时可以引用部分函数实验结果:可看到板上8个发光二极管产生左2灭右2亮中间4循环的效果1.3.4数码管显示实验实验目的:通过学习本实验来掌握DSP的SPI工作原理**实验说明:QQ2812通过SPI接口控制LED数码管SPI是一高速同步的串行输入输出口,它的通信速率和通信数据长度都是可编程的,可以接收和发送16位的数据位,并且带有双缓冲的.SPI的4个外部引脚由:从输出主输入(SPISOMI),从输入主输出(SPISIMO),从发送使能(/SPISTE),串行时钟引脚(SPICLK)组成。

dsp技术实习报告范文

dsp技术实习报告范文

DSP技术实习报告范文
一、实习题目
1、灰度线性变换
2、灰度的对数变换
3、锯齿波变换
4、图像剪取二、实习目的:
1、巩固和深化数字图像处理技术所涉及的数理基础、基本算法和各种图像处理技术方法,学习和掌握图像变换。

2、对学习图像处理的基础知识对其应用工程实践有一定的认识,提高学生对应用软件的使用能力。

3、通过理论联系实际,综合运用所学知识,提高学生独立分析和解决实际问题的能力,增强学生的工程意识,打好专业基础
三、实习要求:
1、能够根据设计题目要求查阅检索有关的文献资料,结合题目选学有关参考书;
2、熟悉计算机图像处理的设计方法;
3、熟悉图像灰度变换程序的设计方法;
4、掌握图像灰度变换的仿真方法;
5、完成图像的灰度变换。

四、系统原理描述:灰度变换将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的值决定。

它常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。

灰度变换因其作用性质有时也被称为对比度增强、对比度拉伸或点运
算,称之为灰度变换。

灰度变换实际上是灰度到灰度的映射过程。

设输入图像为At,则f的值保持不变。

处理后的图像仍然是灰度图像,只不过阈值t以下的像素被置0。

12 内容。

【最新】DSP实验报告模版-实用word文档 (20页)

【最新】DSP实验报告模版-实用word文档 (20页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==DSP实验报告模版我们做的DSP实验是实验一,实验二,实验三!模板上只有1 3 !2要自己仿照实验一写!不要弄错了!实验题目在另外一个共享表格里!实验一数据存储实验一、实验目的1. 掌握CCS的使用2. 掌握 TMS320C54X 程序空间的分配;3. 掌握 TMS320C54X 数据空间的分配;4. 能够熟练运用TMS320C54X 数据空间的指令。

二、实验设备计算机,CCS 3.1版软件,DSP仿真器,E300实验箱,DSP-54XP CPU板。

三、实验步骤与内容1. 在进行 DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示:2. E300 底板的开关SW4 的第1位置ON,其余位置OFF。

其余开关设置为OFF。

SW5全部置ON;其余开关不做设置要求3. 上电复位在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的“红色指示灯”应点亮,否则DSP开发系统与计算机连接存在问题。

4. 运行CCS程序1) 待计算机启动成功后,实验箱220V电源置“ON”,实验箱上电 2) 启动CCS3.1,进入CCS界面后,点击“Debug—Connect”3) 此时仿真器上的“绿色指示灯”应点亮,CCS正常启动,表明系统连接正常;否则仿真器的连接、JTAG 接口或CCS 相关设置存在问题,这时需掉电检查仿真器的连接、JTAG 接口连接是否正确,或检查CCS相关设置是否存在问题。

5. 成功运行CCS 程序后,首先应熟悉CCS的用户界面;6. 学会在CCS环境下创建工程文件、添加程序文件、编写程序、编译、装载、调试,学习如何使用观察窗口等。

7. 用“Project\open”打开“C:\ti5000\myprojects\01_mem\ mem.pjt”.编译并装载“\ 01_mem\Debug\mem.out”8.用“Edit”下拉菜单中的“Memory/Fill”编辑内存单元,参数设置如下图:单击“OK”此时以0x1000 为起始地址的16个内存单元被修改成:0x00099.用“View”下拉菜单“Memory”观察内存单元变化,输入要查看的内存单元地址,本实验要查看0x1000H~0x100FH 单元的数值变化,输入地址0x1000H;单击“OK”如下图所示:10. 点击“Debug\Go main”进入主程序,在程序中“加软件断点1”和“加软件断点2”处施加软件断点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DSP应用技术实习报告课程课题:基于DSP的键盘控制数字图像处理方式及LCD显示专业班级:电子信息科学与技术学生姓名:指导教师:邹修国李林徐友杨红兵完成时间:一、课程内容:✧掌握直方图统计的原理和程序设计✧了解边缘检测的算法和用途✧了解锐化的算法和用途✧了解取反的算法和用途✧掌握直方图均衡化增强的原理和程序设计✧了解液晶显示器的显示控制原理及编程方法✧了解键盘的使用原理及编程方法二、设计功能及工作原理能够实现功能:✓数字图像直方图统计✓数字图像边缘检测(Sobel算子)✓数字图像的锐化(LAPLACE算子)✓数字图像的取反✓数字图像直方图均衡化增强通过键盘的输入可以控制图像处理的方式,并且LCD显示何种处理方式。

工作原理:◆灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数,其横坐标表示像素的灰度级别,纵坐标表示的是该灰度出现的频率。

◆边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,也包括方向的确定。

大多数使用基于方向导数掩模求卷积的方法。

◆图像的锐化处理就是使模糊的图像变得更加清晰起来,拉普拉斯锐化法属于常用的一种微分锐化方法。

◆求反处理的图像与原来的图像黑白颠倒,取得类似照片底片的效果。

◆直方图增强的方法就是压缩直方图中比例少的像素所占用的灰度范围,多出来的灰度空间按照统计比例分配给直方图中比例高的像素使用。

三、设计过程1.各种功能工程的分别建立:✓数字图像直方图统计✓数字图像边缘检测(Sobel算子)✓数字图像的锐化(LAPLACE算子)✓数字图像的取反✓数字图像直方图均衡化增强✓键盘输入✓液晶显示器控制显示2.将各个功能模块进行组合:1)打开键盘输入的工程文件,浏览key.c文件内容;2)打开数字图像直方图统计的工程文件,将Histo.c主函数内的处理部分的代码复制到key.c文件的case1语句后;3)打开数字图像边缘检测的工程文件,将Image.c主函数内的处理不放入内的代码复制到key.c文件的case2语句后;4)打开数字图像锐化的工程文件,将Image.c主函数内的处理不放入内的代码复制到key.c文件的case3语句后;5)打开数字图像取反的工程文件,将Image.c主函数内的处理不放入内的代码复制到key.c文件的case4语句后;6)打开数字图像直方图均衡化增强的工程文件,将Histo.c主函数内的处理不放入内的代码复制到key.c文件的case5语句后;7)内存空间的修改,打开cmd代码,做以下修改-w-stack 1000-heap 1000-sysstack 1000-l rts55x.lib以及DARAM2: o=0x8100, l=0x300008)打开液晶显示的工程文件,利用字模显示工具分别对所需要显示的字进行字模显示,得到扫描代码,对原有工程文件主函数进行修改,再对key,c的主函数进行添加和修改。

9)编译并下载程序10)打开观察窗口进行窗口设各项参数设置,分别打开三个,一个用于原图显示,一个用于直方图显示,一个用于处理后图像显示。

进行断点调试,观察图像变化,以及LCD显示。

3.主要的代码主函数main(){int dbScanCode,i;PLL_Init(20);SDRAM_init();InitCTR();TurnOnLCD(); // 打开显示LCDCLS(); // 清除显示内存CTRLCDCMDR=LCDCMDSTARTLINE; // 设置显示起始行Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for (;;){CTRLCDCMDR=LCDCMDPAGE; // 设置操作页=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS; // 起始列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);dbScanCode=GetKey();dbScanCode&=0x0ff;if(dbScanCode==SCANCODE_9) break;switch(dbScanCode){case 1:CTRLR=0x1;CTRLR=0x40;for ( i=0;i<50;i++ ){CTRLCDRCR=ledkey[1][i]; // 屏幕左侧第1至8行第i列赋值 port8002=0; // (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}Delay(512);InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);break;case 2:CTRLR=0x2;CTRLR=0x40;for ( i=0;i<50;i++ ){CTRLCDRCR=ledkey[2][i]; // 屏幕左侧第1至8行第i列赋值 port8002=0; // (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}Delay(512);InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);Sobel(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Sobel(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT);//BreakPoint Sobel(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT);//BreakPoint Sobel(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Sobel(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Sobel(IMAGEWIDTH,IMAGEHEIGHT);break;case 3:CTRLR=0x4;CTRLR=0x40;for ( i=0;i<50;i++ ){CTRLCDRCR=ledkey[3][i]; // 屏幕左侧第1至8行第i列赋值port8002=0; // (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}Delay(512);InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT);//BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT);//BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAGEHEIGHT);//BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT);//BreakPointLaplace(IMAGEWIDTH,IMAGEHEIGHT);break;case 4:CTRLR=0x0;CTRLR=0x48;for ( i=0;i<50;i++ ){CTRLCDRCR=ledkey[4][i]; // 屏幕左侧第1至8行第i列赋值port8002=0; // (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}Delay(512);InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);Reverse(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Reverse(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT);//BreakPoint Reverse(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT);//BreakPoint Reverse(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAGEHEIGHT);//BreakPoint Reverse(IMAGEWIDTH,IMAGEHEIGHT);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT);//BreakPoint Reverse(IMAGEWIDTH,IMAGEHEIGHT);break;case 5:CTRLR=0x0;CTRLR=0x50;for ( i=0;i<50;i++ ){CTRLCDRCR=ledkey[5][i]; // 屏幕左侧第1至8行第i列赋值port8002=0; // (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}Delay(512);InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);Histogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1); Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1);Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1);Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1);Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1);Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPointHistogram(dbImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram);Enhance(dbImage,dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram,fHistogram1);Histogram(dbTargetImage,IMAGEWIDTH,IMAGEHEIGHT,fHistogram1);while(1);break;case 6:for ( i=0;i<50;i++ ){CTRLCDRCR=ledkey[6][i]; // 屏幕左侧第1至8行第i列赋值port8002=0; // (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}Delay(512);CTRLR=0x0;CTRLR=0x60;break;case 7:for ( i=0;i<50;i++ ){CTRLCDRCR=ledkey[7][i]; // 屏幕左侧第1至8行第i列赋值port8002=0; // (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}Delay(512);CTRLR=0x8;CTRLR=0x40;break;case 8:for ( i=0;i<50;i++ ){CTRLCDRCR=ledkey[8][i]; // 屏幕左侧第1至8行第i列赋值 port8002=0; // (赋值后当前操作列自动加1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}Delay(512);CTRLR=0x10;CTRLR=0x40;break;}Delay(16);}CloseCTR();exit(0);}void Histogram(unsigned char *pImage,int nWidth,int nHeight,float fHisto[256]) {int i,j;unsigned int uWork;unsigned char *pWork;for ( i=0;i<256;i++ ) fHisto[i]=0.0f;pWork=pImage;for ( i=0;i<nHeight;i++ ){for ( j=0;j<nWidth;j++,pWork++ ){uWork=(unsigned int)(*pWork);fHisto[uWork]++;}}uWork=nWidth*nHeight;for ( i=0;i<256;i++ ){fHisto[i]/=uWork;fHisto[i]*=100;}}void Enhance(unsigned char *pImage,unsigned char *pImage1,int nWidth,int nHeight,float fHisto[256],float fHisto1[256]){int i,j;unsigned int uWork;unsigned char *pWork,*pWork1;for ( i=0;i<256;i++ )fHisto1[i]=fHisto[i]/100;for ( i=1;i<256;i++ )fHisto1[i]+=fHisto1[i-1];for ( i=0;i<256;i++ )lut[i]=fHisto1[i]*256;for ( i=0;i<256;i++ )if ( lut[i]>=256 )lut[i]=255;pWork=pImage; pWork1=pImage1;for ( i=0;i<nHeight;i++ )for ( j=0;j<nWidth;j++,pWork++,pWork1++ )(*pWork1)=lut[(*pWork)];}字显示部分的修改代码unsigned char ledkey[10][50]={{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00}, //0{0xFC,0x00,0x20,0x00,0x20,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x84,0x00,0xFC ,0x00,0x84,0x00,0x00,0x00,0x4C,0x00,0x92,0x00,0x92,0x00,0x64,0x00,0x00,0x00,0x0 4,0x00,0x04,0x00,0xFC,0x00,0x04,0x00,0x04,0x00,0x78,0x00,0x84,0x00,0x84,0x00,0x 78,0x00,0x00,0x00}, //1{0x4C,0x00,0x92,0x00,0x92,0x00,0x64,0x00,0x00,0x00,0x78,0x00,0x84,0x00,0x84 ,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x94,0x00,0x94,0x00,0x6C,0x00,0x0 0,0x00,0xFC,0x00,0x94,0x00,0x94,0x00,0x84,0x00,0x00,0x00,0xFC,0x00,0x80,0x00,0x 80,0x00,0x80,0x00}, //2{0x00,0x00,0xFC,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0xF8,0x00,0x2C ,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x24,0x00,0x24,0x00,0x18,0x00,0x0 0,0x00,0xFC,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0xF8,0x00,0x2C,0x00,0x F8,0x00,0x00,0x00},{0xF8,0x00,0x14,0x00,0x14,0x00,0x34,0x00,0xC8,0x00,0x00,0x00,0xFC,0x00,0x94 ,0x00,0x94,0x00,0x84,0x00,0x00,0x00,0x7C,0x00,0x80,0x00,0x7C,0x00,0x00,0x00,0x0 0,0x00,0xFC,0x00,0x94,0x00,0x94,0x00,0x84,0x00,0xF8,0x00,0x14,0x00,0x14,0x00,0x 34,0x00,0xC8,0x00},{0x00,0x00,0xFC,0x00,0x94,0x00,0x94,0x00,0x84,0x00,0xFC,0x00,0x08,0x00,0x10 ,0x00,0x20,0x00,0xFC,0x00,0xFC,0x00,0x20,0x00,0x20,0x00,0xFC,0x00,0x00,0x00,0x0 0,0x00,0xF8,0x00,0x2C,0x00,0xF8,0x00,0x00,0x00,0xFC,0x00,0x08,0x00,0x10,0x00,0x 20,0x00,0xFC,0x00},{0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00},{0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00},{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}四、设计工程的仿真图形1. 数字图像直方图统计2. 数字图像边缘检测(Sobel)3. 数字图像锐化4.数字图像的取反5. 数字图像直方图均衡化增强五、对设计工程总结与评价经过仿真该系统能够完成预定的任务,我们的设计作品成功完成。

相关文档
最新文档