自制LED电子钟在很多电子类报刊杂志上都可以见到,但多数在断电后要重新设置时间等参数,给使用带来不便。也有用电池作为备用电源的,但往往体积较大。本文介绍的LED电子钟克服了上述弊端,加上采用家电通用的红外遥控器进行控制,使用方便。该电子钟有一路闹铃输出,可以通过遥控器设置闹铃时间及闹铃允许。
一、工作原理
实时时钟芯片DS1302采用串行数据传输,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能,芯片采用32768Hz晶振。
AT89C2051作为主控芯片,其功能一是对接收到的红外遥控编码进行判断识别,并进行相应的处理;二是定期读取DS1302中的时间,并把小时和分钟送显示;三是比较设置的闹铃时间与实时时间,如果相同且闹铃允许,则蜂鸣器以1秒的周期鸣响一分钟。按遥控器相应键可以关闭闹铃。闹铃时间保存在DS1302的RAM中,不需要单独的EEPROM。
二、硬件电路
附图为电子钟的原理图。IC2为DS1302,电子爱好者可以向MAXIM公司索取免费样品。Y2为32768 Hz石英晶振,可以用普通电子表里的晶振。IC3为3脚塑封一体化红外接收头。LED1~LED4为高亮度共阳数码管。如果没有10MHz晶振,Y1也可以用其他12MHz以内的代替,但要修改程序中YS1和YS2的延时参数,以保持延时时间不变。调整R2可以改变数码管的亮度。P1口输出段码。数码管左边两位显示小时,右边两位显示分,当显示闹铃时间时闪动。第二位和第三位的小数点作为秒闪动。注意第三位数码管按附图布好印制版后安装时要旋转180°,以便让时和分之间出现“:”。最后一位小数点作为闹铃开关标志,亮表示闹铃开启。蜂鸣器B2采用小型自带音源的。
要特别说明的是,备用电源B1可以用电池或超级电容(10万μF以上)。虽然DS1302在主电源掉电后耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天),可以用漏电较小的普通电解电容代替(100μF就可以保证1小时的正常走时)。DS1302在第一次加电后,需进行初始化操作。初始化后就可以按正常方法调整时间及闹铃。
三、软件设计
这里主要对设置部分的软件作一些说明。
采用长虹彩电K11F型遥控器,遥控器按照16位地址码、8位数据码以及8位数据码的反码发送。附表列出了各按键的编码及本电子钟对应的动作。如果采用其他遥控器,需对程序相应部分的编码进行修改。
表中的操作方法中,“任意”是指该键第一次按后,进入该状态,再次按后退出该状态。
时间设置:按“菜单”键进入设置状态,LED只显示正常时间的小时,按“↑”、“↓”键调整数值,按“←”、“→”键可在闹铃与正常时间之间移动。任意时刻再次按“菜单”键退出设置。
闹铃设置:闹铃时间在时间设置中进行。闹铃允许和取消可在任意时刻按“静音”键。
显示开关:在任意时刻按“显示”键开启或关闭显示器。
初始化:在按“菜单”键进入设置状态后任意时刻,按“日历”键执行初始化。初始化后的时间为2002/12/1/12∶00∶00。
编者:需要本文源程序及目标程序的读者请发函或E-mail与本报单片机公共实验室联系。如需程序软盘请汇款8元(工本费5元,邮费3元),并填好回邮信封。