DS18B20在空调检测系统温度采集模块中的应用

发布者:ph49635359最新更新时间:2013-11-30 来源: 21ic关键字:DS18B20  温度采集模块  AT89S52 手机看文章 扫描二维码
随时随地手机看文章
在空调生产过程中,为确保空调产品的质量,空调制造商在产品出厂前都必须对空调进行加热带、制热、制冷等环节的测试,通过标准机的电压、功率、输入管温、输出管温、回气温度、排气温度等参数判断空调是否合格,其中温度参数检测是整个空调检测系统的重要部分。

在传统的空调检测系统中,温度采集模块多以热电阻、热电偶为温度传感器,温度模拟信号必须经过专门的调理电路转换为数字信号后才能被单片机处理,使用一段时间后,系统检测到的温度值往往不够准确,同时由于温度采集点分布范围广,增加了布线难度,也给系统维护带来不便。

本文采用DS18B20数字温度传感器、AT89S52单片机,设计出适合空调检测现场的温度采集模块,实现现场16个采集点温度数据的同步采集和传输。

1 系统构成

空调检测系统温度采集模块的结构框图如图1所示。温度采集模块包括电源子模块、16路温度采集子模块、看门狗子模块、报警子模块、RS485接口子模块。微控制器采用Atmel公司的AT89S52,温度采集采用Dallas公司的数字温度传感器DS18B20。上位机采用研祥工控机,监控软件采用Visual Basic 6.0编程。

newmaker.com

温度采集模块电路板固定在每个工作站的控制柜里,并将现场采集到的各点温度值实时传送给上位机,因此,温度采集模块并没有集成LCM子模块和键盘电路。

2 硬件连接

2.1 DS18B20数字温度传感器

DS18B20数字温度传感器温度测量范围为-55 ℃~+125 ℃,在-10 ℃~+85 ℃范围内,精度为±0.5 ℃,可实现9 bit~12 bit温度读取。DS18B20具有一线总线的特点,可以轻松组建温度采集网络,并且体积小、分辨率高、抗干扰能力强,实用性和可靠性比同类产品更高[1],因此,在轴承测温[2]、冻土区公路路基温度测量[3]等场合有着广泛的应用。 [page]

DS18B20温度寄存器中的温度值以9 bit数据格式表示,而输出温度则是以16 bit符号扩展的二进制补码形式提供,其中低8 bit用补码表示,第9 bit~16 bit为扩展符号位。空调检测系统所需检测的温度值均在0 ℃以上,这样,只需读取缓存9个字节的前两个字节即可。

2.2 DS18B20硬件连接

DS18B20器件都有一个唯一的64 bit ROM地址,通过协议就能识别这些序列号,这样多个DS18B20可以挂接在同一条单总线上,构成多点温度采集网络。由于DS18B20具有“单总线”的技术特点,因此可以采用两种不同的方式连接单片机。

(1)单端口并联连接:所有DS18B20均连接在同一条总线上,然后再连接到单片机的某个I/O端口。这种连接方式具有硬件开销小的优点,理论上一根总线可以挂接256个DS18B20,但若连接的数字传感器数量较多,单片机需要花较多的时间才能获得每个传感器的序列号,会降低系统的实时性,同时使得软件编程变得复杂。

(2)多端口并行连接:每个DS18B20独占单片机某个I/O端口。这种并行连接方式使得单片机能够对所有的数字传感器进行并行操作,同一时间能实现多个输入输出,实现对温度数据的快速读取,从而提高系统的实时性,同时也使得软件编程变得简单,缩短了项目的开发周期。这种连接方式的缺点是硬件开销比较大。

根据空调检测系统的实际需要,系统使用16片DS18B20构成小型温度数据采集网络,结合单端口并联连接和多端口并行连接的连接特点,每个I/O端口连接两片DS18B20,共使用8个I/O端口,单片机与16片DS18B20连接框图如图2所示。DS18B20芯片的DQ端和单片机的I/O端口相连,并接上一个4.3 kΩ的上拉电阻,芯片的GND端接地线, VDD端接5 V电源线。AT89S52是一种低功耗、高性能CMOS 8 bit微控制器,具有8 KB Flash,256 B RAM,32 bit I/O口线,3个16 bit定时器/计数器,其资源性能可以满足空调检测系统温度采集的需要。

newmaker.com

单片机需要通过接口电路实现与DS18B20的连接,接口电路图如图3所示。J1是接线端子台, DS18B20通过三芯电缆连接到J1;二极管IN4148实现电压钳位;RWDS1和单片机AT89S52的一个I/O端口相连;16片DS18B20通过J1~J8与温度采集模块连接。

newmaker.com

3 程序设计

3.1 DS18B20温度采集

DS18B20温度采集基本流程:单片机发出复位脉冲,当信号线上的DS18B20发出存在脉冲后,即完成DS18B20的初始化工作;单片机检测到存在脉冲,便发起ROM操作命令;发送内存操作指令,启动DS18B20温度转换;延时2 μs等待温度转换完成;发出匹配ROM命令后紧接着发送片内ROM序列号;读取序列号对应的DS18B20暂存器,从而读出温度值;读完一个DS18B20温度值后,接着转向下一个DS18B20的操作。这样的操作循环进行,从而完成对所有DS18B20温度值的读取。温度采集基本流程图[1]如图4所示。 [page]

