您当前的位置:五五电子网电子知识单元电路时钟-定时电路用AT89C2051单片机设计的电子时钟 正文
用AT89C2051单片机设计的电子时钟

用AT89C2051单片机设计的电子时钟

点击数:7911 次   录入时间:03-04 11:38:04   整理:http://www.55dianzi.com   时钟-定时电路

  一、功能及工作原理
  
  本电子钟以AT89C2O51单片机作为核心,具有时、分、秒的调整、显示功能,以及24小时和12小时时制选择功能,时间制式由最后一位数码管的小数点来指示。利用定时器中断和软件编程实现电子钟秒计数功能。具体原理如下:单片机晶振为12MHz,定时器0工作在方式1,定时时间为125ms,则定时器0的计数初值X为65536-1O0OOOO/16=OBDCH(十六进制数),定时器0溢出中断16次即可实现1秒定时,寄存器B用于存放定时器0的中断次数,其初值为1OH,即定时器中断16次后产生1秒定时信号,实现了电子钟的秒信号。电子钟时、分、秒的计时分别利用十二/二十四、六十进制累加计数来实现。
  
  电子钟的显示电路由门电路和LED数码管组成,利用6只LED数码管显示,从左至右分别是时、分和秒的十位、个位。
  
  该电子钟的键盘由一个功能键、两个调整键组成。调整键用于调整电子钟的时、分、秒及其时制选择。
  
  弱光提示电路:通过调节电位嚣R5来控制起始报警的光强值,当光强度小于设定值时弱光提示报警。

  二、硬件电路硬
  
  件的关键是键盘和显示器的接口电路。本设计利用AT89C2O5l单片机的P1口和两个门电路作为键盘和显示接口电路。利用74LSl38作为数码管的位驱动;用74HCl64作为数码管的段驱动和键盘扫描信号发生电路。
  
  电路如右图所示,电路原理图见下图。时钟电路由片外石英晶体、微调电容和单片机的内部电路组成。选用12MHz晶振,一般微调电容C1、C2采用30pF的瓷片电容,由于电子钟对频率的精度要求比较高,因此C1、C2采用15pF/33pF的微调电容。单片机的复位电路采用按键和上电复位。
  
  显示器接口电路由AT89C2O5l单片机、位驱动电路和段驱动电路组成。
  
  采用动态显示方式。单片机P1口的高三位接74LSl38的输入端,74LSl38的输出作为显示器的位驱动,74HCl64的输出作为显示器的段驱动。P3.3输出的脉冲作为74HCl64的移位脉冲信号,P3.4接74HCl64的数据输入端。为了保护数码管,需要对数码管进行限流,限流可通过硬件电路来完成也可通过软件来完成,本设计中采用软件限流方式。
  
  电子钟有3个按键。1#键与P1.2相接,用作电子钟的功能调整键;2#键与P1.3相接,用作调整电子钟功能的上翻键;3#键与P1.4相接,用作调整电子钟功能的下翻键,1#、2#、3#键均与74HCl64的QO端子相连。
  
  弱光提示电路由电阻R3、光敏电阻R4、电位器R5、蜂鸣器和单片机的内部比较器组成。单片机内部比较器的反相输入小于同相输入,通过软件检测p3.6就可以知道光强情况,在光线较暗时,蜂鸣器会发出弱光提示报警,用户可以根据情况开灯或按任意键终止报警。
  
  在键盘和显示电路中,利用软件对74HCl64进行了时分复用,减小了电子钟对系统硬件资源的占用。

电子时钟电路

  三、主要部分软件设计
  
  本电子钟的程序采用汇编语言编写,主要包括定时器的中断服务子程序、送显子程序、延时子程序、数码显示子程序和键盘扫描子程序等。
  
  时、分、秒的个位、十位都存放在通用寄存器中,以方便程序的累加计数。缓冲区设在RAM的65H~7FH单元,数码显示通过查表方式来实现。调整时制的数据存放在RAM的33H和34H单元中。
  
  1.键盘扫描子程序
  
  键盘扫描子程序KEY用来判断按键。实验证明,在不消除抖动的情况下也可正常工作,因此该程序中没有涉及键盘消抖动程序,在该程序中调用了HCl64送显子程序送键盘扫描码,并处理了时、分、秒的调整及时制的选择。
  
  2.送显子程序
  
  送显子程序主要完成6个LED数码管的动态显示,显示字型通过查表方式实现,在显示过程中调用了延时程序DELAY。

  3.定时器中断服务子程序
  
  定时器中断服务子程序主要用于定时器0溢出中断次数的计算,以及时、分、秒的累加次数和通用寄存器的清零等功能。
  
  程序流程图如下图所示。
  
  电子钟的接口电路设计方法很多,本设计的最大优点是占用系统资源小,且在不改变硬件电路,仅通过软件编程就可实现万年历、秒表、闹钟、整点报时等功能。

 

程序流程图




本文关键字:单片机  电子  时钟-定时电路单元电路 - 时钟-定时电路