基于8051单片机温度采集及无线发送
扫描二维码
随时随地手机看文章
摘要:为了远程监控实时温度数据,利用温度传感器DS18B20的特点,与AT89C51单片机构成实时温度检测系统,并通过LED数码管显示。利用无线传输模块SRWF-1的特点,与单片机构成数据传输部分,将所测量的温度无线传输发送给上位机。给出了DS18B20,SRWF-1分别和AT89-C51所构成系统的应用电路和部分程序。通过无线模块的引入,能较好地实现远程温度检测系统。
关键词:8051单片机;DS18B20;温度采集;SRWF-1无线模块
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所示。
1.3 SRWF-1型无线数据模块
SRWF-1型微功率无线数传模块是上海桑锐电子科技有限公司自主开发的智能型产品,该产品支持1 200 b/s,2 400 b/s,4 800 b/s,9 600 b/s,19 200 b/s等多种接口波特率,也可根据需要提供其他非标准接口波特率。
SRWF-1型微功率无线数传模块具有最大10 dBm(10 mW)的微发射功率;可提供多种载频频率;高抗干扰能力和低误码率,可得到实际误码率为10-5~10-6;传输距离远,在视距下,可靠传输距离大于300 m;支持多信道,多速率,可根据需要扩展到16/32信道;双串口,三种接口方式;智能数据控制,无需编制多余程序,较大的数据缓冲区,可一次传输无限长度的数据;低功耗,接收电流小于20 mA,发射电流小于40 mA,休眠时电流仅为20μA;高可靠性,体积小,重量轻;两种接口收发等待时间,既能用于高速设备(如DSP系统)也可适用低速系统(如51系统);看门狗实时监控,使设备永不死机。
1.3.1 外形尺寸结构图
SRWF-1的外形结构如图5所示。
1.3.2 接口定义
SRWF-1提供1个9针的连接器(CON1),其定义基于终端的连接方法如表1所示。
1.3.3 接口参数
SRWF-1的左下角有一组5位的短路跳线(J1),分别定义为ABCDE,设跳线开路(不插短路器)为状态0,跳线短路(插入短路器)为状态1。其配置方法为:
(1)信道频率
J1的ABC三位跳线提供8种选择,可通过设置ABC的短接状态确定使用0~7号信道,只要在通信网中,ABC的跳线方式相同,就可以相互通信,其对应的频道如表2所示。
(2)接口方式选择
SRWF-1提供两个串口,COM1(CON1的Pin3,Pin4)固定为TTL电平的UART串行口;COM2(CON1的Pin6,Pin7)可通过J1的D位来选择接口方式:
D=1(不接短路器)
COM2=RS 485,RS 485的A/B口
D=0(接短路器)
COM2=RS 232,RS 232的TXD/RXD
J1的E位是用来选择校验方式的:
E=0(不插短路器)8E1/801 带一位校验位
E=1(插短路器)8N1 不带校验位
(3)波特率设定
SRWF-1模块提供1 200/2 400/4 800/9 600 b/s等接口波特率,波特率的设定可通过改变模块反面的焊盘跳线(J2~J4)的状态来确定。假设焊盘断开为0,短路为1,焊盘跳线J4~J2的状态和波特率对应关系如表3所示。
(4)接口方式选择
本设计与单片机串口相连,采用标准RS232接口方式连接,将短路跳线D短接,其示意图如图6所示。其他引脚可悬空不接,以免引入干扰。
选取3号信道,将短路跳线B,C短接,信号发送和接收频率为431.4588MHz,将两个SRWF-1模块均选取此设置,则两个无线模块即可相互通信。
根据本设计的需要,将SRWF-1的焊盘跳线J3,J2短接,从而得到波特率为9 600 b/s。
2 软件设计
2.1 程序流程图
系统的程序流程图如图7所示。
2.2 部分程序
DS18B20初始化程序:
3 结语
DS18B20以其简单、精度高、测温范围广而被广泛应用;8051单片机以其抗干扰强、可靠性强、容易上手等优点而广泛使用;加上SRWF-1的使用,使在温度采集过程中,可通过无线发送数据,方便使用,减少工作量。