王庆刚 张晋
(1.西南石油大学网络与信息化中心,四川成都 610500;2.西南石油大学电气信息学院,四川成都 610500)
随着社会和科技高速发展,人们工作的环境条件也在不断提高,环境的多变导致人们对工作环境的安全更为重视,尤其是一些存放重要设备的机房内,更是需要严加看护,而众多隐患中,火灾高温隐患对仪器设备的危害性最高,因此本文设计了一种基于单片机的机房温度预警系统,本系统应用Proteus进行仿真,易操作、实用性高,能够及时发现机房高温隐患,从而有效减少设备的损失。
本设计主要由52单片机,DS18B20温度传感器,数码管显示屏,蜂鸣器等组件构成:DS18B20用于采集温度数据并反馈,数码管显示屏用于显示温度数值,蜂鸣器用于产生报警信号,而控制操作这一切流程的程序,则被写入于52单片机内部芯片内。系统的总体流程图如图1。
52单片机对比于51类,不仅有51单片机的特性,更甚于说比51更为强大,单片机系统采用C语言编写,开发环境为Keiluvision4,AT89C52是拥有低电压高性能特点的CMOS 8位单片机,片内有8kb的反复可擦写只读程序存储器(ROM)以及256B的随机存储数据器(RAM),适用MCS-51指令以及51系列引脚,片内配8位中央处理器,FLASH存储单元也是一大亮点与特点。而实际进行设计组装时,选择了功能较为完整的52单片机开发板,易获得,易操作是其特点之一。开发板采用RC复位方式,总体程序写入后运行,如果出现程序跑飞,利用RESET按键即可复位。
对于温度信号的采集,本设计利用DS18B20温度传感器采集,其拥有体积小,功耗低,抗干扰的优点,其温度的测量范围为-55°C-+125°C,足以灵敏地对高温信号作出反应,DS18B20的三个引脚,一个接电源,一个接地,一个接数字输出/输入引脚。DS18B20拥有掉电保护的功能,后接JK触发器,与ADC0808 A/D转换芯片相连。ADC0808是含8位A/D 转换器、8路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,利用逐次逼近型的转换方法。ADC0808的精度为1/2LSB。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。经过ADC0808的信号交由单片机处理判断是否达到报警温度值。
图1 系统总体流程
图2 总体设计原理
对于温度显示,可以采用多位LED数码管动态显示或多位LED数码管静态显示,对于位数不多,温度要求不是特别精确的本题来说,可以采用多位LED数码管静态显示,采用这种方法时,有一优点就是LED显示器由接口芯片直接来驱动,利用串行输出的方式节约单片机的内部资源,小电流亦能提供高显示亮度,减少损耗与浪费。另外,74LS164用来实现串并转换,不需要其他的驱动电路,LED具有易控制,电路简单,高亮度,占CPU少等特点,无需太多接口资源,即可满足设计要求。
一般而言,报警装置选用蜂鸣器或者扬声器来使用,我们采用扬声器组件来作为报警装置,即由一个三极管,一片模拟四声讯响器,一片音频功率放大器LM386并配备一个扬声器(2w喇叭)。产生报警信号时,由单片机首先导通三极管然后驱动讯响器,由于输出信号功电流不够大,功率弱,所以通过功率放大器,通过12V下的大电流驱动扬声器,从而产生较大分贝的报警鸣响。如果需要更大的报警声响,可以接入外接设备来进行增益。
本设计中采用的单片机芯片,LED数码管显示以及报警用蜂鸣器等装置,需要电压不是很高,所以外置电源5V即可,可以利用可充电式电池做一个简易供电设备。总体设计原理图2。
图3 系统实现效果
软件设计部分主要是利用Keiluvision4环境进行编程,实现日常温度显示,高温产生信号反馈至芯片,判断是否达到预设危险高温值,再驱动蜂鸣器进行报警。系统的核心功能代码如下:
....
void main()
{
LcdInit(); //初始化LCD1602
LcdWriteCom(0x88); //写地址 80表示初始地址
LcdWriteData('C');
while(1)
{
LcdDisplay(Ds18b20ReadTemp());
// Delay1ms(1000);//1s钟刷一次
}
}
....
void LcdDisplay(int temp) //
{
unsigned char datas[] = {0, 0, 0, 0, 0};
float tp;
if(temp< 0)
{
LcdWriteCom(0x80);
LcdWriteData('-');
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
}
....
设计本身正常情况下,数码管显示的是正常室温,以便可以对照是否温度标准是否出现偏差,及时矫正。在设计过程中,经考虑仪器的高温承受程度,所以在程序内预设50度为报警温度,若在温度传感器接收到高于50度的温度信号,就会反馈至设备内部,迅速报警。在进行试验模拟高温情景时,利用多种热源进行试验,均可以引发温度报警且灵敏度没有受高温的影响,同时由于日常设备开启状态时不需要太多负载,所以设备本身的温度影响可以做到忽略不计。系统实现效果图如图3。
本文中基于52单片机系统设计的室内高温报警系统,成本较低廉,易于操作,由于实验室条件限制,所以暂时只能对温度进行报警而不能进行实时测量以及温度数据反馈,但是若对于一些要求偏低的室内,简单与快捷也就成了优点与特色。另外,以该系统为基础模板,可以根据实际应用需求直接进行相关方面的升级,可塑性比较大。在推进全社会工业自动化的今天,必将为我们的工作和生活提供便利。
[1]潘新民.微型计算机控制技术[M].电子工业出版社,2013.
[2]李大为.WINDOWS CE工程实践解析[M].中国电力出版社,2008.
[3]张毅刚,彭喜元,等.MCS-51单片机应用设计[M].哈尔滨工业大学出版社,2003.
[4]杨恢先,黄辉先,等.单片机原理及应用[M].人民邮电出版社,2006.