APP下载

基于单片机的电子时钟设计

2017-02-20李慧茹

数码世界 2017年2期
关键词:晶振温湿度时钟

李慧茹

辽宁锦州渤海大学工学院

基于单片机的电子时钟设计

李慧茹

辽宁锦州渤海大学工学院

电子时钟是一种能够广泛使用的计时工具,它不仅能够对各种时间信息进行显示,同时也可以对温湿度进行显示。本文所设计的多功能电子时钟以STC89C52RC单片机为核心,由时钟模块、显示模块及蜂鸣器模块组成。其中时钟模块使用DS1302实时时钟芯片实现对时间的实时显示;显示模块采用LCD12864液晶屏对时间参数、温湿度参数进行显示。经测试,该系统运行可靠,功耗小,能够适应日常生活的需求。

1 引言

基于单片机的多功能电子时钟因其要求实现的功能及应用范围的的不同,所以可以在单片机上集成不同的传感器来满足它们在教学、科研、日常生活等各个领域的应用。系统功能的设计实现是在软件与硬件的共同作用下完成的,电路图的绘制及电路板的焊接是进行软件编写的基础,在确保开发板的正确焊接后使用Keil uVision4进行相关功能代码的编写,在代码运行无误后我们使用烧录软件将程序烧进单片机芯片内进行实物演示,观察实物是否能够实现各个模块对应的功能,通过程序的多次修改完成系统预设功能。

2 系统硬件设计

2.1 系统总体设计

系统框图如图1所示,系统的功能完成主要是利用温湿度传感器完成温湿度的采集,通过按键实现时间参数的修改与闹钟的设定,最后完成时间的显示。将编写的程序加载到单片机上后,接通电源,单片机STC89C52完成对显示模块的初始化,在显示模块的初始化完成后对温湿度传感器进行初始化,初始化完成后通过DH11T的DATA端口与单片机的P3.1口进行连接完成数据的传输。主要实现复位、对时钟的设置及对闹钟的设定功能,当时钟芯片内存储的时间到达设定的闹钟时间时打开蜂鸣器进行报警。WT588D语音模块,当时间为整点、半点或是按下语音播报按键时,连接在芯片上的喇叭进行播报。

图1 系统框图

2.2 单片机最小系统

本次设计的多功能电子时钟主要是以STC89C52RC作为系统的核心电路,系统主要由数据采集和数据显示两大部分。单片机共有内部时钟与外部时钟两种时钟模式。本次设计的系统通过内部时钟提供时钟信号,89C52的XTAL1、XTAL2时钟引脚分别与时钟的两端进行连接。

为了使产生的频率标称,将12MHz的晶振与单片机的XTAL1、XTAL2引脚相连,再接上两个电容值为20pf的电容(晶振的负载电容);实时时钟芯片DS1302,VCC1 VCC1接3V电子电池,通信时钟引脚SCLK与P1.3口相连,数据传输引脚与P1.4口相连,时钟芯片的使能端CE与P1.5口相连,时钟芯片的振荡源X1、X2与一个频率为32.768K的晶振相接构成了单片机的时钟模块。系统的晶振电路与单片机的连接情况如图2所示。

图2 晶振电路图

2.3 系统复位电路

复位存在上电复位、手动复位这两种形式。当单片机的复位引脚RST上出现了2us的高电平时(晶振频率为12Mhz,所以一个机器周期为1us)就完成了复位操作。系统晶振频率我们使用的是12Mhz,因而单片机的最小周期是1us,由上述理论可知,如果要完成复位操作,那么高电平至少应持续2个最小周期。而在实际操作中由于系统会受到一定的干扰:晶振的稳定性,复位按键及相关数值的变化,因而需要保留适当的余量预防系统受到干扰。

2.4 DS1302时钟模块

DS1302是一款时钟芯片且具有闰年补偿的功能,其中单片机的P1.3、P1.4、P1.5分别与DS1302的三个引脚SCLK、I/O、CE相连接。在DS1302接了两个电源,其中VCC2用来保障正常运行,而VCC1则用来预防特殊情况的发生以及在VCC2断电时保证芯片的持续工作。

