基于DSP的电子钟设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

电子信息工程专业项目设计说明书(2011/2012学年第二学期)项目名称:DSP应用系统题目:基于DSP的电子钟设计专业班级:学生姓名:学号:指导教师:设计周数:设计成绩:11课程设计目的通过课程设计,使学生综合运用DSP技术课程和其他有关课程的理论和生产实际知识去分析和解决具体问题的能力得到提高,并使其所学知识得到进一步巩固、深化和发展;初步培养学生对工程设计的独立工作能力,学习设计的一般方法;以及锻炼我们查阅资料、方案比较、团结合作的能力。学会简单电路的实验调试和整机指标测试方法,增强我们的动手能力,为以后学习和工作打下基础。2课程设计正文本次课程设计的课题是一个电子时钟设计,采用2812DSP、LED显示模块和相关硬件电路,用DSP相关语言写控制程序,设计一个能够正确显示秒钟的基本DSP应用系统。2.1软件系统设计2.1.1主函数流程图如图1所示。图1主函数流程图22.1.2系统实现代码#includeDSP281x_Device.h//DSP281xHeaderfileIncludeFile#includeDSP281x_Examples.h//DSP281xExamplesIncludeFileinterruptvoidcpu_timer0_isr(void);voidDelay(intx);charflag=1;intg_nCount;Uint16a=0xff00;//十位Uint16b=0x0000;//个位voidmain(void){g_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时启动3CpuTimer0Regs.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;//赋值0X0001PieCtrlRegs.PIEIER1.bit.INTx7=1;//按位操作,7位//打开全局中断EINT;//EnableGlobalinterruptINTMERTM;//EnableGlobalrealtimeinterruptDBGMEALLOW;GpioMuxRegs.GPAMUX.all=0x0000;//ConfigureMUXsasdigitalI/OsorGpioMuxRegs.GPBMUX.all=0x0000;//peripheralI/Os//MUX表示工作方式,两种工作方式:外设和I/O,相应位为外设,为0是I/OGpioMuxRegs.GPADIR.all=0xffff;//GPIOPORTsasoutputGpioMuxRegs.GPBDIR.all=0x000f;//sets0~3bitisoutput,othersisinput;GPIODIRselectGPIOsasoutput//DIR表示方向,输入还是输出管教,相应位为1为输出,为0是输入GpioMuxRegs.GPAQUAL.all=0x0000;//SetGPIOinputqualifiervaluesGpioMuxRegs.GPBQUAL.all=0x0000;EDIS;while(1){//GpioDataRegs.GPADAT.bit.GPIOA1=0;GpioDataRegs.GPADAT.all=a;//十位GpioDataRegs.GPBDAT.all=b;//个位if(GpioDataRegs.GPBDAT.bit.GPIOB8==0){4Delay(5);if(GpioDataRegs.GPBDAT.bit.GPIOB8==0)flag=1;}if(GpioDataRegs.GPBDAT.bit.GPIOB9==0){Delay(5);if(GpioDataRegs.GPBDAT.bit.GPIOB9==0)flag=2;}if(GpioDataRegs.GPBDAT.bit.GPIOB10==0){Delay(5);if(GpioDataRegs.GPBDAT.bit.GPIOB10==0)flag=3;}if(GpioDataRegs.GPBDAT.bit.GPIOB11==0){Delay(5);if(GpioDataRegs.GPBDAT.bit.GPIOB11==0)flag=4;}}}interruptvoidcpu_timer0_isr(void)//中断先声明后定义{PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;//中断应答寄存器CpuTimer0Regs.TCR.bit.TIF=1;//中断标志位CpuTimer0Regs.TCR.bit.TRB=1;//重装载位if(g_nCount==0){b++;if(b0x0009){b=0x0000;a++;}if(a0xff05){a=0;b=0;}5switch(flag){case0:break;case1:b--;if(b=0x0000){b=9;a=a-1;};break;case2:b++;if(b0x0009){a=a+1;b=0x0000;};break;case3:a--;if(a=0xff00)a=0xff05;break;case4:a++;if(a0xff05)a=0xff00;break;}}g_nCount++;g_nCount%=2289;}voidDelay(intx)//延时1ms*x{inti,j;for(i=0;ix;i++)for(j=0;j2275;j++);}2.1.3软件调试软件调试是通过对程序的编译、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。本设计的软件调试使用CCS2000测试软件进行调试,即可看到正确的测试结果,最终实现了利用DSP芯片控制并用LED数码管进行秒钟显示。2.2硬件系统设计2.2.1方案设计本系统以TMS2812为核心控制部件,利用软件编程,通过CD4511驱动LED数码管进行数字显示,使用按键实现对秒表的复位等要求,尽量做到硬件电路简单稳定,减小电磁干6扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。TMS320F2812DSP有多达56个通用数字量输入输出端口(GPIO),其中绝大部分是通用I/O和专用功能复用引脚。此芯片对所有数字量I/O进行分组,每组作为一个端口,分别是GPIO-A、B、C、D、E、F和G,C28x的绝大多数引脚内部都连接多个功能单元,但并不是所有功能单元都能同时工作,即在某一时刻一个引脚只能用作一种功能。所有的GPIO端口由各自的GPxMUX复用寄存器控制,控制位设置为0时,相应的引脚作为通用数字量I/O使用;设置为1时,相应的引脚作为专用引脚使用。当设置为数字量I/O功能时,寄存器GPxDIR确定I/O端口的方向;控制位清零引脚配置为数字量输入;置1配置为数字量输出。具有输入量化功能的引脚,用户可以定义量化时间长度以消除不必要的干扰信号。由于引脚的输出缓冲直接连接到输入缓冲,当前GPIO引脚上的任何信号都会同时传送到外设模块。因此,当引脚配置为GPIO功能时,相应的外设功能(和中断产生功能)必须通过复用寄存器禁止,否则将会首先触发中断,这一点对于PDPINTA和PDPINTB引脚尤其重要。如果复用引脚配置为数字I/O模式,则可以直接利用数字寄存器对I/O操作(读/写)也可以利用其他辅助寄存器对各I/O进行独立操作,如将数字I/O置位(GPxSET寄存器)、数字I/O清零(GPxCLEAR寄存器)及数字I/O电平转换(GPxTOGGLE寄存器)。总体框图如图2所示。图2总体框图按键复位电路电源部分直流电源+5v2个共阴极七段LED数码管数码管驱动CD4511数码管驱动CD4511控制部分TMS320F281272.2.2显示电路数据显示采用CD4511驱动共阴极数码管显示,CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD码—七段码译码器。如图3所示:图3CD4511驱动数码管显示电路CD4511引脚如图4所示:图4CD4511引脚图其功能介绍如下:BI:4脚是消隐输入控制端,当BI=0时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。8LT: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有效。还有两个引脚8、16分别表示的是VDD、VSS。CD4511具有锁存、译码、消隐功能,通常以反相器作输出级,通常用以驱动LED。2.2.3显示模块实物图2.2.4电路原理图93设计总结本次的课程设计主要是针对2812和数码管进行实现功能的代码编写。在整个的设计和操作阶段都还比较的顺利,但是在后期的调试过程中发现一些错误,这是由于我们最初设计的时候不够细致所造成的,虽然最后我们还是解决了问题,但还是对我们的设计进度造成了很大的影响,这是非常值得我们注意并且应该避免的。在调试过程中,难免会遇到很难解决或者自己无法解决的问题,在遇到问题时,要沉着冷静,首先自己要不断尝试修改,实在无法完成时,再向同学、老师寻求帮助,在交流中收获知识,达到查漏补缺的效果。当自己独立完成实验的调试运行,看到实验达到要求的时刻,是实验最快乐的时刻,也是有所收获,感觉充实的时刻。最后,由衷的感谢学校给了我们这次学习进步锻炼自我的机会,感谢老师在我们学习的过程中孜孜不倦的教导我们如何思考问题解决问题,秉承着严谨认真的科学态度使我们圆满的完成了这次课程设计任务。4参考文献10[1]郑红、王鹏、董云凤、吴冠.《DSP应用系统设计实践》.北京航空航天大学出版社,2006.4[2]赵红怡.《DSP技术与应用实例》.电子工业出版社,2003.6[3]万山明.《TMS320F281xDSP原理与应用实例》.北京航空航天大学出版社,2007.7课程设计评语课程设计成绩指导教师(签字)年月日

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功