数字时钟设计.doc

上传人:laozhun 文档编号:4149123 上传时间:2023-04-07 格式:DOC 页数:10 大小:158KB
返回 下载 相关 举报
数字时钟设计.doc_第1页
第1页 / 共10页
数字时钟设计.doc_第2页
第2页 / 共10页
数字时钟设计.doc_第3页
第3页 / 共10页
数字时钟设计.doc_第4页
第4页 / 共10页
数字时钟设计.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《数字时钟设计.doc》由会员分享,可在线阅读,更多相关《数字时钟设计.doc(10页珍藏版)》请在三一办公上搜索。

1、物理与电子工程学院课程设计报告书班级:09自动化时间:2011/12/20基于MCS-51单片机的时钟设计。摘要:钟表的数字化给人们生产生活带来了极大的方便,研究数字钟及扩大其应用,有着非常现实的意义。本文介绍了基于单片机的电子时钟和温度计设计。系统以 STC89C52为核心,关键词:电子时钟;STC89C52单片机;LCD1602液晶显示;1. 基本设计要求 在学习单片机的过程中必须理论联系实际,从实践中检验所学。时间对每个人的重要性不言而喻,而现在的科技已经通过各种不同的形式来展现时间,来提醒我们要惜时。设计要求为:(1)、准确计时,以数字形式在LCD1602上显示时、分、秒的时间(2)、

2、小时以24小时计时形式,分秒计时为60进位 (3)、校正时间功能(即调整时间)(4)、通过软件和硬件的测试达到目标的实现2. 方案论证1.时钟的总体设计思路按照系统的设计功能要求,本时钟系统的设计必须采用单片机软件系统实现,用单片机的自动控制能力配合按键控制,来控制时钟的调整及显示。2.单片机及显示器件的选择对于单片机的选择,如果用8031系列,由于它没有内部RAM,系统又需要大量内存存储数据,因而不可用;51系列单片机的ROM为4K,对于我们设计的系统可能有点小;52系列单片机与51系列的结构一样,而ROM扩大为8K,对我们设计系统提供充足的空间进行功能的扩展。再有51系列单片机与52系列的

3、单片机价格差不多。因此,我们选择52系列的单片机。时钟和温度的显示可以用数码管或LED,而且价格便宜。但是数码管的只能显示简单的设计的系统,与我们设计要求也不相符。有很多东西需要显示,还是用显示功能更好的液晶显示器比较好,它能显示更多的数据,首选1602。在本系统的电路设计方框图如图一所示,它由三部分组成:控制部分主芯片采用单片机AT89S52;显示部分采用液晶显示器实现时钟显示;时钟调节部分使用按键来控制;微型控制器时钟电路按键调时数据显示3.系统硬件设计本次设计时钟电路,使用了ATC89C52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键

4、来调整时钟的时、分、秒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过三个模块:键盘、芯片、显示屏即可满足设计要求。原理如图所示。PCB图如下Proteus仿真如下:按键需要3个,分别实现为时间调整、时间的加、时间的减、三个功能。用单片机的3个I/O口接收控制信号,4.软件设计4.1 软件主要要完成的功能(1)显示时间程序用软件调节时间,通过程序的调节,最后用LCD现实时钟(2)调节时间程序按键调节时间,能实现时、分、秒的调节4.2软件设计的主要流程(1)系统总的流程图主要功能是负责时间的显示,通过写地址和写数据来实现时间的调节和控制,最后通过调用显示子程序显示出来 。(2

5、)时间控制程序时间控制程序,用中断准确的控制时间,采用60进制,60秒为一分钟,60分钟为一个小时,全天设置为24小时。程序流程图如下所示。程序用C语言编写,代码见附录。编程时采用KEIL C,而仿真用PROTUES,仿真时仿真图如图所示开始定时器及中断定时器初始化按键调时是否设定参数执行显示程序NY5 系统测试结果及分析5.1测试方法按照之前的分析和仿真结果做好电路板,检验显示电路,通过按键看能否实现时间的调节。各部分正确连接电源和地。5.2 测试结果及分析测试的结果图片在如附录所示。当主板接好线之后,时钟能正确如仿真时的结果复显示。按键可以正确的实现时间的调节,效果良好,达到的预期的效果。

