ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:437.14KB ,
资源ID:17976547      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17976547.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP课程设计报告论文.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DSP课程设计报告论文.docx

1、DSP课程设计报告论文 基于DSP实验箱的DSP实验整合摘要21世纪是数字化的时代,随着信息处理技术的飞速发展,DSP(数字信号处理器)技术逐渐发展成为一门主流技术,它在电子信息、通信、软件无线电、自动控制、仪表技术、信息家电等高科技领域得到了越来越广泛的应用。相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用越来越广泛,工程上常用它来做信号处理、数据传送和抑制干扰等。同时DSP的出现和迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。本课题主要应用应用DSP集

2、成开发环境CCS调试C程序,用TMS320C5402来实现实验箱上的直流电机、步进电机、交通灯及液晶显示等所有模块整合。关键字:DSP、直流电机、步进电机、交通灯、液晶显示目 录第一章 设计任务及要求 41.1设计任务 41.2设计要求 4第二章 设计思路及流程 42.1设计思路 42.2设计流程 52.3程序流程图 5第三章 实验结果及分析 93.1模式一的运行结果 93.2模式二的运行结果 93.3模式三的运行结果 103.4模式四的运行结果 11第四章 实验中的问题及解决方案 114.1数码管的序号选择 114.2实现交通灯时间可调问题 114.3按键消斗 124.4 LCD的显示问题:

3、 13第五章 心得体会 14参考文献 15实验部分主要源程序: 16第一章 设计任务及要求1.1设计任务基于DSP实验箱的DSP实验整合, 编程实现在现有实验箱上整合步进电机、直流电机、交通灯等实验项目。1.2设计要求一、三个实验可以通过键盘进行模式选择来切换(1步进电机控制,2直流电机控制,3交通灯控制,4三个实验同时进行),并在LED左数第一位上显示模式。二、步进电机和直流电机的正反转、加减速在键盘上进行控制,并在LED上显示步进电机和直流电机的运行状态 。三、交通灯控制时应在LED上显示时间的变化。交通灯东西、南北的时间可通过键盘设定。四、三个实验同时进行时只显示模式,各实验的参数都可通

4、过键盘设置。第二章 设计思路及流程2.1设计思路由于整合任务有四个模式状态,则可以定义一个全局变量state来存储模式标号,通过主函数循环扫描对DSP实验箱键盘按下的键值进行判断。例如当按下1号键时,state=1,表明这时已进入模式一,然后数码管显示、步进电机方向速度设置、交通灯状态变化及时间设置等各子函数中通过switch(state)、case语句执行相应的功能。以此类推当按下2、3、4号键时state的值也相应改变为2、3、4。并跳到其他模式去执行相应的功能。这样即可完成本次设计的预期效果。2.2设计流程一、对DSP进行初始化,给定时器0和定时器1装载初值以便电机的速度和交通灯的定时使

5、用。二、程序执行到主函数的循环体内反复调判断state的值执行相应的状态。三、若检测到有1、2、3、4其中一按键按下,就跳到模式1、2、3、4其中一状态执行。四、在选定的某一模式下去调用LED显示和状态设置子函数,在这些子函数中也有开关语句对全局变量state的值判断后再执行相应的程序。五、最后程序指针又回到键盘扫描子函数处开始下一轮循环。2.3程序流程图当state=1时,主函数通过开关语句选通模式一步进电机。同时状态变换和LED子函数也通过开关语句选通与步进电机对应的程序段。在步进电机的模式下如果按下5键步进电机为正转,如果按下6键步进电机则为反转,如果按下7键步进电机减速,如果按下8键步

6、进电机则为加速。LED同步显示步进电机的控制代码。最后程序指针又回状态模式判断处判断后又开始下一轮循环。当state=2时,主函数通过开关语句选通模式二直流电机。同时状态变换和LED子函数也通过开关语句选通与直流电机对应的程序段。在直流电机的模式下如果按下5键直流电机为正转,如果按下6键直流电机则为反转,如果按下7键直流电机减速,如果按下8键直流电机则为加速。LED同步显示直流电机的控制代码。最后程序指针又回状态模式判断处判断后又开始下一轮循环。当state=3时,主函数通过开关语句选通模式三交通灯。同时状态变换和LED子函数也通过开关语句选通与交通灯对应的程序段。在交通灯的模式下如果按下5键

7、交通灯南北定时时间减一秒,如果按下6键交通灯南北定时时间加一秒,如果按下7键交通灯东西定时时间减一秒,如果按下8键交通灯东西定时时间加一秒。LED同步显示交通灯的定时时间、时间调整、倒计时等状态。最后程序指针又回状态模式判断处判断后又开始下一轮循环。交通灯东西南北的时间设置可以开辟两个储存单元分别来存放东西定时时间和南北定时时间,然后通过按键的操作直接对这两个单元的数据进行加减就可以实现定时时间的设置。按下0号键确认时间设置,同时将东西、南北的定时单元内的数值转换为秒赋给东西、南北倒计时单元。在traffic子函数中设置东西、南北通行的标志位flag,若为南北通行flag置0,若为东西通行fl

