DSP课程设计交通灯的定时显示要点.pdf

上传人:tbuqq 文档编号:5196750 上传时间:2020-02-19 格式:PDF 页数:12 大小:1.84MB
返回 下载 相关 举报
DSP课程设计交通灯的定时显示要点.pdf_第1页
第1页 / 共12页
DSP课程设计交通灯的定时显示要点.pdf_第2页
第2页 / 共12页
DSP课程设计交通灯的定时显示要点.pdf_第3页
第3页 / 共12页
DSP课程设计交通灯的定时显示要点.pdf_第4页
第4页 / 共12页
DSP课程设计交通灯的定时显示要点.pdf_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《DSP课程设计交通灯的定时显示要点.pdf》由会员分享,可在线阅读,更多相关《DSP课程设计交通灯的定时显示要点.pdf(12页珍藏版)》请在三一文库上搜索。

1、DSP课程设计报告 题目:交通灯的定时显示 班级:11 级电信二班 姓名: xxxx 学号: xxxxxxxxxxxxx 指导老师: xxx 目录 1、设计目的 错误!未定义书签。 2、设计分析 3 2.1、设计任务 .3 2.2、设计要求 .3 3、TMS320F2812芯片介绍 .3 3.1 TMS320F2812芯片的简介 3 3.2 关于 TMS320F2812参数.3 3.3 管脚的定义和说明.3 3.4 F2812结构图 5 3.5、ICETEK-F2812-EDU 实验箱原理图 7 4、系统整体设计 .6 4.1、设计程序流程图.6 4.2、实验效果图 .8 5、运行描述 8 6

2、、软件的使用: ccs介绍.9 7、 课程设计总结 .10 8、 参考文献 11 9.程序代码 13 1、设计目的 DSP课程设计是对课程所学理论知识的深化和提高。目的是能综合应用所学知识,设 计与制造出具有简单功能的小型键盘输入发声装置。能够较全面地巩固和应用DSP课程 中所学的基本理论和基本方法,初步掌握小型DSP系统设计的基本方法,并学会用 C语言 对 DSP系统进行编程及DSP试验箱和相关软件的运用。培养独立思考、独立收集资料、 独立设计规定功能的单片机系统的能力;培养分析、总结及撰写技术报告的能力,本次课 程设计目的在于: 1、熟悉 ICETEK-F2812-EDU 实验箱上交通灯的

3、控制方法; 2、掌握 F2812A的终端结构和对中断的处理流程; 3、学习 DSP的 C语言定时和中断程序设计及运用中断程序控制程序流程; 4、学习 DSP程序的调试及编写,及运用观察变量的方法查看程序的运行情况。 2、设计分析 2.1、设计任务 本次设计名为LED和交通灯的定时显示,要求在ICETEK-F2812-EDU 实验箱上实现指示 灯和交通灯的同步定时闪烁。 2.2、设计要求 硬件部分: 在 ICETEK-F2812-EDU 实验箱上使指示灯和交通灯在定时器的定时中断中按照设计定时 闪烁 软件部分: 搞清楚各个引脚功能。 2、熟悉 ICETEK-F2812-EDU 实验箱上交通灯的控

4、制方法和控制流程。 3、TMS320F2812芯片介绍 3.1 TMS320F2812芯片的简介 TMS320F2812作为使用的DSP芯片。它包含33 个电源引脚(为使器件正常运行,所 有电源引脚必须正确连接且不能悬空),时钟源模块,DSP有六种信号可以使DSP控制器 复位。所以在设计的初期,我把它分成了四个模块。它们分别是:电平转换部分、晶振和 复位部分、键盘部分和液晶显示。其中复位采用电源复位的方式,由引脚PORESET 引起。 为了可靠复位,其中高电平的有效时间至少6 个 CPU时钟周期。 3.2 关于 TMS320F2812参数 TMS320F2812的具体参数如下: 1、主处理芯片

