《DSP课程设计报告总结报告(共23页).doc》由会员分享,可在线阅读,更多相关《DSP课程设计报告总结报告(共23页).doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上课程设计总结报告课程名称 DSP控制器及其应用 设计题目 万年历设计 专 业 电子信息工程 班 级 姓 名 学 号 指导教师 报告成绩 信息工程学院 二一四年六月十三日专心-专注-专业目 录9前 言 随着科技的不断发展,诞生了越来越多的电子产品。比如手表,时钟等等,现在的钟表在功能设计上不断地完善,不仅仅可以显示时间(时分秒),而且可以显示年月日,星期几等等。 科技的发展离不开人类的不断努力,培养高科技人才是21世纪必做的事。作为祖国的接班人更要努力学习好电子信息这门科技专业。因此我们要不断的接触各种电子产品,加强对电子技术 技术理论的掌握和实际的应用 。在本次的实验
2、中,我们就 以 DSP芯片为核心控制电子钟,具有多项显示,用2812上的LCD液晶显示屏显示当前年、月、日、时、分、秒。第一章 设计要求本次课程设计要求设计一个万年历,利用DSPTMS320 VC5509APGE芯片控制,使用程序来控制时间的实时更新,当秒加到60时,分自动加1,当分加到60时,小时自动加1,当小时加到24,天加1,天加到30时,月加1,月加到12时,年加1,使用I602上的LCD液晶显示屏显示当前年、月、日、时、分、秒。对现有器件进行简单地编程,实现各种简单地显示控制。 1.1 设计目的1. 学习软件的安装,熟悉运用CCS v3.3软件,加强软件编程能力;2. 学习DSP芯片
3、的I/O端口的控制方法;3. 了解1602字符液晶的使用功能 4. 能够对现有器件进行简单地编程,实现各种简单地显示控制。 1.2 基本要求 此系统先显示设定的当前时间(年月日时分秒),并进行计数 设计硬件外扩电路,同时设计软件程序进行软硬件联系调试 连接仿真器,在液晶显示屏上进行显示 第二章系统的组成和工作原理2.1 DSP TMS320 VC5509APGE芯片2.1.1 DSP TMS320 VC5509APGE芯片引脚图。 2.1.2 DSP开发环境ccs 3.3,Easy5509开发板的程序都是基于TI 公司的 CCS3.3 。2.1.3 软件安装 1) 首先安装 CCS3.3。安装
4、步骤可直接运行光盘中软件目录下的 CCS 软件的 setup.exe,按提示操作,即可完成 CCS 的安装,接着按手册说明顺序安装CCS补丁软件2)然后连接好硬件与仿真器,连与电脑接口,打开电脑的设备管理器,寻找刚检测到的未知设备,更新驱动,接着安装仿真器驱动,注意要和 CCS 安装在同一个目录;3)打开set up ccs,设置。具体可看手册。最后可以打开ccs软件,进行编写程序,同时连接硬件,测试是否连接。2.2 LCD1602液晶显示器 2.2.1 1602LCD液晶显示原理LCD1602液晶显示器的工作原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示
5、出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。引脚图:1602采用标准的16脚接口,其中:第1脚:VSS为电源地 第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0
6、D7为8位双向数据端。第1516脚:空脚或背灯电源。 第三章 主电路图及流程图4.1 主电路图4.2程序总流程图该设计用DSP程序完成。程序总的流程图如下:接通电源,DSP和时钟初始化,读取时钟数据,DSP进行处理程序,LCD1602显示器接受数据并进行显示。每200ms检测一次时间。4.3程序分块流程图4.3.1 LCD1602液晶显示模块当DSP一上电,显示一个时间,一定时间后,显示程序中设置的时间,并实时刷新时间,将要要显示的时间送入LCD1602中,实现万年历的显示。利用LCD1602 16*2的数组,自己设置两个长度为10的数组,第一行显示年月日,第二行显示时分秒,如第一行:2014
7、-12-12,第二行:12-12-12。秒表时间接近于60秒旨在能够快速的检测分秒日月,是否能够转换增加。4.3.2 时钟模块先判断1s延迟是否到了,如否,如否,则返回,如是,则将秒加1,加到60秒时,分加1,并将秒置0,分加到60时,小时自动加1,当小时加到24时,天加1,天加到30时,月加1,月加到12时,年加1。从而实现万年历的设计。第四章 软件程序设计#include #include #include #include #include #define led8 (*(unsigned int *)0x) #define Digital8 (*(unsigned int *)0x)#
8、define LCD_REG (*(unsigned int *)0x) #define buzzer (*(unsigned int *)0x) #define USER_SW (*(unsigned int *)0x) #define LCD_DATA (*(unsigned int *)0x) #define UART_BASE_ADDR0x#define RBR*(int *)(UART_BASE_ADDR+0)#define THR*(int *)(UART_BASE_ADDR+0)#define IER*(int *)(UART_BASE_ADDR+1)#define IIR*(i
9、nt *)(UART_BASE_ADDR+2)#define FCR*(int *)(UART_BASE_ADDR+2)#define LCR*(int *)(UART_BASE_ADDR+3)#define MCR*(int *)(UART_BASE_ADDR+4)#define LSR*(int *)(UART_BASE_ADDR+5)#define MSR*(int *)(UART_BASE_ADDR+6)#define SCR*(int *)(UART_BASE_ADDR+7)#define DLL*(int *)(UART_BASE_ADDR+0)#define DLM*(int *
10、)(UART_BASE_ADDR+1) #define comm 0#define dat 1 /*要显示的字符*/unsigned char str1=2014-12-30;unsigned char str2=23-59-55;Uint16 nian,yue,ri,shi,fen,miao,a;void Delay(unsigned int nDelay);void wr_lcd(unsigned char dat_comm, unsigned int content);void delaynum(unsigned int d_time);/*锁相环的设置*/PLL_Config myCo
11、nfig = 0, /IAI: the PLL locks using the same process that was underway /before the idle mode was entered 1, /IOB: If the PLL indicates a break in the phase lock, /it switches to its bypass mode and restarts the PLL phase-locking /sequence 12, /PLL multiply value; multiply 12 times 2 /Divide by 2 PLL
12、 divide value; it can be either PLL divide value /(when PLL is enabled), or Bypass-mode divide value /(PLL in bypass mode, if PLL multiply value is set to 1);/*SDRAM的EMIF设置*/EMIF_Config emiffig = 0x221, /EGCR : the MEMFREQ = 00,the clock for the memory is equal to cpu frequence / the WPE = 0 ,forbid
13、en the writing posting when we debug the EMIF / the MEMCEN = 1,the memory clock is reflected on the CLKMEM pin / the NOHOLD = 1,HOLD requests are not recognized by the EMIF 0xFFFF,/EMI_RST: any write to this register resets the EMIF state machine 0x1fff,/CE3_1: CE0 space control register 1 0x00ff,/C
14、E3_2: CE0 space control register 2 0x00ff,/CE3_3: CE0 space control register 3 0x1fff,/CE1_1: CE0 space control register 1 / Asynchronous, 16Bit 0x00ff,/CE1_2: CE0 space control register 2 0x00ff,/CE1_3: CE0 space control register 3 0x1FFF,/CE2_1: CE0 space control register 1 / Asynchronous, 16Bit 0
15、xFFFF,/CE2_2: CE0 space control register 2 0x00FF,/CE2_3: CE0 space control register 3 0x1fff,/CE3_1: CE0 space control register 1 0x00ff,/CE3_2: CE0 space control register 2 0x00ff,/CE3_3: CE0 space control register 3 0x2911, /SDC1: SDRAM control register 1 / TRC = 8 / SDSIZE = 0;SDWID = 0 / RFEN =
16、 1 / TRCD = 2 / TRP = 2 0x0410,/SDPER : SDRAM period register / 7ns *4096 0x07FF, /SDINIT: SDRAM initialization register / any write to this register to init the all CE spaces, / do it after hardware reset or power up the C55x device 0x0131/SDC2: SDRAM control register 2 / SDACC = 0; / TMRD = 01; /
17、TRAS = 0101; / TACTV2ACTV = 0001; ;/*以下内容为LCD的读写等函数*/ TMS320VC5509 DSP External Memory Interface (EMIF) Reference Guide*/*addr为CPLD寄存器操作专用指针void delay(unsigned int d_time)while(d_time-);main() int temp,k; CSL_init(); CHIP_RSET(XBSR,0x0a01); PLL_config(&myConfig); EMIF_config(&emiffig); a=20; nian=14
18、; 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
19、; nian+; if(nian=99) nian=0; a+; str10=a/10+0x30; str11=a%10+0x30; str12=nian/10+0x30; str13=nian%10+0x30; str14=-; str15=yue/10+0x30; str16=yue%10+0x30; str17=-; str18=ri/10+0x30; str19=ri%10+0x30; str20=shi/10+0x30; str21=shi%10+0x30; str22=:; str23=fen/10+0x30; str24=fen%10+0x30; str25=:; str26=m
20、iao/10+0x30; str27=miao%10+0x30; wr_lcd(comm,0x80); /第一行字符地址for(k=0;k10;k+) wr_lcd(dat,str1k); delay(200); /* wr_lcd(comm,0x80); /第一行字符地址for(k=0;k16;k+) wr_lcd(dat,str1k); delay(200); */wr_lcd(comm,0xc0);/第二行数据指针的地址for(k=0;k8;k+) wr_lcd(dat,str2k); delay(200); delay(5000); /LCD输出设置 void delaynum(uns
21、igned int d_time)while(d_time-);void wr_lcd(unsigned char dat_comm, unsigned int content) Delay(40);if(dat_comm)LCD_REG=0x01;LCD_DATA=content; /数据端口LCD_REG=0x03; /en=0 delaynum(80); LCD_REG=0x00; /en=0 elseLCD_REG=0x00;LCD_DATA=content; LCD_REG=0x02; /rs=1 en=0 写指令端口 delaynum(80); LCD_REG=0x00; /en=
22、0 Delay(100); void Delay(unsigned int nDelay)int ii,jj,kk=0;for ( ii=0;iinDelay;ii+ )for ( jj=0;jj1024;jj+ )kk+;* End of lcd.c 第五章 设计总结在两周万年历的课程设计中,我首先学到的是软件的安装,在前几天,一直安装CCS3.3和驱动,尽管电脑系统是32位的,因为装不上补丁不能用。接下来学习的就是软件的编写,基本要求是可对年月日时分秒进行计数。当秒加到60时,分自动加1,当分加到60时,小时自动加1,当小时加到24,天加1,天加到30时,月加1,月加到12时,年加1。这部
23、分我们原先需要用的是定时器,但是一直无法显示出想要的效果,最后是在老师的指导下将定时器那部分程序直接用延时程序代替。最后将软硬件联系调试,在1602上正常显示时间并进行运作。通过这两周的学习,对DSP有了更深的了解,掌握了对现有器件进行编程,实现各种简单地显示控制。单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善 教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善 教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。