newmaker.com

DS18B20作为智能集成温度传感器,其智能化实现要以高质量代码作保障。因为读取每一个DS18B20都需要匹配序列号,复位、读、写操作都需要针对不同的I/O口,所以,16片DS18B20经单片机8个I/O口接入,需要定义对应8个I/O口的变量:18b20_0~18b20_7、18b20_0定义语句表示如下:“sbit 18b20_0=P1^0;”;需要定义8个复位(初始化)函数:void re18b20_0()~void re18b20_7();需要定义8个写函数:void wr18b20_0(uchar ml)~void wr18b20_7(uchar ml);需要定义8个读函数:void rd18b20_0()~void rd18b20_7()。对于单个I/O口(如P1.0),单片机在发送温度转换命令后,发送匹配命令wr18b20_0(0x55);连续调用8次写函数发送序列号;发送读温度暂存器命令wr18b20_0(0xbe);调用读函数rd18b20_0()读取温度低8 bit;经温度转换函数处理后,将温度整数部分保存在wd[0],小数部分保存到wd[1]。读取另外一片DS18B20,其温度值的整数和小数部分分别保存到wd[2]、wd[3]。读取P1.1端口,温度读取过程相同。所有传感器的温度值都保存到wd数组中,最后由单片机AT89S52按照Modbus协议发送给上位机。

3.2 程序编写需要注意以下几点

(1)单片机采用C51编程,代码功能模块清晰,可读性强。从本应用状况来看,其实时性能得到保证,因此,汇编语言不一定是最好的选择。

(2)空调检测系统所采集的温度均在0 ℃以上,并且上位机软件可以实现温度报警功能,因此,读函数读取RAM寄存器只需读取前两个字节。

(3)单片机和上位机软件通信采用Modbus协议的RTU模式,因此,温度转换函数实现的功能就是将温度低字节转化为十六进制数据,并保存到数组里。

4 应用分析

空调检测是在一个温湿度变化复杂、干扰源多的空调检测房里进行,空调检测系统包括1#~6#工作站,每个工作站均配有5台标准室内机。定频、变频一拖一、一拖多等机型的室外机由生产线运送到各站台,电源线、信号线等连接完毕后,即可扫描条码进行检测。检测过程中,上位机软件能实时检测温度、压力等参数,检测完毕,系统自动存储各种数据,如果参数不合格,则发出报警信号。

基于空调检测环境温湿度变化复杂的现场状况,数字温度传感器DS18B20需要采用不锈钢外壳封装,以达到防水防潮目的。DS18B20温度采集点主要分布在室内标准机的进风口、出风口和盘管。测量压缩机排气管温度时,不锈钢封装的DS18B20需要嵌入固定到金属夹里面,通过这样测量方式得到的是排气管表面温度,需要利用上位机软件进行必要的数据处理,才能得到排气管的实际温度。

上位机监控软件采用模块化设计,软件分为数据通信、数据采集、数据显示、数据管理、用户管理模块,并将各模块的实现代码封装成模块和类模块。需要注意的是:为了方便对DS18B20数字温度传感器进行安装、测试和维护,监控软件应该有针对连接温度传感器的I/O端口,以及I/O端口上的温度传感器的测试界面。

采用DS18B20的温度采集模块已应用到某大型空调生产厂的空调检测系统中,温度采集的准确性和实时性均满足系统的要求。数字温度传感器DS18B20和单片机AT89S52组成的温度采集模块,能同时满足成本和技术的要求,对组建多点温度采集网络具有一定的借鉴意义。

参考文献
[1] 周月霞,孙传友.DS18B20硬件连接及软件编程[J].传感器世界,2001(12):25-29.
[2] 张海传,吴晨霞,许东卫,等.低功耗轴承温度无线检测系统的设计[J].电子技术应用,2009,35(10).
[3] 何东坡,任贵波,韩春鹏,等.DS18B20在季冻土区公路路基温度场测量中的应用[J].电子技术应用,2010,36(4).
[4] 求是科技.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2004.(end)
关键字:DS18B20  温度采集模块  AT89S52 引用地址:DS18B20在空调检测系统温度采集模块中的应用

上一篇:基于ZigBee与51内核的射频无线传感器网络节点设计方案
下一篇:基于手机短信的温度报警控制系统设计

推荐阅读最新更新时间:2024-03-16 13:30

