DSP课程设计总结报告.docx
- 文档编号:13456561
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:13
- 大小:20.29KB
DSP课程设计总结报告.docx
《DSP课程设计总结报告.docx》由会员分享,可在线阅读,更多相关《DSP课程设计总结报告.docx(13页珍藏版)》请在冰点文库上搜索。
DSP课程设计总结报告
课程设计总结报告
课程名称DSP控制器及其应用
设计题目万年历设计
专业电子信息工程
班级
姓名
学号
指导教师
报告成绩
信息工程学院
二〇一四年六月十三日
前言
随着科技的不断发展,诞生了越来越多的电子产品。
比如手表,时钟等等,现在的钟表在功能设计上不断地完善,不仅仅可以显示时间(时分秒),而且可以显示年月日,星期几等等。
科技的发展离不开人类的不断努力,培养高科技人才是21世纪必做的事。
作为祖国的接班人更要努力学习好电子信息这门科技专业。
因此我们要不断的接触各种电子产品,加强对电子技术技术理论的掌握和实际的应用。
在本次的实验中,我们就以DSP芯片为核心控制电子钟,具有多项显示,用2812上的LCD液晶显示屏显示当前年、月、日、时、分、秒.
第一章设计要求
本次课程设计要求设计一个万年历,利用DSPTMS320VC5509APGE芯片控制,使用程序来控制时间的实时更新,当秒加到60时,分自动加1,当分加到60时,小时自动加1,当小时加到24,天加1,天加到30时,月加1,月加到12时,年加1,使用I602上的LCD液晶显示屏显示当前年、月、日、时、分、秒.对现有器件进行简单地编程,实现各种简单地显示控制。
1.1设计目的
1。
学习软件的安装,熟悉运用CCSv3。
3软件,加强软件编程能力;
2.学习DSP芯片的I/O端口的控制方法;
3.了解1602字符液晶的使用功能
4.能够对现有器件进行简单地编程,实现各种简单地显示控制。
1.2基本要求
⑴此系统先显示设定的当前时间(年月日时分秒),并进行计数
⑵设计硬件外扩电路,同时设计软件程序进行软硬件联系调试
⑶连接仿真器,在液晶显示屏上进行显示
第二章系统的组成和工作原理
2。
1DSPTMS320VC5509APGE芯片
2。
1。
1DSPTMS320VC5509APGE芯片引脚图。
2。
1。
2DSP开发环境
ccs3。
3,Easy5509开发板的程序都是基于TI公司的CCS3.3。
2。
1.3软件安装
1)首先安装CCS3.3。
安装步骤可直接运行光盘中软件目录下的CCS软件的setup.exe,按提示操作,即可完成CCS的安装,接着按手册说明顺序安装CCS补丁软件
2)然后连接好硬件与仿真器,连与电脑接口,打开电脑的设备管理器,寻找刚检测到的未知设备,更新驱动,接着安装仿真器驱动,注意要和CCS安装在同一个目录;
3)打开setupccs,设置。
具体可看手册。
最后可以打开ccs软件,进行编写程序,同时连接硬件,测试是否连接。
2.2LCD1602液晶显示器
2.2.11602LCD液晶显示原理
LCD1602液晶显示器的工作原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域.
引脚图:
1602采用标准的16脚接口,其中:
第1脚:
VSS为电源地第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器.
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
第7~14脚:
D0~D7为8位双向数据端.
第15~16脚:
空脚或背灯电源。
第三章主电路图及流程图
4。
1主电路图
4.2程序总流程图
该设计用DSP程序完成。
程序总的流程图如下:
接通电源,DSP和时钟初始化,读取时钟数据,DSP进行处理程序,LCD1602显示器接受数据并进行显示。
每200ms检测一次时间。
4.3程序分块流程图
4。
3.1LCD1602液晶显示模块
当DSP一上电,显示一个时间,一定时间后,显示程序中设置的时间,并实时刷新时间,将要要显示的时间送入LCD1602中,实现万年历的显示。
利用LCD160216*2的数组,自己设置两个长度为10的数组,第一行显示年月日,第二行显示时分秒,如第一行:
2014—12—12,第二行:
12—12-12。
秒表时间接近于60秒旨在能够快速的检测分秒日月,是否能够转换增加。
4。
3.2时钟模块
先判断1s延迟是否到了,如否,如否,则返回,如是,则将秒加1,加到60秒时,分加1,并将秒置0,分加到60时,小时自动加1,当小时加到24时,天加1,天加到30时,月加1,月加到12时,年加1.从而实现万年历的设计。
第四章软件程序设计
#include〈csl.h>
#include〈csl_pll。
h>
#include〈csl_emif。
h>
#include #include〈stdio.h〉 #defineled8(*((unsignedint*)0x200001)) #defineDigital8(*((unsignedint*)0x200002)) #defineLCD_REG(*((unsignedint*)0x200003)) #definebuzzer(*((unsignedint*)0x200004)) #defineUSER_SW(*((unsignedint*)0x200005)) #defineLCD_DATA(*((unsignedint*)0x200006)) #defineUART_BASE_ADDR0x200008 #defineRBR*((int*)(UART_BASE_ADDR+0)) #defineTHR*((int*)(UART_BASE_ADDR+0)) #defineIER*((int*)(UART_BASE_ADDR+1)) #defineIIR*((int*)(UART_BASE_ADDR+2)) #defineFCR*((int*)(UART_BASE_ADDR+2)) #defineLCR*((int*)(UART_BASE_ADDR+3)) #defineMCR*((int*)(UART_BASE_ADDR+4)) #defineLSR*((int*)(UART_BASE_ADDR+5)) #defineMSR*((int*)(UART_BASE_ADDR+6)) #defineSCR*((int*)(UART_BASE_ADDR+7)) #defineDLL*((int*)(UART_BASE_ADDR+0)) #defineDLM*((int*)(UART_BASE_ADDR+1)) #definecomm0 #definedat1 /*要显示的字符*/ unsignedcharstr1[]={"2014-12-30”}; unsignedcharstr2[]={"23-59-55"}; Uint16nian,yue,ri,shi,fen,miao,a; voidDelay(unsignedintnDelay); voidwr_lcd(unsignedchardat_comm,unsignedintcontent); voiddelaynum(unsignedintd_time); /*锁相环的设置*/ PLL_ConfigmyConfig={ 0,//IAI: thePLLlocksusingthesameprocessthatwasunderway //beforetheidlemodewasentered 1,//IOB: IfthePLLindicatesabreakinthephaselock, //itswitchestoitsbypassmodeandrestartsthePLLphase-locking //sequence 12,//PLLmultiplyvalue;multiply12times 2//Divideby2PLLdividevalue;itcanbeeitherPLLdividevalue //(whenPLLisenabled),orBypass-modedividevalue //(PLLinbypassmode,ifPLLmultiplyvalueissetto1) }; /*SDRAM的EMIF设置*/ EMIF_Configemiffig={ 0x221,//EGCR: theMEMFREQ=00,theclockforthememoryisequaltocpufrequence //theWPE=0,forbidenthewritingpostingwhenwedebugtheEMIF //theMEMCEN=1,thememoryclockisreflectedontheCLKMEMpin //theNOHOLD=1,HOLDrequestsarenotrecognizedbytheEMIF 0xFFFF,//EMI_RST: anywritetothisregisterresetstheEMIFstatemachine 0x1fff,//CE3_1: CE0spacecontrolregister1 0x00ff,//CE3_2: CE0spacecontrolregister2 0x00ff,//CE3_3: CE0spacecontrolregister3 0x1fff,//CE1_1: CE0spacecontrolregister1 //Asynchronous,16Bit 0x00ff,//CE1_2: CE0spacecontrolregister2 0x00ff,//CE1_3: CE0spacecontrolregister3 0x1FFF,//CE2_1: CE0spacecontrolregister1 //Asynchronous,16Bit 0xFFFF,//CE2_2: CE0spacecontrolregister2 0x00FF,//CE2_3: CE0spacecontrolregister3 0x1fff,//CE3_1: CE0spacecontrolregister1 0x00ff,//CE3_2: CE0spacecontrolregister2 0x00ff,//CE3_3: CE0spacecontrolregister3 0x2911,//SDC1: SDRAMcontrolregister1 //TRC=8 //SDSIZE=0;SDWID=0 //RFEN=1 //TRCD=2 //TRP=2 0x0410,//SDPER: SDRAMperiodregister //7ns*4096 0x07FF,//SDINIT: SDRAMinitializationregister //anywritetothisregistertoinittheallCEspaces, //doitafterhardwareresetorpoweruptheC55xdevice 0x0131//SDC2: SDRAMcontrolregister2 //SDACC=0; //TMRD=01; //TRAS=0101; //TACTV2ACTV=0001; }; /*************以下内容为LCD的读写等函数**************/ TMS320VC5509DSPExternalMemoryInterface(EMIF)ReferenceGuide */ //*addr为CPLD寄存器操作专用指针 voiddelay(unsignedintd_time) { while(d_time—-); } main() { inttemp,k; CSL_init(); CHIP_RSET(XBSR,0x0a01); PLL_config(&myConfig); EMIF_config(&emiffig); a=20; nian=14; yue=12; ri=31; shi=23; fen=59; miao=55; wr_lcd(comm,0x01);//清屏指令 wr_lcd(comm,0x38);//设定LCD为16*2,5*7矩阵,8位数据接口 wr_lcd(comm,0x0f);//显示ON光标ON,闪烁ON wr_lcd(comm,0x06);//文字不动,光标 while (1) { miao++; if(miao==60) { miao=0; fen++; if(fen==60) { fen=0; shi++; if(shi==24) { shi=0; ri++; if(ri==32) { ri=1; yue++; if(yue==13) { yue=1; nian++; if(nian==99) { nian=0; a++; } } } } } } str1[0]=a/10+0x30; str1[1]=a%10+0x30; str1[2]=nian/10+0x30; str1[3]=nian%10+0x30; str1[4]=’-'; str1[5]=yue/10+0x30; str1[6]=yue%10+0x30; str1[7]=’—'; str1[8]=ri/10+0x30; str1[9]=ri%10+0x30; str2[0]=shi/10+0x30; str2[1]=shi%10+0x30; str2[2]=’: '; str2[3]=fen/10+0x30; str2[4]=fen%10+0x30; str2[5]=': '; str2[6]=miao/10+0x30; str2[7]=miao%10+0x30; wr_lcd(comm,0x80);//第一行字符地址 for(k=0;k〈10;k++) { wr_lcd(dat,str1[k]); delay(200); } /*wr_lcd(comm,0x80);//第一行字符地址 for(k=0;k〈16;k++) { wr_lcd(dat,str1[k]); delay(200); }*/ wr_lcd(comm,0xc0);//第二行数据指针的地址 for(k=0;k<8;k++) { wr_lcd(dat,str2[k]); delay(200); } delay(5000); } //LCD输出设置 } voiddelaynum(unsignedintd_time) { while(d_time——); } voidwr_lcd(unsignedchardat_comm,unsignedintcontent) { Delay(40); if(dat_comm) { LCD_REG=0x01; LCD_DATA=content;//数据端口 LCD_REG=0x03;//en=0 delaynum(80); LCD_REG=0x00;//en=0 } else { LCD_REG=0x00; LCD_DATA=content; LCD_REG=0x02;//rs==1en==0写指令端口 delaynum(80); LCD_REG=0x00;//en=0 } Delay(100); } voidDelay(unsignedintnDelay) { intii,jj,kk=0; for(ii=0;ii〈nDelay;ii++) { for(jj=0;jj〈1024;jj++) { kk++; } } } *Endoflcd。 c 第五章设计总结 在两周万年历的课程设计中,我首先学到的是软件的安装,在前几天,一直安装CCS3.3和驱动,尽管电脑系统是32位的,因为装不上补丁不能用。 接下来学习的就是软件的编写,基本要求是可对年月日时分秒进行计数。 当秒加到60时,分自动加1,当分加到60时,小时自动加1,当小时加到24,天加1,天加到30时,月加1,月加到12时,年加1。 这部分我们原先需要用的是定时器,但是一直无法显示出想要的效果,最后是在老师的指导下将定时器那部分程序直接用延时程序代替。 最后将软硬件联系调试,在1602上正常显示时间并进行运作. 通过这两周的学习,对DSP有了更深的了解,掌握了对现有器件进行编程,实现各种简单地显示控制。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课程设计 总结报告