APP下载

基于STC89C51的温测型多功能电子万年历设计

2016-09-28李荭娜杨添福吴宏亮

中国新技术新产品 2016年17期
关键词:公历温度传感器时钟

任 帅 李荭娜 杨添福 吴宏亮

(天津理工大学海运学院,天津 300384)

基于STC89C51的温测型多功能电子万年历设计

任帅 李荭娜 杨添福 吴宏亮

(天津理工大学海运学院,天津 300384)

本文介绍了基于STC89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块4部分组成。系统以STC89C51单片机为主控芯片;以串行时钟日历芯片DS1302作为时间信号源,可以完成对年、月、日、等进行计时的任务;选用DS18B20数字温度传感器进行温度采集。采用1602液晶显示模块可同时显示年、月、日等及温度信息。此万年历结合测温功能具有功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。

单片机;温度显示;万年历

时间的记录工具经历了不同的发展历史,从日晷,摆钟逐渐发展为今天的电子万年历。单片机的出现,使各个领域的思维方式也发生了剧烈转变,当然也应用到了电子万年历方面。结合单片机技术开发的多功能电子万年历功能多样,不仅可做为时钟工具具备传统的走时功能,更将许多常见的功能融入,如闹钟、温/湿度显示、语音报时、图片展示等,当然由于单片机强大的控制功能,还可在原有基础上扩展其他功能,并可朝智能家居的方向发展。

1.系统总体设计及其工作原理

图1所示为本设计的系统框图,选用单片机STC89C51。DS1302做为集成式时钟芯片提供数字时间信息;数字温度传感器DS18B20产生实时数字温度信息;按键模块用于校准时间;显示器LCD1602提供人机交互界面。

图 1 系统框图

图2  DS1302电路图

2.硬件电路设计

(1)DS1302时钟电路设计

DS1302是一款实时时钟芯片,可提供时间日期信息,如图2所示。DS1302与单片机采用SPI通信协议,此为串行方式,只需3根数据线即可完成通信。通过此协议,单片机可获取时钟芯片内部的年、月、日、时、分、秒等信息。另外DS1302还具备掉电走时功能,其拥有两个电源引脚,主电源和备份电源引脚,在主电源关闭情况下,备用电源持续供电,也能保持时钟的连续运行,当再次供电时,自动切换至主电源。

DS1302芯片的X1和X2引脚外接32.768kHz的晶体振荡器,用于产生内部时钟脉冲,脉冲驱动电路进经过滤波整形,可得标准的1Hz的精准信号,将标准的脉冲方波信号送实时时钟,即可将产生的时间信息以二进制形式通过数据总线存放到内部RAM中。

(2)DS18B20测温电路设计

DS18B20是美国Dallas公司生产的“1-Wire”单总线测温器件,图3为其引脚图,体积小,线路简单,不需额外的A/D转换器及外围元件,可直接读取温度数字值。测温范围-55℃~+125℃,可设置上下限温度告警。DS18B20内部有两个温度系数不同的晶体,外界温度发生变化时,两个晶体发生不同的反应,经过计数器的比对产生数字温度信息,然后存储在温度寄存器中。

DS18B20的核心功能为直接读取数字的温度传感器。温度传感器的精度可由用户编程设置为9,10,11或12位(精度的控制位在配置寄存器的R1和R0位),分别以0.5℃,0.25℃,0.125℃和0.0625℃增量递增。在上电状态下默认精度为12位。DS18B20启动后保持低功耗待机状态;当需要执行温度测量和AD转换时,微处理器通过总线控制器发出[44h]命令,然后DS18B20执行温度转换,产生的温度数据以两个字节的形式存储到高速暂存器的温度寄存器中,微处理器即可通过总线访问该温度寄存器,总线控制器在温度转换指令之后发起“读时序”,可获取该寄存器的数字温度信息。

(3)LCD1602显示电路设计

在LCD1602接口电路中,5脚为LCD1602的读/写选择端,本次设计中,并不需要从液晶显示器中读取信息,只需向液晶显示器发送数据显示,可将这个引脚设置为写状态,即低电平接地。6脚为使能端,每次操作液晶时必须保证其有效,操作完毕后为了保证显示稳定,再将其关闭。

