基于AT89C51控制的高精度倒计时系统
基于AT89C51控制的高精度倒计时系统
系统的控制模块由
AT89C51单片机构成, 用于完成对串行口控制器的初始化和数据读写, 并对接收的各种数据进行识别、转储及显示。时钟芯片DS12C887提供高精度的年、月、日、时、分、秒时间,校准后直接与单片机相连。倒计时显示模块由LED数码管,
74HC595芯片和74LS245芯片组成。
时钟模块用于对时、分、秒、年、月、日和星期的计时,由美国DALLAS公司生产的时钟日历芯片DS12C887构成,该芯片集成度高,可提供年、月、日、时、分、秒,设定每一时刻产生中断,并且其外围电路设计简单,性能好,计时准确性高。DS12C887带有128字节RAM,其中有11字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,为控制寄存器。用户可以在任何时候对其进行访问以对DS12C887进行控制操作,有113字节的通用RAM供用户使用。用户还可对DS12C887进行编程以实现多种方波的输出,并对内部的三路中断通过软件进行控制。DS12C887为双列直插式封装,与单片机的连接为:AD0~AD7双向地址/数据复用线与单片机的P0口相联,用于向单片机交换数据;AS地址选通输入脚与单片机的ALE相联用于对地址锁存,实现地址数据的复用;CS片选线与单片机的P2.6相联,用于选通时钟芯片;DS数据选通读输入引脚与单片机的读选通引脚相联,用于实现对芯片数据的读控制;R/W读/写输入与单片机的写选通引脚相联,用于实现对时钟芯片的写控制;MOT直接接地,选用INTEL时序;IRQ引脚与单片机的INT1相连,用于为时间的采集提供时间基准。
即将所有位的段选线并联在一起由一个8位I/O口控制。74HC595是硅结构的高速CMOS器件,内置8位移位寄存器和一个存储器,具有三态输出功能,当使能端OE为低电平时,将存储寄存器的数据输出到总线。利用74HC595并行输出端具有的输出锁存功能,采用74HC595芯片的串入并出方式控制数码管的显示,具体的连接方式为:芯片的Q7引脚和SER引脚级联,通过三个I/O口与单片机连接。74HC595的14脚(SER)为串行输入端,12脚(RCLR)为移位时钟端,时钟上升沿将14脚数据移入寄存器;11脚为锁存时钟端,时钟上升沿锁存数据;8脚(E)为3态输出控制端,接低电平时输出数据。输出数据和移位时钟均由单片机输出:单片机P1.0口输出数据,在移位脉冲上升沿到来时数据移出进入74HC595;P1.1口输出移位脉冲;P1.2口输出锁存脉冲。出现在并行输出端上的数据经74LS245驱动数码管显示,由于数据已被锁存,在传送下一组数据时,前一组数据的内容不变,以此方式进行数据的传送和显示,故在显示模块软件中将P1.0、P1.1、P1.2均定义为模拟串行口。调整键盘的接口有4个键:1个设定/确认键、1个修改+1键、1个修改-1键、1个移位键。对应秒、分、时、倒计时、星期,有5个LED。LED亮,表示对应的秒或分或星期或倒计时数据可按修改键修改。在设定时间状态,首先移位为秒位,对应秒移位LED亮,按下移位键,移位LED灯按秒→分→时→倒计时→星期逐次循环;按下修改+1键或修改-1键可对相应位的数据进行+1或-1操作。
显示子程序首先通过模拟串行口读取DS12C887的数据,然后利用74HC595对数据进行显示。具体步骤为:显示子程序将P1.0置位将P1.0送入段码将P1.1送入移位脉冲将P1.2送入锁存脉冲返回主程序。
所设计的倒计时系统由
DS12C887构成时钟模块,单片机AT89C51对系统进行控制,设定从模拟串行口读取DS12C887的数据后,再利用74HC595将数据送入数码管显示。系统经调试和参数整定后运行稳定可靠,连续长期运行积累误差为零,为高精度的倒计时系统。实践开发表明,基于上述技术的倒计时系统具有结构紧凑、简单,价格低廉,可靠性高等特点,便于实际应用。