图l是一台使用8个老式荧光数码电子管(型号NB-3)的数字钟电路,数码管使用ZnO:Zn荧光粉。工作时发出绿色的光,在夜晚显得异常漂亮。
该数字钟可以滚动显示月、日、时、分、秒。以及当前的室内温度,通过三个按钮可调整时间。并可设置一个闹铃,也可通过数字钟上的串口与电脑联机,自动校准时间。
一、工作原理
AT89S52单片机给数码管提供显示信号、读取DSl337上的时钟信号、读取DSl8820温度传感器信号、提供闹铃输出、处理按键输入。
以及与PC机通讯。自动校正时间。
荧光数码管显示原理:如图2所示,最左边的为灯丝。灯丝通电加热到700。左右后,会在栅极电压的加速作用下发射电子。中间是栅极。上面是很细的网状屏,加电后用于提供加速电场。最右边的是涂了荧光粉的笔画电极。在电路的输出电压作用下,某些笔画电极被加上电压。在栅极的加速电压作用下,高速的电子就会轰击这些电极上的荧光粉,使涂在笔画电极上的荧光粉发出绿色的光。
另外。荧光数码管需要一组1.2V直流电压。用于加热灯丝,一组15V直流电压,用于提供栅极电压和笔画电极电压。而单片机的工作电压为5V,所输出的电平无法直接驱动该数码管。所以要通过16个4N25光耦进行驱动。其中,Gl~G8用于位驱动,G9~G16用于段选择。
数码管的显示采用动态扫描方式,首先用单片机选通第一位数码管,即向P2.0喻出低电平,P2口其他引脚为高,通过光耦使数码管1的栅极导通。形成加速电场,然后给单片机的PO口置数。通过光耦G9~G16驱动数码管使第一位数码管的笔画发光。然后将PO口置零。同时关断第一位P2.0。选通第二位P2.1使之输出低电平。再给PO口置数……直到8只数码管的数送完。再重复第二轮的扫描。
时钟信号由DSl337提供。DSl337串行实时时钟/日历芯片具有两个可编程日历闹钟与一路可编程方波输出。时钟/日历可以提供秒、分、小时、星期、日、月、年信息。这里只使用月、日、时、分、秒和闹钟功能。将芯片的引脚SQW、SDA、SCL、INTA连接到单片机。单片机运行时由内部的定时器TO产生1秒钟的时钟延时,然后每隔半小时读取一次时钟芯片的信号。用于校准单片机的内部时钟。Kl~K3分别接P1.0~P1.2。Kl为设置键。K2和K3分别为数字加键和数字减键。调整时钟时。每按一次Kl就切换一次调整的项目。依次为月、日、时、分、秒、闹钟的时和闹钟的分,直到全部切换结束。重新回到滚动显示时钟状态。在设置过程中按一次K2对调整项目加1,按一下K3减l。
在没有进入设置状态时,长按K3键两秒,将会停止显示时钟。并进入接受电脑校时状态。如果在一分钟内没有收到电脑传过来的数据。将自动恢复时钟显示。温度显示部分使用单总线温度传感器DSl8820.连接到P1.4口。单片机读取传感器的温度值。然后与时间一起同步显示。数字钟上留了一个DB9的串口通讯座与PC机。单片机通过MAX232芯片和串口插座连接到电脑上。笔者在电脑上用VC++6.0写了一个很小的软件。界面如图3所示。用于时间的校准。将数字钟连接到电脑上。长按K3键两秒,进入自动校时状态。然后点击软件上的“自动校准”。软件会通过串口发送一组包含当前计算机的时间的信息。数字钟接收到信息后经过简单校验。传人DSl337中。同时更新单片机内部时钟。开始滚动显示时间。
二、组装及调试
为了与PC机进行通讯。电子钟试输出。在P3.2和P3.3口上连接了两个指示灯。可以通过编程实现各种状态的指示。在本电子钟上没有使用。有兴趣的朋友可以自己编程试一下。
数字钟一共用了三组直流电源。分别为1.2V、15V、5V。直流1.2V要求能提供约500mA的电流(每个灯丝的实测电流为55mA)。
如果用LM317芯片产生1.2V电压的话。要特别注意稳压芯片的散热。其他两组电源的要求不高。注意,除电子管外。所有元件的工作电压都是直流5V。在与PC机的串。
口连接时,不要热插拔,因为串口不是热插拔设备,强行插拔可能会烧毁串口头。
如果手头没有荧光数码管。
可以用普通IED数码管代替本数字钟的电子管,并精简掉给电子管供电的15V和1.2V电源。
注意,荧光数码管的寿命一般为5000小时左右。因此不能长时间开着。也不能将数码管长期置于强光下,因为长期在强光灯选择11.0592MHz的晶振,时钟芯片DSl337需要32.768kHz的晶振。注意不要用错。另外。蜂鸣器最好用直流的。以便于调管笔段上的荧光粉会老化,变得很暗