广东省高级技工学校 朱小燕
超低功耗电子温度计的制作
广东省高级技工学校 朱小燕
以单片机(AT89S51)为控制核心,用温度传感器对温度进行实时采集,利用时钟芯片构成万年历,最后通过液晶显示屏把各项参数显示出来。外部设备的启停由温度的整定值来控制。时钟芯片可以准确显示年、月、日、时、分、秒,还可以设置闹铃。通过键盘可以方便的实现画面切换、各项参数的设置、唤醒等操作。
AT89S51;温度传感器;时钟芯片;MAX232CPE;液晶显示屏
系统可以分为温度采集部分、控制部分和显示部分。其中温度采集部分由数字式温度传感器构成。控制部分由通讯模块,时钟模块,外设驱动模块,键盘模块构成。显示部分由显示器构成。
本系统的单元电路包括:温度采集电路,键盘识别电路,液晶显示电路,时钟接口电路,外设驱动电路及串口通信电路。各部分紧密联系在一起形成了一套完善的低功耗温度采集控制系统。
温度检测模块我们采用单总线数字式温度传感器DS18B20,它不仅能直接输出串行数字信号,而且具有微型、低功耗、高性能、易于微处理器连接和抗干扰能力强等优点。DS18B20数字式温度传感器对于实测的温度提供了9-12位的数据和报警温度寄存器,它的测温范围为-55℃~+125℃,其中在-10℃~+85℃的范围内的测量精度为±0.5℃。由于每个DS18B20有唯一的一个连续64位的产品号,所以允许在一根电缆上连接多个传感器,以构成大型温度测控网络。DS18B20的①脚接地,②脚为一线式总线通过一个4.7K的上拉电阻接到单片机的P3.4口,③脚接电源。如图1所示。
图1 温度检测电路和键盘电路
图2 液晶显示电路和外设驱动电路
矩阵式键盘的行线和列线通过上拉电阻接电源(如图1所示),并将行线接在单片机的P0.4~P0.7引脚上作为输出端口,而列线接在P0.0~P0.3引脚上作为输入端口。如果行线输出低电平,那么一键按盘,输入线就会变成低电平,这样通过读输入线的状态就可知道是否有键盘输入了。
MS12864R LCD显示器采用单独+5V直流电源供电,可与单片机并口连接(如图2所示),使用REQ/BUSY握手通讯协议,通讯简单可靠。模块本身自带低电平复位的阻容复位电路,复位后可自动进行初始化设置,同时向用户提供一个复位引脚,也可由单片机进行软件复位或硬件复位。在显示器的电源和背光灯处各加一个PNP型三极管对电源进行管理,在不必要时可关闭电源,以便降低系统的能耗。
选用固态继电器来驱动交流220V的外部设备(如图2所示),固态继电器是无触点开关器件。单相固态继电器是四端有源器件,其中两个输入端为发光二极管,两个输出端为感光三极管,输入输出间通过光隔离,输入端加上直流或脉冲信号,其内部发光二极管就会发光,输出端的感光三极管就从断态转变成通态,当单片机采集到的温度达到一定范围时,单片机就会通过改变相应引脚的电位来驱动外设工作。
时钟接口芯片DS12RC887内部由振荡电路、分频电路、周期中断/方波选择电路、14字节时钟和控制单元、114字节用户非易失RAM、十进制/二进制累加器、总线接口电路、电源开关写保护单元和内部锂电池等部分组成,其硬件接口如图3所示。
图3 时钟接口电路
图4 主程序流程图
MOT引脚为时序模式选择,当与MS-51单片机连接时此引脚接低电平,选择INTEL时序。
AD0~AD7是双向地址/数据复用总线,接到AT89S51的P0或P2口,因为单片机的P0口接有矩阵键盘,所以不能接到此口,可以接到P2口通过片选信号线/CS来分时为LCD或DS12CR887使用。
AS引脚为地址选通输入,用于实现信号分离,在AD/ALE的下降沿把地址锁入DS12RC887。
DS引脚在MOT接低电平时为数据读输入(RD),可与单片机的/RD引脚相连。
R/W引脚在MOT接低电平时为数据写输入(WR),可与单片机的/WR引脚相连。
CS引脚为片选输入,在访问DS12RC887的总线周期内,片选信号必须保持为低。
RESET(复位输出):当该脚保持低电平时间大于200ms,保证DS12RC887有效复位。
本系统软件主要由系统初始化模块,键盘扫描识别模块,DS18B20温度采集模块,LCD显示器与实时时钟模块,外设驱动模块,串行通信模块和中断服务程序组成,工作流程如图4所示。
图5 键盘扫描识别流程图
3.2.1 系统初始化
系统通电后首要任务是要对MCU和外设进行初始化,包括单片机内部RAM空间的分配,各类外部中断、定时/计数器和串行口的初始化,温度传感器DS18B20的参数配置,LCD显示器的初始化等。
3.2.2 键盘扫描识别
通过键盘扫描来实现温度上限,下限的整定和系统时间的修改,LCD显示画面的切换和LCD电源及其背光的打开与关闭等功能,其具体工作流程如图5所示。
首先系统要进行键盘扫描来确定是否有按键输入,为了保证按键信号的可靠与稳定,系统要在第一次检测到按键信号后延时5~10mS以去除干扰信号,然后再进行扫描,如这时发现有键按下时就要进行按键识别,并通过跳转指令去执行相应的功能程序。
下面简单介绍一下键盘部分功能键的作用:
(1)在没有进行参数设置的情况下,每按一次“↑或↓”键便可切换LCD所显示的画面以便查看系统的其他信息。
(2)当按下“Setup”键时便可对系统的各类参数进行设置,如温度的上限,下限和整定时间等。
(3)在进行参数设置时按下“Cancel”键,可以取消各类参数的设置,在没有进行参数设置时按下该键可以关闭LCD和其背光电源。
(4)在进行参数设置时按下“Enter”键,可以保存各类参数的设置,在没有进行参数设置时按下该键可以打开LCD和其背光电源。
(5)数字键用于参数的设置,在没有进行参数设置时按下数字键是不起作用的。
测试的结果:
1)系统能检测的温度范围达到-10℃~+125℃,且能够通过键盘更改温度的设定值和设置报警温度;
2)分辨率达到±0.1℃;
3)空闲状态下整机功耗为40uA;
4)能正确显示时分秒,且在一天内的误差小于0.1秒,可以设置整定时间,对外设进行定时控制。
5.总结
本系统采用高精度,低功耗的外围电子元件,辅以AT89S51单片机为控制器,以“一线式”温度传感器DS18B20作为检测元件,完成了高分辨率、低功耗的电子温度计的制作。本系统能够正确显示当前的温度并能通过调整温度的设定值来控制外部设备的运行,而且还可以通过上位机来实时接收下位机采集到的温度数据并进行全面直观的显示和分析。整个系统结构简单,性能稳定,可靠性高。
[1]赵文博.常用集成电路速查手册[M].机械工业出版社,2010.3.
[2]李全利.单片机原理与应用[M].清华大学出版社,2011.10.
[3]王幸之.AT89系列单片机原理与接口技术[M].北京航空航天大学出版社,2004.5.
[4]谢志萍.传感器与检测技术[M].电子工业出版社,2004.8.
[5]21IC中国电子网[OL].www.21ic.com.