在时钟芯片上有两个电源引脚,而芯片主要由两个电源信号中电源值较大的那个进行供电,当VCC2超过(VCC1+0.2)V时,由VCC2保证时钟芯片的正常工作。当VCC2小于VCC1时,由VCC1保证芯片的持续工作。为了使系统正常工作我们使用+5V电压为VCC2引脚供电当系统断电时由VCC1端的3V电子电池供电,保证其时钟信息准确。时钟模块如图3所示:

图3 时钟模块

时钟芯片的参数说明如表1所示,除表中所列,DS1302时钟芯片可自动调整每月天数及闰年的天数。

表1 DS1302参数说明

2.5 时钟数据处理模块

2.5.1 数据采集模块

系统在进行数据读取时,为了确保数据的读取需现将RST端置高,通过单片机的P1.4口将地址最低位传送到DS1302的I/0口上,在检测到一个上升沿的信号时将所需的时间参数送入DS1302,然后在检测到一个下降沿的信号时通过DS1302的I/ O口将时间信息传送到单片机的P1.4口,以此来完成对DS1302时间信息的读取;同样的当数据写进DS1302时在电平的上升沿将地址信息从低到高以此发送到I/O口上,在发送完地址信息后将你需要的初始信息写入DS1302中。

2.5.2 数据转换模块

由于存储在时钟芯片内的数据类型为BCD码形式,因此在液晶屏上显示时间参数之前需要将数据类型转换成十进制。本次设计的功能系统,首先将需要读取的时钟信息的地址传送到时钟芯片DS1302中,之后读取DS1302时间参数时将时间信息通过DS1302芯片的I/0口传输到单片机的P1.4引脚,P1.4口将收到的时间参数通过转换将BCD码转换成十进制在LCD12864上进行显示。

3 软件设计

3.1 程序设计思想

电子时钟的功能设计是通过各个模块的子程序的控制完成的,先分别对模块进行程序的设计、编程与程序的调试,然后将硬件与软件协同起来,最后在主函数中通过对子程序的调用实现系统功能,这样有利于程序的修改与调试,同时使得软件功能的完成更加便利,同时使得书写的程序能够更好的适用与其他场合。

3.2 程序设计流程

程序运行后先分别对模块进行初始化,调用模块初始化函数进行初始化操作,初始化后调用温湿度函数对温湿度参数进行读取,然后运行DS1302时钟芯片的程序将时间参数读出,并将相应的阳历转换为农历日期,然后分别对农历、阳历日期进行显示,最后对时分秒进行显示。在此过程中不断运行键盘扫描程序,如检测到按下设置键则进入设置界面,并通过键盘扫描程序判断是加键还是减键按下对时间进行修改,并不断判断设置键是否再次按下,若按下则光标转到下一个时间参数上对此时间参数进行相应修改。全部时间参数设置完毕后进行闹钟时间的修改,具体操作与修改时间的操作相似,最后判断是否开启闹钟,若闹钟开启则到达设定时间后调用蜂鸣器报警部分程序,报警过程中检测是否有按键按下,若有任一按键按下则闹钟停止报警。同时检测是否按下与语音模块相关的按键,若该按键按下,则调用语音模块程序进行工作,对时间星期等参数进行语音播报。

4 总结

本文设计的电子时钟主要采用了STC89C52单片机的最小系统,软件方面主要用来设计DS1302时间读写程序,阳历转农历程序等功能,系统程序的编写则需借用Keil进行软件的编写,程序编写完成后使用下载线将程序执行后生成的.Hex文件下载到单片机的STC89C2芯片上运行实现系统功能。

[1]陆遥.传感器技术的研究现状与发展前景[J].科技信息,2009(19)

[2]冉秦翠,蒲利春,彭厚德,汪海军.多功能电子时钟[J].物理实验,2014,04:36-41

[3]张玲玲.基于51单片机的LCD12864程序设计[J].中小企业管理与科技(中旬刊),2015,05:231-232

猜你喜欢

晶振温湿度时钟
文物展柜内环境温湿度的调控与监测
蛋鸡育雏育成舍环境控制技术
车载通讯终端PCB晶振辐射骚扰的研究与整改
古代的时钟
晶振电路负载参数匹配与测试
温湿度计检定校准注意事项
这个时钟一根针
扫频法测量32kHz晶振参数
基于DSP和μcos的温湿度检测系统的设计
有趣的时钟