基于STC89C52单片机的可测温式电子万年历
扫描二维码
随时随地手机看文章
随着科技的发展,生活中电子万年历越来越普遍,功能也越来越多。根据人们的日常基本需求,设计一种电子万年历,可以实现测温、闹钟、秒表和语音报警等功能,为人们的日常生活提供舒适和便捷,具有重要的使用价值。
本文设计了一种基于单片机STC89C52 的可测温式电子万年历,能实时地将当前时间和周围的环境温度显示出来,并具有闹钟、秒表、语音报时的功能。万年历主要使用温度传感器DS18B20 采集温度信息,与单片机实现双向通信;时钟芯片DS1302 实现时钟,准确计时;并通过语音芯片完成整点报时和温度报警功能。该万年历电路结构简单,具有时间精确、抗干扰能力强、功耗低、可靠性高等优点。
该可测温式电子万年历主要由STC89C52、时钟芯片、温度采集、显示电路、语音报警等组成。按键可以实现显示内容的切换、时间的调整以及语音报警的设置。
1 硬件电路的设计
该可测温式电子万年历工作时,首先初始化时钟芯片,单片机从时钟芯片读取时间和日期等信息,同时又从温度传感器采集当前环境温度,经过驱动电路送给液晶显示屏,显示相关的信息。其中,按键可以对时间、日期、星期和温度进行调整,并控制闹钟和秒表的功能。万年历又加入了语音芯片,可以实现整点报时和温度报警的功能。
(1)时钟芯片DS1302
DS1302 在时间显示方面应用非常普遍,可以对年、月、日、周、时、分、秒进行计时,并且具有闰年补偿功能,工作电压为2.5V ~ 5.5V。采用三线接口与单片机进行同步通,并可采用突发方式一次传送多个字节的时钟信号或RAM 数据。DS1302内部有一个用于临时性放数据的RAM 寄存器,具有主电源和后备电源两个引脚,并且具有对后备电源进行电流充电的能力。DS1302 与单片机之间采用串行数据传输,控制液晶屏显示时间信息。
图1 DS1302 引脚图
DS1302 的引脚图如图1 所示, 其中VCC2 为主电源,Vcc1 为后备电源。在主电源关闭的情况下,也能保持时钟的连续运行。X1、X2 是振荡源,外接32.768kHz晶振。RST 是复位/ 片选线,通过把RST输入驱动置高电平来启动所有的数据传送。当RST 为高电平时,所有的数据传送被初始化,允许对DS1302 进行操作。如果在传送过程中RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在Vcc > 2.0V 之前,RST 必须保持低电平。只有在SCLK 为低电平时,才能将RST 置为高电平。I/O 为串行数据输入输出端( 双向) ;SCLK 为时钟输入端。
(2)温度传感器DS18B20
温度传感器DS18B20 直接与单片机连接,避免A/D模数转换模块,降低硬件成本,简化系统电路。DS18B20 的电压范围为:3.0 ~ 5.5V,在寄生电源方式下可由数据线供电,采用独特的单线接口方式。DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。测量温度的范围为- 55℃~+ 125℃之间,测温精度可以达到0.5℃。测量结果直接输出数字温度信号,串行传送给单片机的CPU,同时可传送CRC 校验码,具有极强的抗干扰纠错能力。
DS18B20 与单片机的连接方式有两种:寄生电源连接方式和外部电源连接方式。该可测温式电子万年历采用外部电源连接方式。连接方法即DS18B20 的1 脚接地,2 脚(DQ 引脚) 与单片机的一根I/O口线连接(P3.2 脚),3 脚接电源+5V。在STC89C52 的I/O 口线与+5V 之间连接一4.7K 的上拉电阻,以保证数据采集的正常进行。
(3)LCD1602 温度显示的设计
该室温报警装置液晶显示屏采用LCD1602,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
在单片机系统中应用晶液显示器作为输出器件有显示质量高、数字式接口体积小、重量轻、功耗低的优点。LCD1602 液晶模块内部的字符发生存储器(CGROM)已经存储了160 个不同的点阵字符图形,每一个字符都有一个固定的代码,与单片机连接后通过C 语言编程就可以工作。在正常工作状态下,电子万年历的设计连接图如图2 所示。
图2 LCD1620 与单片机的连线图
2 软件系统设计方案
该万年历的程序流程图如图3 所示,具体流程如下:首先,接通电源,上电工作,DS1302、DS18B20、LCD1602 进行初始化,通过单片机控制液晶屏显示“时分秒”、“温度”、“年月日”、“星期”,并伴随整点报时的功能;然后,进入功能设置,第一次按下按键K4 可以调整“时分秒”和“年月日”,此时K1、K2 和K3 分别对应时间和日期“加”、“减”和“移位选择”的功能,日期发生变化相应的“星期”也会跟着变化;第二次按下按键K4 可以设置闹钟的功能,此时K1、K2 和K3 分别对应时间和日期“关闭”、“开启”和“移位选择”的功能;第三次按下按键K4 可以设置秒表的功能,此时K1、K2 和K3 分别对应时间和日期“复位”、“暂停”和“计时”的功能;第四次按下按键K4 可以退出设置功能,因为该万年历加入了语音芯片,此时按下K2 键具有语音报时的功能。
由于DS18B20 具有温度采集检测的功能,所以液晶屏显示的温度会随着周围环境温度的变化而变化。该万年历设置有复位电路,连接一个按键K 可以自动实现复位功能。
图3 可测温式电子万年历程序流程图
3 调试和分析
待该可测温式电子万年历焊接和软件编程完成后,进入调试环节,将keil4 中C 语言程序生成的hex 文件烧入到STC89C52 芯片中,连接电源后将万年历放入模拟环境中进行系统调试,调试结果如图4 所示。液晶显示屏显示“时间”、“温度”、“日期”和“星期”信息,同时可以整点报时,如图4 中A 图所示。
图4 可测温式电子万年历调试结果图
第一次按下K4 进入时间和日期的设置,调试结果如图4 中B 图所示;第二次按下K4 进入闹钟的设置,“Y”为开启闹钟,“N”为关闭闹钟,调试结构如图4 中C图所示;第三次按下K4 进入秒表的设置,调试结构如图4 中D 图所示;第四次按下K4 退出功能设置,此时按下K2 具有语音报时功能。
4 总结
电子万年历在生活中日益普遍,该设计主要利用时钟芯片DSl302、温度传感器DS18B20 和液晶屏LCD1602 构建了一个可测温式万年历装置,电路结构简单,具有语音报时功能,适用于家庭生活,使用价值高,具有较好的应用前景。