用AT89C2051制作电子万年历

来源: 作者: 时间:2007-04-19 15:06

    

很多用AT89C2051制作电子万年历的文章,介绍的都是采用单片机内部定时计数器作定时计时,难免受到停电的影响而需要经常调整,为此,笔者设计制作了用AT89C2051+DS1302的电子万年历。
    

该万年历的特点是:动态显示、遥控操作;能接多位数码管或多点输出:采用DS1302时钟模块,走时准确、停电能继续计时(精度±5秒/日左右若采用有源晶振,如DS32Hz,走时精度甚至可达到年误差小于2分钟)。


    

一、功能

     显示年、月、曰、星期、时、分,遥控操作、整点报时、定时报时及定时显示、停电自动计时等。


    

二、硬件电路设计

     AT89C2051作为数据处理,DS1302作为计时处理及停电继续走时,用13只LED数码管显示年、月、日、星期、时、分,1838V为遥控接收,74L5595作为数码管笔画显示选择移位。


    

三、工作原理

     电路见附图。初始化后,DS1302开始走时。AT89C2051读取时间数据并处理后,通过2级8位移位寄存器(74L,s595)将数码管的选通数据送至显示驱动,SRCLK是移位脉冲,上升沿有效;RCLK是输出锁存器的锁存信号.其上升沿将移位寄存器的输出锁存到输出锁存器;e是选通信号,只有e为低电平时锁存器的输出才开放。


    

所有数码管的同一笔画是连在一起的,由AT89C2051对DSl302读回的时间数据进行拆分处理,然后转换成要显示的数字代码,再由SER
     (AT89C2051的P3.5脚)逐位输出到IC1的⑷脚,以完成对需要显示笔画的数码管选择,P1.1对每一个数码管的同一笔画进行扫描,第一笔画点亮延时,继续把第二笔画的代码移位至74L5595进行第二个笔画的扫描,直至七个笔画全部显示完为止。
     例如,要显示的时间为07-02-23,则各数的代码分别为3FH、07H、3FH、5BH、BH、4FH。先通过74LS595把3F、07、3F、5B、5B、4F的:D0,即低位右移一位,通过74LS595送至驱动三极管的基极,如果某位为0,则相应的位就不点亮,然后从P1.1输出0,那么该笔画中相应为1的笔画就被点亮,各数相应代码就变为:3FH-lFF、07H-3H、3FH-1FH、5BH-2DH、5BH-2DH、4FH-27H。


    

继续通过74LS595把1F、3、1F、2D、2D、27的最低位至三极管的基极,然后P1.2输出0,数码管的第二笔画相应的位被点亮,各数代码则变为:FH、1
     H、FH、16H、16H、1 3H。重复上面的移位及扫描,直至7个笔画的显示完成,就完成了07-02-03的全部显示。


    

这种显示电路的特点是能够同屏显示多位数码管及多位输出。


    

图中还可增加秒闪烁和驱动报时蜂呜器等电路功能。


    

遥控器采用HA6221系列,遥控接收使用1838V红外接收模块.接AT89C2051的P3.2 (外中断O)。当1838V接收到遥控信号时,产生中断,处理遥控数据,处理完后返回。

     电路中用了一块钮扣电池作为停电走时。


    

需要注意的是,本电路使用的晶振是4MHz的,如果使用其他频率的晶振.应重新调整遥控解码部分延时的循环次数。另外,遥控器不一样,其键值也需要重新定义。

    


    

相关文章

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子