摘要:为了远程监控实时温度数据,利用温度传感器DS18B20的特点,与AT89C51单片机构成实时温度检测系统,并通过LED数码管显示。利用无线传输模块SRWF-1的特点,与单片机构成数据传输部分,将所测量的温度无线传输发送给上位机。给出了DS18B20,SRWF-1分别和AT89-C51所构成系统的应用电路和部分程序。通过无线模块的引入,能较好地实现远程温度检测系统。
0 引言
随着数字化脚步的加快,越来越多的数字化产品取代了原有的机械式仪表,从而大大提高了数据的准确率。然而,多数情况下,温度的采集过程只在现场实时显示,在增加了工作量的同时,也可能会造成很多不便,如进入危险区域。因此,将无线网络应用在工业生产中,不仅能大大提高工作效率,同时也在一定程度上降低了劳动强度。
本设计基于以上两点,将工业生产中常用到的温度进行数字化,并通过无线模块将数据发送出去,在接收方利用无线接收设备接收实时的数据,从而大大降低劳动强度。
1 系统组成
系统由单片机、温度传感器、串口通信模块和无线传输模块等几部分组成。测温系统将测得的温度通过单片机在数码管上实时显示,同时,通过串口通信部分和无线模块将数据发送给上位机。系统结构如图1所示。
该设计以Atmel公司生产的单片机AT89C51为核心,以数字温度传感器DS18B20作为温度采集,以SRWF-1无线模块作为无线数据传输,从而构成整体系统。
1.1 单片机系统
系统采用AT89C51作为核心控制,配备4位共阴极数码管显示电路。AT89C51是Atmel公司推出的一种低功耗、高性能CMOS 8位微处理器,具有8 KB系统可编程FLASH存储器;256 B RAM;32个I/O引脚,分为4个8位控制端口;看门狗定时器;2个数据指针;3个16位定时器/计数器;两级中断优先等级;可编程全双工串行传输端口;片内晶振及时钟电路;8个中断源。其性能完全能够满足系统要求。数码显示采用Ytt-410391K四位7段8线数码管,作为温度显示部分,并用最末一位显示小数。
1.2 数字温度传感器DS18B20
DS18B20是美国Dallas公司生产的一款可编程1-Wire数字温度计。具有精度高,全数字化,连线少等诸多优点。其可直接将采集到的温度转换成数字信号,通过单条数据线串行发送出去,只要严格遵循规定时序逻辑和脉冲间隔,就能舍去同步时钟信号线,做到通信期间引脚最少化,达到温度采集目的。
1.2.1 内部结构及外部管脚
数字式温度传感器DS18B20的内部结构如图2所示,其主要由四部分组成:64位ROM和单总线接口、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20 64位闪存ROM的开始8位是产品类型的编号,接着的48位为每个器件的惟一序号,最后8位是CRC校验码。用于存储用户设定温度上下限值的非易失性温度报警触发器TH和TL,使用时可通过软件写入、设定报警上下限值。DS18B20内部配有一个电可擦除的E2PROM,用于存储TH、TL值,数据先写入内部的高速暂存RAM,经校验后在传给E2PROM。RAM中的第5个字节为配置寄存器,用于确定温度值的数字转化分辨率。工作时按此寄存器中的分辨率将温度转化为相应精度的温度值。
DS18B20具有三引脚To-92小体积封装形式,如图3所示;温度测量范围为-55~+125℃,其工作电源既可在远端引入,也可使用寄生电源方式产生;CPU只需一根端口线就能与诸多DS18B20通信,由于其占用微处理器的端口较少,因此可节省大量的引线和逻辑电路。
DSB18B20各引脚介绍如下:GND为地;DQ为数据输入/输出端;VDD为外接供电电源输入端(在寄生电源接线方式时接地);NC为SOIC封装的,NC为空引脚。
1.2.2 工作原理
DS18B20内部的低温度系数振荡器能产生稳定的频率信号f0,而高温度系数振荡器则将被测温度转化成频率信号f。当计数器打开时,DS 18B20则对f0计数,计数器开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性给予补偿。其测量的结果将暂存在温度寄存器中,可使单片机方便的将温度读出。
DS18B20的核心是一个直接的数字化温度传感器,可将温度值按9 b,10 b,11 b,12 b分辨率进行量化,默认分辨率为12 b,对应的温度最小增量分别为0.5℃,0.25℃,0.125℃和0.062 5℃。当主机向DS18B20发出温度转化命令后,开始温度转换,检测的温度结果将存放在两个字节中,最低位LSB在前,最高位MSB为符号位。其数据格式如下:
其中,高位字节MSB的高5位为温度的符号位,当温度为正时,该5位为0,温度为负时,统一为1。高位字节MSB的低3位和低位字节LSB的高4位共同组成温度值的整数部分,低位字节LSB的低4位为小数位,采用二进制补码方式存储温度数据。例如,当温度为+125℃时,输出温度为07D0h;当温度为+85℃时,输出温度为0550h;当温度为+25.062 5℃时,输出温度为0191h;当温度为-10.125℃时,输出温度为FF5Eh;当温度为-55℃时,输出温度为FC90h。
1.2.3 硬件设计
将DS18B20的数据输入/输出端与单片机AT89C51的P3.7端口相连,并将温度值通过P1端口显示出来。硬件原理图如图4所示。