6、设计使用的控制器结构简单、显示准确,具有一定的实际应用价值6.参考文献1 吴凤清,王兢,索辉,刘国范,徐宝琨,赵慕愚. 纳米晶LaFeO_3的合成及湿敏特性的研究J. 吉林大学自然科学学报, 1999,(01) . 2 袁秀英.组态控制技术M.北京:电子工业出版社,2003.3 谢自美电子线路设计实验测试M武汉:华中理工大学出版社,1992.4 何立民单片机应用系统设计M北京:北京航空航天大学出版社,1993.5 楼然笛单片机开发M北京:人民邮电出版社,1994.6 付家才单片机控制工程实践技术M北京:化学工业出版社 2004.3.7 李光才单片机课程设计 实例指导M 北京:北京航空航天大学出

7、版社 2004.8 朱定华单片机原理及接口技术实验M北京:北方交通大学出版社2002.11.9 刘湘涛江世明单片机原理与应用M. 北京:电子工业出版社,2006.附录:程序#include#define uint unsigned int #define uchar unsigned charsbit rs=P15;sbit rw=P16;sbit en=P17;sbit s1=P10;sbit s2=P11;sbit s3=P12;sbit s4=P13;sbit fm=P00;uchar shi,fen,miao,ri,yue,nin;uchar code table=Happy ever

8、y day!;uchar code table1= 00:00:00 ;uchar num,num1,count;uint i,sh,ge,s,g; void delay(uchar time)uint j;for(;time0;time-)for(j=0;j125;j+);void write_com(uchar com)en=0;rs=0;delay(5);P3=com;delay(5);en=1;delay(5);en=0;void write_data(uchar dat)en=0;rs=1;delay(5);P3=dat;delay(5);en=1;delay(5);en=0;voi

9、d init()en=0;rw=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01); for(i=0;i16;i+) write_com(0x80+i); write_data(tablei);for(i=0;i16;i+) write_com(0x80+0x40+i); write_data(table1i); TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void write_sfm(uchar add,uchar

10、num)sh=num/10;ge=num%10;write_com(0x80+0x40+add);write_data(0x30+sh);write_data(0x30+ge);void keyscan() if(s1=0) delay(5);if(s1=0) num1+; while(!s1) if(num1=1)TR0=0; write_com(0x0e); write_com(0x80+0x40+0x0b); write_com(0x0f); if(num1=2)write_com(0x80+0x40+0x08);if(num1=3) write_com(0x80+0x40+0x05);

11、if(num1=4)num1=0;write_com(0x0c);TR0=1; if(num1!=0) if(s2=0)delay(5);if(s2=0)while(!s2) if(num1=1) delay(20); miao+; if(miao=60) miao=0; write_sfm(10,miao); write_com(0x80+0x40+0x0a); if(num1=2)fen+;if(fen=60)fen=0; write_sfm(7,fen); write_com(0x80+0x40+0x07);if(num1=3)shi+;if(shi=24) shi=0; write_s

12、fm(4,shi); write_com(0x80+0x40+0x04);if(num1!=0)if(s3=0)delay(5);if(s3=0)while(!s3)if(num1=1)delay(20);miao-;if(miao=-1) miao=59; write_sfm(10,miao); write_com(0x80+0x40+0x0a);if(num1=2)fen-;if(fen=-1)fen=59; write_sfm(7,fen); write_com(0x80+0x40+0x07);if(num1=3) shi-;if(shi=-1)shi=23; write_sfm(4,s

13、hi); write_com(0x80+0x40+0x04); if(s4=0) delay(5);if(s4=0) fm=1; while(!s4); void main() init();while(1)keyscan();void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+; if(count=20)count=0;miao+;write_sfm(10,miao);if(miao=60)miao=0;fen+;write_sfm(7,fen);if(fen=60)fen=0; shi+;write_sfm(4,shi);fm=0;delay(200); fm=1; if(shi=24) shi=0; write_sfm(4,shi); write_sfm(7,fen); write_sfm(10,miao);

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号