DSP交通灯课程设计

上传人:无*** 文档编号:69351353 上传时间:2022-04-05 格式:DOC 页数:19 大小:1.37MB
返回 下载 相关 举报
DSP交通灯课程设计_第1页
第1页 / 共19页
DSP交通灯课程设计_第2页
第2页 / 共19页
DSP交通灯课程设计_第3页
第3页 / 共19页
点击查看更多>>
资源描述
科信学院电子信息工程专业CDIO三级项目项目设计说明书(2011/2012学年第二学期)项目名称 : DSP应用系统 题 目 : DSP控制交通灯的显示 专业班级 : 电子信息工程09-1班 学生姓名 : 学 号: 指导教师 : 设计周数 : 2周 设计成绩 : 2012年7月6日 目 录一 设计目的.2二 系统分析.2 2.1设计要求.2 2.2设计思想.2三 总体设计.3 3.1系统框图设计.3 3.2总电路图设计.3 3.3最小系统图.4四 课程设计原理.4 4.1系统工作原理.4 4.2. 系统工作状态.4五 元器件选择.6 5.1所要元器件.6 5.2模块性能分析.7 521、TMS320F2812 DSP芯片.7522、CD4511.7523、LED.9524数码管驱动电路.9525外扩电路.10六 运行描述.10七 软件设计.107.1程序流程图.127.2程序代码.13八 设计总结.17九 参考文献.17附录.18一、 设计目的DSP课程设计对我们DSP的学习有这非常重要的意义。(1)通过交通灯的设计,进一步加深、巩固学生所学专业课程DSP控制器及其应用的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。(2)熟悉使用TMS320F2812控制交通灯的方法。(3)利用DSP开发环境CCS C2000对源程序文件进行编译、链接、装载调试,以完成基本的DSP项目文件设计。(4)通过此次课程设计,学习DSPf2812芯片的I/O端口控制方法,熟悉字模的简单构建和使用,熟悉Emulator方式下的程序调试规程,并能最终熟悉掌握在DSP软硬件环境下的程序开发流程,达到学以致用的目的。二 系统分析21、设计要求2.1.1设计任务设计一个十字路口交通灯(带一个倒计时数码管),每个方向有三色(红、黄、绿);实现交通灯双向车道红绿灯切换功能、交通灯全亮功能、数码管全亮功能;保证每次切换倒计时9秒,且绿灯变红灯前2秒黄灯闪烁1次,并在此时熄灭绿灯。2.1.2设计要求用CCS2.2以上版本运行环境,ANSIC/C+语言编写;用DSPF2812B开发板调用GPIO通用输入输出多用复用器进行调制;采用内部时钟实现计时功能;采用字模查询方式显示数字。22、设计思想根据DSP的硬件中断、定时器、I/O访问的原理,用定时器定时。2812的十个引脚,其中A口的六个引脚GPIOA0、GPIOA1、GPIOA2、GPIOA3、GPIOA4、GPIOA5控制二极管的状态,B口的四个引脚GPIOB0、GPIOB1、GPIOB2控制数码管的显示,二极管低电平有效,GPIO的端口均为输出,在实验箱上交通灯模块由高8位数据线控制:南北红灯D9、D11为高,南北黄灯D9、D11、D13、D15为高,南北绿灯D13、D15为高,东西红灯D8、D10为高,东西黄灯由D8、D10、D12、D14为高,东西绿灯D12、D14为高。交通灯模块的I/O地址:0x5008h三、 总体设计3.1、系统框图设计该系统包括DSPF2812芯片,CD4511驱动器,首先对DSP进行初始化,等待中断,然后I/O口输出高电平驱动信号灯发亮,定时模块采用硬件定时和软件定时相结合的方法,用DSP定时/计数计时,再用软件实现所需的定时。CD4511驱动数码管DSPF2812 图3-1 系统框图信号灯 3.2、总电路图设计 图3-2 总体电路图其中s1s5为按键,R1R5对管脚起保护作用。该键盘为独立式键盘,分别和DSP芯片的GPIO管脚PWM1、PWM2、PMW3、PWM4、PWM5相连接命令控制扩展接口的地址为0X108001,数据控制扩展接口的地址为0X108003、0x108004,辅助控制扩展接口的地址为0X108002。因为DSP芯片的允许电压为3.3V,所以该键盘外接3.3V的电源。设置GPIO相应管脚为输入或输出模式,DSP芯片外接LCD作为输出,外接5个单按键作为输入。在程序中构建汉字字模,并能够使用查找法提取。3.3、最小系统图图3-3 DSP最小系统四、 课程设计原理4.1 系统工作原理 芯本设计硬件由定时模块、发光二极管模块、数码管显示模块和紧急中断模块组成。信号灯受片中输出高低电平的控制。当锁存器I/O口输出为高电平时,他所驱动的信号灯即发光二极管就会亮起来。定时模块采用硬件定时和软件定时相结合的方法,用DSP定时/计数器定时100ms,再用软件计时实现所需的定时。发光二极管模块由DSP控制发光二极管来实现。数码管显示模块由实验平台上的LED显示模块实现。紧急中断模块是由单脉冲发生单元和DSP中断控制器组成。信号灯开始工作,东西红灯亮9秒,南北绿灯亮9秒,到8秒时,东西黄灯亮一次,时间一秒;东西红灯亮维持9秒,南北绿灯亮维持9秒,到8秒时,南北黄灯闪一次,时间一秒。紧接着开始第二周期的动作,以后周而复始的循环。4.2. 系统工作状态状态一:南北绿灯、东西红灯,延时9秒;如图所示: 图4-1状态一状态二:南北黄灯、东西红灯,持续1秒;如图所示: 图4-2 状态二状态三:东西绿灯、南北红灯,延时9秒;如图所示: 图4-3状态三状态四:东西黄灯、南北红灯,持续1秒;如图所示: 图4-4状态四返回状态一五、 元器件选择5.1 所要元器件表5-1 所需器件2812 DSP芯片 一个CD4511芯片 1个LED数字显示器 1个 电阻 13个 二极管 6个 导线 若干52、模块性能分析521、TMS320F2812 DSP芯片 2812的十个引脚,其中A口的六个引脚GPIOA0、GPIOA1、GPIOA2、GPIOA3、GPIOA4、GPIOA5控制二极管的状态,B口的四个引脚GPIOB0、GPIOB1、GPIOB2控制数码管的显示。 图5-1 F2812部分引脚522、CD4511CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码七段码译码器,特点:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。CD4511是一片CMOS BCD锁存/7 段译码/驱动器,引脚排列如图2.2所示。其中a、 b、 c、 d 为 BCD 码输入,a为最低位。LT为灯测试端,加高电平时,显示器正常显示;加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平。另外 CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。LE是锁存控制端,高电平时锁存,低电平时传输数据。ag是 7 段输出,可驱动共阴LED数码管。另外,CD4511显示数“6”时,a段消隐;显示数“9”时,d段消隐,所以显示6、9这两个数时,字形不太美观 图3是 CD4511和CD4518配合而成一位计数显示电路,若要多位计数,只需将计数器级联,每级输出接一只 CD4511 和 LED 数码管即可。所谓共阴 LED 数码管是指 7 段 LED 的阴极是连在一起的,在应用中应接地。限流电阻要根据电源电压来选取,电源电压5V时可使用300的限流电阻。 CD4511引脚图 图5-2 CD4511 CD4511引脚功能介绍如下: BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,不管输入 DCBA 状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否损坏。 LE:锁定控制端,当LE=0时,允许译码输出。 LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。A1、A2、A3、A4为8421BCD码输入端。 a、b、c、d、e、f、g为译码输出端,输出为高电平1有效。CD4511的工作原理CD4511的工作真值表如表5-2所示表5-2 CD4511真值表输 入输 出LEBILIA3A2A1A4abcdefg显示XX0XXXX11111118X01XXXX0000000消隐01100001111110001100010110000101100101101101201100111111001301101000110011401101011011011501101100011111601101111110000701110001111111801110011110011901110100000000消隐01110110000000消隐01111000000000消隐01111010000000消隐01111100000000消隐01111110000000消隐111XXXX锁 存锁存5.2.3、LED 通过LED的亮的情况来控制通行的状态,红灯亮时,所有的车不允许通过,延时九秒后绿灯亮时才允许通过。红灯转换绿灯时直接转换,绿灯转换为红灯时中间要有两秒的黄灯作为过渡。5.2.4数码管驱动电路图5-3 数码管驱动电路5.2.5外扩电路图5-4 外扩电路六、 运行描述6.1运行过程:(1)首先检查自己的个人计算机,需在Windows XP下安装CCS运行环境。(2)本次DSP课程设计我们用的是CCS2.2版本的环境。(3)安装好CCS2.2后,需对计算机经行相关配置,然后在simulator模式下经行电路调试。并且安装相关驱动文件。(4)写入设计好的程序,并在CCS环境下经行编译,调试,知道调试没有错误。(5)对实际电路经行设计,用Protel画出电路原理图。(6)按照电路原理图对事物经行正确焊接,焊接时一定要小心,要按照要求,防止出现虚焊、漏焊等错误。(7)打开DSP试验箱电源,按照先前设计的电路原理图连接电路,其中电源部分应在确定电压为3.3V或小于3.3V时连接芯片电源,然后拷入刚才运行成功后的程序。(8)在project中选择正确的储存路径打开写好的程序。(9) 由2812的各引脚来控制二极管的亮灭,各管脚分别调用相应程序来控制LCD的显示;二极管低电平有效,南北红灯亮时东西绿灯亮。(10)实物电路图如下:图6-1 实物电路图6.2调试过程中遇到的问题:由于在这次DSP课程设计之前,我们并没有使用过CCS调试环境,所以这会初次使用也遇到了不少问题。(1)DSP试验箱使用需注意的一些问题: 1)DSP 电源和地连接正确。2)DSP 时钟正确。3)DSP 的主要控制信号,如RS 和HOLD 信号接高电平。4)C2000 的watchdog 关掉。5)不可屏蔽中断NMI 上拉高电平。(2)调试过程中我们组遇到的问题1)一开始,我们的计算机连接不上试验箱,程序不能正确拷入,怎么试都不行,后来上网查阅资料,才发现时驱动程序没有安装好,我们又下载了配套的驱动程序,这个问题才得以成功的解决。2)程序下载成功后,我们发现数码管不亮,然后我们便开始调程序,可是自己始终找不到原因。然后去找老师帮忙,在老师的帮助下,我们终于找到了问题所在,原来我们把引脚都设置成输出了,在老师的指导下我们经行了改正。 可是这个问题刚解决,就又出现了数码管不能按照计划规律的显示数字来倒计时,显示的都是乱码的问题,经过我们仔细的检查,发现是我们将4511芯片的引脚接错了顺序。经过几次的改正,终于达到了设计要求,全组人员十分高兴。七、 软件设计7.1 程序流程图程序流程图如下: 开始初始化DSP南北红灯亮,东西绿灯亮红绿灯各延时九秒红灯变为绿灯,绿灯变黄再变红,数码管重新计时 图7-1程序流程图7.2 程序代码#include DSP281x_Device.h / DSP281x Headerfile Include File#include DSP281x_Examples.h / DSP281x Examples Include Fileinterrupt void cpu_timer0_isr(void);#define LEDS *(int *)0xc0000int flag=1;int i=9,nCount;unsigned int uLBD;Uint16 a ;Uint16 b ;unsigned int Led10=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09;/09码字/Uint16 var1= 0x0000,var2=0xffff; / sets GPIO Muxs as I/Osvoid main(void) uLBD=nCount=0; InitSysCtrl(); /初始化cpu. InitPieCtrl(); /初始化向量表.初始化Pie寄存器. IER = 0x0000; /复位,中断使能寄存器IER,中断标志寄存器IFR.用于将Pie中断服务复位. IFR = 0x0000; InitPieVectTable(); /初始化中断向量表. EALLOW;/关闭寄存器保护,与EDIS配合使用. PieVectTable.TINT0 = &cpu_timer0_isr; /打开TINT0,地址指针指向前面向向量,前后名字一致. EDIS; /打开寄存器保护. CpuTimer0.RegsAddr = &CpuTimer0Regs;CpuTimer0Regs.PRD.all = 0xffff; /PRD周期寄存器CpuTimer0Regs.TPR.all = 0; /TPR,8位到15位是PSC,0位到7位是TDDR.CpuTimer0Regs.TIM.all = 0; /TIM计数寄存器,存放计数值CpuTimer0Regs.TPRH.all = 0; /TPR的高16位 CpuTimer0Regs.TCR.bit.TSS = 1; /TCR控制寄存器,TSS=1表示关闭定时器,TSS=0时启动CpuTimer0Regs.TCR.bit.SOFT = 1; /SOFT和FREE同时使用,都是1的时候自由运行CpuTimer0Regs.TCR.bit.FREE = 1;CpuTimer0Regs.TCR.bit.TRB = 1; /TRB重装载位,=1自动装载周期寄存器的值CpuTimer0Regs.TCR.bit.TIE = 1; /中断使能计数器,减到0自动为1请求中断.CpuTimer0.InterruptCount = 0; /计数 StartCpuTimer0();/执行宏定义,TSS=0时的操作,开始定时器计数 IER |= M_INT1;/赋值0X0001 PieCtrlRegs.PIEIER1.bit.INTx7 = 1;/按位操作,7位 /打开全局中断 EINT; / Enable Global interrupt INTM ERTM; / Enable Global realtime interrupt DBGM *(int *)0x108000=0;/ 初始化ICETEK-CTR *(int *)0x108000=0x80; *(int *)0x108000=0; *(int *)0x108007=0;/ 关闭东西方向的交通灯 *(int *)0x108007=0x40; / 关闭南北方向的交通灯 EALLOW; GpioMuxRegs.GPAMUX.all=var1; / Configure MUXs as digital I/Os or GpioMuxRegs.GPBMUX.all=var1; / peripheral I/Os /MUX表示工作方式,两种工作方式:外设和I/O,相应位为外设,为0是I/O GpioMuxRegs.GPADIR.all=var2; / GPIO PORTs as output GpioMuxRegs.GPBDIR.all=var2; / GPIO DIR select GPIOs as output /DIR表示方向,输入还是输出管教,相应位为1为输出,为0是输入 EDIS; while ( 1 ) /等待中断 GpioDataRegs.GPADAT.all=a; GpioDataRegs.GPBDAT.all=b; interrupt void cpu_timer0_isr(void)/中断先声明后定义 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;/中断应答寄存器 CpuTimer0Regs.TCR.bit.TIF = 1;/中断标志位 CpuTimer0Regs.TCR.bit.TRB = 1;/重装载位 if ( nCount=0 ) b=Ledi; i-;if(flag=1) if(i=3) a=0x21; else if(i=2) a=0x11; else if(i=1) a=0x01; else if(i=0) a=0x09; flag=0; i=9; if(flag=0) if(i=3) a=0x0C; else if(i=2) a=0x0A; else if(i=1) a=0x08; else if(i=0) a=0x09; flag=1; i=9; nCount+; nCount%=2289;八、 设计总结在DSP课程设计的两个星期里,我们充实而忙碌,从一开始拿到交通灯这个题目,到后来的编写程序没有错误。仿真成功、硬件实现我们学到了太多的知识与经验。从一开始的对DSP开发环境的一无所知,然后查阅资料,经过老师耐心的知道,让我达到了预期的起的效果,我们一组人都特别开心,也在这个过程中学到了知识。一开始我们画出来电路图,但老师所思路有一些错误,经过老师的知道,我们修改了电路图,然后开始写程序,这下便于遇到了不小的问题,由于之前我们都没有用过DSP的程序开发软件,我们重新学习了CCS调试环境,在这过程中,我们遇到了这样那样的问题,我们就从学习别的写的程序开始入手,一步步学习调试过程,最总把我们的程序调试到没有错误。接下来便是硬件电路的焊接实现,我们全都小心翼翼,生怕自己焊接的疏忽导致不能实现,所以每个人都很认真。但是这过程中还是出现了小问题,连接试验箱调试的时候我们的数码管没有按照预想的状态进行显示,后来通过老师的帮助我们将程序进行改动后才实现了设计要求。通过两周的DSP课程设计让我组队员增强了团队合作意识,我们互帮互助的圆满完成两周的设计任务。同时也增强了我们队DSP的学习热情,加深了对DSP老师课上的理论知识的理解没让我们达到学以致用的目的。再次同事十分感谢我们的指导老师,没有我们的知道老师耐心的帮我们改正错误,我们也很难完成这此的设计项目,谢谢老师。九、 参考文献 1 邹彦. DSP原理及应用M. 北京:电子工业出版社,2005.1.2 戴明桢.TMS320C54xDSP结构、原理及应用M.北京航空航天大学出版社,2001.8.3 胡圣尧. DSP原理及应用M.东南大学出版社,2008.7.附录:课程设计评语课程设计成绩指导教师(签字) 年 月 日 18
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!