基于单片机的电子时钟设计_第1页
基于单片机的电子时钟设计_第2页
基于单片机的电子时钟设计_第3页
基于单片机的电子时钟设计_第4页
基于单片机的电子时钟设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的电子时钟设计PAGE33PAGE32基于单片机的电子时钟设计目录TOC\o"1-3"\h\u18909摘要 38360ABSTRACT 424198第一章绪论 560431.1数字电子钟的背景 5102331.2数字电子钟的意义 6186821.3数字电子钟的应用 684071.4本文设计思路 65391第二章数字钟的硬件设计 7326822.1最小系统设计 7312322.2LED显示电路 10278362.3按键电路设计 1232449第三章数字钟的软件设计 1370973.1系统软件设计流程图 13221913.2数字钟原理 183938第四章系统仿真 1928084.1PROTUES软件介绍 19163474.2电子钟系统PROTUES仿真 198243第五章调试与功能说明 20246625.1硬盘调试 2086685.2系统性能测试与功能说明 20100265.3系统时钟误差分析 2027045.4软件调试问题及解决 2121403结束语 2230520致谢 2318134附录 2517545附录1原理图 2529178附录2仿真图 2629055附录3实物图 2710520附录4主要源程序 28摘要本世纪以来电子技术发展速度非常迅猛,在此背景下很多领域都是使用电子技术的相关产品,这也在很大程度上推动了整个社会的信息化发展,更新速度也是越来越快。自古以来,人类都在想尽各种方法准确记录时间,因此时间这一概念对于人类而言,一直都是非常重要的。尤其对于那些有着极强时间观念的人而言,精确的时间对于他们至关重要,因此数字钟的重要性就开始凸显出来,对于数字钟而言,能够通过数码管来对时间进行显示,显示方式便捷,时间的读取速度更快。但是数字钟也存在缺陷,那就是因为存在对晶体振荡器的机械依赖,所以会有误差存在。相对数字钟而言,是通过数字电路显示时间,属于是计时装置。传统的机械钟和它对比的话,数字电子钟具有更好的稳定性以及精度。对于本文所设计的数字电子钟而言,选择通过发光二极数码管来对时间进行显示。同时通过数码管所具有的动态显示功能,选择的显示方式是24小时计时方式。并且利用一个晶体振荡器来实现振荡脉冲的形成,使用定时器来实现计数操作。对于本文所设计的数字电子钟而言,电路具备对时间进行显示的功能,同时还能够对时间进行调整。此设计制作好的电子时钟体积小、成本低、准确度高,能够得到广泛的运用。关键字:单片机数码管数字钟ABSTRACTSincethebeginningofthiscentury,thedevelopmentofelectronictechnologyhasbeenveryrapid.Inthiscontext,manyfieldsarerelatedproductsthatuseelectronictechnology.Thishasalsogreatlypromotedthedevelopmentofinformationtechnologyintheentiresociety.Theperformanceofelectronicproductsisgettingbetterandbetter,andtheupdatespeedisgettingfasterandfaster.Sinceancienttimes,humanbeingshavetriedvariousmethodstoaccuratelyrecordtime,sotheconceptoftimehasalwaysbeenveryimportanttohumanbeings.Especiallyforthosewhohaveastrongconceptoftime,precisetimeisveryimportanttothem,sotheimportanceofdigitalclocksbeginstobehighlighted.Fordigitalclocks,timecanbedisplayedanddisplayedthroughdigitaltubes.Themethodisconvenientandthetimereadingspeedisfaster.However,thedigitalclockalsohasdefects,thatis,becausethereisamechanicaldependenceonthecrystaloscillator,therewillbeerrors.Fordigitalclocks,itisatimingdevicethatdisplaystimethroughdigitalcircuits.Comparedwithtraditionalmechanicalclocks,digitalelectronicclockshavebetterstabilityandaccuracy.Forthedigitalelectronicclockdesignedinthisarticle,choosetodisplaythetimethroughthelight-emittingdiodedigitaltube.Atthesametime,throughthedynamicdisplayfunctionofthedigitaltube,theselecteddisplaymodeisthe24-hourtimekeepingmode.Andacrystaloscillatorisusedtorealizetheformationofoscillationpulses,andatimerisusedtorealizethecountingoperation.Forthedigitalelectronicclockdesignedinthisarticle,thecircuithasthefunctionofdisplayingtime,andatthesametimeitcanadjustthetime.Thefinishedclockissmallinsize,lowincostandhighinaccuracy,andcanbewidelyused.Keywords:Microcontroller,Diode,DigitalClock第一章绪论1.1数字电子钟的背景当前电子产品已经在我们的日常生活当中被广泛运用,而且随着迅速发展的电子技术,电子产品的性能也越来越强大。在上个世纪首款单片机产品就已经被研发出来,随着时间慢慢的推移,单片机的性能逐步提高,同时品种也是越来越多。在单片机诞生之前,大部分控制系统不但体积具体,并且功能较少,而通过单片机所实现的控制系统,功能丰富,同时体积小巧。对于数字钟而言,属于是一种比较常见的单片机模块,在实现原理上,它就是一个通过电子技术来完成时间显示功能的一种设备。相比于传统的机械时钟,不论是在显示直观性上,还是在精度上,数字钟都更具优势,由于不再使用复杂的机械装置,因此具有了更长的使用年限,目前已经得到了大量的使用。1.2数字电子钟的意义对于数字时钟而言,就是一种通过电子技术来完成时间显示功能的设备,目前已经在很多公共场合进行使用,比如码头、住宅、办公室以及火车站,逐渐成为了一种人们生活必不可少的日用品。对于数字时钟而言,因为使用了石英晶体振荡器,所以相比于机械时钟而言,精度更高一些。随着数字时钟的广泛应用,使得人们的生活更加的便利,并且还对钟表的计时功能进行了一定程度的扩展。所以能够看得出来,对数字时钟进行研究意义巨大。1.3数字电子钟的应用目前数字时钟已经得到了广泛的运用,逐渐开始将机械时钟淘汰掉,并且在越来越多的公共场合中,都能够看到数字时钟的身影。相比于传统的机械时钟而言,由于数字时钟的内部使用了先进的电子技术,因此稳定性更好,准确度更高,同时体积相对较小,更便于进行携带。同时数字时钟还具有计时功能,实现了钟表功能的扩展。1.4本文设计思路这个设计要求是在LED数码管显示器上显示小时、分钟和秒钟。电路包括:键盘、单片机和显示驱动电路。每个部分的描述:(1)键盘:用在数码管上校正和调整显示的时间。(2)单片机:通过各种电脉冲信号的输出来驱动和控制各部分的正常工作。(3)显示驱动电路:单片机发出的信号最终通过显示电路解码显示在数码管上。系统工作流程:时间的主要处理在CPU中完成。CPU会不时地读取数据。在读取相应寄存器的值后,CPU处理读取的值,并通过输入/输出端口在数码管上显示数据。第二章数字钟的硬件设计2.1最小系统设计图2-1最小系统引脚示意图对于单片机最小系统而言,是通过复位、电源以及晶体振荡器等结构所构成的,下面开始描述各个部分:1电源引脚总共有两个引脚,第一个是Vcc引脚,是电源端的引脚,第二个是GND引脚,是接地端的引脚。对于单片机而言,所对应的工作电压大小是5V。2外接晶体引脚图2-2外接晶体引脚所对应的两种连接方式示意图共有两个外接晶体引脚,第一个引脚是XTAL1,第二个是引脚XTAL2。在单片机的引脚当中,对于XTAL1引脚而言,其是振荡器反相放大器所对应的输入,而对于XTAL2引脚而言,其是所对应的输出。对于单片机而言,内部配置了一个反相放大器,这两个引脚就是这个反相放大器上面的输入以及输出。通过这个放大器再配置上一个晶体谐振器就能够构成一个单片机的自激振荡器。对于外部晶体谐振器而言,将两个电容与其进行连接,那么就能够构成一个并联谐振电路,对于这个电路而言,是在放大器所对应的反馈回路中进行连接的。即便并无非常严格的外部电容值大小要求,可是电容值会对振荡器的很多性能造成一定程度的影响。在本文的设计中,所选择的晶振值大小是12兆赫兹,同时所选择的是一种陶瓷电容,所对应的大小是22μf。针对电路板进行焊接的时候,不论是电容还是晶振都要安装在单片机的旁边,这样就能使得寄生电容降低,能够有效的确保振荡器可以实现平稳运行。3.复位RST9对于振荡器而言,在工作的过程中,如果出现了超过两个机器周期的高电平,那么单片机就会开始进行复位。对于这个引脚而言,如果能够一直确保处于高电平状态,那么单片机的复位就能够表现出周期性。完成复位之后,单片机的P0,P1,P2,P3端口上面的引脚1都会处于高电平状态,同时对于特殊功能寄存器以及程序计数器而言,都会进行清零。而在复位引脚的状态开始变成低电平的时候,那么对于单片机而言,就会开始对程序进行运行。对于单片机而言,复位功能是通过外部的复位电路来完成的。对于本文所设计的系统而言,所使用的是一种上电与按钮复位电路,在Rs是200ω,时钟频率大小是6MHz,Rk是1k,c是22μF的时候,对于复位操作而言,并不会对内部RAM造成任何的影响。如下图所示就是单片机复位电路的连接示意图:图2-3单片机复位电路图4.输入输出引脚(1)P0端口:这个端口能够实现双向信号的传输,能够针对八个LSTTL门电路进行驱动。对于单片机而言,在针对数据存储器或者是外部程序进行访问的时候,那么就会利用到这个端口,流程是这样的:在最开始P0端口会接收到一个地址信号,然后这个地址信号就会在地址锁存器当中实现锁存,接下来这个端口就可以实现数据的接收或者是发送了。(2)P1端口:这个端口也能够实现双向信号的传输,同时还能够针对四个LSTTL门电路进行驱动。对于单片机而言,在将这个端口当作输入的时候,那么需要先进行“1”的写入,这样这端口就可以实现数据的接收或者是发送了。(3)P2端口:这个端口也能够实现双向信号的传输,同时还能够针对四个LSTTL门电路进行驱动。通常情况下在使用的时候,都是用作地址总线所对应的高八位,同时和P0口能够进行组合,从而形成一个十六位的地址总线。(4)P3端口:这个端口也能够实现双向信号的传输,同时还能够针对四个LSTTL门电路进行驱动。这个端口能够实现两个功能,对于单片机而言,在使用这个端口的第一功能的时候,那么这个端口的作用和P1端口是一样的,在使用这个端口的第二功能的时候,那么所有位所对应的功能都是不同的。2.2LED显示电路通常情况下对于显示器而言,主要的作用就是对数字系统所对应的工作数据以及运行状态进行显示,目前在大部分基于单片机技术所实现的系统当中,使用的显示器主要有三种,第一种是发光二极管,第二种是液晶显示器,第三种是阴极射线管。应用率最高的是LED显示器,在下面这张图中给出了LED显示器的外部引脚图。图2-4LED显示器的引脚图对于发光二极管而言,其是通过特殊半导体材料所制作而成的,它们不但能够进行独立的使用,同时还能够进行组装进行使用。对于分段显示器而言,就是通过七个分段来构成的一个数字8字形,一个发光二极管就是一个分段。在直流电压施加到二极管上面的时候,那么光就会发出。这样通过对发光段的发光状态进行控制,就能够实现不同符号或者是字形的显示。目前对于发光二极管数码管而言,主要分为两种,第一种是正极,第二种是负极,在下面这张图中给出了数码管示意图。图2-5数码管原理图在本文的设计中,一共选择了六个数码管,通过动态显示模式来实现时间的显示。在下面这张图中给出了显示模块的连接示意图。这六个数码管所表示的分别是小时的十位,小时的个位,分钟的十位,分钟的个位,秒的十位,秒的个位,本设计用DP点把时分秒间隔分开。按照驱动模式的不同,对于显示控制模式而言,一共能够分为两种,第一种是显示的静态模式,第二种是显示的动态模式。在本文的设计中所选择的是第二种,在下面这张图中给出了显示模块的电路连接。图2-6

