1前言
在银行利率显示屏中,一般要求有时钟和日历显示功能。虽然利用软件编程的方法也可以实现实时显示,但需要编制的程序比较复杂,代码多且单片机软件开销大,而银行利率一般在很长时期内是固定的,这就要求显示的利率数据须非易失保存。用DS12887正好可以满足上述要求。
DS12887是美国达拉斯半导体公司(Dallas)生产的并行接口实时时钟/日历芯片,它内置晶振和锂电池,并带有128字节RAM,其中14字节用作时钟和控制寄存器,114字节可被用户当作非易失性RAM使用。本文介绍利用其中112字节来保存要显示的112位LED七段码的设计方法。
2 DS12887实时时钟/日历芯片
D S12887实时时钟/日历芯片采用CMOS技术制成,该芯片带有内部晶体振荡器并内置有锂电池,因此断电后仍可运行十年以上且不丢失数据。同时具有计秒、分、时、星期、日、月、年,并有闰年补偿功能。时间、日历和定闹具有二进制码和BCD码两种形式,并可设定12小时或24小时制式以及Motorola和Intel总线时序。DS12887内含128字节RAM,其中有10个时钟寄存器、4个控制寄存器和114字节通用RAM,所有RAM单元都具有掉电保护功能,因此可被用作非易失性RAM。DS12887内部具有定闹中断、周期性中断、时钟更新周期结束中断等,且三个中断源可分别由软件屏蔽。有关DS12887的其它应用资料可参考相关资料[1]。
3显示屏硬件组成
图1所示是利用DS12887设计的利率显示屏的硬件组成,电路中的单片机选用AT89C51,并将其内部EPROM作为程序存储器。DS12887除产生时钟数据外,还将其中的112字节RAM作为显示存储以显示数字的七段码。由于P2.4作为DS12887的片选信号,所以DS12887内部的RAM地址为1000H~107FH。15片74LS373作为输出锁存器,其端口地址由4-16译码器D4514确定。由于是将P2.5作为4514的片选信号,所以各锁存器的端口地址分别为2000H、2100H、2200H、2300H、2400H、2500H、2600H、2700H、2800H、2900H、2A00H、2B00H、2C00H、2D00H、2E00H,在这些地址中,除了一片地址为2000H的输出作为位扫描输出外,其余均为LED七段码输出。每个端口地址选中一片74LS373输出锁存器,并通过UNL2003A输出驱动LED数码管中的各段。为了增加总线驱动能力,该电路采用一片74LS244作为总线驱动器。为了能方便地对显示屏中的数据进行更新,电路中还设置了串口通讯电路,并采用MAX232来实现单片机与PC机的串口通讯连接。在此电路中,数码管采用共阳极,段驱动采用UNL2003A,它的最大驱动电流可达500mA。由于每
一位驱动要驱动14个数码管,若每一段电流为10mA(一般平均电流为5~6mA即可),则每一位的驱动电流应为10mA×8×14=1120mA,即近似为1A多。因此位驱动应选用驱动电流较大的芯片或管子,本设计选用的是TIP42C达林顿管,该TIP42C的最大集电极电流为15A,耐压大于100V,完全可以满足其驱动电流较大的要求。该显示屏硬件电路的驱动部分如图2所示。
4软件流程
该设计的显示软件包括显示主程序、时钟数据更新中断服务程序、串口通讯中断服务、延时子程序、七段码转换子程序及PC机端串口通讯程序等。图3给出了前三部分程序的流程图。由于DS12887片内RAM的前14位是时钟及控制寄存器,其地址为1000H~100DH,因此112位显示数字七段码的存放地址为1010H~107FH,七段码在RAM中的分组顺序排列,每14位一组,共8组。主程序只负责将显示数字的七段码送到相应的显示端口,七段码的转
换在时钟数据更新中断和串口通讯中断服务程序中通过调用七段码转换子程序来实现,而位选数据则由单片机的移位指令操作来完成。
参考文献
1.郭凌,姚大红.新型实时时钟芯片DS12887原理与应用.国外电子元器件,1997(1)
2.张振荣,等.MCS-51单片机原理及应用技术.人民邮电出版社
3.朱家维,等.微计算机技术.中央广播电视大学出版社