5、: TMS320F2812, 运行速度为150M。 2、工作速度可达150MIPS。 3、片上的 RAM 18*16Bit。 4、片上扩展RAM 存储空间 64K16Bit 。 5、自带的 16 路 12bitA/D, 最大采样速率12.5msps。 6、4 路的 DAC7617转换, 100K/S,12Bit。 7、两路 UART串行接口,符合RS232标准。 8、16 路 PWM 输出。 9、1 路 CAN接口通讯。 10、片上 128*16bit FLASH.自带 128 位加密位。 11、设计有用户可以自定义的开关和测试指示灯。 12、4 组标准扩展连接器,为用户二次开发提供条件。 1

6、3、具有 IEEE1149.1相兼容的逻辑扫描电路该电路仅用于测试和仿真。 14、4 层板设计工艺,工作稳定可靠。 15、具有自启动功能设计,可以实现脱机工作。 16、可以选配多种应用接口板,包括语音板,网络板等。 3.3 管脚的定义和说明 P1接口主要是扩展评估板上空闲的DSP外设引脚,以便于定制用户的硬件环境。注意: 由于这组引脚是直接来自于F2812 DSP芯片,因此,这些引脚为TTL 3.3V标准,其输出最 高电压为 3.3V, 如果要接入5V 器件,外接时时要注意电平转换。 (在扩展板上使用3.3V-5V 兼容器件与扩展接口连接)。 表 1 管脚的定义及管脚的说明 管脚 号 管脚名说

7、明 1 +5v 电源有 POWER提供 +5V电源 2 +5v 电源有 POWER提供 +5V电源 3 PWM1 PWM1 输出引脚 4 PWM2 PWM2 输出引脚 5 PWM3 PWM3 输出引脚 6 PWM4 PWM4 输出引脚 7 PWM5 PWM5 输出引脚 8 PWM6 PWM6 输出引脚 9 PWM7 PWM7 输出引脚 10 PWM8 PWM8 输出引脚 11 PWM9 PWM9 输出引脚 12 T1PWM T1 输出引脚 13 T2PWM T2 输出引脚 14 T3PWM T3 输出引脚 15 T4PWM T4 输出引脚 16 T1CTRP 定时器 1 比较输出 17 GND

8、 地线 18 GND 地线 19 T2CTRP 定时器 2 比较输出 20T T3CTRP 定时器 3 比较输出 21 T4CTRP 定时器 4 比较输出 22 C1CTRIP 比较器 1 比较输出 23 C2CTRP 比较器 2 比较输出 24 C3CTRP 比较器 3 比较输出 25 TDIRA 定时器计数方向选择信号A 26 TCKINA 定时器时钟输入A 27 SCITXB 异步串口 TX端 B 28 SCIRXB 异步串口 RX端 B 29 SPSIMA SPI从收主发端 30 SPSOMA SPI主发从收端 31 SPICLKA SPI时钟 32 SPISTEA SPI Slave

9、设备发送始能 33 GND 地线 34 GND 地线 3.4 F2812结构图 3.4.1 ICETEK-F2812-A 实物图 左上脚为 P1端口,右下角脚为P4 端口。 3.4.2TMS320F2812 引脚图 图 2 TMS320F2812引脚图 3.5、ICETEK-F2812-EDU 实验箱原理图 3.5.1、S60x控制板结构图 3.5.2、ICETEK-F2812-EDU 实验箱原理图 ICETEK-F2812-EDU 实验箱原理图如图4 所示: 4、系统整体设计 4.1、设计程序流程图 4.2、实验效果图 5、 运行描述 在运行时,首先应先在计算机上安装上CCS软件,然后把程序

10、加载到Example 中进行 调试,如果调试出现错误,要进行修改。若程序正常通过,则可将实验箱与计算机相连, 然后安装实验箱的驱动,驱动安好后,打开开关,连接好后,即可将软件下载到DSP芯片 中,运行,查看结果。指示灯和交通灯在定时器的定时中断中按照设计定时闪烁。 6、软件的使用 本次设计主要使用的是CCS软件, CCS是一种针对TMS320 系列 DSP的集成开发环境 , 在 Windows 操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、 跟踪和分析等工具。 CCS有两种工作模式,即:软件仿真器模式:可以脱离DSP芯片,在 PC机上模拟 DSP 的指令集和工作机制,主要

