单片机电子钟程序设计实习报告 单片机LCD1602电.doc

上传人:啊飒飒 文档编号:10536008 上传时间:2021-05-22 格式:DOC 页数:9 大小:40.30KB
返回 下载 相关 举报
单片机电子钟程序设计实习报告 单片机LCD1602电.doc_第1页
第1页 / 共9页
单片机电子钟程序设计实习报告 单片机LCD1602电.doc_第2页
第2页 / 共9页
单片机电子钟程序设计实习报告 单片机LCD1602电.doc_第3页
第3页 / 共9页
单片机电子钟程序设计实习报告 单片机LCD1602电.doc_第4页
第4页 / 共9页
单片机电子钟程序设计实习报告 单片机LCD1602电.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《单片机电子钟程序设计实习报告 单片机LCD1602电.doc》由会员分享,可在线阅读,更多相关《单片机电子钟程序设计实习报告 单片机LCD1602电.doc(9页珍藏版)》请在三一文库上搜索。

1、单片机电子钟程序设计实习报告 单片机LCD1602电这次嵌入式系统综合实习已经结束了,哎.在网络发现很多计算机专业的毕业生都是以电子钟为题的毕业论文,个人感觉做一个电子钟程序设计的技术含量,技术水平都不高。呵呵个人还是比较偏向于软件开发的,比较喜欢vc+开发。下面是个人这次实习报告完整文档(提示:有些截图无法显示,因为从word文档里直接复制过来了,不过我已经给出了文档的下载地址了,免费下载的。在文章最后一段里就找到下载地址了)一、引言1.1课题的背景及目的随着计算机科学与技术的飞速发展,计算机的应用已经渗透到国民经济与人们生活的各个角落,正在日益改变着传统的人类工作方式和生活方式,而单片机技

2、术又作为计算机技术中的一个独立分支,有着性价比高,集成度高,体积小,可靠性高,控制功能强大,低功耗,低电压,便于生产,便于携带等特点,所以得到越来越广泛的应用,特别是在工业控制和仪表仪器智能化中起极其重要的作用.本文利用单片机强大的控制功能和内部定时器重要部件,设计了一款自行对时间进行调整以及把时、分、秒用LCD显示的电子钟。电子钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.

3、通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法1.2课题的内容要求及研究方法时间以24小时为一个周期;显示时、分、秒;具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;本文先按照设计的一般步骤,先选定用单片机实现的方案,了解设计要求,再分别从硬件系统设计和软件系统设计两个宏观方面着手.然后大量阅读相关资料,硬件方面,熟练单片机工作基本原理,查出相关元器件的参数,八个八段数码管,继电器等性能.然后画出系统框图和单元电路原理图,再对系统工作原理按照单元电路作简单的说明。软件方面,熟悉编程语言,查找相关子程序.熟悉使用Keil uVision2开发软件及STC-I

4、SP下载软件.把原器件按电路原理图安装.最后再对硬件和软件系统进行调试和仿真。课题的内容是要求设计一款电子钟,而且要求计时准确,显示直观,清晰,时能够精确到秒。最后设计出来的产品,要求电路简洁,稳定性好。二、课题设计1、基本原理本设计基于单片机技术原理,以单片机芯片AT89C52作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个多功能数字时钟系统。单片机扩展的LCD显示器用来显示秒、分、时计数单元中的值。整个设计包括两大部分:硬件部分和软件部分,以单片机为核心,配以一定的外围电路和软件。硬件是整个系统的基础,软件部分则要合理、充分地支持和使用系统的硬件,从而完成系统所要完成的

5、任务。该时钟系统主要由时钟模块、液晶显示模块、键盘控制模块以及信号提示模块组成。能够准确显示时间(显示格式为时时:分分:秒秒,24小时制),可随时进行时间调整。设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。单片机在这种情况下诞生了基于单片机电子时钟。2、原理框图3、硬件电路原理图3.硬件模块功能介绍3.1 AT89C52单片机AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路2。同时,AT89C

6、52可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3.2液晶显示器LCD液晶显示器简称是利用液晶经过处理后能够改变光线传输方向的特性,达到显示字符或者图形的目的。其特点是体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中有着日益广泛的应用。1602芯片:主要用于显示时间和定时时间。1602芯片由点阵字符液晶显示器件和专用的行、列驱动器、控制及必要的链接件、结构件组装而成,可以显示数字和西文字符,但

