数码管电子钟.docx
摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透 了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同 时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。 对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的 麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。数码管 显示的时间简单明了而且读数快、时间准确显示到秒。而机械式的依赖于晶体震荡 器,可能会导致误差。数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。数字 钟的精度、稳定度远远超过老式机械钟。数字钟是其小巧,价格低廉,走时精度高, 使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。目录摘要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系统时钟误差分析165.4软件调试问题及解决16总结17参考文献18第一章绪论1.1数字电子钟的背景20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透 了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时 也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们 来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的 事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的 耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低 功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是 单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控 制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现 在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制 技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒 计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更 更长的使用寿命,因此得到了广泛的使用。1.2数字电子钟的意义数字钟是采用数字电路实现对,时,分,秒。数字显示的计时装置,广泛用于个人家庭,车站,码 头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体 振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了 极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间 程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的 自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非 常现实的意义。1.3电子时钟简介1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电 子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时 程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一, 满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活 补课缺少的工具。1.4电子时钟的基本特点现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、 石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试, 数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显 示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以 进行时和分的校对,片选的灵活性好。1.5电子时钟的原理该电子时钟由80C51,BUTTON,六段数码管等构成,采用晶振电路作为驱动 电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟, 六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不 同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按 下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按 键不放松,则可实现小时的调节,同样每按一次小时加一。1.6数字电子钟的应用数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码 头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。 由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性 能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。2数字钟的软件设计与控制系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件 (完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以 下几个方面的问题。(1)根据软件功能要求,将系统软件划分为若十个相对独立的部分,设计出合 理的总体结构,使软件开发清晰、简洁和流程合理;(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(4) 绘制程序流程图;(5) 合理分配系统资源;(6) 为程序加入注释,提高可读性,实施软件工程;(7) 注意软件的抗干扰设计,提高系统的可靠性。2.1系统软件设计流程图这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。图4-1主程序流程图按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下, 就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键 是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。开始一;Y显f时I 二_结束:定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就 检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到, 1小时如果到,时单元就加1,如果没到,就显示时间。顼开始二秒个位计算显示秒十位计算显示分个位计算显示分十位计算显示时个位计算显示时十位计算显示结束二图4-3定时器中断流程图时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。(中断返回图4-4时间显示流程图第三章控制系统的软件设计3.1程序设计本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整程序、 延时程序四大模块。在程序设计过程中,加强了部分软件抗干扰措施,下面对部分模 块作介绍。定时计数中断程序:#include <reg51.h>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用于计时,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;i<500;i+);i=minute%10;显示分个位P0_5=1;P0_4=0;P0_6=1;P0_7=1;P2=tablei;for(i=0;i<500;i+);i=hour%10;显示时个位P0_5=1;P0_4=1;P0_6=0;P0_7=1;P2=tablei;for(i=0;i<500;i+);i=hour/10;显示时十位P0_5=1;P0_4=1;P0_6=1;if(i!=0)P0_7=0;P2=tablei;for(i=0;i<500;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(second<2*hour)P1_4=P1_4;else P1_4=1; 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;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,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;i<500;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;i<500;i+);/显示时O位P0_4=1;P0_6=1;if(a(j+2)%13=0x00) P0_5=1;else P0_5=0;P0_7=1;P2=a(j+2)%13;for(i=0;i<500;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;i<500;i+);k+; 3.2数字钟的原理图用PROTUES软件,根据要求画出数字电子钟的原理图如下所示。图4-5数字钟的原理图在此有必要介绍一下数字电子钟的工作原理。工作原理:数字电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它 的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此, 一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组 成。8个数码管的段选接到单片机的P0 口,位选接到单片机的P2 口。数码管按照数 码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进 制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟 脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号, 该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的 累计。显示电路将“时”、“分”、“秒”通过七段显示器显示出来。校时电路时用来对 “时”、“分”、“秒”显示数字进行校对调整,按一下ksec,秒单元就加1,按一下 kmin,分就加1,按一下khour,时就加1。在这里,我们有必要介绍一下单片机的中断系统,以利于我们的学习。中断技术在单片系统中有着十分重要的作用,它不仅可以提高单片机CPU的效 率,也可以对突发事件处理。所谓中断就是当CPU正在执行程序A时,发生了另一个 急需处理的事件B,这是CPU暂停当前执行的程序A,立即转去执行处理事件B的程 序,处理完事件B后,再返回到程序A继续执行,这个过程被叫做中断。关于中断的 概念有下列几个名词:(1)程序A称为主程序,(2)处理事件B的程序称为中断服 务程序,(3)主程序中转向中断服务程序的地方称为断点,(4)引起中断的原因即 事件B称为中断源,(5)转去执行中断服务程序称为中断响应。关于中断的概念可 以打个如下的比喻。领导(CPU)在自己的房间办公(执行主程序),下属(外设) 有问题打电话来请示(中断源),领导停下正在进行的工作,通过电话给下属做指示 (执行中断服务程序),指示完后,领导挂断电话,继续做自己的工作(返回主程序 继续执行)。中断是一个过程,当中央处理器CPU在处理某件事情时,外部又发生了另一紧急 事件,请求CPU暂停当前的工作而去迅速处理该紧急事件。处理结束后,再回到原来 被中断的地方,继续原来的工作。引起中断的原因或发出中断请求的来源,称为中断 源。单片机一般允许有多个中断源,当几个中断源同时向CPU请求中断时,就存在CPU 优先响应哪一个中断请求源的问题(优先级问题),一般根据中断源的轻重缓急排队, 优先处理最紧急事件的中断请求,于是便规定每一个中断源都有一个中断优先级别, 并且CPU总是响应级别最高的中断请求。当CPU正在处理一个中断源请求的时候,又发生了另一个优先级比它高的中断源 请求,如果CPU能够暂时中止对原来中断处理程序的执行,转而去处理优先级更高的 中断源请求,待处理完以后,再继续执行原来的低级中断处理程序,这样的过程称为 中断嵌套。第四章系统仿真4.1 PROTUES软件介绍Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包 括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来 完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC 系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的 使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。4.2电子钟系统PROTUES仿真用PROTUES软件,根据数字电子钟的原理图,画出仿真图,得到的图如下所示。MFrT.图5-1数字钟的PROTES仿真IH-03- Id.ii.lc* .1C3 ',照,Um1 TWIKl 7111-pnu-L IpumaBJF-d-.iM iJ3ZrTWi3EiTK-JrtiT JPXMdBmrfwi iriirpj-.-tiJ-KFPJ-Jd-iJFj-jr.iiPij.*翊知F-I.aH.iiririFlJ-WJfnEPijpjj*nTFiJ.AWiPi£PJ MHTFi.TFJJfiU-I第五章调试与功能说明单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。一般 的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。5.1硬盘调试拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路和断 路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其数值,看是否 与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查各引脚的电 位是否正确。若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位 及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要 求。5.2系统性能测试与功能说明走时:默认为走时状态,按24小时制分别显示“时时-分分-秒秒”,有2个“-” 动态显示,时间会按实际时间以秒为最少单位变化。走时调整:按ksec对秒进行调整,按一下加一秒;按kmin对分进行调整,按一 下加一分;按khour对时进行调整,按一下加一小时,从而达到快速设定时间的目的。 5.3系统时钟误差分析时间是一个基本物理量,具有连续、自动流逝、不重复等特性。我国时间基准来 自国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持同步的。结合 时间概念和误差理论,可以定义电子钟的走时误差S=S1-S2,S1表示程序实际运行计 算所得的秒;S2表示客观时间的标准秒。S>0时表示电子钟秒单元数值刷新滞后,即 走时误差为“慢”;反之,S<0表示秒单元数值的刷新超前,即走时误差为“快”。本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢 出误差,延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差, 本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造 成与基准时间产生偏差,造成走时误差。5.4软件调试问题及解决软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试 可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真 器即可;后者一般需要仿真系统的支持。本次课题,Keil软件来调试程序,通过各 个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。仿真部分采用protus 6 professional软件,此软件功能强大且操作较为简单, 可以很容易的实现各种系统的仿真。首先打开protus 6 professional软件,在元件库中找到要选用的所有元件,然 后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运 行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足 要求。总结在我王盟老师耐心的指导下,我顺利完成了这次单片机课程设计课题中的电子时 钟设计,通过这次的设计使我认识到本人对单片机方面的知识知道的太少了,对于书 本上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够充分 理解每个语句的具体含义,导致编程的程序过于复杂,使得需要的存储空间增大。损 耗了过多的内存资源。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转 化,怎样将我所学到的知识运用到我以后的工作中去。在大学的课堂的学习只是在给 我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设 计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以 后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中 增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。最后,感谢王盟老师对我的细心的指导,正是由于王老师的细心的辅导和他提供 给我们的参考资料,使得我的课程设计能够顺利的完成,同时在课程设计过程中,我 们巩固和学习了我们的单片机知识。相信这对我以后的课程设计和毕业设计将会有很 大的帮助!参考文献1 谢自美.电子线路设计实验测试M.武汉:华中理工大学出版社,1992.2 何立民.单片机应用系统设计M.北京:北京航空航天大学出版社,1993.3 楼然笛.单片机开发M.北京:人民邮电出版社,1994.4 付家才.单片机控制工程实践技术M.北京:化学工业出版社2004.3.5 李光才.单片机课程设计实例指导M.北京:北京航空航天大学出版社 2004.6 朱定华.单片机原理及接口技术实验M.北京:北方交通大学出版社 2002.11.7刘湘涛.江世明.单片机原理与应用M.北京:电子工业出版社,2006