课程设计总结报告课程名称DSP控制器及其应用设计题目万年历设计业专电子信息工程班级姓名学号指导教师报告成绩信息工程学院年六月十三日二〇一四录目言前 (3)设计要求第一章4.....................................................................................基本要求1.14.....................................................................................系统的组成和工作原理第二章5.............................................................芯片的工作原理VC5509APGE2.1DSPTMS3205..............................液晶显示器的工作原理2.2LCD16026..............................................主电路图及程序流程图第三章.. (7)主电路图3.17......................................................................................程序总流程图3.27..............................................................................程序分块流程图3.38..........................................................................软件程序设计第四章9.............................................................................调试与处理出现问题4.29.................................................................设计总结第五章 (20):参考文献附录130.................................................................................. 2.言前随着科技的不断发展,诞生了越来越多的电子产品。
比如手表,时钟等等,现在的钟表在功能设计上不断地完善,不仅仅可以显示,而且可以显示年月日,星期几等等。
时间(时分秒)世21科技的发展离不开人类的不断努力,培养高科技人才是纪必做的事。
作为祖国的接班人更要努力学习好电子信息这门科技技术专业。
因此我们要不断的接触各种电子产品,加强对电子技术芯片DSP以理论的掌握和实际的应用。
在本次的实验中,我们就液晶显示屏显上的LCD为核心控制电子钟,具有多项显示,用2812示当前年、月、日、时、分、秒。
3.设计要求第一章DSPTMS320本次课程设计要求设计一个万年历,利用芯片控制,使用程序来控制时间的实时更新,当秒VC5509APGE,当小160时,小时自动加,当分加到加到60时,分自动加1时,年加121,月加到,天加到130时,月加时加到24,天加液晶显示屏显示当前年、月、日、时、分、上的LCD1,使用I602秒。
对现有器件进行简单地编程,实现各种简单地显示控制。
设计目的1.1软件,加强软件编程能力;v3.31.学习软件的安装,熟悉运用CCS 端口的控制方法;I/O DSP芯片的学习2.字符液晶的使用功能1602了解 3.能够对现有器件进行简单地编程,实现各种简单地显示控制。
4.基本要求1.2,并进行计数此系统先显示设定的当前时间(年月日时分秒)⑴设计硬件外扩电路,同时设计软件程序进行软硬件联系调试⑵连接仿真器,在液晶显示屏上进行显示⑶4.第二章系统的组成和工作原理芯片VC5509APGE TMS320DSP2.1芯片引脚图。
VC5509APGE TMS3202.1.1DSP开发环境DSP2.1.2。
公司的CCS3.3开发板的程序都是基于 3.3,Easy5509TI ccs软件安装2.1.3软件CCS CCS3.3。
安装步骤可直接运行光盘中软件目录下的1)首先安装的安装,接着按手册说明顺序安装CCS的setup.exe,按提示操作,即可完成补丁软件CCS5.)然后连接好硬件与仿真器,连与电脑接口,打开电脑的设备管理器,寻2安装CCS找刚检测到的未知设备,更新驱动,接着安装仿真器驱动,注意要和在同一个目录;软件,进行设置。
具体可看手册。
最后可以打开ccs set up ccs,3)打开编写程序,同时连接硬件,测试是否连接。
液晶显示器2.2LCD1602液晶显示原理2.2.11602LCD液晶显示器的工作原理是利用液晶的物理特性,通过电压对其显LCD1602示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,移动通信工具等众多目前已经被广泛应用在便携式电脑、数字摄像机、PDA领域。
引脚图:脚接口,其中:161602采用标准的电源正极5V接为电源地第2脚:VCC第1脚:VSS为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时脚:V0第3对比度最高时选择指令0为寄存器选择,高电平1时选择数据寄存器、低电平RS第4脚:寄存器。
时进行写操作。
时进行读操作,低电平(0)RW为读写信号线,高电平(1)5第脚:时读取信息,负跳变时执行(1)端,高电平E(或EN)端为使能(enable)脚:第6指令。
位双向数据端。
为8D7第7~14脚:D0~脚:空脚或背灯电源。
16第15~6.主电路图及流程图第三章主电路图4.1程序总流程图4.2程序完成。
程序总的流程图如下:DSP该设计用LCD1602进行处理程序,DSP接通电源,DSP和时钟初始化,读取时钟数据,7.检测一次时间。
200ms显示器接受数据并进行显示。
每程序分块流程图4.3液晶显示模块4.3.1LCD1602一上电,显示一个时间,一定时间后,显示程序中设置的时间,并当DSP 中,实现万年历的显示。
利用LCD1602实时刷新时间,将要要显示的时间送入的数组,第一行显示年月日,1016*2的数组,自己设置两个长度为LCD1602。
秒表时间接12-12-12第二行显示时分秒,如第一行:2014-12-12,第二行:秒旨在能够快速的检测分秒日月,是否能够转换增加。
60近于时钟模块4.3.28.,加到11s延迟是否到了,如否,如否,则返回,如是,则将秒加先判断时,241,当小时加到60秒时,分加601,并将秒置0,分加到时,小时自动加。
从而实现万年历的设计。
11时,月加30,天加到天加1,月加到12时,年加9.软件程序设计第四章<csl.h>#include<csl_pll.h>#include<csl_emif.h>#include<csl_chip.h>#include<stdio.h>#include(*((unsigned int*)0x200001))#define led8*)0x200002))(*((unsigned#define Digital8int*)0x200003))int LCD_REG(*((unsigned#define*)0x200004))#define buzzer(*((unsigned int*)0x200005))(*((unsigned#define USER_SW int*)0x200006))LCD_DATAint(*((unsigned#define0x200008UART_BASE_ADDR#define*)(UART_BASE_ADDR+0))*((int#defineRBR*)(UART_BASE_ADDR+0))*((int#defineTHR*)(UART_BASE_ADDR+1))#defineIER*((int*)(UART_BASE_ADDR+2))*((int#defineIIR*)(UART_BASE_ADDR+2))#defineFCR*((int*)(UART_BASE_ADDR+3))*((int#defineLCR*)(UART_BASE_ADDR+4))#define MCR*((int*)(UART_BASE_ADDR+5))#define*((int LSR*)(UART_BASE_ADDR+6))#define MSR*((int*)(UART_BASE_ADDR+7))#define*((intSCR*)(UART_BASE_ADDR+0))DLL#define*((int*)(UART_BASE_ADDR+1))*((intDLM#define10.0comm#define1dat#define*//*要显示的字符str1[]={?4-12-30};char unsignedstr2[]={-59-55};char unsignednian,yue,ri,shi,fen,miao,a;Uint16nDelay);int void Delay(unsignedcontent);int unsigned voidwr_lcd(unsigned char dat_comm, d_time);int voiddelaynum(unsigned*//*锁相环的设置{=PLL_ConfigmyConfigwas process thatusing the0,same//IAI:the PLL locks underwayentered was the idlemode//beforelock,phase in the the PLLindicates a break//IOB:1,If therestarts mode and switches to its bypass//itphase-lockingPLL//sequencetimes1212,multiplyvalue;multiply//PLLeitherbe divide value;it can2//Divideby2PLLvalue PLLdividedivide//(whenPLLis enabled),orBypass-modevalueis//(PLLinbypassmode,ifPLLmultiply value1)set to};*/EMIF设置的/*SDRAM{=EMIF_Configemiffig11.is memoryclock for the//EGCR:theMEMFREQ=00,the0x221, frequence cpuequal towhenposting the writing=//0,forbiden the WPEEMIF thewe debugreflectedis clock MEMCEN//=1,the memorythepinon the CLKMEMnotare requests NOHOLD//=1,HOLDtheEMIF recognizedby theEMIF registerresets the//EMI_RST:any write tothis0xFFFF, machinestate1control register//CE3_1:CE0space0x1fff,2control register//CE3_2:CE0space0x00ff,3registerCE0//CE3_3:space control0x00ff,1register space controlCE00x1fff,//CE1_1:16Bit//Asynchronous,2register space control0x00ff,//CE1_2:CE03register control0x00ff,//CE1_3:CE0space1control register0x1FFF,//CE2_1:CE0space16Bit//Asynchronous,2registerCE0space control0xFFFF,//CE2_2:3register space control0x00FF,//CE2_3:CE01register//CE3_1:CE0spacecontrol0x1fff,2controlregister0x00ff,//CE3_2:CE0space3control register CE00x00ff,//CE3_3:space12.1register control SDRAM0x2911,//SDC1:8=//TRC0=0;SDWID SDSIZE//=1=RFEN//2TRCD//=2//TRP=register SDRAM period0x0410,//SDPER:*4096//7nsregister initialization//SDINIT:0x07FF,SDRAMCEall init the to//this register to any writespaces,the power up//hardware resetor doit afterdevice C55x2control register//SDC2:0x0131SDRAM0;=SDACC//01;//=TMRD0101;//=TRAS0001;=//TACTV2ACTV};**************/的读写等函数LCD以下内容为/*************(EMIF)Interface DSP External MemoryTMS320VC5509 GuideReference*/寄存器操作专用指针CPLD为//*addrvoiddelay(unsigned int d_time)13.{while(d_time--);}main(){temp,k;intCSL_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);//位数据接口矩阵,8为16*2,5*7wr_lcd(comm,0x38);//设定LCD ON光标ON,闪烁//wr_lcd(comm,0x0f);显示ON文字不动,光标wr_lcd(comm,0x06);//while(1){miao++;if(miao==60){14.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++;}}}}}15.}str1[0]=a/10+0x30;str1[1]=a_x0010_+0x30;str1[2]=nian/10+0x30;str1[3]=nian_x0010_+0x30; str1[4]='-';str1[5]=yue/10+0x30;str1[6]=yue_x0010_+0x30; str1[7]='-';str1[8]=ri/10+0x30;str1[9]=ri_x0010_+0x30;str2[0]=shi/10+0x30;str2[1]=shi_x0010_+0x30;str2[2]=':';str2[3]=fen/10+0x30;str2[4]=fen_x0010_+0x30;str2[5]=':';str2[6]=miao/10+0x30;str2[7]=miao_x0010_+0x30;第一行字符地址wr_lcd(comm,0x80);//for(k=0;k<10;k++){wr_lcd(dat,str1[k]);delay(200);}第一行字符地址///*wr_lcd(comm,0x80);16.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}d_time)intvoiddelaynum(unsigned{while(d_time--);}content)int wr_lcd(unsignedvoid chardat_comm,unsigned {Delay(40);if(dat_comm){17.LCD_REG=0x01;数据端口//LCD_DATA=content;//en=0LCD_REG=0x03;delaynum(80);//en=0LCD_REG=0x00;}else{LCD_REG=0x00;LCD_DATA=content;en==0写指令端口LCD_REG=0x02;//rs==1delaynum(80);//en=0LCD_REG=0x00;}Delay(100);}nDelay)void int Delay(unsigned{ii,jj,kk=0;int)ii=0;ii<nDelay;ii++for({)for jj=0;jj<1024;jj++({kk++;}}}18.lcd.cof*End设计总结第五章在两周万年历的课程设计中,我首先学到的是软件的安装,在位的,因为前几天,一直安装和驱动,尽管电脑系统是32CCS3.3装不上补丁不能用。