温州科技职业学院信息技术系 朱飒飒
时钟是在人们日常生活中用以掌握一天时间的一种器具,关乎人们一天生产劳动的作息调整。每家每户、每所学校、每个公司等等都能找到时钟的踪迹,时钟无处不在,人们无时无刻不在了解时间。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活中,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此时钟是人们必不可少的。
传统的时钟绝大多数都是发条驱动式、电机传动式或电钟式等机械时钟,部分电子器械中也有使用时间继电器的。相对于传统的时钟,电子时钟的体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。所以电子时钟的发展必定大有前途。同时随着现代电子技术的发展,电子时钟也在不断的进步,朝着更多用途、更高精度、更小体积发展着。
本设计实现一款可正常显示时钟、带有定时闹铃的多功能电子时钟。本课题通过AT89S52单片机来设计电子时钟,采用C语言进行编程,可以实现以下一些功能:小时,分,秒和年,月,日的显示、定时报警功能。本次设计的电子时钟系统由时钟电路,LCD显示电路,定时报警电路,按键调整电路四部分组成。单片机通过软件编程,在LCD12864液晶屏上实现小时,分,秒和年,月,日的显示;利用时钟芯片DS1302来实现计时,定时功能;通过三个按键联合工作实现时间和闹钟的设置工作;到达设置的闹钟时间时,由蜂鸣器发声,起报警作用。系统带有液晶显示器,配合按键向用户提供友好的界面,操作简单,具有一定的实用性和方便性;同时还具有体积小、功耗低等特点。与传统机械表相比,它具有走时精确,显示直观等特点。
图1 单片机系统框图
图2 电源电路模块
图3 单片机最小系统
图4 DS1320芯片驱动电路
图5 DS18B20芯片驱动电路
传统的方案常采用数字控制电路,电路较简单,成本较低,可实现电子时钟的基本功能,但不能在原有基础上再加个温度显示电路,而且会造成电路的不稳定,系统性能差,电路容易损坏。本文采用单片机作为主控制器,硬件电路简单,电路工作稳定,系统性能好,通过编写程序,经单片机智能控制,更好地实现了LCD电子时钟的功能。而且电源电路的设计比较完善。微控制器选用ATMAL公司生产的AT89S52,该芯片货源充足,并且价格也比较便宜。其原理框图如图1所示。
采用单片机动态扫描将时钟数据和温度数据通过数码管进行实时显示,但数码管的显示功能具有局限性,不能达到预期效果,此外,数码管驱动电路繁琐,不易控制。
而作为一种输出方式,液晶显示最大的特点就是能够实现友好的人机界面,它已经广泛应用于现代工业控制和智能化仪器仪表等领域,它已经成为单片机应用开发领域典型模块之一,能够方便的显示文字和数字。
本文使用LCD12864显示器,12864是8位控制方式,内置8192个16*16点阵字符,128个16*8个ASCII字符,可显示8*4行16*16点汉字,4或8位并行控制,使其实时显示时钟与温度数据。
利用52单片机的外部晶振,通过软件的方式,编写能够准确计时的程序。但由于要实现年、月、日、时、分、秒的计时,因此采用此种方式会加大程序的调试量。
本文考虑使用外部时钟芯片,DS1302是一款具有涓细电流充电能力的低功耗实时时钟芯片,可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES(复位);(2)I/O(数据线);(3)SCLK(串行时钟)。单片机通过三个口线控制DS1302读写数据,从而实现准确计时。
3.1.1 电源电路模块的设计
电源电路模块如图2所示,电源电路模块通过变压器降压得到一个较小的交流电压,此交流电压经4007组成的桥式整流以及7805稳压滤波得到系统所需要的+5V电源。
3.1.2 单片机最小系统模块
单片机最小系统如图3所示。
3.1.3 时钟频率电路的设计
本系统采用的定时元器件为石英晶体和电容组成的并联谐振回路。晶振频率选择12MHz,C1、C2的电容值取30pF,电容的大小可起频率微调的作用。
单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12µs。
3.1.4 复位电路的设计
单片机具有多种复位电路,本系统采用电平式开关复位与上电复位方式,具体电路如图所示。当上电时,C1相当于短路,使单片机复位,在正常工作时,按下开关使单片机复位,当系统时钟频率为12MHz时,C=22μF,R=10kΩ。其缺点是干扰易于串入复位端,在大多数条件下,不会造成单片机错误复位,但会引起内部某些寄存器错误复位,这时可以在RESET端加一个去耦电容。
值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了单片机程序设定的初始值。
3.1.5 时钟DS1320及温度传感器DS18B20电路设计
时钟芯片DS1320电路采用了外加电源可以在系统断电时仍保持时钟芯片的正常工作。DS1320、DS18B20芯片操作都需一个简单的驱动程序。图5是DS18B20芯片驱动电路。
系统是由AT89S52单片机控制,系统分为主函数部分和各模块子函数部分2个部分。系统主函数部分主要是调用各个模块的子函数。本系统的时间是通过软件进行设置,使用定时器使电子钟运行,并将值送入主控芯片,通过液晶显示器LCD12864来显示,时间、日期的修改通过按键来控制的。所以要对定时器、液晶显示器进行初始化。而其他模块的初始化在各模块函数中初始化。
各模块的子函数包括LCD12864显示模块、DS18B20测温模块、时钟模块、按键扫描模块,闹钟设置模块。
主程序通过调用其他函数来实现系统的总体功能,其工作流程如下:
(1)系统启动后,进行定时器和LCD显示初始化。
(2)LCD12864显示日期、时间、温度。
(3)可以通过按键进行显示模式设置,调整日期、时间。
(4)采用语音AK040电路模块。
本文设计的电子钟结构简单,性能稳定,有很好的实用价值,能完成时间的自动调整和掉电保护,年、月、日以及星期、时、分、秒全部信息用液晶显示。通过按键的组合可以实现时间日期的调整以及时间温度的语音播报。
[1]刘守义.单片机应用技术[M].西安:西安电子科技大学出版社,2007.
[2]楼然苗,李飞光.单片机课程设计指导[M].北京:北京航空航天大学出版社,2007.
[3]余修武.单片机原理及应用[M].成都:电子科技大学出版社,2011.
[4]马忠梅,等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2003.
[5]张毅刚.单片机应用设计[M].哈尔滨工业大学出版社,2008.
[6]谭浩强.C语言设计(第二版)[M].清华大学出版社,1999.
[7]DS1302涓流充电时钟保持芯片的原理与应用[OL].海纳电子资讯网:www.fpga-arm.com.
[8]深圳亚斌显示电子有限公司:12864ZA使用手册[S].