您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 基于LCD的电子时钟实验
河海大学计算机及信息工程学院(常州)课程设计报告题目嵌入式系统项目设计专业、学号通信工程0863510125授课班号277702学生姓名陈凯指导教师奚吉完成时间2011-6-24课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:基于LCD的电子时钟实验Ⅱ、课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、培养学生的编程能力、用计算机解决实际问题的能力。二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、充分利用网络资源,尤其是各大电子论坛;3、在原有程序基础上经行消化,并加上自己的内容;三、课程设计预期效果1、完成实验环境搭建;2、分模块调试和编译;3、组合并完善程序。4、联合仿真软件运行程序。5、液晶显示器显示时钟图样,时,分,秒能指向正确的时间;学生姓名:陈凯专业年级:08通信工程河海大学本科课程设计报告-I-目录前言………………………………………………………………………………………………2第一章系统设计…………………………………………………………………………………4第一节课题目标及总体方案…………………………………………………………………..4第二节元器件的选择和连线…………………………………………………………………..4第三节程序和芯片的初始化…………………………………………………………………..5第四节main函数的局部原理分析……………………………………………………………….7第五节实现信息的传递…………………………………………………………………..……8第二章实验(测试)结果及讨论……….………………………………………………………..13第一节ads1.2软件的编译,连接和运行…………………………………………………….13第二节心得体会………………………………………………………………………………14参考文献…………………………………………………………………………………………15附录…………………………………………………………………………………………16源程序………………………………………………………………………………………16开发版图片………………………………………………………………………………………23河海大学本科课程设计报告-2-前言近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件发生的时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化程度较高领域的无人职守环境。随着集成电路技术的不断发展,RTC器件的新品也不断推出。这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。关键词:嵌入式实时时钟微控制器河海大学本科课程设计报告-3-ForewordInrecentyears,ascomputertechnologyandintegratedcircuittechnology,thegrowingpopularityofembeddedtechnologyinthetelecommunications,networking,industrialcontrol,medical,electronicsandotherfieldsareplayinganincreasinglyimportantrole.EmbeddedsystemswillundoubtedlybecomethemostpopularofthemostpromisingareasofITapplications.RealTimeClock(RTC)devicecanprovideacalendar/clock,datastorageandotherfeaturesspecificintegratedcircuit,commonlyusedforvariouscomputersystems,theclocksourceandtheparametersettingsstoredinthecircuit.RTChasatimingaccuracy,lowpowerconsumptionandsmallsizeandothercharacteristics,especiallyforembeddedsystemsinavarietyofloyaltyandthetimerecordedevent-relatedinformation,especiallyincommunicationengineering,electricpowerautomation,industrialcontrolandotherareasofhigherdegreeofautomationunattendedenvironment.Withintegratedcircuittechnologycontinuestoevolve,RTCalsohasintroducednewdevices.ThesenewproductsnotonlyhaveaccurateRTC,thereisalarge-capacitymemory,temperaturesensorandA/Ddataacquisitionchannel,etc.,hasbecomeasetofRTC,datacollectionandstoragefunctionsinoneintegrateddevice,particularlyapplicabletomicro-controllercoreembeddedsystems.Keywords:EmbeddedMicrocontrollerRTCCPU河海大学本科课程设计报告-4-第一章系统设计第一节课题目标及总体方案利用sunsangs3c44bo芯片和LCD显示器,通过汇编和C语言编译,完成实时时钟的显示。第二节原理框图选用嵌入式arm7系列的sunsangs3c44bo芯片和Lcd显示器:河海大学本科课程设计报告-5-第三节程序和芯片的初始化程序中包括:Lcd的初始化:U16LCD_Init(U8Lcd_Bpp){switch(Lcd_Bpp){Case8:rLCDCON1=(0)|(25)|(MVAL_USED7)|(0x18)|(0x110)|(CLKVAL_COLOR12);rLCDCON2=(LINEVAL)|(HOZVAL_COLOR10)|(1021);rLCDSADDR1=(0x327)|(((U32)Video_StartBuffer22)21)|M5D((U32)Video_StartBuffer1);rLCDSADDR2=M5D((((U32)Video_StartBuffer+(SCR_XSIZE*LCD_YSIZE))1))|(MVAL21)|129;rLCDSADDR3=(LCD_XSIZE/2)|(((SCR_XSIZE-LCD_XSIZE)/2)9);rREDLUT=0xfdb96420;rGREENLUT=0xfdb96420;rBLUELUT=0xfb40;rDITHMODE=0x0;rDP1_2=0xa5a5;rDP4_7=0xba5da65;rDP3_5=0xa5a5f;rDP2_3=0xd6b;rDP5_7=0xeb7b5ed;rDP3_4=0x7dbe;rDP4_5=0x7ebdf;rDP6_7=0x7fdfbfe;rDITHMODE=0x12210;rLCDCON1=(1)|(25)|(MVAL_USED7)|(0x38)|(0x310)|(CLKVAL_COLOR12);break;default:return1;}return0;}中断向量的初始化:voidKeyINT_Init(void){if((rINTPND&BIT_EINT4567)){SPC=BIT_EINT4567;}rINTMSK=~(BIT_GLOBAL|BIT_EINT4567);河海大学本科课程设计报告-6-}RTC的初始化:voidRtc_Tick_Init(void){if((rINTPND&BIT_TICK)){rI_ISPC=BIT_TICK;}rINTMSK&=~(BIT_GLOBAL|BIT_TICK);rRTCCON=0x0;rTICINT=1|(17)}voidRtc_Tick_Init0(void){if((rINTPND&BIT_TICK)){rI_ISPC=BIT_TICK;}rINTMSK&=~(BIT_GLOBAL|BIT_TICK);rRTCCON=0x0;rTICINT=1|(16);}河海大学本科课程设计报告-7-第四节构建功能模块Lcd显示的时钟界面包括:静止不动的圆形钟面和一直在走动的时钟指针。所以需要构建两个重要的函数实现画圆和画直线。以下为画圆函数:voidShouw_Cricle(){Set_Color(GUI_YELLOW);Fill_Circle(160,30,2);//12点(x,y,r)Fill_Circle(135,35,2);//11点(x,y,r)Fill_Circle(115,55,2);//10点(x,y,r)Fill_Circle(110,80,2);//9点(x,y,r)Fill_Circle(115,105,2);//8点(x,y,r)Fill_Circle(135,125,2);//7点(x,y,r)Fill_Circle(160,130,2);//6点(x,y,r)Fill_Circle(185,125,2);//5点(x,y,r)Fill_Circle(205,105,2);//4点(x,y,r)Fill_Circle(210,80,2);//3点(x,y,r)Fill_Circle(205,55,2);//2点(x,y,r)Fill_Circle(185,35,2);//1点(x,y,r)}河海大学本科课程设计报告-8-第五节main函数的局部原理分析首先让我们先来看一下main函数的宏定义与变量定义,如下:从上面的程序可以看出,所使用的头文件主要是config.h。这个文件的内容不再详述,后面的附录会给出。同时该程序还给出了时分秒的初始值,其字符型为i8,也即char型(在其它文件中有定义)。初始值为:hour=0,min=0,sec=0,ms=0;例如如果当前时间为6:20,十九秒,则将对应的数字修改即可。同理,年月日的初始值设定是一样的,并且字符类型也为char类型。下面是针对字符类型的宏定义:#defineI8char#defineU8unsignedchar#defineI16short#defineU16unsignedshort#defineI32long#defineU32unsignedlong#defineI16PI16#defineU16PU16下面我们来看看对于时针,分针,秒针的坐标设定,程序如下:河海大学本科课程设计报告-9-上述为秒针的坐标定义,SpaceXS[61]对应于秒针的横坐标值,SpaceYS[61]对应于纵坐标值。第一个点对应的是十二点的位置,即(160,30)点。因此只要设定两个指针,分别指向这两个数组的首地址,每当时间秒变化时,就将这两个指针加一,从而指向下一坐标,达到动态变化的效果。分针,时针的定义与上述定义完全一样,只不过时针定义时变量个数为十三个,具体如下定义:SpaceX
本文标题:基于LCD的电子时钟实验
链接地址:https://www.777doc.com/doc-4483129 .html