本篇是摘自山东省泰安市第一中学的高鹏飞老师。

  本文主要通过对单片机的认识研究,以AT89S51单片机作为核心,以C语音对时钟程序进行编程,进而设计一台可以精准显示时间和调整时间的LED电子时钟。该时钟应具备以下功能:日期的显示,具体准确到日;时间的显示,具体准确到秒;准点报时功能;时间调整功能;LED显示功能;语音提升功能;闹钟功能。
1 时钟电路设计
单片机电子时钟设计研究_子程序

 

 


      1.1 时钟的整体硬件分析
      根据本文所要设计的电子时钟功能来说,本电子时钟主要包含的电路有单片机电路系统、DS1302芯片电路系统、温度传感器DS18B20电路系统、显示电路系统、闹钟电路系统、电源电路系统等主要电路模块。该电子时钟的电路图详见图一。
本电子时钟的核心采用AT89S51单机片;外部时钟芯片采用DS1302时钟芯片,通过I/O单机片端口与单机片相连接;温度传感器则采用DS18B20温度传感器。输入电路、时间和日期的采集、温度挑战和自动时间日期调整的相关数据信息通过单机片进行转化和处理,然后通过LED数码管再将这些数据显示出来。闹钟则通过蜂鸣器电路进行数据传输,开启警报系统。本时钟主要采用5V的直流电作为电源供电,其中,DS1302时钟芯片则采用3V的直流电作为该芯片的辅助后备电源。
     1.2 时钟整体控制电路的设计
      通常来说,传统的电子时钟设计方案是使用数字控制电路来实现电子时钟的各项基本功能的。但是这种设计不能很好的实现温度控制,容易产生内部线路由于温度过高所导致的电路毁损现象。本文的设计方案主要使用的是单片机作为时钟的控制核心,电路相对简单,电源设计比较完善,而且稳定性很高。同时,经过程序的编写,可以使单片机实现智能化的时钟控制效果,能够使LED电子时钟的功能更加完善。
      1.3 单片机的电路设计
      AT89S51型号的单片机作为一种常用的单片机,它实现了ISP功能的下载,相对于其他单片机来说,AT89S51单片机实现了低能耗和高性能为一体的特点。它具有32个可以进行编程的I/O口,128X8位的内部RAM,4KB的片内程序储存器,五个中断源,2个定时器和计数器,片内震荡系统。另外,它支持1000次擦写循环,引脚DIP封装达到了40,能够与MCS-51系列的单片机相关引脚系统和指令系统完美的兼容。
      1.4 显示器电路设计
      本文主要使用数码管动态显示电路设计,所谓LED数码管,是指由多个发光二极管(一般是红色)组成的发光器件。而动态显示是指一位位地轮流将各个发光点位依次点亮,点亮速度要相对较快,能够使人体的视觉观察下字符不发生闪烁。显示的亮度通过电路的导通电流和数码管的点亮频率来控制,动态显示的设计可以降低能耗。
      1.5 时间显示电路的控制
      通过AT89S51单机片的外部晶振和C语音的软件程序的编写,可以实现时钟的计时程序的稳定准确,但是因为要进行精准的计时,精确到秒,所以考虑到系统的动态调试量,所以在时钟内加入一块儿DS1302外部时钟芯片,可以实现对日期和时间的精准调试,此外,还具备日期的闰年和每月天数的自动调试等功能。时钟的时间显示可以通过手动调整选取12小时计时或者24小时计时。DS1302芯片的使用并不会影响到单片机的工作,还可以与单片机之间通过同步线路串行的方式来实现信息联通,使时钟的时间显示更加精准。DS1302芯片和单片机的同步线路串行需要设置三个口线的数据读写,分别是串行时钟口线(SCLK)、复位口线(RES)、数据线口线(I/O)。
      1.6 环境温度电路
      环境温度的数据采集工作主要由本电子时钟内置的DS18B20温度传感器进行,它具有价格低、体积小、稳定性高等特点,可以监测周围-55度到+125度的环境温度。关于DS18B20的电路设计,主要是通过上拉电阻将DS18B20温度传感器的2脚和单片机的P3.3相连,1脚接通电源地,3脚接通+5V,上拉电阻为4.7K。
      1.7 闹钟电路
      闹钟系统主要是通过P2脚和单片机来控制,方法是,将R7和PNP型的三极管相连接,当闹钟所设定的时间与当前的时间相同时,P2脚则输出低电平,连通三极管,蜂鸣器就会发出闹钟声了。
      2 系统设计
      2.1 主程序总体说明和设计图
      本文通过使用AT89S51单片机为核心所设计的LED电子时钟主要由LED数码管作为显示秒钟个位、秒钟十位、分钟个位、分钟十位、小时个位、小时十位。六个位数主要由六个PNP数码管器件控制,预留一个键位以用来做时间调整。详见图二。
