实时时钟芯片DS12887的应用设计
,从而在数码管表现为7段灯都会灭掉。
74LS06包含6个非门电路,本文只需要其中4路即可。在输入端置"1",对应的输出端则为"0",则选中其中一个数码管。比如在AT89S52的P1.4输入"1",则74LS06的4A引脚为"1",在其对应的输出脚4Y输出就为"0",从而选中与s1相连的DS1数码管。在焊接电路板时,可以将CD4511和74LS06这两个芯片放在数码管下方,这样整个电路板就会小巧一些。因为数码管只有4位,而且必须用其中的两位显示一项时间信息,所以每次只可以显示两项时间信息,例如DS1、DS2分别显示月份的十位、个位,DS3、DS4分别显示日期的十位、个位。但要显示的时间信息要多得多,所以采用"分时复用"的方法轮流显示时和分、月和日、年和星期,在时间分配上笔者使用了下述方案:在每一分钟中,0~9s、20~39s、50~59s的时间里显示时钟的时和分,在10~19s内显示月和日,在40~49s内显示年和星期,而时钟的秒数则不作显示处理。因为星期的最大数值为7(表示星期天),可以只在个位显示,星期分配的十位可以作"消隐"处理。设定的闹钟信息不是需要经常查看的,所以不做上述的分时显示,而是通过按下KEY4键查看。电路图中的4个按键功能分配如下,KEY1:数值加1键;KEY2:数值减1键;KEY3:调节项目选择,当该键按下可以选择不同的调节项目,依次为时钟的时、时钟的分、月份、日期、年、星期、闹钟的时和闹钟的分。KEY4:选择显示时间(包括时、分、月、日、年和星期)或闹钟。红色的LED闪亮表示数码管当前显示的是闹钟的时和分,绿色的LED闪亮表示当前显示的是时钟的时和分;而红色的LED闪亮和蜂鸣器发出声音,则表示闹钟所定格的时间到来,发出警报提醒;当两个LED都不闪亮时表示显示的为日历信息,即月、日、年和星期,可以通过DS3是否显示数据区分出显示的是月、日还是年、星期。
软件设计
笔者使用的编译环境为Keil编译软件,采用C51编程语言。整个程序由几个模块构成,文件mmi.c中包括一些人机交互处理的函数,比如读取按键、在数码管上显示时间信息、LED和蜂鸣器的发声处理等;文件ds12887.c中包括读写和初始化DS12887的函数;文件my52.c中包含延时函数;在文件main.c中则调用这些模块中的函数进行综合处理,主函数的程序流程图如图4所示。各个xxx.h文件中则是相应的xxx.c文件中的函数声明、全局变量声明等.
- UL1642锂电池安全标准(01-05)
- 简易锂电池保护IC测试电路的设计(02-26)
- 磷酸铁锂电池通用充电模块简介(10-23)
- 符合SMBus2.0协议单节智能锂电池系统的设计(06-01)
- 电解液在锂电池发展中扮演重要角色(03-01)
- 贴片保险丝在单节锂电池上的应用(05-23)