新颖60秒旋转电子钟的设计_第1页
新颖60秒旋转电子钟的设计_第2页
新颖60秒旋转电子钟的设计_第3页
新颖60秒旋转电子钟的设计_第4页
新颖60秒旋转电子钟的设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、第1节引言21.1 电子钟概述21.2 设计任务21.3 系统主要功能3第2节电子钟硬件设计32.1 系统的硬件构成及功能32.2 AT89C2051单片机及其引脚说明42.3 60秒旋转译码驱动原理62.4 时分显示部件8第3节系统软件设计103.1 系统主程序设计103.2 定时计数中断程序设计及累计误差消除113.3 定时计数中断程序设计123.4 时间调整或定闹设置程序设计13第4节系统调试与测试结果分析144.1 使用的仪器仪表144.2 系统调试144.3 测试结果144.4 测试结果分析144.5 系统误差处理15结束语15参考文献16附录17新颖60秒旋转电子钟第1节引言目前市

2、场上提供的无论是机械钟还是石英钟在晚上无照明的情况下都是不可见的。现在市场上也出现了一些电子钟,它以六只数码管显示时分秒,与传统的以指针显示秒的方式不同,违背了人们传统的习惯与理念,而且这类电子钟一般是采用大型显示器件,且外观设计欠美观,很少进入百姓家庭。止匕外,无论是机械钟,电子钟还是石英钟,都存在共同的问题:时间误差。针对以上存在的问题,我们设计了一款采用LED显示器件显示的电子时钟,有效的克服了时钟存在的误差问题,并能在夜间不必其它照明就能看到时间,并且以60只发光二极管实现秒显示,并能发出嘀哒嘀哒声,用户容易接受,而且美观大方,更具实用性。1.1 电子钟概述新颖60秒旋转电子钟是本次的

3、设计内容,它采用LED显示器件显示电子时钟,有效的克服了时钟存在的误差问题;它采用的数码管显示时间能在夜间不需要其它照明就能看到时间,而且在7点以前和21点以后数码显示管的亮度会变暗,整点报时也会消失,不仅实现节能,而且不会影响人们的休息;并具有一大两次闹铃的功能,可通过手工更改二次闹铃的时间,停闹无须手工操作;它以60只发光二极管实现秒显示,接看近于传统的秒针来显示秒的形式,利用蜂鸣器模拟秒针行走的嘀哒声。1.2 设计任务1 .任务:设计一款基于AT89C2051单片机的电子钟。2 .设计基本要求:(1)用4只LED数码管输出显示时和分。(2)可通过按键设置闹钟功能,且停闹无须手工操作。(3

4、)可通过按键设置分校时。(4)月计时误差小于45秒。3.设计发挥部分:(1)用60只LED发光管旋转显示,模拟“秒针”的行走。(2)模拟“秒针”行走的“滴哒”声。(3)增加室温检测和显示功能(可与时间交替显示)。(4)增加停(掉)电保护功能。(5)提高计市时精度,使年计时误差小于30秒。(6)增加日自动校准功能,使得该电子钟“永无误差”。(7)增加红黄绿三色变色装饰。(8)可通过按键设置一天两闹(比如早晨、中午各一次)。1.3系统主要功能电子钟的外观是周边60只发光管顺时旋转来显示秒,中间四只LED数码管用于显示时间,中下方的七只LED灯顺时旋转,供装饰用。三个按键分别控制电子钟的复位,定闹和

5、调时。其主要功能有:整点报时;四只LED数码管显示当前时分;每隔一秒钟周边的60只LED发光管旋转一格,装饰用的LED每隔一秒旋转一次。当发生停电事件时,由后备电池供电,系统进入低功耗状态,所有显示部件停止显示,这样即延长了电池的寿命,同时又保证了CPU继续计数,不至于因停电而时钟停止运行。当恢复供电后,系统自动恢复工作状态,不影响计时。第2节系统的硬件设计2.1 系统的硬件构成及功能电脑钟的原理框图如图1所示。它由以下几个部件组成:单片机89C2051、电源、时分显示部件、60秒旋转译码驱动电路。时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。时分显示模块、60秒旋转