D0~D7为液晶显示器的并行数据接口,可将其接到单片机的P0口,作为数据通信接口,P0口做为单片机的普通I/O口并没有内置上拉电阻,则需焊接4.7k的上拉电阻以保证正常使用;P2.5、P2.6、P2.7分别接1602的第4、5、6脚实现控制功能;BLK、BLA为液晶显示器背光的正、负极,若不需背光功能,可将两端悬空。液晶显示器的VL端接电阻分压,可进行对比度调节。16脚接三极管放大端,激活背光功能,背光点亮后延时一段时间自动关闭,从而降低功耗。

图3  DS18B20电路图

3.软件设计

主程序流程图如图4所示。该系统的软、硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来,有利于程序修改和调试,增强了程序的可移植性。

本系统的软件主要进行公历计算程序设计,温度测量程序设计,按键扫描输入等。程序开始后先将单片机初始化,运行温度测量程序,读取温度传感器的测量值;运行公历计算程序,得到公历时间、日期信息;再运行按键扫描程序,检测有无键按下:若无键按下则直接调用节日计算程序,根据得到的公历日期信息计算出节日,若有键按下则将按键修改后的变量更新,送节日计算程序,由此程序根据修改后的变量计算出对应的节假日,计算完成后运行显示程序,显示程序将得到的温度数据、公历信息、节假日信息送给对应的数码管显示。

图4 主程序流程图 

4.系统原理图及测试说明

图5为实际效果图。经测试,系统能正常运行。按键按所示位置,从左到右依次为K1、K2、K3、K4。对其作简要说明:

K1——切换键,K2——DOWN键,K3——UP键,K4——SET键。

K1:按下可显示不同的模式,待机页面为公历时间,第一次按下为农历时间,第二次按下为闹钟时间,再按一次回到待机界面。

K2:用于设置模式下对所选项的减操作。

K3:用于设置模式下对所选项的加操作。若处于非设置模式下,此键用于唤醒屏幕背光。

K4:用于时间日期的设定,按下后依次进入秒、分、时、日、月、年的设定。

在调试过程中出现了液晶屏幕不能显示的情况,经排查是对比度调节端连接错误。本设计共占用23个I/O口资源,其余9个I/O口,可进行二次开发,增加其他功能。

图5 实际效果图

结语

在整体设计过程中,硬件主要设计了STC89C51单片机的最小系统、DS1302接口电路、DS18B20接口电路及LCD显示电路;软件借助各个渠道资料,主要设计了阳历数据读取程序、阳历转阴历程序、温度采集程序以及LCD显示程序;通过单片机开发板进行系统调试,再借助于Keil、STC以及少许自己搭建的外围电路实现。在此过程中,分步调试时显示出阳历日期及时间,还有实时温度。此万年历具有显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

[1]谭浩强.C程序设计(第三版).北京:清华大学出版社,2007.

[2]郭天翔.新概念51单片机C语言教程:入门、提高、开发、拓展.北京:电子工业出版社,2009.

[3]冯博琴,吴宁.微型计算机原理与接口技术(第三版).北京:清华大学出版社,2013.

[4]万胜前.基于keilC51软件的的电子钟设计与制作[M].鄂州:鄂州大学出版社,2007.

[5]李陪金.C语言程序设计案例教程[M].西安:西安电子科技大学出版社,2008.

[6] M.I.Elmasry. BiCMOS Integrated Circuit Design with Analog Digitaland Smart Power Applications [M]. IEEE Press, 1994.

[7] Verghese G C, Lang H, Casey L F. Analysis of instability in electrical machines. IEEE Trans on IA, 1986.

This paper introduces the hardware structure and the software design method of the electronic calendar based on STC89C51 single-chip microcomputer. This design made up of four modules: the data display module, temperature acquisition module, time processing module and the settings module. This system use STC89C51 single-chip microcomputer as the controller,serial clock chip DS1302 to record the time, it can be for years, months, days, hours and etc. With DS18B20 temperature acquisition, the display unit(LCD1602) can show temperature at the same time. The functional is diversity, it has a broad market prospect.

single chip microcomputer;temperature;display calendar

TP216

A

天津市大学生创新创业训练计划项目(201610060058);天津理工大学大学生创新创业训练计划项目(201610060085)。

猜你喜欢

公历温度传感器时钟
别样的“时钟”
古代的时钟
双闰年是什么年
寒露
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
XTR105电流变送器在温度传感器中的应用
时钟会开“花”
温度传感器在笔记本电脑散热系统中的应用