7、不能显示图形,已经可以满足本次设计的需要。1602型LCD可以显示2行16个字符,有8位数据总线D0D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。3.3键盘控制模块按键中有一个复位键及定时键、调时键加一键和减一键,一个按键接在复位电路上,另外四个按键接在P0-P4口,低电平表示有按钮按下;按钮没有接防抖电路,需要设计软件防抖。1、定时。按下定时键后可以开始定时,过程如下:定时-小时加/减-按定时-分钟加/减-按定时。2、调时。按下调时键后可以调时,过程如下:调时-年加/减-调时-月加/减-调时-日加/减-调时-时加/减-调时-分加/减-调时-秒加/减-

8、调时。3.4直流稳压电源部分直流稳压电源是给电子设备提供稳定直流电压的电子电路。这次电路需要的是+5V直流电源。4.软件设计4.3代码附录#include reg51.h#include intrins.h#include absacc.h uchar code str0=code str1=情侣网名;void delay_LCM(uint);/LCD延时子程序void initLCM(void);/LCD初始化子程序void lcd_wait(void);/LCD检测忙子程序void WriteCommandLCM(uchar WCLCM,uchar BusyC);/写指令到ICM子函数vo

9、id WriteDataLCM(uchar WDLCM);/写数据到LCM子函数void DisplayOneChar(uchar X,uchar Y,uchar DData);/显示指定坐标的一个字符子函数void DisplayListChar(uchar X,uchar Y,uchar code*DData);/显示指定坐标的一串字符子函数void init_timer0(void);/定时器初始化void displayfun1(void);void displayfun2(void);void displayfun3(void);void keyscan(void);/键盘扫描子程序

10、void set_adj(void);void inc_key(void);void dec_key(void);/*显示指定坐标的一串字符子函数*/void DisplayListChar(uchar X,uchar Y,uchar code*DData)uchar ListLength=0;Y&=0x01;X&=0x0f;while(X 16)DisplayOneChar(qq情侣网名);ListLength+;X+;/*液晶显示子函数1正常显示*/void displayfun1(void)WriteCommandLCM(0x0c,1);/显示屏打开,光标不显示,不闪烁,检测忙信号Dis

11、playListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(7,1,hour/10+0x30);/液晶上显示小时DisplayOneChar(8,1,hour%10+0x30);DisplayOneChar(10,1,minite/10+0x30);/液晶上显示分DisplayOneChar(11,1,minite%10+0x30);DisplayOneChar(13,1,second/10+0x30);/液晶上显示秒DisplayOneChar(14,1,second%10+0x30);/*键盘扫描子函数*/void key

12、scan(void)if(ADJ_key=0)delay_LCM(5);if(ADJ_key=0)while(!ADJ_key);set_adj();if(INC_key=0)delay_LCM(5);if(INC_key=0)while(!INC_key);inc_key();if(DEC_key=0)delay_LCM(5);if(DEC_key=0)while(!DEC_key);dec_key();/*设定工作模式子函数*/void set_adj(void)delay_LCM(100);set+;if(set 2)set=0;/*按键加法子函数*/void inc_key(void)

13、delay_LCM(150);if(set=1)hour+;if(hour=23)hour=23;else if(set=2)minite+;if(minite=59)minite=59;else displayfun1();/*按键减法子函数*/void dec_key(void)delay_LCM(150);if(set=1)hour-;if(hour=0)hour=0;else if(set=2)minite-;if(minite=0)minite=0;else displayfun1();/*定时器t0初始化*/void init_timer0(伤感网名)TMOD=0x01;/time

14、0为定时器,方式1 TH0=0x3c;/预置计数初值TL0=0xb0;EA=1;ET0=1;TR0=1;/*定时器t0中断子函数*/void timer0(void)interrupt 1using 0/定时器0方式1,50ms中断一次TH0=0x3c;TL0=0xb0;mstcnt+;if(mstcnt=20)second+;mstcnt=0;if(second=60)minite+;second=0;if(minite=60)hour+;minite=0;light=0;delay_LCM(200);light=1;if(hour=24)hour=0;keyscan();/按键扫描/*个性

15、网名*/void main(void)P1=0xff;/初始化p1口,全设为1 delay_LCM(500);/延时500ms启动initLCM();/LCD初始化init_timer0();/时钟定时器0初始化DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);while(1)keyscan();/按键扫描switch(set)/LCD根据工作模式显示case 0:displayfun1();delay_LCM(1000);/正常工作显示break;case 1:displayfun2();delay_LCM(1000);/调整分显示bre