51单片机外围模块——DS18B20温度传感器
一. DS18B20简介 DS18B20数字温度传感器接线方便,封装后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 二. DS18B20的特点 适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 DS18B20支持多点组
[单片机]
51单片机外围模块——<font color='red'>DS18B20</font><font color='red'>温度</font>传感器
DS18B20温度传感器64位ROM地址读取(STC89C52)
最近在做一个温度监测系统,采用DS18B20数字温度传感器,要用到64位ROM地址匹配,在网上查了一些资料,编写了DS18b20的64位ROM地址读取的程序,LCD1602显示。分享给大家,有什么不足请大家留言。 程序代码: #include #define uchar unsigned char #define uint unsigned int sbit lcdrw = P1^1; //LCD 1602 读/写选择 H/L sbit lcdrs = P1^0; //LCD1602 数据/命令选择 H/L sbit lcden = P2^5; //LCD1602 使能 sbit ds = P2^2
[单片机]
DS18B20温度传感器 ------ 自学笔记
一、简介 DS18B20数字温度传感器接线方便,封装后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式。主要根据应用场合的不同而改变外观。具有耐磨,防高温,体积小,封装形式多样等特点。适用于各种狭小空间设备数字测温和控制领域。 二、DS18B20的特点 适用电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电(寄生电源:不是实际的电源器件,而是一种供电方式,即通过数据线供电) 独特的单线接口方式(一条总线),DS18B20在与微处理连接时仅需要一条线即可实现微处理器与DS18B20的双向通信。 DS18B20支持多点网络功能,多个DS18B20可以并联在唯一的三线上,实现网络多点测温。 DS18B20
[单片机]
<font color='red'>DS18B20</font><font color='red'>温度</font>传感器 ------ 自学笔记
基于AT89S52的ISD4004语音芯片使用
//以下程序可对ISD4004语音芯片进行录音也可放音 //使用89S52单片机,12M晶振 #include reg52.h #include 1602.h sbit ss=P0^0; sbit mosi=P0^1; sbit sclk=P0^2; sbit int0=P0^3; sbit rac=P0^4; sbit key_stop=P3^7;//停止键 sbit key_rec=P3^5;//录音键 sbit key_play=P3^6;//放音键 uint rec_hang;//录音所用去的行数 void display()//显
[单片机]
基于AT89S52的远距离照明控制无线遥控开关系统
1 系统设计方案 随着电子技术的不断发展, 无线技术在智能化中扮演着越来越重要的角色。本设计是一种能实现远距离照明控制的无线遥控开关系统, 由发射系统和接收系统两部分组成。系统使用无线收发模块构成射频发射和接收电路, 发射部分主要由按键编址电路、编码电路和发射模块组成; 接收部分主要由接收模块、单片机控制电路和负载电路组成。 发射系统采用1 节12 V 干电池供电, 接收系统采用3 节1.5 V 干电池供电, 单片机采用5 V 直流电源供电,电源系统节能、简便。 2 系统实现 2.1 元件选取及系统框图 考虑到系统的兼容性、实用性、低成本和节能性, 选用AT89S52 单片机, 用PT2262/2272 无线收发模块实现
[单片机]
基于<font color='red'>AT89S52</font>的远距离照明控制无线遥控开关系统
基于WinAVR的DS18B20源程序
#ifndef _DS18B20_C_ #define _DS18B20_C_ #define DQ_18B20 (1 3) // PD3 #define DQ_TO_0() (DDRD |= DQ_18B20) // PD3= 0 #define DQ_TO_1() (DDRD &= ~DQ_18B20) // PD3= float #define DQ_status() (PIND & DQ_18B20) // read PD3 pin #ifndef CPU_CRYSTAL #define CPU_CRYSTAL (11.0592) #endif #define wait_us(us) _delay_loop_
[单片机]
【蓝桥杯单片机组】DS18B20
DS18B20与单片机采用单总线连接方式,比赛中使用到的文件为提供的“onewire.c” 编程步骤: (1)初始化 (2)发送ROM操作命令,包括:Read ROM(读ROM) 、Match ROM(匹配ROM) 、Skip ROM(跳过ROM] 、Search ROM(搜索ROM) 、Alarm search(告警搜索) (3)发送储存器操作命令,包括:Write Scratchpad(写暂存存储器) 、Read Scratchpad(读暂存存储器) 、Copy Scratchpad(复制暂存存储器) 、Convert Temperature(温度变换) 、Recall EPROM(重新调出) 、Read P
[单片机]
一种基于DS18B20温度采集新方案
0 引言 温度监控系统在工业、农业和医疗领域拥有很大的应用价值和前景。随着计算机技术、测量技术和无线通信技术的发展,传统的人工监控由于存在很多缺点,正在逐渐被电子监控所代替。现有的一根I/O线上连接多个DS18B20的数据采集方法,在DS18B20接入系统之前,需要采用人工方式将DS18B20的64位ROM序列号逐一读出,并在单片机程序中或外部存储器中进行存储。这种方法给DS18B20物理位置的确定带来了困难,特别是当更换出现故障的DS18B20时,这个问题变得尤为突出。 因此,本课题通过采用软件编程与硬件设计相结合的方式,解决了在AVR单片机与DS18B20结合的测温系统中数字传感器的更换问题。在本课题提出的解决方案中
[测试测量]
一种基于<font color='red'>DS18B20</font>的<font color='red'>温度</font>采集新方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved