简易电子钟的设计与仿真一、设计要求和电路原理1.1 设计要求1)可以准确地显示北京时间。
2)时间显示选择24小时模式。
3)选用AT89C52单片机,将编写的程序下载到该单片机中,并能使数码管显示。
4)采用Keil C51编译,Proteus软件进行仿真。
1.2 设计原理与思路利用单片机的定时与中断系统功能实现电子钟的计数和调时。
采用AT89C52定时中断方式实现24小时制时钟精确的计时。
通过外部的12M(11.0529M)Hz 晶振产生稳定的谐振,在AT89C52的内部定时器电路实现定时,当定时器溢出时产生中断,累计定时器的定时时间达一秒时,数码管的秒显示加1,判断数码管的秒显示达60时,秒显示自动清零,分显示加1,判断分显示达60时,分显示自动清零,时显示加1,判断时显示达24时,时显示自动清零。
从而实现00:00:00—23:59:59 之间的任意时刻显示。
为了使时钟能够灵活的对时间进行调整、校对,通过增加外部的按键实现简单的复位、时调整、分调整的功能。
形成一个具有复位和校时功能的简易电子时钟。
二、电子时钟设计方案2.1电子钟设计的基本方法2.1.1电子钟实现计时的方法利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计时。
(1) 计数初值计算:把定时器T0设为工作方式2,产生0.25ms定时中断,计数溢出4000次即得时钟计时最小单位秒,而4000次计数可用软件方法实现。
假设使用T/C0,方式2,0.25ms定时,fosc=12MHz。
则初值a满足(256-a)×1/12MHz×12μs =250μsa=6 (6H)TH0=#6H; TL0=#6H(2) 采用中断方式进行溢出次数累计,计满4000次为秒计时(1秒);(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。
2.1.2 电子钟的时间显示电子钟的时钟时间在8位数码管上进行显示,时、分、秒的显示值可以在单片机的内部RAM设置三个缓冲单元,30H、31H、32H分别存储时、分、秒的值。
显示如下表:表2.1 电子钟的时、分、秒显示2.1.3 电子钟的时间调整电子钟设置3个按键通过程序控制来完成电子钟的时间调整。
A键复位;按下A键,时钟显示初始值12 00 00B键调整分;快速按下A键,分显示加1,当分显示为59,加1变成00 C键调整时;快速按下B键,时显示加1,当时显示为23,加1变成002.2 芯片以及元件2.2.1 AT89C52简介AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的,是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Fl ash只读程序存储器和256 bytes的随机存取数据存储器(RAM),有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。
主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。
RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。
P0~P3 为可编程通用I/O 脚,其功能用途由软件定义。
下面对相关的引脚作介绍:➢VCC:+5V电源。
➢VSS:接地。
➢P0口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
➢P1 口:P1口是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
➢P2 口:P2口是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
Flash 编程或校验时,P2亦接收高位地址和一些控制信号。
➢P3 口:P3口是一组带有内部上拉电阻的8 位双向I/O 口。
P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。
P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能。
P3 口还接收一些用于Fl ash 闪速存储器编程和程序校验的控制信号。
➢RST:复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
➢XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
➢XTAL2:振荡器反相放大器的输出端。
AT89C52芯片的引脚图和芯片图如下:图2.1 AT89C52引脚图和芯片图2.2.2 八位动态显示数码管1) 数码管动态显示接口图图2.2 数码管的动态显示接口图图2.3 数码管实物图2)数码管的动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
2.3 电子钟模块化电路2.3.1电子钟的硬件设备模块电子钟的总体硬件模块电路有:晶振、手动复位、数码管显、和时间调整和单片机接口电路,如图2.4所示。
下面分别介绍个模块的设计。
图2.4 电子钟硬件模块2.3.2 时钟电路模块图2.5所示为时钟电路原理图,在AT89C52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。
时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
图2.5 时钟电路2.3.3 复位电路模块单片机复位的条件是:必须使RST/VPD 或RST引(9)加上持续两个机器周期(即24个振荡周期)的高电平。
例如,若时钟频率为12 MHz,每机器周期为1μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。
单片机常见的复位如图所示,这是一个微分型电路。
电路为上电复位电路,它是利用电容充电来实现的。
在接电瞬间,RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。
只要保证RST为高电平的时间大于两个机器周期,便能正常复位(由电容的通电时间计算得到,复位电阻的阻值在10—30pF)。
该电路除具有上电复位功能外,若要复位,只需按图中的RST键,此时电源VCC经电阻R1、R2分压,在RST端产生一个复位高电平。
图2.6 复位电路2.3.4 数码管显示电路模块系统采用动态显示方式,单片机AT89C52的P0口控制LED数码管的段选线,P2口控制数码管的位选线。
动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。
下图为共阴极8位数码管动态显示。
图2.7 数码管显示电路2.3.5 按键电路模块下图为按键模块电路原理图,A为复位键,B为时钟调控键,C为分钟调控键。
A、B、和C三个按键一路有上拉电阻连接高电平,另一路接入单片机的控制引脚P1.0,、P1.1、P1.2。
按钮断开时,控制引脚P1.0,、P1.1、P1.2均为高电平,当按下某一个按键时,控制引脚变为低电平,由程序控制其相应的作用。
图2.8 按键电路2.3.6 电子时钟系统的设计原理图结合所有的模块设计,综合得出电子钟系统的总体设计原理图如图2.9所示。
图2.9 电子钟原理图2.3.7 相关引脚和元件a)AT89C52单片机用到的引脚:P0口:用于控制数码管的段选P2口:用于控制数码管的位选P1口:P1口的P1.0,、P1.1、P1.2脚分别控制时钟的复位、分调整、时调整。
XTAL1、XTAL2:接晶振的脉冲输入RST:复位电路b)其他的元件和相关作用电阻R1—R11:上拉电阻,保护电路,起限流的作用电阻R12:复位电路的充电电阻8个8段数码管:1、2显示时,4、5显示分,7、8显示秒,3、6不显示。
电容C1、C2:晶振的微电容,单片机的脉冲周期产生晶振:12M,与电容构成晶振电路材料清单见附录1三、电子时钟的Protues仿真3.1 Protues软件概述Protues软件是英国Labcenter electronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
Protues软件具有其它EDA工具软件(例:multisim)的功能。
这些功能是:(1)原理布图(2)PCB自动或人工布线(3)SPICE电路仿真(4)互动的电路仿真,用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。