6、译码驱动电路以及显示驱动都通过89C2051的I/O口控制。电源部分:电源部分有二部分组成。一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作;另一部分是由3V的电池供电,以保证停电时正常走时。正常情况下电池是不提供电能的,以保证电池的寿命。具体电路参见“新颖的60秒旋转电子钟参考电路原理图”。图1电子钟系统原理框图2.2 AT89C2051单片机及其引脚说明AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与IntelMCS-51系列单片机的指令和输出管脚相兼容

7、。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。AT89C2051是一个有20个引脚的芯片,引脚配置如图2所示。与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。PDiP/SOJCRSTT(KW3电口(TO盟J匚3XTAL2E4XTALlgs(imm口(INTI加日研.4口任】典50CN0L101918171614D121!VCCJPl.

8、7JPU3P1J2PL4JP13JP14(AIN1)JPiXKAPiO.皿7Q517Vdd01215RQ0314ClkQ2413-CEQ6S120CQ7611Q9Q3710Q4VssS908CD4017图2AT89C2051引脚配置图3CD4017引脚图AT89C2051芯片的20个引脚功能为VCC电源电压。GND接地。RST复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡放大器的输出。P1口8位双向I/O口。引脚P1.2P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出

9、电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。P3口弓I脚P3.0P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。P3口也可用作特殊功能口,其功能见表1。P3口同时也可为闪速存储器编程和编程校验接收控制信号。2.3

10、60秒旋转译码驱动原理按常规传统设计,需60进制译码驱动电路才能实现60秒旋转译码驱动,若用六片十进制计数译码器构成六十进制计数译码电路,则电路连线多(需要120根连线),硬件电路庞大,开销大。为此,我们巧妙地采用了两片CD4017进行六十进制计数译码,实现60秒旋转译码驱动。既减少了电路的复杂程度又可降低了成本。图4为其时序图。CLK图4CD4017引脚、时序图表1P3口特殊功能P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(用行输出口)P3.2ItJTO(外部中断0)P3.3讣仃1(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)CD4017集成电

11、路是十进制计数/时序译码器,共有10个译码输出Q0Q9;每个译码输出通常处于低电平,且在时钟脉冲由低到高的上升沿输出高电平;每个高电平输出维持1个时钟周期;每输入10个时钟脉冲,输出一个进位脉冲,因此进位输出信号可作为下一级计数器的时钟信号。在清零输入端(R)加高电平或正脉冲时,CD4017计数器中各计数单元输出低电平“0”,仅在译码器中只有对应“0”状态的输出端Q0为高电平。为实现对发光二极管的驱动,将每一个译码输出端口接一只发光二极管,并将二极管串联限流电阻后接地。当译码端口Q0Q9中任一端口为高电平,则对应的发光二极管点亮,如图5(左)所示。仔细考查CD4017的功能,可发现其10个输出

12、的高电平是相互排斥的,即任一时刻只有一只发光二极管点亮,因此可将图5(左)电路进一步简化为如图5(右)所示,从而简化电路设计。图5CD4017控制发光二极管原理图在本电子钟设计中,每秒点亮一个发光二极管,循环点亮一周共需60个发光二极管,若用上述的6片CD4017实现驱动,显然电路复杂。为此我们选用两片CD4017和一片6反相器,采用“纵横双译码”技术,巧妙地实现60秒旋转译码驱动,其中一片接成10进制,一片接成6进制,实现6X10=60的功能,具体连接方法如图6所示。CD401714H*11IJ2生3444缶叫£'47qtlIJ9LD10I.D20LE&O图6发光二

13、极管“纵横双译码”循环点亮原理图将周期为1秒的输入脉冲作为其中一片CD4017的时钟脉冲,而此片的级联进位输出端(Qc)作为另一片的时钟输入,并将Q6与复位端相连。在两片译码输出端交叉点上接入发光二极管,构成6X10矩阵。根据CD4017时序特点,在初始状态,作为高位(纵)的CD4017译码器输出端口Q0处于高平,经反相器反相后为低电平。当作为低位(横)的CD4017译码器输出端口Q0Q9依次输出高电平后,则对应的二极管LD1LD10依次点亮;此后由于Qc端的进位,高位CD4017译码输出端口Q1输出高电平,反相后输出低电平,当低位的CD4017译码输出端口Q0Q9依次输出高电平后,二极管LD

14、11LD20依次点亮。如此往复,直至高位Q6向复位端输入高电平,CD4017复位,60秒循环点亮重新开始。2.4 时分显示部件由于系统要显示的内容较简单,显示量不多,所以选用数码管既要方便又要经济。LED有共阴极和共阳极两种。如图7所示。二极管的阴极连接在一起,通常此公共阴极接地,而且共阳极则将发光二极管的阳极连接在一起。一位显示由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔画(段)ag,另一个小数点dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔画即亮:不加电压则暗。为了保护各段LED不被损坏,需要外加限流电阻。gfcomaR*8Ha-a-czr-ta-czr-

15、HecomcdpdPH4_F符号和引UJ高电平盟动具阴极任电平夔动*其阳粗图7LED数码管结构原理图众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性。所谓软件译码,即由单片机软件完成从数字到显示码的转换。从LED数码管结构原理可知,为了显示字符,要为LED显示数码管白日提供显示段码。组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显示段码为1个字节各段码位与显示段的对应关系如表2表2各段码位的对应关系段码位D7D6D5D4D3D

16、2D1D0显示段dpgfedcba需要说明的是当用数据口连接LED数码管adp引脚时,不同的连接方法,各段码位与显示段有不同的对应关系。通常数据口的D0位与a段连接,D7位与dp段连接,如表2所示,表3为用于LED数码管显示的十六进制数和空白字符与P的显示段码。表3LED显小段码字型共阳极段共阴极段字型共阳极段共阴极段0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H注:(1)本表所列各字符的

17、显示段码均为小数点不亮的情况(2)“空白”字符即没有任何显示根据AT89C2051单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管。将AT89C2051的P1.0P1.7分别与共阳数码管的ag及dp相连,高电平的位对应LED数码管的段码的段暗,低电平的位对应的LED数码管的段码亮,这样,当P0口输出不同的段码,就可以控制数码管显示不同的字符。例如:当P0口输出的段码为11000000,数码管显示的字符为00数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方式。动态扫描显示方式需要解决多位LED数码管的“段控”和“位控”问题,本

18、电路的“段控”(即要显示的段码的控制)通过P0口实现;而每一位的公共端,即LED数码管的“位控”,则由P3口控制。这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示方式,即在某一瞬间,只让其中一位的字位线处于选通状态,其它各位的字位线处于位在显示,其他几位则暗。本系统中,字位线的选通与否是通过PNP三极管的导通与截止来控制,即三极管处于“开关”状态。系统的时分显示部件由4只7段共阳LED数码管构成,前两只用于时的显示,后两只用于分的显示。值得一提的是,在设计中需要实现时与分之间的两个闪烁点,为此,将第三只LED数码管倒置摆放,这样就形成了两个很自然的闪烁点。与此同

19、时,为了能使两点显示能够形象的表示时钟“秒”的变化,设计时,将两个点四P1.7单独控制,每隔一秒使P1.7发送一个正脉冲,从而实现了两个点的闪烁周期为一秒。第3节系统的软件设计本系统的软件系统主要分为主程序、定时计数中断程序、时间调整或定闹设置程序三大模块。在程序设计过程中,加强了部分软件抗干扰措施,下面对部分模块作介绍3.1 系统主程序设计主程序的功能是完成系统的初始化,在显示时间之前,对系统是否停电状态进行检测;若停电,将系统进入低功耗状态,用电池电池电压维持单片机计时工作,但此时不显示时间,用节省用电;若不停电,则将时分发送显示。程序流程如图8所示。3.2 定时计数中断程序设计及累计误差

20、消除中断程序(如图9所示)完成时间计数,时间调整,误差消除等功能。中断采用AT89C2051内部T0中断实现,定时时间为125ms,当时间到达125ms*8,即1分钟时分计数缓冲器MINBUFFER增加1,到达1小时,则时计数缓冲器HOURBUFFER增加1,并将分,时的个位,十位放入显示缓冲器。当分计数缓冲器和时计数缓冲器分别到达60min,24h时,则对它们清零,以便从新计数。在中断技术中,还通过软件实现了累计误差消除功能,使整个系统时间的精确度得到保证。定时器中断是否到1秒N秒指针步进一次整分旋转复位调整当前时分积累误差消除整定报时否,二一N整点报时中断返回图9定时中断程序3.3 定时计

21、数中断程序设计在这个T1计数中断程序中,计数值设置为100ms,中断5次就是0.5s,此程序主要是判断P3.2和P3.3按键按下了几次,P3.2是调整时间的,而P3.3是调剌闹钟时间的按键图10为定时中断程序3.4 时间调整或定闹设置程序设计时间调整设计,完成时间分的加1功能,根据P3.2变化“0”或“1”来判断是来进行时间的调整。采用定时器1,进行100ms计时,用于调整时间。图10时间调整子程序第4节系统调试与测试结果分析4.1 使用的仪器仪表单片机仿真器WAVE6000数字万用表DT9203双踪稳压稳流电源DH1718E-5数字示波器TDS1002烧写器GF2100焊接实验工具箱一套4.

22、2 系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:键盘显示模块,锁相环CD4046输出调试,地址累加发生器的调试,等,最后将各模块组合后进行整体测试。4.3 测试结果测试结果应该从硬件和软件两方面来看:第一方面,就是硬件测试,看看焊接好这些电子器件是否正确。通过万用表对电路板上焊接完成的各个器件正进测量,看看这些器件的电压值是否正常。硬件测试的结果为正常第二方面,就是软件测试,在硬件测试成功的基础上进行软件测试,主要从电子钟的功能实现及时间误差调整这两个角度来看,在测试中出现功能不太全

23、,每次测试要花好1至2分钟才能看出功能是否实现。每隔一秒钟周边的60只LED发光管旋转一格,四只LED数码管显示时和分,可以通过按键调整时间,也可以通过按键定两次闹铃时间,闹铃时间为1分钟。在7点以后到21点会整点报时,在7点以前和21点以后数码管进入节能状态并取消整点报时。4.4 测试结果分析由于在电路板中只有二个按钮供调时间与调闹钟使用,而每调一项都需调节小时与分钟,这样在理论上最好需要更多的按钮,实践中用两个按钮很难实现单键实既可调时又可调分,这个功能的实现的编写程序比较困难.而对于消除时间误差,要对运行的电子钟进行长时间的观察,即采取累积误差消除法才行。4.5 系统误差处理在电子钟初始

24、的时间上将电子钟接上电源,再在第二天的相同时间去进行比较,就可以算出一天之内的误差为多少。然后根据一天的时间积累误差进行计算,计算出时间误差值,并用相应的程序进行改进。利用T0计数初值125ms,每中断一次是2us的时间,所以采用8次中断,则1秒的产生的误差只有16us,一天就是24*60*60*0.000001=1.3824s,则月误差为1.3824s*34=42.8544s<=45s,故所得误差满足设计任务要求。结束语通过60秒旋转电子钟的设计,使我对学过的单片机知识有了更深入的了解。本次实验主要分为三个阶段焊接、编程和调试。焊接是整个设计的基础部分,如果焊接不好,将会导致整个硬件都出现接触不良,容易出现数码管显示为乱码现象,这样就难在软件调试的阶段调试成功,影响到制作结果的输出,并且这种错误在电路中也比较难排除。实验中有两处地方值得我们学习,是平时不太容易想到的:a.将一只LED数码管的倒置,使其与前一只形成秒的闪烁过程;b.先用两片CD4017和一片6反相器,采用“纵横双译码”技术关闭闹铃功能,无须手动关闭闹铃,时间需要过一分钟才能结束,这样时钟使用及其不便,希望能通过这一功能从而减小“噪声”。还有,也可以设设置一个分开调时调分功能,这样就不用为了调时而必需要将分增加到59,从而进位才能达到调时功能,及为不便。还可以将外围的60只发光二极管的亮灭模式加以改进,

温馨提示

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

最新文档

评论

0/150

提交评论