基于单片机的多功能数字钟60秒LED旋转电子钟
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1节引言
1.1 电子钟概述
目前市场上提供的无论是机械钟还是石英钟在晚上无照明的情况下都是不可见的。要知道当前的时间,必须先开灯,故较为不便。现在市场上也出现了一些电子钟,它以六只LED数码管来显示时分秒,违背了人们指针式的传统习惯与理念,而且这类电子钟一般是采用大型显示器件,适用于银行、车站等公共场所,且外观设计欠美观,很少进入百姓家庭。此外,无论是机械钟、石英钟还是电子钟,都存在着共同的问题:时间误差。针对以上存在的问题,我们设计了一款采用LED显示器件显示的电子时钟,解决了时钟存在的误差问题,并能在夜间不必其它照明就能看到时间,且以60只发光管实现秒显示,接近于传统的秒针来显示秒的形式,用户容易接受,而且美观大方。另加七只装饰用的LED灯,使整个时钟显的相当美观新颖,故还可作为室内装饰用。
1.2 设计任务
本次设计通过对一个实现定时、双时钟显示、闹钟、温度等功能的时间系统的设计,其中结合了数据转换显示、数码管显示、动态扫描、单片机定时中断等技术。系统由AT89C2051、LED数码管、按键、三极管、两片CD4017BE、CD4069BE、DS18B20、电阻等组成。能实现时钟时、分、秒的显示。也具有温度显示、时间设置、闹铃开和关设置、制式切换。文章后附有电路图、程序清单。
1.3 系统主要功能
电子钟的外观如图1所示。周边60只发光管顺时旋转来显示秒,中间四只LED 数码管用于显示时间,中下方的七只LED灯顺时旋转,供装饰用。其主要功能有:
①整点报时;
②四只LED数码管显示当前时分;
③每隔一秒钟周边的60只LED发光管旋转一格;
④当发生停电事件时,由后备电池供电,系统进入低功耗状态,所
有显示部件停止显示,这样即延长了电池的寿命,同时又保证CPU继续计数,不至于因停电而时钟停止运行。
⑤当恢复供电后,系统自动恢复工作状态,不影响计时。
图一
第2节电子钟硬件设计
2.1系统的硬件构成及功能
电子钟的原理框图如图2所示。它由以下几个部件组成:单片机89C2051、电源、时分显示部件、60秒旋转译码驱动电路。
时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。时分显示模块、60秒旋转译码驱动电路以及显示驱动都通过89C2051的I/O口控制。
电源:电源部分有二部分组成。一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作;另一部分是由3V的电池供电,以保证停电时正常计时。正常情况下电池是不提供电能的,以保证电池的寿命。具体电路参见“新颖的60秒旋转电子钟参考电路原理图”。
2.2AT89C2051单片机及其引脚说明
AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器
结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
AT89C2051是一个有20个引脚的芯片,引脚配置如图3所示。与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。AT89C2051芯片的20个引脚功能为:
VCC 电源电压;
GND 接地;
RST 复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”;XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入;
XTAL2 来自反向振荡放大器的输出。
P1口 8位双向I/O口。引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。
P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA的灌电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。
P3口引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。P3口的输出缓冲器能接收20mA 的灌电流;P3口写入“1”后,内部上拉,可用作输入。P3口也可用作特殊功能口,其功能见表1。P3口同时也可为闪速存储器编程和编程校验接收控制信号。
2.360秒旋转译码驱动原理
按常规传统设计,需60进制译码驱动电路才能实现60秒旋转译码驱动,若用六片十进制计数译码器构成六十进制计数译码电路,则电路连线多(需要120根连
线),硬件电路庞大,开销大。为此,我们巧妙地采用了两片CD4017进行六十进制计数译码,实现60秒旋转译码驱动。既减少了电路的复杂程度又可降低了成本。图4
图3.4 AT89C2051引脚配
置
图4 CD4017引脚图
图5 CD4017时序图
为CD4017功能引脚图,图5为其时序图。CD4017集成电路是十进制计数/时序译码器,共有10个译码输出Q0~Q9;每个译码输出通常处于低电平,且在时钟脉冲由低到高的上升沿输出高电平;每个高电平输出维持1个时钟周期;每输入10个时钟脉冲,输出一个进位脉冲,因此进位输出信号可作为下一级计数器的时钟信号。在清零输入端(R )加高电平或正脉冲时,只有输出端Q0为高电平,其余各输出端均为低电平“0”。
为实现对发光二极管的驱动,将每一个译码输出端口接一只发光二极管,并将二
极管串联限流电阻后接地。当译码端口Q0~Q9中任一端口为高电平,则对应的发光二极管点亮,如图6所示。
仔细考查CD4017的功能,可发现其10个输出的高电平是相互排斥的,即任一时刻只有一只发光二极管点亮,因此可将图6电路进一步简化为如图7所示,从而简化电路设计。
在本电子钟设计中,每秒点亮一个发光二极管,循环点亮一周共需60个发光二极管,若用上述的6片CD4017实现驱动,显然电路复杂。为此我们选用两片CD4017和一片6反相器,采用“纵横双译码”技术,巧妙地实现60秒旋转译码驱动,其中一片接成10进制,一片接成6进制,实现6×10=60的功能,具体连接方法如图8图6 CD4017控制LED 原理图 图7 优化后控制LED 原理图