单片机电子时钟设计研究_单片机_02

 

 


      电子时钟通电后,系统的初始时间定为2015年5月1日0时0分0秒。在LED数码管上的显示为“00:00:00”,在同一时刻开始计时。接通电源后,单片机的主要工作为循环调用显示程序和按键程序,如果按下时间调试按钮,则调用显示相关的日期、时间、温度等功能处理程序,并在LED数码管处进行实时的显示。
      2.2 显示模块子程序设计
      该电子时钟的设计主要采用5V直流电的导入为时钟的单片机工作和相关位选电路提供电源支持。详见图三。位选电路主要包括有点解电容、瓷片电容、电路二极管、按键S1、电阻器构成,按键S1与芯片的引脚RST相接,当按下按键开关后,芯片的引脚RST为1高电平,断开电路后,芯片的引脚RST为0低电平。
数码管的数据显示原理为,通过三极管的集电极链接数码管的接口公共端,以P2口的引脚输出1高电平,接通三极管。按照这种原理,在同一个时刻中,六个LED数码管器件会有一个处于接通显示字符状态,其他五个器件处于熄灭状态。在下一个时刻,下一个LED数码管器件处于接通状态,其他五个器件处于熄灭状态,以此类推。
在编写显示模块的子程序时,需要提前编写好索要显示的数据二进制数码,并将其按照顺序输入芯片中。主要包括日期、时间、温度这三块内容,这三块又分为实时值与调整值两类。
      2.3 时钟日历子程序
      主要是为了对DS1302芯片实现日期和时间的读写功能,首先,要对其进行初始化操作,将日期和时间的初始值写入,然后通过对单片机采用串行的方式将DS1302芯片的数据读取出来并且输送到显示屏上。同时需要以定时中断的方式制造串行脉冲,在串行的过程中,中断功能会关闭,
单片机电子时钟设计研究_单片机_03

 

 


      2.4 环境温度采集子程序
      DS18B20属于单线器件,完整的数据传输必须要由严格的时序来控制,但是AT89S51并不支持单线程的传输,所以,需要用软件写入程序来模拟单线的时序协议。
      2.5 闹钟的子程序
      闹钟的设计是根据闹钟所设定的时间和当前时间如果数值一致,那么就接通闹钟线路,开启闹钟子程序,蜂鸣器初始设定响铃时间为1分钟,在闹钟响铃过程中,如果按下贪睡按钮,那么就暂时关闭闹钟,并且将闹钟的数值向上增加五分钟,当闹钟所设定的时间再次与当前时间一致时,再次接通闹钟线路,开启闹钟子程序。当响铃结束以后,自动返回到主程序。
      3 设计总结
      3.1 功能介绍
      主要功能包括:日期显示、时间显示、日期调整、时间调整、整点报时、环境温度监测、闹钟功能。
      3.2 电子时钟的调试
      主要包括硬件功能调试与软件功能调试两个部分,其中,硬件调试的项目有:单机片系统调试、显示电路调试、时钟电源线路调试、按键电路调试等。软件调试的项目有:时钟日期时间的子程序实时调试、环境温度监测子程序调试、闹钟子程序调试等。
      4 结束语
本文以单片机为核心,进行了单片机电子时钟的相关研究设计,显示方式主要采用的是LED数码管的静态显示方式。但是这种显示方式还是具有一定的局限性,只能够显示数字,另外,本设计由于只重视功能,导致设计品的体积不够精简。所以综合考虑可以将数码管显示换位液晶显示,以及简化相关功能。本设计基于对于单片机的认识和综合利用,深化了对于电气相关设备的研究,对于电子时钟的设计以及相关研究都提供了参考。