新颖60秒旋转电子钟
⑵ 可通过按键设置闹钟功能,且停闹无须手工操作。
《单片机原理及应用》课程设计实例----余水宝
发挥部分要求 ⑴ 用60只LED发光管旋转显示,模拟“秒针”的行走。 ⑵ 模拟“秒针”行走的“嘀哒”声。 ⑶ 增加室温检测和显示功能(可与时间交替显示)。 ⑷ 增加停(掉)电保护功能。
⑸ 提高计时精度,使年计时误差小于30秒。
⑹ 可通过按键设置一天两闹(比如早晨、中午各一次)。
《单片机原理及应用》课程设计实例----余水宝
选题背景
目前市场上提供的无论是机械钟还是石英钟在晚上无照 明的情况下都是不可见的。要知道当前的时间,必须先开灯, 故较为不便。现在市场上也出现了一些电子钟,它以六只 LED数码管来显示时分秒,违背了人们指针式的传统习惯与 理念,而且这类电子钟一般是采用大型显示器件,适用于银 行、车站等公共场所,且外观设计欠美观,很少进入百姓家 庭。此外,无论是机械钟、石英钟还是电子钟,都存在着共 同的问题:时间误差。针对以上存在的问题,我们设计了一 款采用LED显示器件显示的电子时钟,解决了时钟存在的误 差问题,并能在夜间不必其它照明就能看到时间,且以60只 发光管实现秒显示,接近于传统的秒针来显示秒的形式,用 户容易接受,而且美观大方。另加七只装饰用的LED灯,使 整个时钟显的相当美观新颖,故还可作为室内装饰用。
《单片机原理及应用》课程设计实例
应用案例1
新颖60秒旋转电子钟课程设计
数理与信息工程学院 2006年12月
《单片机原理及应用》课程设计实例----余水宝
任务书
设计一款基于AT89C2051单片机的电子钟。 设计基本要求 ⑴ ⑶ ⑷ ⑸ ⑹ 用4只LED数码管输出显示时和分。 可通过按键设置分校时。 月计时误差小于45秒。 写出详细的设计报告。 给出全部电路和源程序。
《单片机原理及应用》课程设计实例----余水宝 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 各段码位的对应关系
段码位 显示段
D7 dp
D6 g
D5 f
D4 e
D3 d
D2 c
D1 b
D0 a
《单片机原理及应用》课程设计实例----余水宝
表3 LED显示段码
字型 0
1 2 3 4 5 6 7 8
共阳段码 C0H
F9H A4H BOH 99H 92H 82H F8H 80H
共阴段码 3FH
《单片机原理及应用》课程设计实例----余水宝
图9
LED数码管结构原理图
《单片机原理及应用》课程设计实例----余水宝
众所周知,LED显示数码管通常由硬件7段译码集成电路, 完成从数字到显示码的译码驱动。本系统采用软件译码,以减小 体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码 有更大的灵活性。所谓软件译码,即由单片机软件完成从数字到 显示码的转换。从LED数码管结构原理可知,为了显示字符,要 为LED显示数码管提供显示段码,组成一个“8”字形字符的7段, 再加上1个小数点位,共计8段,因此提供给LED数码管的显示段 码为1个字节。各段码位与显示段的对应关系如表2。
为实现对发光二极管的驱动,将每一个译码输出端 口接一只发光二极管,并将二极管串联限流电阻后接地。 当译码端口Q0~Q9中任一端口为高电平,则对应的发光 二极管点亮,如图6所示。
《单片机原理及应用》课程设计实例----余水宝 仔细考查CD4017的功能,可发现其10个输出的高电平 是相互排斥的,即任一时刻只有一只发光二极管点亮,因此 可将图6电路进一步简化为如图7所示,从而简化电路设计。
《单片机原理及应用》课程设计实例----余水宝
图4 CD4017引脚图 图5 CD4017时序图
《单片机原理及应用》课程设计实例----余水宝
CD4017集成电路是十进制计数/时序译码器,共有10 个译码输出Q0~Q9;每个译码输出通常处于低电平,且在 时钟脉冲由低到高的上升沿输出高电平;每个高电平输出 维持1个时钟周期;每输入10个时钟脉冲,输出一个进位脉 冲,因此进位输出信号可作为下一级计数器的时钟信号。 在清零输入端(R)加高电平或正脉冲时,只有输出端Q0 为高电平,其余各输出端均为低电平“0”。
《单片机原理及应用》课程设计实例----余水宝
《单片机原理及应用》课程设计实例----余水宝 2 系统的硬件构成及功能 电子钟的原理框图如图2所示。它由以下几个部件组成: 单片机89C2051、电源、时分显示部件、60秒旋转译码驱动电 路。 时分显示采用动态扫描,以降低对单片机端口数的要求, 同时也降低系统的功耗。时分显示模块、60秒旋转译码驱动电 路以及显示驱动都通过89C2051的I/O口控制。 电源:电源部分有二部分组成。一部分是由220V的市电 通过变压、整流稳压来得到+5V电压,维持系统的正常工作; 另一部分是由3V的电池供电,以保证停电时正常计时。正常情 况下电池是不提供电能的,以保证电池的寿命。具体电路参见 “新颖的60秒旋转电子钟参考电路原理图”。
《单片机原理及应用》课程设计实例----余水宝 根据AT89C2051单片机灌电流能力强,拉电流能力 弱的特点,我们选用共阳数码管。将AT89C2051的P1.0~ P1.7分别与共阳数码管的a~g及dp相连,高电平的位对应 的LED数码管的段暗,低电平的位对应的LED数码管的段亮 ,这样,当P0口输出不同的段码,就可以控制数码管显示 不同的字符。例如:当P0口输出的段码为1100 0000,数码 管显示的字符为0。 数码管显示器有二种工作方式,即静态显示方式和 动态扫描显示方式。为节省端口及降低功耗,本系统采用动 态扫描显示方式。动态扫描显示方式需解决多位LED数码管 的“段控”和“位控”问题,本电路的“段控”(即要显示 的段码的控制)通过P0口实现;而每一位的公共端,即 LED数码管的“位控”,则由P3口控制。
《单片机原理及应用》课程设计实例----余水宝 VCC 电源电压; GND 接地; RST 复位输入。当 RST变为高电平并保持2 个机器周期时,所有I/O 引脚复位至“1”; XTAL1 反向振荡放大 器的输入及内部时钟工 作电路的输入; XTAL2 来自反向振荡 放大器的输出。
图3 AT89C2051引脚配置
06H 5BH 4FH 66H 6DH 7DH 07H 7FH
字型 9
A B C D E F 空白 P
共阳段码 90H
88H 83H C6H A1H 86H 84H FFH 8CH
共阴段码 6FH
77H 7CH 39H 5EH 79H 71H 00H 73H
本表所列各字符的显示段码均为小数点不亮的情况。
2.2
60秒旋转译码驱动原理
按常规传统设计,需60进制译码驱动电路才能实现
60秒旋转译码驱动,若用六片十进制计数译码器构成六
十进制计数译码电路,则电路连线多(需要120根连线
),硬件电路庞大,开销大。为此,我们巧妙地采用了 两片CD4017进行六十进制计数译码,实现60秒旋转译 码驱动。既减少了电路的复杂程度又可降低了成本。图 4为CD4017功能引脚图,图5为其时序图。
《单片机原理及应用》课程设计实例----余水宝 2.3 时分显示部件 由于系统要显示的内容较简单,显示量不多,所以 选用数码管既方便又经济。LED有共阴极和共阳极两种。 如图8所示。 二极管的阴极连接在一起,通常此公共阴极接地, 而共阳极则将发光二极管的阳极连接在一起,接入+5V的 电压。一位显示器由8个发光二极管组成,其中7个发光二 极管构成字型“8”的各个笔划(段)a~g,另一个小数 点为dp发光二极管。当在某段发光二极管施加一定的正向 电压时,该段笔划即亮;不加电压则暗。为了保护各段 LED不被损坏,需外加限流电阻。
《单片机原理及应用》课程设计实例----余水宝
显示驱动
AT89C2051
时间显示(时,分)
电源
60秒旋转译码驱动电路
图2 电子钟系统原理框图
《单片机原理及应用》课程设计实例----余水宝
2.1 AT89C2051单片机及其引脚说明 AT89C2051单片机是51系列单片机的一个成员,是 8051单片机的简化版。内部自带2K字节可编程FLASH存储 器的低电压、高性能COMS八位微处理器,与Intel MCS-51 系列单片机的指令和输出管脚相兼容。由于将多功能八位 CPU和闪速存储器结合在单个芯片中,因此,AT89C2051 构成的单片机系统是具有结构最简单、造价最低廉、效率最 高的微控制系统,省去了外部的RAM、ROM和接口器件, 减少了硬件开销,节省了成本,提高了系统的性价比。 AT89C2051是一个有20个引脚的芯片,引脚配置如图 3所示。与8051相比,AT89C2051减少了两个对外端口(即 P0、P2口),使它最大可能地减少了对外引脚下,因而芯 片尺寸有所减小。AT89C2051芯片的20个引脚功能为:
图6 CD4017控制LED原理图
图7 优化后控制LED原理图
《单片机原理及应用》课程设计实例----余水宝
在本电子钟设计中,每秒点亮一个发光二极管,循环 点亮一周共需60个发光二极管,若用上述的6片CD4017 实现驱动,显然电路复杂。为此我们选用两片CD4017 和一片6反相器,采用“纵横双译码”技术,巧妙地实 现60秒旋转译码驱动,其中一片接成10进制,一片接成 6进制,实现6×10=60的功能,具体连接方法如图8所 示。