1.引言
随着社会的发展特别是工业的发展,人民生活的改善,安全问题变得更加重要。目前,在许多情况下,都需要对环境的温度进行限定,其中包括人的生活工作环境、仪器设备的工作环境以及动植物的生长环境等。
如果环境温度超过或低于限定值,必定对所处环境的人和设备造成影响,甚至给个人和社会造成巨大的损失。随着单片机技术的飞速发展,利用单片机设计温控系统成为控制技术发展的需要。本文提出了一种基于单片机的温度预警系统的设计方案,并采用PROTEUS进行了仿真。该系统不仅可以高精度的测量温度,同时对温度进行实时监控并做到超温报警,有较高的实用价值。
2.系统设计的总体方案
本设计方案总体框图如图1所示,它是由单片机、四路数据采集模块、集成功放模块、人机交互界面和系统电源等组成。
本设计系统以AT89C52单片机作为控制核心,数据采集部分由温度传感器DS18B20组成;人机交互界面为4×4矩阵键盘输入和LCD1602液晶显示,可以方便的输入数据和直观的显示。系统电源为+5V电源供电。软件部分采用C语言进行编程,实现了该设计的全部控制功能。该温度预警系统的测量范围为-55℃~+125℃。当检测的温度高于最高或最低温度设定值时,实现报警功能。
3.电路设计
3.1单片机
AT89S52单片机是ATMEL公司推出的高档型AT89S系列单片机中的增强型产品。AT89S52是一个低功耗、高性能CMOS8为单片机,片内含8K Bytes ISP的可反复擦写1000次的Flash只读程序存储器。期间采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
3.2温度采集电路
由单片机获取非电信号的温度信息,必须通过温度传感器。传统的温度测量多以热敏电阻作为温度传感器,但是,热敏电路可靠性较差,测量温度精度低,因此使用DS18B20温度传感器采集温度。DS18B20是美国达拉斯(Dallas)公司的单数字温度传感器芯片,DS18B20具有体积小,功耗低,抗干扰能力强,易于微处理器连接等特点,其测量范围-55℃~+125℃,最大分辨率为0.0625℃,在-25℃~+85℃范围内其测温标准度为±0.5℃。
DS18B20只有三个引脚,一个接地,一个接电源,一个数字输入/输出引脚,由于DS18B20采用单总线结构,本系统的四个温度传感器并联在三线上,数据输入/输出接单片机的P1.7口,电源与数字输入输出脚间需要接一个4.7K的电阻,实现多点组网功能。
3.3报警电路设计
本系统报警电路使用LM386作为报警器的功率放大器。LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。
LM386的输入端接单片机的P3.4引脚,输出端接扬声器,电路图如图2所示。当实际温度超过或低于设置的温度值时,单片机相应引脚输出一定频率的信号,信号经过音频功放放大之后,发出报警声。
3.4显示接口电路设计
系统采用液晶显示模块来显示4路温度采集值及温度设定值。本系统采用LCD12864液晶显示模块。LCD12864是一种具有4位/8位并行、2线或三线串行多接口方式,内部含有国际一级、二级简体中文字库的点阵图形液晶显示模块,其显示分辨率为128×64,可以显示8×4行16×16点阵的汉字。同时又具有低电压低功耗等特点。
在本系统,LCD12864的3个控制端RS(数据/命令选择端)、R/W(读/写选择端)、E(使能信号)分别连接单片机的P3.7、P3.0、P3.3,用来对LCD12864进行控制;LCD12864的8个数据端连接单片机的P0口,用来向LCD12864写入数据。液晶的第3引脚为液晶显示偏压信号,用来调节显示的对比度;第1、2引脚为液晶的电源接口;第19、20引脚是显示器背光灯的电源接口。
3.5键盘接口电路设计
键盘在单片机应用系统中能够实现向单片机输入数据、传送命令等功能,是人干预单片机的主要手段。本系统采用了4×4矩阵键盘实现对温度值和功能键的设定。四条行线接单片机P2口的高4位,四条列线接单片机P2口的低4位。初始化时键盘行线为高电平,列线为低电平。键盘的行线接4输入与门,4输入与门的输出接单片机的外部中断0引脚P3.2口。当有键按下时,将产生中断,在中断程序里对按键进行扫描,得到按键的键值。
3.6电源电路的设计
电源是整个系统的能量来源,它直接关系到系统能否运行。在本系统中单片机、液晶显示、报警等电路需要5V的电源,因此电路中选用稳压芯片7805,其最大输出电流为1.5A,能够满足系统的要求。
4.软件设计
主程序先对系统资源进行初始化,调用LCD显示子程序,然后进入键盘设置界面。
当设置键按下后,开始设置各点的温度,如果确认键按下,则系统开始工作。首先调用DS18B20初始化子程序,再发送ROM命令,读取DS18B20转换的温度值。当读取的温度大于设置的温度值时,报警器开始报警,LCD显示温度的实际值、设置值、路数、状态。
接下来对第二、三、四路温度进行采集,处理,显示。
5.系统PROTEUS仿真
Proteus软件是来自用过Labcenter Electronics公司,基于SPICEF5仿真引擎的很合电路仿真软件,是一款含有大量的系统资源、丰富的硬件接口电路,具有强大的调试功能和软硬件相结合的仿真系统。它很好地解决了硬件设计和软件调试的问题,不仅能够仿真模拟、数字电路以及模数混合电路,还能够仿真基于单片机的电子系统。本系统PROTEUS仿真图如图3所示。
6.结论
本方案以AT89C52为控制核心,DS18B20采集温度、LCD12864显示温度和LM3386驱动报警等设计了一款智能温度预报警系统,并通过PROTEUS仿真,得到了很好的效果,证实了本系统具有结构简单、功耗低、智能调节等优点。本系统可以应用于粮仓、工厂、浴室等场合,具有很强的实用价值。