冉秦翠,蒲利春,彭厚德,汪海军
(1.重庆理工大学 光电信息学院,重庆400054;2.长江师范学院,重庆400010;3.伍尔特电子(重庆)有限公司,重庆400010)
钟表的发展历史,大致可以分为3个演变阶段:第一类,机械钟,这种钟表采用全机械结构,通过发条提供动力以维持钟表运转,需要随时上发条,相对电子钟而言,体积大、随身携带不方便且走时不精确.第二类,半机械钟,这种钟表用电池代替了发条提供动力,由石英晶体电路提供时间,相比机械钟走时更准确,不需要上发条,体积也大大减小,日常生活中所见到的腕表都属于这种.第三类,电子表,这种钟表采用全电子结构,采用电子电路或软件程序提供时间,精确度大大提高,同时体积也大大减小,而且用数字显示代替了指针显示,更直观,同时具有闹钟、日期或温度显示功能等.本文所介绍的多功能电子时钟就属于第三类.多功能电子时钟是以单片机为核心的数字计时电路,利用液晶屏实现了时、分、秒计数显示,除了具有读取时间直观、准确的特点外,还具备闹钟、温度检测等功能.它与传统的机械钟和半机械钟相比,具有走时准确、显示直观、无机械传动装置、电路结构简明、功耗小等优点,其使用寿命远远高于传统时钟.多功能电子时钟的出现,给现代人生活带来了革命性的变化,因而得到广泛应用.单片机编程实现的多功能电子时钟具有编程灵活,电路结构清晰、简明、功率损耗小、容易实现功能扩展等优点[1].其基本原理是由单片机作为电子时钟的核心控制器,通过它的时钟信号实现计时功能,将其时间数据经单片机输出,通过液晶显示器显示出来,且通过按键可实现定时、校时、设置闹钟等功能[2].目前市场上以单片机为核心设计的“多功能电子时钟”存在体积较大、成本较高等问题,而且多采用软件延时或定时器的方式产生时间,不精确,系统一旦断电时间就会消失.
针对以上不足,笔者设计了“多功能电子时钟”.该时钟采用STC89C52单片机读取时钟芯片DS1302内部的时间并显示在LCD1602液晶上,由于DS1302时钟芯片可以用内部备份电池供电,故采用USB接口为时钟供电,系统时间并不会因外部断电而消失,随时接通电源都显示的是当前准确的时间,实现在需要时才接通电源以达到省电的目的.在满足时间精度的基础上,设计还加入了定时闹钟和温度显示等功能.
硬件电路包括STC89C52最小系统电路、DS1302时钟模块、LCD1602液晶显示模块、按键模块、DS18B20温度传感器模块、闹钟模块.功能框图如图1所示.
图1 多功能电子时钟功能框图
基本原理:主要是在STC89C52单片机的控制下,调用各个功能模块来采集日期、时间、温度等信息,并通过LCD1602液晶显示器显示.
温度读取:系统的温度信息及其显示主要通过DS18B20温度传感器采集获得,且其测温范围较大,在-10~+85℃温度范围内精度可以达到±0.5℃,有效温度范围-55~+125℃.
闹钟功能:具有闹钟功能,其功能是通过软件编程来实现的.设置好闹钟时间后就自动开启了闹钟,时间到了之后就会有提示(本系统采用LED灯闪烁提示方式[3]),需要手动关闭闹钟才会停止提示.
多功能电子时钟的软件编程是在Keil uVision3集成开发环境上进行的,设置好工作环境后,编写软件,编译调试成功之后即可生成HEX文件烧录到单片机内.多功能电子时钟把整个系统分成一个个的模块分别进行编写与调试,先编写调试硬件驱动程序,然后再编写功能函数,最后综合.在确保单片机能正常工作之后,首先编写的是液晶显示器LCD1602的驱动程序,调试成功之后再编写时钟芯片DS1302的驱动程序,调试成功之后再编写温度传感器DS18B20的驱动程序.在这些都完成之后再编写几个功能函数,最后进行综合,实现时间日期调整与显示、温度显示等功能.
多功能电子时钟系统中,按键模块包含4个按键,分别是“闹钟”键、“设置”键、“+”键和“-”键.按下“设置”键随着显示屏上标识位的改变,按动“+”键和“-”键就可以分别设置年、月、日、星期、时、分、秒等.在动态显示情况下,标识位显示“0”,若只按下“设置”键,标识位显示“1~8”,即按1次“设置”键,标识位显示“1”,按2次“设置”键,标识位显示“2”,且“1~7”对应调节年、月、日、星期、时、分、秒,“8”是确定时间情况输入.长按闹钟键,再按设置键,按动“+”键和“-”键就可以设置闹钟.闹钟设置时,标识位会变为“A~H”等字母,调节方式与时间调节一致.在该电路中,闹钟键接STC89C52的P1.1接口,设置键接P1.2接口,“+”键和“-”键分别接AT89C52的P1.3和P1.4接口,按键低电平有效,按键的消抖则由软件来实现.按键模块如图2所示.
图2 按键模块图
硬件电路外观实物图如图3所示.
图3 “新时钟”硬件电路外观实物图
多功能电子时钟硬件电路主要由STC89C52单片机、时钟电路、按键模块、USB传输线、温度传感器电路组成.设计选用DS1302时钟芯片.秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,用石英晶体振荡器加分频器来实现.译码显示电路将计数器的输出状态用LCD1602液晶显示器显示.
在电路中,按键模块与STC89C52的P1.1~P1.4接口和GND相连接;DS18B20温度传感器模块与P0.0接口、GND和VCC相连接;闹钟指示灯则与P1.0接口相连接;晶振、复位电路连接如图4左上部份所示.多功能电子时钟电路原理图如图4所示.
图4 多功能电子时钟电路原理图
由于多功能电子时钟界面需要显示的功能较多,显示内容不仅有数字,还有字母,所以选用LCD1602显示模块.系统采用5×7点阵字符位.模块采用数字式接口,能够方便地与单片机进行通信.LCD1602液晶显示模块与STC89C52的P0.5~P0.7,P2.0~P2.7接口相连接,且P0.5~P0.7接口是液晶显示器的控制接口.具体连接如图5所示.
图5 液晶模块图
在多功能电子时钟电路中,DS18B20温度传感器模块主要负责采集外界环境的实时温度变化情况并及时把信息传递给单片机.在本系统中DS18B20温度传感器模块与STC89C52的P0.0接口相连接.具体连接如图6所示.
图6 温度模块图
在多功能电子时钟电路中,为了保证时钟的精度,选用了DS1302模块.DS1302与单片机之间的通信,仅需3根I/O 线:复位(RST)、I/O 数据线、串行时钟(SCLK)[4].串行时钟(SCLK)与STC89C52的P1.5接口相连接,I/O数据线与STC89C52的P1.6接口相连接,复位(RST)与STC89C52的P1.7接口相连接,并且需把时钟模块与STC89C52的地和电源相连接.具体连接如图7所示.
图7 时钟模块图
多功能电子时钟性能调试分为电路调试和软件调试.
电路常见故障主要来源于元器件引脚接错、元器件损坏及其参量误差、连线接错、电源故障、测试仪器误差、引入噪声、干扰[4]等.电路调试步骤如下:检查电路、通电观察、静态调试、动态调试等[5].
在完成硬件制作后,把HEX文件烧录进单片机.首先是检查电路,根据信号的流通过程,使用万用表检查电路的漏焊、虚焊、错误焊接等问题.其次是通电观察,观察液晶屏上的显示结果,如发现温度不能动态显示而其他数据都能正常显示,检查结果是把温度传感器方向接反了从而导致传感器被烧毁,换了新的传感器并正确连接之后,温度动态显示就正常了.静态调试,接通电源(使用USB供电),打开液晶显示开关,调节液晶显示的清晰度.如发现液晶显示不明显,看不清楚,就新接电位器来调节对比度,达到正常显示目的.动态调试是使用万用表测试相关接点的电流情况以及回路、通路的电压和主要元件的电阻参量等,确定它们是否正常工作并调到最佳范围内.如实验分析了在较大电流区间内复合电流对硅二极管伏安特性的影响[7].
软件调试时,首先调试STC89C52模块的功能,接着调试LCD1602液晶显示情况,即通过编写液晶显示的驱动程序来实现液晶显示功能,使其能实时地显示单片机接收到的时间、温度等数据,并动态显示在屏幕上.然后调试DS1302模块的功能,单片机通过同步串行通讯与DS1302通讯,每次通讯都必须由单片机发起,无论读还是写操作,单片机都必须先向DS1302写入1个命令帧.在正常显时状态下,单片机读取DS1302中的程序;在设置时间和闹钟程序时,需将内容写入DS1302中.接着调试DS18B20程序,观察其能否动态的显示温度变化情况.最后,调试按键模块,即在主函数中判断按键状态.主程序流程图如图8所示.
图8 多功能电子时钟主程序流程图
首先连接好各模块,将USB接口与电源相连接,按下LCD1602液晶显示器的开关按键,LED屏幕被点亮.当屏幕点亮后,可在屏幕上看到2排字符,上排左边显示时、分、秒,右边显示温度;下排依次分别显示年、月、日、星期以及标识位.在按键模块中,按下设置键,标识位发生变化,然后就可以调节时间、日期、星期等.
长按按键模块上的闹钟键,同时按下设置键,就可以设置闹钟,待闹钟到达设定时间,多功能电子时钟板上的绿色LED灯就会由原来的1s闪烁1次变为快速闪烁,按任意键可以结束闹钟.多功能电子时钟选择的DS1302时钟芯片内含有锂电池,断电重启多功能电子时钟系统,无需重置时间.
多功能电子时钟计时显示、闹钟设置模式如图9所示.屏上标识位显示情况及其功能表如表1所示.
图9 多功能电子时钟计时显示、闹钟设置模块
表1 标识位显示情况及其内容表
多功能电子时钟主要特征:a.是基于51单片机最小系统设计的多功能电子时钟能够在LCD1602液晶显示器上显示时间、日期、星期、温度以及调试标识位,并可以设置闹钟,具有到时提醒的功能;b.是采用按键来设置时间、闹钟等,操作简单、方便,且采用 USB供电;c.是采用DS1302时钟芯片提取时间日期信息,该芯片独立于单片机运行,有自己的备份电源系统,第一次设置之后就可以长期自动运行,即使系统掉电也不用重新设置,可以有效的节约能源.
多功能电子时钟解决了传统机械时钟因使用石英机芯等驱动带来的读时不准确,以及因使用机械传动装置而造成的使用寿命较短等缺点,也解决了数码管显示功能不足的缺点.多功能电子时钟的应用范围非常广,给人们的生产、生活、学习等带来方便,且其能耗较小.若能在此设计基础上,将闹钟提醒功能改为报时功能,增加湿度显示功能以及让本设计更加美观大方、携带方便的话,多功能电子时钟将更加完美.
[1]王云涛,王楠.浅谈多功能数字钟的设计[J].山东电力高等专科学报,2005,8(4):71-72.
[2]王海燕.液晶显示电子钟的制作[J].华章,2011(19):300.
[3]王悦,李泽深,刘维.LED发光二极管特性测试[J].物理实验,2013,33(2):21-24,28.
[4]冯大捷.基于DS1302电子时钟的设计[J].科技视界,2012(2):242-243.
[5]王传新.电子技术基础实验——分析、调试、综合设计[M].北京:高等教育出版社,2006:4-5.
[6]陈桂友,柴远斌.单片机应用技术[M].北京:机械工业出版社,2008:67-80.
[7]马元良,李海琴,毛多鹭,等.二极管PN结的正向电流特性测量[J].物理实验,2013,33(11):4-7.