河海大学计算机及信息工程学院(常州)课程设计报告题目嵌入式系统项目设计专业、学号电信授课班号学生姓名指导教师完成时间2010/1/15课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:基于LCD的电子时钟实验Ⅱ、课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、培养学生的编程能力、用计算机解决实际问题的能力。二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、使用ads1.2编译汇编语言和C语言,连接生成Hex文件。3、联合protues7.4仿真,选用arm7lpc2104芯片,导入Hex文件,实现模拟电子时钟。三、课程设计预期效果1、完成实验环境搭建;2、分模块调试和编译;3、组合并完善程序。4、联合仿真软件运行程序。学生姓名:专业年级:目录前言………………………………………………………………………………………………3河海大学本科课程设计报告-II-第一章系统设计…………………………………………………………………………………4第一节课题目标及总体方案…………………………………………………………………..4第二节元器件的选择和连线…………………………………………………………………..4第三节程序和芯片的初始化…………………………………………………………………..5第四节构建功能模块…………………………………………………………………………..6第五节实现信息的传递…………………………………………………………………..……7第二章实验(测试)结果及讨论……….……………………………………………………….8第一节ads1.2软件的编译,连接和运行……………………………………………………..8第二节protues7.4仿真软件的联合调试……………………………………………………...9第三章结论………………………………………………………………………………………10心得体会……………………………………………………………………………………………11参考文献…………………………………………………………………………………………12附录…………………………………………………………………………………………13源程序………………………………………………………………………………………13河海大学本科课程设计报告-3-前言近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件发生的时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化程度较高领域的无人职守环境。随着集成电路技术的不断发展,RTC器件的新品也不断推出。这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。河海大学本科课程设计报告-4-第一章系统设计第一节课题目标及总体方案利用lpc2104芯片和LCD显示器,通过汇编和C语言编译,完成实时时钟的显示。第二节元器件的选择和连线选用嵌入式arm7系列的lpc2104芯片和Lcdpg160128a显示器:根据使用的需要配置端口连线:河海大学本科课程设计报告-5-第三节程序和芯片的初始化程序中包括:Lcd的初始化:中断向量的初始化:RTC的初始化:芯片Lpc2104基础配置:中间使用了上接正电源配合电容的交流特性,为芯片提供电源和复位功能。其他引脚根据芯片要求配置连接。河海大学本科课程设计报告-6-第四节构建功能模块Lcd显示的时钟界面包括:静止不动的圆形钟面和一直在走动的时钟指针。所以需要构建两个重要的函数实现画圆和画直线。以下为画圆函数:该算法是通过X变量的自增,补偿1修正正方形控制Y变量自减,找到距中心恒定距离的点,其中rs=45,X自0加1增至45。和原点坐标运算,可以在第一象限找到一点,再通过折叠对称找到其他象限的三个点,通过画点函数描绘出。再画他的45度镜像就好了。画线函数:voidline(unsignedintx1,unsignedinty1,unsignedintx2,unsignedinty2,unsignedchardraw)以中心的坐标为起点,使用while函数与指针最外圈的点比较,不断延长直至相等,所以事先计算出时针,分针和秒针三个同心圆最外圈点的坐标,以便带入函数。也同圆类似,要考虑不同象限点的情况,根据不同的位置带参数到画点函数中描绘。河海大学本科课程设计报告-7-第五节实现信息的传递画点函数:数据传递函数:与通用可编程输入输出口(GeneralProgramableInputOutput)相连,把计算的数据传递给Lcd显示。河海大学本科课程设计报告-8-第二章实验(测试)结果及讨论第一节ads1.2软件的编译,连接和运行构建完整的程序:添加头文件,中断处理汇编程序段,初始化函数和主函数:编译所有的文件:编译器提示:成功生成所需Hex文件,将得到的Hex文件导入仿真芯片Lpc2104中,观察实时时钟。河海大学本科课程设计报告-9-第二节protues7.4仿真软件的联合调试为Lpc2104芯片选择Hex文件路径:连接芯片与LCD端口,运行程序,观察效果。显示如下时钟界面:动态显示当前的时间,包括:年、月、日、时、分、秒,时针、分针和秒针为动态实时指示当前的时间。河海大学本科课程设计报告-10-第三章结论综合效果图:以上为protues部分设计的,ads程序见附录。河海大学本科课程设计报告-11-心得体会回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整半个月的日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。河海大学本科课程设计报告-12-参考文献[1]谢自美,电子线路设计、实验、测试,华中理工大学出版社,2003。[2]宋春荣,通用集成电路速查手册,山东科学技术出版社,1995。[3]ArnoldBerger,嵌入式系统设计,吕骏译,北京:电子工业出版社,2002[4]桑楠.嵌入式系统原理及应用开发技术,北京:北京航空航天大学出版社,2002河海大学本科课程设计报告-13-附录一、源程序:voidc_init(){wr_circle(123,79,1,1);wr_circle(123,79,2,1);wr_circle(63,139,1,1);wr_circle(63,139,2,1);wr_circle(3,79,1,1);wr_circle(3,79,2,1);wr_circle(63,19,1,1);wr_circle(63,19,2,1);wr_circle(115,109,1,1);wr_circle(93,131,1,1);wr_circle(33,131,1,1);wr_circle(11,109,1,1);wr_circle(11,49,1,1);wr_circle(33,27,1,1);wr_circle(93,27,1,1);wr_circle(115,49,1,1);wr_point(c_ox,c_oy,1);wr_circle(c_ox,c_oy,2,1);wr_circle(c_ox,c_oy,62,1);}voidmove(unsignedcharn){line(c_ox,c_oy,sec[2*n],sec[2*n+1],1);}#definefpclk2764800unsignedcharmin_n;unsignedinthou_n;voidrtc_init(){PREINT=fpclk/32768-1;PREFRAC=fpclk-(fpclk/32768)*32768;YEAR=2010;河海大学本科课程设计报告-14-MONTH=1;DOM=15;HOUR=11;MIN=1;SEC=36;CIIR=0x01;ILR=0x01;CCR=0x01;}void__irqrtc_int(){ILR=0x01;wr_char(9,6,0x10+HOUR/10);wr_char(9,7,0x10+HOUR%10);wr_char(9,8,0x1a);wr_char(9,9,0x10+MIN/10);wr_char(9,10,0x10+MIN%10);wr_char(9,11,0x1a);wr_char(9,12,0x10+SEC/10);wr_char(9,13,0x10+SEC%10);wr_char(11,5,0x10+YEAR/1000);wr_char(11,6,0x10+YEAR%1000/100);wr_char(11,7,0x10+YEAR%100/10);wr_char(11,8,0x10+YEAR%10);wr_char(11,9,0xf);wr_char(11,10,0x10+MONTH/10);wr_char(11,11,0x10+MONTH%10);wr_char(11,12,0xf);wr_char(11,13,0x10+DOM/10);wr_char(11,14,0x10+DOM%10);if(SEC==0){line(c_ox,c_oy,sec[59*2],sec[59*2+1],0);line(c_ox,c_oy,sec[0],sec[1],1);}else{line(c_ox,c_oy,sec[SEC*2-2],sec[SEC*2-1],0);line(c_ox,c_oy,sec[SEC*2],sec[SEC*2+1],1);}if(MIN==0)河海大学本科课程设计报告-15-{line(c_ox,c_oy,min[59*2],min[59*2+1],0);line(c_ox,c_oy,min[0],min[1],1);}else{line(c_ox,c_oy,min[MIN*2-2],min[MIN*2-1],0);line(c_ox,c_oy,min[MIN*2],min[MIN*2+1],1);}if(HOUR11)hou_n=((HOUR-12)*60+MIN)/12;elsehou_n=(HOUR*60+MIN)/12;if(hou_n==0){line(c_ox,c_oy,hou[59*2],hou[59*2+1],0);line(c_ox,c_oy,hou[0],hou[1],1);}else{line(c_ox,c_oy,hou[hou_n*2-2],hou[hou_n*2-1],0);line(c_ox,c_oy,hou[hou_n*2],hou[hou_n*2+1],1);}wr_circle(c_ox,c_oy,2,1);}voidint_init()//中断向量初始化{VICIntSelect=0;//设置所有中断为irq中断VICIntEnable=0x00002000;//中断使能位VICVectCntl0=0x2d;//中断优先级设置VICVectAddr0=(int)rtc_int;//中断向量设置}intmain(void){lcd_init();c_init();int_init();rtc_init();enable_irq