11、用于前期算法实现和调试。 硬件在线编程模式: 可以实时运行在DSP芯片上 ,与硬件开发板相结合在线编程和调试 应用程序。 CCS 文件名介绍 在使用 CCS前,应该先了解以下软件的文件名约定(在编写程序时最好在某盘根目录 下建立一个文件夹, 将所有的用户文件放置该文件夹中,建议用字母作为所有文件的文件 名,而不要用汉字或数字): project.pjt CCS定义的工程文件 program.c c 程序文件语言 program.asm 汇编语言程序文件 filename.lib 库文件 project.cmd 连接命令文件 program.obj 编译后的目标文件 program.out 可在

12、目标 DSP上执行的文件,可在CCS监控下调试 /执行 project.wks 工作空间文件,可以记录你的工作环境设置。 programcfg.h54 头文件 programcfg.s54 汇编原文件 program.cdb CCS的设置数据库文件,是使用DSP/BIOS API 必须的,其他没有 使用 DSP/BIOS API 的程序也可以使用,当新建一个设置数据库时,会产生下面的文件。 7、 课程设计总结 本次课程设计, 我选择的题目是LED和交通灯的定时显示, 目的是在 ICETEK-F2812-EDU 实验箱上实现指示灯和交通灯的同步定时闪烁。虽然这是一个比较简单的任务,但是由于 基础

13、薄弱,好多东西都不甚明了,经过多次努力才勉强完成任务。 这次 DSP课程设计历时两个星期,前面几天就是在寝室学习和熟悉CCS软件,学到了 很多很多的东西, 同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有 学到过的知识。 过程中也遇到了很多问题,不过及时的问同学解决问题,使我更加了解了 DSP的原理。通过这次设计, 进一步加深了对DSP的了解,让我对它有了更加浓厚的兴趣。 特别是当每一步成功时,心里特别的开心。 这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的, 只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从 而提高自己的

14、实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困 难重重,毕竟基础太差,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己 不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 总的来说,这次交通灯定时显示的设计还是比较成功的,在设计中遇到了很多问题, 最后在老师的辛勤的指导和同学们的帮助下,终于克服重重困难完成任务,有点小小的成 就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅 学到了不少知识, 而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时, 对未来有了更多的信心。 最后,对给过我帮助的所有同学和指导老师再次表示

15、忠心的感谢! 8、 参考文献 ICETEK-F2812-A-USB-EDU 教学实验系统软件实验指导 9、软件设计 9.1、程序代码 #include “DSP281x_Device.h“ / DSP281x Headerfile Include File #include “DSP281x_Examples.h“ / DSP281x Examples Include File / led unsigned int uLed22= 0x10,0x48,0,0x48 ; / Prototype statements for functions found within this file. vo

16、id Delay(unsigned int nTime); interrupt void cpu_timer0_isr(void); void Gpio_select(void); void Gpio_PortA(void); void Gpio_PortB(void); int i=0,nCount; unsigned int uLBD; #define LEDS *(int *)0xc0000 #define T46uS 0x0d40 #define CTRGR *(int *)0x108000 #define CTRLCDCMDR *(int *)0x108001 #define CTR

17、KEY *(int *)0x108001 #define CTRLCDCR *(int *)0x108002 #define CTRCLKEY *(int *)0x108002 #define CTRLCDLCR *(int *)0x108003 #define CTRLCDRCR *(int *)0x108004 #define CTRLA *(int *)0x108005 #define CTRLR *(int *)0x108007 Uint16 var1 = 0; Uint16 var2 = 0; Uint16 var3 = 0; Uint16 test_count = 0; Uint1

18、6 Test_flag = 0; Uint16 Test_var = 0; Uint16 Test_status32; int jishu=0,uPort8000, nScanCode; int nCountLed,i; void main(void) InitSysCtrl();/ 初始化 cpu DINT;/关中断 InitPieCtrl();/ 初始化 pie 寄存器 IER = 0x0000;/禁止所有的中断 IFR = 0x0000; InitPieVectTable(); EALLOW; / This is needed to write to EALLOW protected r