8、ag置1。在中断服务程序中借助t_traffic计数器的数值和100取余,即每一秒钟判断一次flag的值,若为0则南北方向倒计时缓存单元(scount)的值减一并送LED显示。若为1则东西方向倒计时缓存单元(wcount)的值减一并送LED显示。显示的时间是以倒计时的方式显示,且是有选择性的显示。这样有便于交通路口通行的行人随时能知道还剩下多少时间可以通行,等待的行人也能知道还需要等待多少时间才可以通行以便做好准备!程序流程图如下:当state=4时,主函数通过开关语句选通模式四。同时状态变换和LED子函数也通过开关语句选通与模式四对应的程序段。在组合模式下如果按下5键直流电机和步进电机为正转

9、,如果按下6键直流电机和步进电机则为反转,如果按下7键直流电机和步进电机减速,如果按下8键直流电机和步进电机则为加速。LED同步显示交通灯倒计时时间变化。最后程序指针又回状态模式判断处判断后又开始下一轮循环。第三章 实验结果及分析除了实现给定的实验设计的所有要求及功能之外,我还新增了倒计时和LCD显示等功能。3.1模式一的运行结果 当按下1键时只有步进电机和数码管工作。第一个数码管显示模式,第四个数码管显示正反转状态,“0”表示此时电机正转,“1”表示此时电机反转。第六个数码管显示步进电机的的代码(图1中电机处于高速状态数码管显示太快所以相机拍到一个不应该出现的“8”)。方向可以通过5、6键改

10、变,速度可以通过7、8键改变。3.2模式二的运行结果(图一) (图二)当按下2键时只有直流电机和数码管工作。同样第一个数码管显示模式,第四个数码管显示正反转状态,“0”表示此时电机正转,“1”表示此时电机反转。第六个数码管显示步进电机的的代码(图中电机处于低速状态数码管显示太快所以相机拍到的总是“00”,如果电机处于高速状态当电机正转时数码管显示“01”, 当电机正转时数码管显示“10”。)。 方向可以通过5、6键改变,速度可以通过7、8键改变。3.3模式三的运行结果 当按下3键时只有交通灯和数码管工作。同样第一个数码管显示模式,第二个数码管显示通行状态, “0”表示此时南北绿灯东西红灯,“1

11、”表示南北红灯东西绿灯。图一图二中的第三、四个数码管显南北的通行时间(或等待时间)。第五、六个数码管显东西的通行时间(或等待时间)。也就是三、四和五、六数码管显示内容一样但是代表不同的意思,当三、四显示的是南北通行剩余时间时,五、六显示东西的等待剩余时间,反之亦然。图三图四为交通灯时间设置状态,这时按下键盘上的5、6、7、8键时可以看到对应的时间在改变。设定好后按下0键确认设置程序会回复到交通灯状态工作。3.4模式四的运行结果当按下4键时进入组合模式。同样第一个数码管显示模式,第二个数码管显示交通灯通行状态,“0”表示此时南北绿灯东西红灯,“1”表示南北红灯东西绿灯。图一图二中的第三、四个数码

12、管显南北的通行时间(或等待时间)。第五、六个数码管显东西的通行时间(或等待时间)。 步进电机和直流电机方向可以通过5、6键同时改变,步进电机和直流电机速度可以通过7、8键同时改变。第四章 实验中的问题及解决方案4.1数码管的序号选择刚开始时不知道怎样把代码送到指定的数码管上显示,后来经过对以前做过的实验程序仔细解读和运行观察才发现,原来程序里面的那些数码管显示代码的最后一位数就是控制选择在哪一个数码管上显示的。因此找到这个关键点后我就自己编写了一个LED显示子程序可以灵活调用从而解决了这个问题。4.2实现交通灯时间可调问题由于要实现时间可调,也就是说东西、南北的时间不是一个定值而是一个可以通过

13、键盘来改变的变量。我就想到了用两个变量来存储这个可以变化的时间值,但是不知道交通灯的各个状态的持续时间以及定时器的定时中断时间,也就是不知道源程序里面的这些数字代表多长时间。后来仔细的观察运行状态交通灯的闪烁间给时间和traffic这个函数发现,函数里面的最大数值除上100等于20刚好和交通的循环周期20s吻合。所以将t_traffic计数器内的值除上100就可以换算成秒,再结合实际需要将源程序和修改后的程序对应如下:源程序修改后的程序在修改后的程序中最后一行赋值语句是交通灯模式的时间能否正确循环显示的关键。如果没有最后一行或者该语句不是加在这个位置,则会出现这样的现象,在时间设置好后交通灯只