显示电路模块图2.3按键电路设计这个按键电路设计的功能:按下K1键时,小时在原有基础上+1;按下K2键时,分钟在原有基础上+1;按下K3键,秒清零;根据这三个按键的功能,就可以调整这个电子时钟的时间校正。图2-7按键电路图第三章数字钟的软件设计系统硬件功能的实现是通过软件设计来完成的。对于单片机系统而言,其软件设计工作主要分为两个部分,第一个部分就是执行软件的设计工作,第二个部分就是监控软件的设计工作。一般情况下在设计单片机系统软件部分时,应对下面这几点进行注意:(1)在设计系统软件部分时,先进行整体设计,然后再按照系统各个功能进行分部设计。(2)在对程序进行编写时,尽量选择结构化编程方式,这样就能够实现模块化程序,后续进行调试时更为便捷。(3)对合理的数学模型进行构建,利用仿真来对系统所具有的性能进行提升,同时对合适的参数进行选取。(4)需要进行程序流程图的绘制。(5)需要对系统的资源进行合理的分配。(6)在对程序进行编写的时候,可以进行注释的添加,这样程序的可读性更高。(7)在设计的过程中需要对软件的抗干扰进行考虑,从而使得系统的可靠性以及灵活性得到提升。3.1系统软件设计流程图对于本文所设计的电子钟而言,进行了若干子程序的设计,在下面这张图中给出了每一个子程序的流程图。系统在运行时,最开始启动的是系统主程序,接下来进行定时器的启动,完成启动之后开始按键检测。在完成检测工作之后,能够对时间进行显示。图3-1系统主程序流程示意图对于按键处理而言,首先针对是不是存在秒按键被按下进行检测,假如被按下了,那么就秒清零,否则就针对是不是存在分按键被按下进行检测,假如被按下了,那么就+1分;否则就针对是不是存在时按键被按下进行检测,假如被按下了,那么就+1小时;否则就显示出当前的时间。NNYNYNY1?秒清零?1?图3-2按键处理流程示意图对于这个子程序而言,在定时器中断的时候,首先需要对1秒是否到进行检测,假如到了1秒,那么秒单元就会进行加1;否则的话就需要对1分是否到进行检测,假如到了1分,那么分单元就会进行加1;否则的话就需要对1小时是否到进行检测,假如到了1小时,那么小时单元就会进行加1;否则的话就对当前时间进行显示。NNNNNYY?YY图3-3定时器中断子程序流程示意图对于本文所设计的数字时钟而言,在显示时间的时候,首先进行显示的是秒单位,接下来是秒十位,然后是分个位,再来是分十位,接下来是时个位,最后是时十位。图3-4时间显示子程序流程示意图3.2数字钟原理下面开始介绍一下本文数字钟的运行原理:本文所设计的是一种能够对时间进行显示,同时实现计时功能的数字钟系统。对于系统的整个电路而言,是由三部分所构成的,首先是能够实现时间显示的显示电路,然后是控制核心单片机电路,最后是实现计时功能的计时电路。对于显示电路而言,是通过六个数码管所构成的,和系统单片机进行连接。把标准秒信号送到“秒单元”当中,对于这个“秒单元”而言,所使用的是一种60进制计数器,完成60秒的累计之后就会进行“分脉冲”信号的发送,而该信号就会进到“分单元”当中,对于“分单元”而言,同样选择的是60进制计数器,完成60分钟的累计之后就会进行“时脉冲”信号的发送,该信号就会进到“时单元”当中。而对于这个“时单元”而言,所选择的是一种24进制计时器,能够累计24小时的时间。通过六个数码管就能够实现整体时间的显示。第四章系统仿真4.1PROTUES软件介绍目前大部分单片机系统都是通过Proteus软件来实现仿真研究的,对于这款软件而言,是通过两个主要模块所构成的,第一个是ARES模块,该模块的主要功能就是设计PCB,第二个是ISIS模块,该模块的主要功能是实现电路图的仿真。不论是单片机电路,还是外围电路都能够通过该软件进行仿真研究,因此本文选择通过该软件仿真数字时钟。4.2电子钟系统PROTUES仿真在本文的设计过程中,选择通过PROTUES软件针对系统原理图进行了绘制,如下图所示就是仿真示意图。图4-1本文数字钟所对应的仿真示意图调试与功能说明下面开始本文系统的调试工作。5.1硬盘调试准备一个电路板,最开始需要做的就是对电路板质量进行检查,保证电路板没有问题后开始进行焊接。整个焊接作业结束之后,那么需要进行空载通电,同时针对所有引脚的电位情况进行检查。假如没有问题,那么能够在断电的前提下插入芯片,同时再一次对所有引脚对应的电位情况进行检查,如果没有任何问题,那么硬盘调试工作就完成了。5.2系统性能测试与功能说明正常情况下数字时钟会以秒作为最小单位进行走时。可以通过下面的步骤调整数字钟的走时:将ksec3按下调整时钟的秒,完成一次按键那么就会秒归零;将kmi2按下调整时钟的分,完成一次按键那么就会加1分;将khour1按下调整时钟的时,完成一次按键那么就会加1小时;通过上述过程就可以实现时间的调整。5.3系统时钟误差分析对于本文所设计的数字钟而言,误差的来源主要有三个方面,首先是晶振频率所造成的误差,其次是定时器所造成的溢出误差,最后是延迟误差。对于晶体频率振荡很容易会造成误差的形成。通常情况下对于计时器而言,其溢出误差需要在1秒钟里面进行溢出,可是如果溢出在下一秒,那么就会造成行程误差的出现。假如出现了过长或者是过短的延迟时间,那么就会造成和参考时间的一个便宜,从而使得行驶误差出现。5.4软件调试问题及解决通常情况下在调试程序的时候,需要对子程序进行调试,然后在同一调试整个程序。可以通过两种方式来调试程序,第一种是离线调试法,第二种是在线调试法。对于离线调试法而言,无需硬件仿真器的使用,可是能够选择通过软件仿真器来进行调试。对于在线调试法而言,在调试的时候会利用到仿真系统。对于本文所设计的系统而言,通过Keil软件对程序进行调试,首先针对所有的模块子程序进行调试,没有问题之后在对整个程序进行一个调试。结束语通过这次毕业设计的机会,不但让我充实了理论知识,同时还提高了我的实践能力,达到了了理论联系实际的效果。在上学期间,学习的更多是一些理论,但是通过这次毕业设计让我知道,理论知识想要在实际中进行运用需要很长一段过程。如果只是掌握了书本上面的理论知识,那么仅仅是对这个专业有了一个初步的认识,只有经过实践,也就是动手对系统进行实物设计才能够将理论应用到实际当中,这样才能够真正的掌握这些理论。因此不但要重视理论的学习,还要重视实践的锻炼,这样才能够通过对实际问题的解决来提高自己的能力。致谢时光飞逝,写到这里就表示本文已经基本完成。这里我要感谢的就是我的指导教师,不论是最开始的选题阶段,还是中间的写作阶段,老师都在一直帮助我,在论文写作过程中,遇到了很多困难,但老师总在第一时间给我提供思路,让我将问题一一化解,没有老师,我也不可能这些顺利的完成毕业设计,再次我还要感谢我的班主任老师,感谢老师三年来对我学习的帮助指导和生活上无微不至的关怀,在此向两位老师表达由衷的感谢和崇高的敬意。参考文献[1]李军.51系列单片机高级实例开发指南[M].北京航空航天大学出版社2004[2]孙涵芳.MCS—51/96系列单片机原理及应用[M].北京航空航天大学出版社1996[3]王幸之.AT89系列单片机原理与接口技术[M].北京航空航天大学出版社2004[4]潭浩强.C程序设计[M].清华大学出版社2015[5]付晓光.单片机原理与实用技术[M].清华大学出版社2008[6]燕庆明.电路基础及应用[M].高等教育出版社2012[7]胡宴如.模拟电子技术[M].高等教育出版社2014附录附录1原理图附录2仿真图 附录3实物图 实物正面效果图实物反面引脚图附录4主要源程序#include<reg51.h>#defineucunsignedchar#defineuiunsignedintsbitLED=P3^3;//定义LEDsbitkey1=P3^4;//定义调小时sbitkey2=P3^5;//定义调分钟sbitkey3=P3^6;//定义秒清零sbitbeep=P3^7;//设蜂鸣器ucmin,hour,sec,led,num;bitbdatahourLED,halfLED,hourbeep,halfbeep;uccodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/*0,1,2,3,4,5,6,7,8,9,.*///共阴极编码//01011011voiddelay(uix)//延时函数{ uii,j; for(i=0;i<x;i++) for(j=0;j<121;j++);}voiddisplay()//扫描显示函数,高位到低位{ P0=(tab[hour%10])|0x80;//给第二位后加“点 P2=0xef;//11101111 delay(1); P2=0xff; P0=tab[min/10]; P2=0xf7;//11110111 delay(1); P2=0xff; P0=(tab[min%10])|0x80;//给第四位后加“点” P2=0xfb;//11111011 delay(1); P2=0xff; P0=tab[sec/10]; P2=0xfd;//11111101 delay(1);}voidkeyscan()//键盘扫描,开关接地{ if(key1==0) { delay(5); if(key1==0) { hour++; if(h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论