|
很多用AT89C2051制作电子万年历的文章.介绍的都是采用单片机内部定时计数器作定时计时,难免受到停电的影响而需耍经常调整,为此,笔者设计市.作了用AT89C2051+DS1302的电子万年历。 该万年历的特点是:动态显示、遥控操作;能接多位数码管成多点输出.采用DS1302时钟模块,走时准确、停电能继续计时(精度±5秒/日左右若采用有源晶振,如DS32Hz,走时精度甚至可达到年误差小于2分钟)。 一、功能 显示年、月、日、星期、时、分,遥控操作、整点很时、定时报时及定时显示、停电自动计时等。 二、硬件电路设计 AT89C2051作为数据处理,DS1302作为计时处理及停电继续走时,用13只LED数码管显示年、月、日、星期、时、分,采用1838V为遥控接收.74LS595作为数码管笔画显示选择移位。 三、工作原理 电路见附图。初始化后,DS1302开始走时。AT89C2051读取时间数据并处理后,通过2级8位移位寄存器(74LS595)将数码管的选通数据送至显示驱动,SRCLK是移位脉冲.上升沿有效.RCLK是输出锁存器的锁存信号,其上升沿将移位寄存器的输出锁存到输出锁存器伟是选通信号,只有e为低电平时锁存器的输出才开放。 所有数码管的同一笔画是连在一起的,由AT89C2051对DS1302读回的时间数据进行拆分处理,然后转换成要显示的数字代码,再由SER(AT89C2051的P3.5脚)逐位输出到IC1的(14)脚.以完成对需要显示笔画的数0 14-,选择,111.1对怒一个数码管的同一笔画进行扫描,第一笔画点亮延时,继续把第二笔画的代码移位至74LS595进行第二个笔画的扫描,直至七个笔画全部显示完为止。 例如,耍显示的时间为07-02-23.则各数的代码分别为3FH、07H、3FH、5BH、BH、4FH。先通过74LS595把3F、07、3F、5B、5B、4F的DO,即低位右移一位,通过74LS595送至驭动三极管的菇极,如果某位为0,则相应的位就不点亮.然后从P1.1输出0,那么该笔画中相应为1的笔画就被点亮,各数相应代码就变为:3FH-1FF,07H-3H、3FI3-1FIi、511H-2DH、5BH-2DH、4F H-27H。 继续通过74LS595把IF,3,1F,2D,2D,27的最低位送至三极管的基极.然后P1.2输出0,数码管的第二笔画相应的位被点亮.各数代码则变为:FH,IH,FH,16H,16H,13H。重复上面的移位及扫描,直至7个笔画的显示完成,就完成了07-02-03的全部显示。 这种显示电路的特点是能够同屏显示多位数码管及多位输出。 图中还可增加秒闪烁和驱动报时蜂呜器等电路功能。 遥控器采用HA6221系列,遥控接收使用1838V红外接收模块,接AT89C2051的P3.2(外中断0).当1838V接收到遥控信号时.产生中断,处理遥控数据.处理完后返回。 电路中用了一块钮扣电ha作为停电走时。 需要注意的是,本电路使用的晶振是4MHz的,如果使用其他频率的晶报,应重新调整遥控解码部分延时的循环次数。另外.遥控器不一样,其键值也需要蚕新定义。
湖南麦连城
|