14、能正确的执行一次设定的时间,后面就不在按照设置的时间进行倒计时而是采用程序的初始给定值进行倒计时。4.3按键消斗在步进电机和直流电机模式下,当按下7号键减速时会发现电机的速度一下就减到了最小了,同样当按下8号键减速时会发现电机的速度一下就加到了最大。交通灯模式下在进行时间设置的时候也是如此,即时间要么一下减到最小要么一下就加到最大,根本无法完成时间的精确设置。为此、刚开始我用了消斗语句进行消斗发现也无济于事。后来想到在键盘中断里设置一个标志为keyflag若有按键按下则keyflag+,在按键子函数里面只要判断keyflag的值是否大于某个数当然这个数越大意味着键盘越不灵敏越小越灵敏,判断完后

15、立即将keyflag清0,这样就解决了这个问题。4.4 LCD的显示问题:虽然不要求使用LCD液晶显示器,但是我在率先实现基本要求的同时也想尝试一下LCD液晶显示和使用。我通过在网上查到一些12864的资料,因为每一款液晶的型号不一样他的使用方法也各有差异,而且我不知道实验箱上的液晶是什么型号的,在这样的情况下我只有通过用Protues和Keil仿真单片机来调试出一个正确的程序然后修改再加到DSP的程序里面调试,在仿真里面我完全能灵活的运用12864液晶屏但是实验箱上的我怎么也弄不出来,连一个纯字符都没显示出来,但是当我运行程序的时候我可以隐约看到文字的影子!有时候能清晰的看到汉字的上半部分和

16、下半部分,但是怎么调也不能使之合成一个字最终以失败而告终。仿真效果及实验箱的显示效果如下: 第五章 心得体会首先,做课程设计真的很不容易。在这期间,我一次又一次的告诉自己,不管多难,一定要坚持,这是一个锻炼自己动手能力的好机会,一定要把握并充分利用,这两周以来每天都是对着电脑在编程,在实验室反复的打开实验箱下载代码,回寝室有时候还弄到深夜。不过对课程设计很感兴趣的,正是因为如此才激励着我解决了这过程中遇到的种种问题和困难,收获了很多的知识。深知书上得来终觉浅才知此事要躬行。此外、更令我的创造性思维得到拓展。希望今后类似这样课程设计、类似这样的锻炼机会能更多一些。总的来说,这次课程设计确实学到很

17、多,而且也锻炼了我遇到问题解决问题的勇气和能力,以及遇到挫折不达目的不罢休的韧性,这在以后的工作与学习中将会非常重要。参考文献1TMS320C54x DSP Reference Set,Volume 1: CPU and Peripherals (Literature Number SPRU131G) .Texas Instruments In.20012 李利, DSP原理及应用,北京:中国水利水电出版社 2011实验部分主要源程序:/*/ /* 作者:王永志 */* 单位:黄冈师范学院物电系 */* 时间: 2012年6月 */*/*main_func.c*/ #include reg_d

18、efine.h#include system_init.h /*通过system_init();调用*/#include IOport_init.h /*包含后可直接使用所定义的IO端口*/#include Timer0_init.h /*通过Timer0_init(unsigned int Tmer0_VAL);调用*/#include Timer1_init.h /*通过Timer1_init(unsigned int Tmer0_VAL);调用*/#include Interrupt_server.h #include traffic.h #include hanziku.h#inclu

19、de LCD.h #include LEDKEYNO.h#include unsigned int BJ_code=0x07,0x0b,0x0d,0x0e;unsigned int bjcode,dj_code,state=0,snt=1000,wet=2000; extern unsigned int key_code;#define dtime 1000 ;void delay(unsigned int d_t) int i,j; for(i=0;id_t;i+) for(j=0;j=bj_speed) t0=0; t1+; bjcode=t1%4; if(bj_derect) bjcod

20、e=3-bjcode; /*请在此处编写TINT0中断服务程序*/ if(t0_dj=dj_speed&t0_dj=dj_period) t0_dj=0; return; /*INT0中断服务程序*/interrupt void INT0_ISR() asm( NOP); asm( NOP); traffic_ADDR=0x0f000; delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); delay(50000); return; /*INT2中断服务

21、程序*/interrupt void INT2_ISR() keyflag+; asm( NOP); asm( NOP); key_code=KEY_ADDR; key_code&=0x001f; key_code=key_code-1; switch(key_code) case 1:state=1;break; /*在初始状态的时候通过键值的判断跳到相应的模式*/ case 2:state=2;break; case 3:state=3;break; case 4:state=4;break; default:state=0; break; /*traffic.h*/ unsigned i

22、nt t_traffic=0,flag=0,scount=0,wcount=0;extern unsigned int wet,snt;extern void delay(unsigned int d_t);void traffic() /*北西南东: 北西南东*/ /*红红红红 绿绿绿绿*/ /*将调设置好的东西、南北定时时间换算成秒赋给倒计时单元*/ if(t_traffic=(snt-500)&t_traffic=(snt-450)&t_traffic=(snt-400)&t_traffic=(snt-350)&t_traffic=(snt-300)&t_traffic=(snt-250)&t_traffic=snt&t_traffic=(wet-500)&t_traffic=(wet-450)&t_traffic=(wet-400)&t_traffic=(wet-350)&t_traffic(wet-300)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1