《数码管电子钟.docx》由会员分享,可在线阅读,更多相关《数码管电子钟.docx(18页珍藏版)》请在三一办公上搜索。
1、摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透 了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同 时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。 对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的 麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。数码管 显示的时间简单明了而且读数快、时间准确显示到秒。而机械式的依赖于晶体震荡 器,可能会导致误差。数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。数字
2、钟的精度、稳定度远远超过老式机械钟。数字钟是其小巧,价格低廉,走时精度高, 使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。目录摘要1目录2第一章绪论31.1数字电子钟的背景31.2数字电子钟的意义31.3电子时钟简介31.4电子时钟的基本特点41.5电子时钟的原理41.6数字电子钟的应用4第二章数字钟的软件设计42.1系统软件设计流程图5第三章控制系统的软件设计83.1程序设计83.2数字钟的原理图12第四章系统仿真144.1 PROTUES 软件介绍144.2电子钟系统PROTUES仿真15第五章调试与功能说明155.1硬盘调试165.2系统性能测试与功能说明 165
3、.3系统时钟误差分析165.4软件调试问题及解决16总结17参考文献18第一章绪论1.1数字电子钟的背景20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透 了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时 也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们 来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的 事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的 耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低 功耗、小体积、大容量、高性能、
4、低价格和外围电路内装化等几个方面发展。下面是 单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控 制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现 在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制 技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒 计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更 更长的使用寿命,因此得到了广泛的使用。1.2数字电子钟的意义数字钟是采用数字电路实现对,时,分,秒。数字显示的计时装置,广泛用于个人家庭,车站,码
5、 头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体 振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了 极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间 程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的 自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非 常现实的意义。1.3电子时钟简介1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电 子时钟开始迅速发展起来。现代的电子时钟是基于单片机
6、的一种计时工具,采用延时 程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一, 满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活 补课缺少的工具。1.4电子时钟的基本特点现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、 石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试, 数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显 示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以 进行时和分的校对,片选的灵活性好。1.5电子时钟的原理该电子时钟由80C51,B
7、UTTON,六段数码管等构成,采用晶振电路作为驱动 电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟, 六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不 同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按 下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按 键不放松,则可实现小时的调节,同样每按一次小时加一。1.6数字电子钟的应用数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码 头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。 由于数字集成电路
8、技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性 能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。2数字钟的软件设计与控制系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件 (完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以 下几个方面的问题。(1)根据软件功能要求,将系统软件划分为若十个相对独立的部分,设计出合 理的总体结构,使软件开发清晰、简洁和流程合理;(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合
9、适的参数;(4) 绘制程序流程图;(5) 合理分配系统资源;(6) 为程序加入注释,提高可读性,实施软件工程;(7) 注意软件的抗干扰设计,提高系统的可靠性。2.1系统软件设计流程图这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。图4-1主程序流程图按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下, 就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键 是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。开始一;Y显f时I 二_结束:定时器
10、中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就 检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到, 1小时如果到,时单元就加1,如果没到,就显示时间。顼开始二秒个位计算显示秒十位计算显示分个位计算显示分十位计算显示时个位计算显示时十位计算显示结束二图4-3定时器中断流程图时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。(中断返回图4-4时间显示流程图第三章控制系统的软件设计3.1程序设计本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整程序、 延时程序四大模块
11、。在程序设计过程中,加强了部分软件抗干扰措施,下面对部分模 块作介绍。定时计数中断程序:#include unsigned char second=0,minute=0,hour=0,max=23; /second 秒,minute 分,hour 时,max时制/主函Void main()unsigned char code table=0xdd,0x84,0xe9,0xec,0xb4,0x7c,0x7d,0xc4,0xfd,0xfc;void good();TMOD=0X11;用于扫描按键IE=0X8a;IP=0X80;TH0=0X3c;unsigned int i;/T0工作于定时模式1用
12、于计时,T1工作于定时模式1/开放T0、T1中断/T1优先级高于T0,有按键停止计时设置T0初值,定时5MSTL0=0Xb0;TH1=0x3c;定时250ms扫描按键;TL1=0xb0;TR1=1;启动good();while(1)扫描轮流显示i=minute/10;显示分十位P0_5=0;P0_4=1;P0_6=1;P0_7=1;P2=tablei;for(i=0;i500;i+);i=minute%10;显示分个位P0_5=1;P0_4=0;P0_6=1;P0_7=1;P2=tablei;for(i=0;i500;i+);i=hour%10;显示时个位P0_5=1;P0_4=1;P0_6=
13、0;P0_7=1;P2=tablei;for(i=0;i500;i+);i=hour/10;显示时十位P0_5=1;P0_4=1;P0_6=1;if(i!=0)P0_7=0;P2=tablei;for(i=0;i500;i+);计时中断程序void abc() interrupt 1/t0(计时)中断子程序static char a=0;TH0=0X3c;重赋初值TL0=0Xb0;a+;if (a=20)当 a=20 时一秒到了a=0;P1_7=P1_7;/二级管取反闪烁second+;秒增 1if(minute=0)if(second2*hour)P1_4=P1_4;else P1_4=1;
14、 if(second=60)second=0;minute+;/秒计到 60,秒清 0,分增-if(minute=60)minute=0;hour+;分计到 60,分清 0,时增if(hour=max+1)hour=0;时计到最大值,清 0按键中断处理程序void key() interrupt 3 char key=9;/ int i;static char b=0;TR1=0;停止计时TH1=0x3c;重赋初值TL1=0xb0;b+;/250ms 计数if(b=5)判断按键是哪一个if(P1_0=0)key=0;if(P1_1=0)key=1;if(P1_2=0IIP3_2=0)key=2
15、;if(P1_3=0)key=3;b=0;switch (key)case 0:按下调时键调整时数TR0=0;hour+;if (hour=max+1)hour=0;break;case 2:/按下调分键调整分数TR0=0;minute+;if (minute=60)minute=0;break;case 1: TR0=1;break;/按下重启键重新计时case 3: Musicu();按下通讯键,功能待定TR1=1;重启 T1void good() int i,j=0,k;unsignedchara=0x00,0x00,0x00,0x84,0x00,0x19,0x2d,0x0d,0x79,
16、0x00,0xbc,0x2d,0x9d;放置 09while(TR0=0&minute=0&hour=0) if(k=60 ) k=0;j+;if(j=13) j=0;显示gP0_5=1;P0_4=1;P0_6=1;if(aj%13=0x00) P0_7=1;else P0_7=0;P2=aj%13;for(i=0;i500;i+);显示分十位if(a(j+1)%13=0x00) P0_6=1;else P0_6=0;P0_4=1;P0_5=1;P0_7=1;P2=a(j+1)%13;for(i=0;i500;i+);/显示时O位P0_4=1;P0_6=1;if(a(j+2)%13=0x00)
17、 P0_5=1;else P0_5=0;P0_7=1;P2=a(j+2)%13;for(i=0;i500;i+);显示分0位P0_5=1;if(a(j+3)%13=0x00) P0_4=1;else P0_4=0;P0_6=1;P0_7=1;P2=a(j+3)%13;for(i=0;i0时表示电子钟秒单元数值刷新滞后,即 走时误差为“慢”;反之,S0表示秒单元数值的刷新超前,即走时误差为“快”。本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢 出误差,延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差, 本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟
18、时间过长或过短,都会造 成与基准时间产生偏差,造成走时误差。5.4软件调试问题及解决软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试 可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真 器即可;后者一般需要仿真系统的支持。本次课题,Keil软件来调试程序,通过各 个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。仿真部分采用protus 6 professional软件,此软件功能强大且操作较为简单, 可以很容易的实现各种系统的仿真。首先打开protus 6 professional软件,在元件库中找到要选用的所有元件,然 后进行原理图
19、的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运 行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足 要求。总结在我王盟老师耐心的指导下,我顺利完成了这次单片机课程设计课题中的电子时 钟设计,通过这次的设计使我认识到本人对单片机方面的知识知道的太少了,对于书 本上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够充分 理解每个语句的具体含义,导致编程的程序过于复杂,使得需要的存储空间增大。损 耗了过多的内存资源。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转 化,怎样将我所学到的知识运用到我以后的工作中去。在
20、大学的课堂的学习只是在给 我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设 计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以 后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中 增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。最后,感谢王盟老师对我的细心的指导,正是由于王老师的细心的辅导和他提供 给我们的参考资料,使得我的课程设计能够顺利的完成,同时在课程设计过程中,我 们巩固和学习了我们的单片机知识。相信这对我以后的课程设计和毕业设计将会有很 大的帮助!参考文献1 谢自美.电子线路设计实验测试M.武汉:华中理工大学出版社,1992.2 何立民.单片机应用系统设计M.北京:北京航空航天大学出版社,1993.3 楼然笛.单片机开发M.北京:人民邮电出版社,1994.4 付家才.单片机控制工程实践技术M.北京:化学工业出版社2004.3.5 李光才.单片机课程设计实例指导M.北京:北京航空航天大学出版社 2004.6 朱定华.单片机原理及接口技术实验M.北京:北方交通大学出版社 2002.11.7刘湘涛.江世明.单片机原理与应用M.北京:电子工业出版社,2006