16、ak;case 2:displayfun3();delay_LCM(1000);/调整时显示break;default:break;5.调试过程调试的主要过程包括硬件调试和软件调试,其中软件调试,也即程序编译与仿真过程处于本次设计调试过程的核心环节。由于本设计已经制作出液晶显示电子钟,所以硬件调试也很重要。两种调试过程并非孤立或者分开的,而是紧密相关。在此我们用到的开发工具是仿真器。5.1硬件调试完成仿真器软件仿真后,就要连接上硬件也即液晶显示电子钟成品板进行硬件调试。将仿真器通过串行电缆连接计算机上,将仿真头接到仿真器,检查接线是否有误,确信没有接错后,接上电源,打开仿真器的电源开关。再进行

17、仿真器和通信设置。仿真器和仿真头设置正确,并且硬件连接没有错误,出现硬件仿真的对话框,并显示仿真器、仿真头的型号及仿真器的序列号。表明仿真器初始化正确。硬件调试很重要也很麻烦,由于本次设计硬件非PCB制板,而是手工焊板,焊点质量、布线是否合理等对系统的影响比较大,这无疑增加硬件调试的难度。由于此前没有很多的练习,本次设计我所制作的液晶显示电子钟在质量工艺上很难达到满意程度,不过在调试中还算稳定,基本功能都能较稳定地实现。5.2软件调试系统仿真分析电路原理图在ISIS里设计完成,并将系统软件编译成.Hex文件,再进行电子时钟的系统虚拟仿真。(1)在ISIS的原理图中,右键单击AT89C51将其选

18、中,然后单击左键打开AT89C51的Edit Component对话框,如下图所示。(2)选择相应的.Hex文件,再在Proteus ISIS编辑窗口的File菜单中选择Save Design选项,保存设计,生成.DSN文件。5.3测试数据与数据分析在Proteus ISIS的Debug菜单中选择Execute,运行程序,系统仿真结果如下图所示。实现功能的具体方法:当进入调整功能时,按第一个键K1进行减运算,按第二个键K2进行加运算。按下第三个键K3,实现日期时间调整及定时功能,等数字闪烁后,按一二键进行加减,从而可以进行具体日期时间调整。按下第四个键K4,可以进行时间日期切换,将显示时间或日

19、期,采用24小时制。时间显示格式为:时-分-秒;日期显示格式为:日-月-年。具有显示时间和日期的功能。三、总结:个人心得体会通过这次对电子钟的设计与制作,让我了解了什么是嵌入式系统开发,虽然这次的实习做的电子钟比其他同学做的较简单,但是也给将来进入嵌入式系统开发有了一个起点的基础。在这次实习的过程,刚开始的时候,真的有点不知所措,因为刚刚学习完单片机,以及微机原理课程,接着就立即开始了这个实习了。幸好有三个星期的时间来准备。画电路原理图,一开始就觉得有点烦,因为那个软件有很多基本操作都不知道,做起来非常的费时又费力,幸好一个组里可以有两个成员,我的组员就是我的得力助手了,我解决不了的问题,他就

20、去跑腿求问其他同学或者老师,反正有了解决办法就一起动手解决。这个电子钟的软件程序都是使用C语言编写的,毕竟使用汇编对于我们来说难度都是比较大啊。这次嵌入式电子钟课程设计是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。它不仅加深了我对单片机技术课程的理解,还让我感受到了电子钟设计的乐趣。在这次设计中,虽然我比较怕麻烦,但是还是跟组员一起坚持到底,反复设计、绘图与修改,就是希望能把这次课程设计做好。因此对我来说,这次课程设计是非常有意义的。参考文献:80C51单片机原理与应用技术吴炳胜编著微型计算机原理与应用杨宏五等编著个人博客宗旨:分享给需要帮助的网名,网民,网友.文档下载地址:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1