基于AT89S52的测温报警系统

发布时间:2010-3-30 16:58    发布者:我芯依旧
关键词: 报警系统 , 测温
1 前言

生产生活中,许多情况需要对环境的温度进行限定.例如人的生活工作环境、仪器设备的工作环境以及动植物的生长环境等。该装置利用AT89S52单片机以及DSl8820温度传感器的特点,对环境温度进行实时监控并实现越限报警。系统抗干扰性强、设计灵活方便,适合在恶劣的环境F进行温度测量。

2 系统硬件电路设计

系统硬件电路包括传感器数据采集、温度显示、模式选择、上下限报警主电路和无线报警电路等。整个装置的控制核心足AT89S52单片机。温度传感器DSl8820采用外部电源供电.传感器输出引脚直接和单片机相连。电路支持模式选择功能.可以选择设定报警极限值或显示当前温度值。当被测温度越限时,报警主电路产生声光报警.同时引发无线接受模块产生报警信号。拨动开关可以对设定报警极限值进行写保护。按健复位电路可实现手动复位。系统结构框图如图l所示。


图1测温报警系统结构框图

2.1温度采集电路设计

温度数据采集电路如图2所示。电路采用单总线接口方式,温度传感器DSl8820采集被控对象的实时温度并从单片机的P3.5口输入。R13为上拉电阻。电路采用数字信号输出可提高信号抗干扰能力和温度测量精度。电路上作电压使用范围为3.0~5.5V,采用外部供电方式。


图2温度采集电路

2.2温度显示电路设计

电路采用共阴极叫位一体LED数码管显示。P1.0~PI.7的输出信号和排阻接到数码管上进行显示。P3.0、P3.1和P3.2作为四个数码管的位选信号控制引脚直接接到741.5138译码器上。两个LED为上下限设定\报警指示灯。


图3显示模式选择电路

系统可实现显示模式选择功能.如网3所示。两个独立式按键可以分别进行模式选择和温度上下限值设定。按键l按动一下上限指示灯亮,进行上限温度设定.接着按动一下下限指示灯亮,进行下限温度没定,再按动一下进行当前温度显示。按键2为温度值设定键,温度值调整范围-40℃至+85℃。ATMEL24C16写保护端与一个拨动开关和指示灯相连.可以对设定的上下限数据值进行写保护。

2.3报警电路设计时间

系统的主报警电路由一个自我震荡型蜂鸣器和两个发光二极管(即显示电路中的上下限指示灯)组成,当前温度越限时,报警电路开始丁作,p3.7 口输出低电平,蜂鸣器蜂呜,报警指示灯指示是上限报警还是下限报警。PNP晶体管的基极加上一只限流电阻,防止晶体管因输入电流过大而损坏。主报警电路如图4所示。


图4主报警电路

系统报警电路中采用PT2262和FF2272可实现远程无线报警。当有报警信号产生时,无线接收模块接收后驱动蜂呜器蜂鸣。无线报警距离可达到100米。

3 系统软件设计

程序启动后,首先调用DSl8820模块初始化程序,然后调用温度采集模块。借用DSl8820内部模数转换的时间,调用温度值转换模块,将温度值转换成BCD码。送入AT89S52单片机处理,通过模式选择,完成温度的实时显示和越限报警。主程序流程图如图5所示。


图5系统主程序流程图

3.1DSl8820的相关处理子程序

3.1.1 DSl8820初始化子程序

DSl8820的使用必须遵循初始化到ROM操作命令到存储器操作命令的规定协议。每完成一次测温.要重新进行初始化。单片机先发一个复位脉冲.保持低电平时问最少480μs.最多不能超过960μs。然后。单片机释放总线,等待DSl8820的应答。DSl8820在接收到复位脉冲后等待15~60μs发出应答脉冲,应答脉冲持续60。240μs。

3.1.2 DSl8820写控制字子程序

当主机把数据线从逻辑高电平拉到逻辑低电平的时候,写时间开始。写一位数据最少需要60μs,曲个数据位之问最少有1μs的间隔。I/O总线拉低后,DSl8820在15μs后开始采样,如果线上是高电平,就写1,如果线上是低电平,就写0,写时间需要15—75μs,且在2次独立的写时问之间至少需要1μs的恢复时间。

3.1.3 DSl8820读出温度子程序

当主机把数据线从高电平拉到低电平时.读时间开始。读出温度子程序的主要功能是读出RAM中的9字节.在读出时需进行CRC校验。校验有错时不进行温度数据的改写。读时间需15—60μs,且在2次独立的读时间之间至少需要1μs的恢复时间。DSl8820在读时间开始15μs后开始采样总线电平。

3.1.4 DSl8820温度转换子程序

温度转换命令子程序主要是发温度转换开始命令。DSl8820用12位存贮温度值.最高位为符号位.低四位为小数.最高精度可达0.0625度。温度数据转换完成的任务是把用二进制表示的温度转换成1个字节的两位压缩BCD码。转换的方法有两种.一种是通过计算.另一种是通过查表,该装置设计方案采用前者。计算温度子程序温度读取值进行BCD码的转换运算,并进行温度值正负的判断。

3.2显示子程序

该装置采用动态扫描显示方式。系统定时器0的定时时间为50ms.每过250ms(5次中断)测一次温度,延时子程序主要供数码湿示程序调用,延时时间为0.5ms。字形码的输出采用P1口的P1.0-P1.7。单片机的P3口提供位选信息,P3.2、P3.1和P3.0分别与3-8译码器的CBA端相连.译码器输出Yl,Y2,Y3.Y4分别控制显示器的百位、十位、各位和百分位。当P3.2=1时,右起第一个数码管显示十分位数:当P3.1:1、P3.0=1时,右起第二个数码管显示个位数:P3.1=l时右起第三个数码管显示十位数:当P3.0=1时,右起第四个数码管显示百位数,如果温度值为负.则百位数显示负号.这样显示器循环点亮即可显示当前温度值.

3.3模式选择子程序

当按键按下时。P3.3或P3.4口为低电平.此时单片机进入模式选择和温度值设定程序。温度值设定范围为-40度至+85度。

当拨动开关拨动到使ATMEL24C16的WP口为高电平时。单片机将设定信息进行存储。

3.4报警子程序

程序将转换后的温度值自动存人存储器中.并与设定值TH或TL进行比较,当测量温度超出给定范同时,输出报警信号,并自动识别是高温超限还是低温超限。

4 结论

该装置以AT89S52单片机为核心.采用DS18B20为测温传感器.通过C语言开发了完整的软件程序.可在恶劣条件下实现单片机控制的温度采集、温度显示、越限报警等功能,无线报警距离可达100米。

本文作者创新点:
l、主机报警和分机无线报警.提高了安全性和实用性。
2、手动设置温度报警极限值.提高了方便性和可控性。


作者:董丽梅,王飞,王海松    来源:《微计算机信息》(嵌入式与SOC)2009年第25卷第4-2期
本文地址:https://www.eechina.com/thread-10012-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。

相关文章

您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • PIC18-Q71系列MCU概述
  • 了解一下Microchip强大的PIC18-Q24 MCU系列
  • 无线充电基础知识及应用培训教程3
  • 基于CEC1712实现的处理器SPI FLASH固件安全弹性方案培训教程
  • 贸泽电子(Mouser)专区

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表