我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 573|回复: 0

基于AT89S52的测温报警系统 - 工业/测控 - 电子工程师俱乐部

[复制链接]

该用户从未签到

1万

主题

1292

回帖

936

积分

管理员

积分
936

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-30 00:35:51 | 显示全部楼层 |阅读模式
<strong>1 前言</strong>

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

<strong>2 系统硬件电路设计</strong>

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


<ignore_js_op>





2010-3-30 16:58:23 上传
<strong>下载附件</strong> (3.37 KB)




</ignore_js_op>

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

2.1温度采集电路设计

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


<ignore_js_op>





2010-3-30 16:58:24 上传
<strong>下载附件</strong> (1.83 KB)




</ignore_js_op>

图2温度采集电路

2.2温度显示电路设计

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


<ignore_js_op>





2010-3-30 16:58:24 上传
<strong>下载附件</strong> (3.14 KB)




</ignore_js_op>

图3显示模式选择电路

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

2.3报警电路设计时间

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


<ignore_js_op>





2010-3-30 16:58:24 上传
<strong>下载附件</strong> (2.89 KB)




</ignore_js_op>

图4主报警电路

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

<strong>3 系统软件设计</strong>

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


<ignore_js_op>





2010-3-30 16:58:24 上传
<strong>下载附件</strong> (4.66 KB)




</ignore_js_op>

图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进行比较,当测量温度超出给定范同时,输出报警信号,并自动识别是高温超限还是低温超限。

<strong>4 结论</strong>

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

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


作者:董丽梅,王飞,王海松  来源:《微计算机信息》(嵌入式与SOC)2009年第25卷第4-2期
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表