19、egisters PieVectTable.TINT0 = / 指定中断服务子程序 EDIS; / This is needed to disable write to EALLOW protected registers CpuTimer0.RegsAddr = / Initialize timer period to maximum: CpuTimer0Regs.PRD.all = 0x0FFF; / Initialize pre-scale counter to divide by 1 (SYSCLKOUT): CpuTimer0Regs.TPR.all = 0; CpuTimer0Re

20、gs.TIM.all = 0; CpuTimer0Regs.TPRH.all = 0; / Make sure timer is stopped: CpuTimer0Regs.TCR.bit.TSS = 1; CpuTimer0Regs.TCR.bit.SOFT = 1; CpuTimer0Regs.TCR.bit.FREE = 1; / Reload all counter register with period value: CpuTimer0Regs.TCR.bit.TRB = 1; CpuTimer0Regs.TCR.bit.TIE = 1; / Reset interrupt co

21、unters: CpuTimer0.InterruptCount = 0; StartCpuTimer0();/ 启动定时器0 / Enable CPU INT1 which is connected to CPU-Timer 0: IER |= M_INT1; / Enable TINT0 in the PIE: Group 1 interrupt 7 PieCtrlRegs.PIEIER1.bit.INTx7 = 1; Gpio_PortB(); CTRGR=0; / 初始化 ICETEK-CTR CTRGR=0x80; CTRGR=0; CTRLR=0; / 关闭东西方向的交通灯 CTR

22、LR=0x40; / 关闭南北方向的交通灯 CTRGR=2; LEDS=0XFF; while(1) GpioDataRegs.GPBDAT.bit.GPIOB5=1; LEDS=0X00; Delay(10); GpioDataRegs.GPBDAT.bit.GPIOB5=0; LEDS=0XFF; Delay(10); void Delay(unsigned int nDelay) int ii,jj,kk=0; for ( ii=0;iinDelay;ii+ ) for ( jj=0;jj6400;jj+ ) kk+; void Gpio_PortB(void) / GPIO Test

23、#2: / Configure Upper 8 bits of Port as inputs and lower 8 bits as outputs / Loop back bits 7:0 to bits 15:8 / Dont set any input qualifier var1= 0x0000; / sets GPIO Muxs as I/Os var2= 0x00FF; / sets GPIO 15-8 DIR as inputs, 7-0 DIR as outputs var3= 0x0000; / Dont set any input qualifier Gpio_select

24、(); test_count = 0; Test_statusTest_var = 0x0002; Test_var+; Test_statusTest_var = 0xD0BE; / Set the default value of status / to “PASSED“ GpioDataRegs.GPBCLEAR.all = 0x00FF; / Test Clear asm(“ RPT #5 |NOP“); GpioDataRegs.GPBSET.bit.GPIOB5=1; void Gpio_select(void) EALLOW; GpioMuxRegs.GPAMUX.all=var

25、1; / Configure MUXs as digital I/Os or GpioMuxRegs.GPBMUX.all=var1; / peripheral I/Os GpioMuxRegs.GPDMUX.all=var1; GpioMuxRegs.GPFMUX.all=var1; GpioMuxRegs.GPEMUX.all=var1; GpioMuxRegs.GPGMUX.all=var1; GpioMuxRegs.GPADIR.all=var2; / GPIO PORTs as output GpioMuxRegs.GPBDIR.all=var2; / GPIO DIR select

26、 GPIOs as output GpioMuxRegs.GPDDIR.all=var2; GpioMuxRegs.GPEDIR.all=var2; GpioMuxRegs.GPFDIR.all=var2; GpioMuxRegs.GPGDIR.all=var2; GpioMuxRegs.GPAQUAL.all=var3; / Set GPIO input qualifier values GpioMuxRegs.GPBQUAL.all=var3; GpioMuxRegs.GPDQUAL.all=var3; GpioMuxRegs.GPEQUAL.all=var3; EDIS; interrupt void cpu_timer0_isr(void) /CpuTimer0.InterruptCount+; / Acknowledge this interrupt to receive more interrupts from group 1 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; CpuTimer0Regs.TCR.bit.TIF = 1; CpuTimer0Regs.TCR.bit.TRB = 1; if ( nCount=0 ) LEDS=LEDS; nCount+; nCount%=194; / No more.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1