基于AT89C2051的电子闹钟1.1电子闹钟的功能与设计方案1.1.1电子闹钟的功能与设计要求1.1.1.1电子闹钟的实现形式电子闹钟既可以通过纯硬件实现,也可以通过软硬件结合实现,根据电子时钟中核心部件——秒信号的产生原理,通常有以下三种形式:1.采用NE555时基电路的实现形式采用NE555时基电路或其他振荡电路产生秒脉冲信号,作为秒加法电路的时钟信号或微处理器的外部中断输入信号,可构成电子钟。由555构成的秒脉冲发生器电路见图1-1。输出的脉冲信号VO的频率F=1.443/(RA+2RB)×C,可通过调节这3个参数,使输出VO的频率为精确的1Hz。TRIG2Q3R4CVolt5THR6DIS7VCC8GND1U1555RARBCC1VCCVo图1-1基于555的秒脉冲发生器2.采用石英钟专用芯片的实现形式采用石英钟专用计时芯片实现的电子钟,具有实现简单、计时精度高的特点。石英计时芯片(简称“机芯”)比较多,常见型号的有STP5512F、SM5546A和D60400等。现结合康巴丝石英钟常用的5512F型为例作一简单介绍。利用5512F的2秒输出信号作为秒加法电路的计数脉冲,可实现电子时钟。5512F的引脚图如图1-2所示:SC17V+1AK2MO3M14GND5BP6SC28图1-25512F的引脚图其中,引脚7、8为外接晶振及振荡电路,引脚1接电源正极,电源为1.5V,引脚3、4原为指针用步进电机线圈的输出驱动,这里可用3脚作为脉冲输出,频率决定于外接晶振的频率。3.采用基于微处理器的实现形式利用微处理器的智能性,可方便实现具有智能的电子钟。由于微处理器均具有时钟振荡系统,利用系统时钟借助微处理器的定时/计数器可实现电子钟功能。虽然,系统时钟的误差较大,电子钟的累积误差也可能较大,但可以通过误差修正软件加以修正。本章讨论的电子钟就是采用这种形式。1.1.1.2电子闹钟的功能与设计要求就电子闹钟而言,一般应具有以下基本功能要求:1.能随意设定走时起始时间。对电子钟而言,最基本的功能是具有对时功能,即能随意设定走时起始时间。2.能设定闹铃时间。电子钟一般都具有闹铃功能,即预设定一个时间,一旦走时到该时间,电子钟能以声或光的形式告警提示(俗称“闹铃”、“打铃”)。3.能指示秒节奏,即秒指示。4.12小时/24小时两种制式可选,以适应不同的需要。5.采用交直流供电电源。与石英钟不同的是,电子钟一般采用数码管等显示介质,因而必须以交流供电为主,以直流电源为后备辅助电源,并能自动切换。6.具有走时误差修正能力。1.1.2设计方案的确定从以下几个方面来确定电子闹钟的设计方案:1.微处理器采用ATMEL的AT89C2051微处理器,是基于以下几个因素:1)89C2051为51内核,仿真调试软硬件资源丰富;2)性价比高,货源充足;3)DIP20封装,体积小,便于产品小型化;4)为EEPROM程序存储介质,1000次以上擦/写周期,便于编程调试;5)具有IDLE和POWER-DOWN两种工作模式,便于进行低功耗设计;6)工作电压范围宽:2.7~6V,便于交直流供电。2.显示电路就时钟而言,通常可采用液晶显示或数码管显示。由于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性相对较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般多采用并行接口,对微处理器的接口要求较高,占用资源多。另外,89C2051本身无专门的液晶驱动接口,因此,本时钟采用数码管显示方式。数码管作为一种主动显示器件,具有亮度高、价格便宜等优点,而且市场上也有专门的时钟显示组合数码管。3.按键电路考虑到对时和设定闹铃时间这两种操作的使用频率不是很高,为了精简系统和节省成本,本时钟系统只设两个按键:1)SET键,对应系统的不同工作状态,具有3个功能:在复位后的待机状态下,用于启动设定时间参数(对时或定闹);在设定时间参数状态而且不是设定最低位(即分个位)的状态下,用于结束当前位的设定,当前设定位下移;在设定最低位(分个位)的状态下,用于结束本次时间设定。2)+1键,用于对当前设定位(编辑位)进行加1操作,根据12/24小时工作模式和正在编辑的当前位的含义(时十位、时个位、分十位、分个位)自动进行数据的上限和下限判断。例如,对12小时制,小时的十位只能是0、1,如果当前值为0,则按+1键后为1,再按+1键则又回复到0。1.2电子闹钟的硬件系统设计电子闹钟至少应包括秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分。1.2.1电子闹钟的硬件系统框架电子闹钟的系统框架如图1-3示。在系统中,除了按键电路以外,还设计了“是否设定闹铃”、“12/24小时制选择”等按钮电路。图1-3时钟系统电路原理框图1.2.2电子闹钟的主机电路设计电子闹钟的主电路指的是图1-3中虚线框内部分,主要涉及到微处理器电路和按键按钮电路。主机的设计具体地说有:1)系统时钟电路设计;2)系统复位电路设计;3)按键与按钮电路设计;4)闹铃声光指示电路设计。以下分别讨论:CPU按键与按钮电路复位等辅助电路4位数码管显示电路闹铃声光指示电路电源系统1.系统时钟电路设计系统时钟电路的设计如图1-4。对于时间要求不是很高的系统,只要按图进行设计就能使系统可靠起振并稳定运行。但由于图中的C1、C2电容起着系统时钟频率微调和稳定的作用,因此,在本闹钟系统的实际应用中一定要注意正确选择参数(30±10PF),并保证对称性(尽可能匹配),选用正牌厂家生产的瓷片或云母电容,如果可能的话,温度系数要尽可能低。实验表明,这2个电容元件对闹钟的±走时误差有较大关系。C127pFC227PFXTAL1XTAL2图1-4系统时钟电路2.系统复位电路设计智能系统一般应有手动或上电复位电路。复位电路的实现通常有两种方式:1)RC复位电路;2)专用µP监控电路。前者实现简单,成本低,但复位可靠性相对较低;后者成本较高,但复位可靠性高,尤其是高可靠重复复位。对于复位要求高、并对电源电压进行监视的场合,大多采用这种方式。专用µP监控电路专用µP监控电路又称电源监视电路,具有上电时可靠产生复位信号和电源电压跌落到“门槛值”时可靠产生复位信号等功能。按有效电平分,有高电平输出、低电平输出两种;按功能分,有简单的电源监视复位电路、带“看门狗”定时器(WATCHDOG,又简称“WDT”)的监控电路、和WDT+EEPROM的监控电路等多种类型。比较常见的生产厂家有MAXIM、PHILIPS、IMP以及DALLS等,51系列微处理器中常用的型号有MAX813L、MAX809、X25043/5等。RC复位电路本系统采用的是这种复位方式。RC复位电路的实质是一阶充放电电路,现结合图1-5说明这种复位电路的特点。系统上电时该电路提供有效的复位信号RST(高电平)直至系统电源稳定后撤销复位信号(低电平)。理论上说,51系列单片机复位引脚只要外加2个机器周期的有效信号即可复位,即只要保证t=RC2M(机器周期)便可,但实际设计中,通常取C1为10µF以上,R1通常取10K左右。实践发现R1如果取值太小,例如1K,则会导致RST信号驱动能力变差而无法使系统可靠复位。另外,从图1-6的复位信号波形图可以明显看出,图1-5中的虚线所接的续流二极管D1对于改善复位性能,起到了重要作用,它的作用是在电源电压瞬间下降时使电容迅速放电,因此一定宽度的电源毛刺(如波形中A点)也可令系统可靠复位。图1-6为未加二极管和加二极管的复位信号特性对比。C122uFR110KD14148VCCRST图1-5RC复位电路图1-6加二极管前后的复位信号特性对比3.按键与按钮电路设计按键与按钮电路的设计参见系统电原理图中的S1、S2和S3对应部分。按键与按钮电路设计中关键要考虑的就是按键去抖动问题(简称“去抖”),一般有硬件去抖和软件去抖两种方式。过去硬件去抖电路通常采用分立元件或触发器实现,目前市场上已有硬件去抖专用接口芯片,例如:MAXIM公司MAX6816~6818,均为单电源供电,电压为+2.7~5.5V,分别为单输入、双输入和八输入,输出端具有欠压锁定功能。这里考虑到系统的硬件简化和成本没有采用硬件去抖,而采用软件去抖。4.闹铃指示电路设计闹铃指示可以有声或光两种形式。本系统采用声音指示。关键元件是蜂鸣器。蜂鸣器有无源和有源两种,前者需要输入声音频率信号才能正常发声,后者则只需外加适当直流电源电压即可,元件内部已封装了音频振荡电路,在得电状态下即起振发声。市场上的有源蜂鸣器分为3V、5V、6V等系列,以适应不同的应用需要。其电路设计参见系统电原理图。其中PNP小功率三极管Q2采用9012,其最大集电极电流为800mA,完全满足蜂鸣器驱动的需要。适当调节基极电阻可改变蜂鸣器的发声功率(即响度)。1.2.3电子闹钟的显示电路设计显示采用共阳数码管,其目的是为了简化限流电路的设计和实现亮度可调的要求。4位数码管显示电路见图1-7。从图中可知,该显示电路采用了与一般的段电流电阻限流方式不同的实现方式,由此减少了4×8=32个限流电阻,简化了硬件系统。每一笔画段二极管正常发光时的电流一般为10mA左右(当然,电流大小取决于选用的数码管是普亮、高亮还是超高亮类型的不同),其两端压降约为2.0V,也就是说,只要数码管的公共端(COM)加+2.0V以上电压,即可满足每笔画段发光二极管的发光要求,而且适当调节此电压值即可改变发光二极管的电流,从而达到调节亮度的目的。此电压采用三端可调稳压电路W1(LM317)来实现。其输入为+5V,按照图中参数,其输出电压由公式1-1决定:654125.1RRR(1-1)G1F2COM3E4D5DP6C7COM8B9A10M0R72KR6100R5200R4220Q19013+5+5Vin3ADJ1+Vout2W1LM317TA1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U274LS164A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U3A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U4A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U52Q02Q12Q22Q32Q42Q52Q6P31P302Q02Q12Q22Q32Q42Q52Q6P0P0P1P2P32图1-74位共阳数码管显示电路式1-1中,R5为200Ω,R6可调,R4为220Ω,因此输出电压为2.17~2.63V。但由于输入输出压差至少为2.5V,因此极限电压为2.5V。为了节约CPU的口线,显示采用了串行通信口的串行显示接口方式,利用串口的0工作方式在发送TXD端口(P31)的时钟信号的作用下通过接收RXD端口(P30)将显示段码串行数据送入8位串入并出移位寄存器74LS164,控制相应的数码管。图1-7只画出了一个数码管的连接。端口P32的作用是通过LM317控制数码管显示的开启与关闭,当P32为低电平时Q1关断,317的输出电压低于1.5V,不足以发光,避免了在显示数据刷新时显示的抖动现象。1.2.4电源设计由于89C2051通常有-12和-24两种型号,对应的时钟频率分别为12M和24MHz,前者的工作电压为2~6V,后者的工作电压为4~6V,这点在设计选用时应当予以注意。考虑到交直流两用的要求和三端稳压电路选用的方便(通常的系列为5V,6V,…),选择工作电压为5V。电源系统设计如图1-8示。1000uF103Vin1GND2+5V3LM7805CT100uF10412+5D40016V~220~9图1-8闹钟的电源系统原理图应当说明的是,尽管有很多型号的7805三端稳压集成芯片,其标称最大输出电流均为1.5A,但在实际应用中,该最大输出电流值往往取决于两个方面:1)足够的散热面积;2)不同的生产厂家。按照很多开发者的经验,ST公司的7805三端稳压芯片能接近标称值。在设计中,