温度无线采集系统

更新时间:2024-04-09 19:06:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

温度数据无线传输系统

摘要

本课题主要介绍AT89C51单片机与DS18B20数字温度传感器的多点温度测量系统。该系统利用AT89C51单片机分别采集各个温度点的温度,实现温度显示、报警等功能。该系统具有硬件组成简单、多点温度检测、读数方便、精度高、测温范围广等特点。在实际生活中得到了广泛的运用。它以AT89C51单片机为主控制芯片,采用数字温度传感器DS18B20实现多点温度检测。检测精度可以达到0.5°C。该系统采用了 nRF905为无线传输芯片。液晶为显示模块。能形象直观的显示出各个点的温度。

关键词:数字温度传感器、AT89C51、温度采集。

1 绪论

1.1 课题的背景和来源

无线通信在野外机动设备或人们不方便到达的现场的地方得到了越来越广泛的应用,如高空或者边远地区的无人气象探测、交通运输管理、野战军事装备、野外无人值守的采油井都是其典型应用。其中的微功率短距离无线通信技术,近几年来更得到了迅速发展。有很多厂商推出了各种专用芯片射频收发器。再加上微控制器和少量外围期间就可以构成专用或通用的无限通信模块。通常射频芯片采用GFSK(高斯频移键控)调制方式,通信模块包含简单同名的数据传输协议或使用简单的加密协议,这样,用户不必对无线通信原理和工作机制有较深的了解,只要一句命令字进行操作即可实现基本的数据无线传输功能。因无线通信模块具有功率小、开发简单快速的有点,从而在工业和民用等领域得到了广泛应用。

随着电子技术以及应用需求的发展,单片机技术得到了迅速的发展。在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。伴随着科学技术的发展,电子技术有了更高的飞跃,我们现在完全可以运用单片机来代替人工测量,这样即省时又省力。已经农业生产中,经常要用到温度检测以及控制,传统的测温原件有热电偶和热电阻。而热电偶和热电阻测出的一般是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。1.2 课题内容及研究方向

本课题所研究的多点温度无线测量系统是短距离无线通信技术在

温度测量方面的具体应用。该系统属于无线通信系统,因此也需要对数据可靠性进行研究。主要研究内容如下: 1) 由于本文章采用了数字式温度传感器,在硬件电路和软件

程序设计时,一定要增加抗干扰措施,提高系统的抗干扰能力,保证系统的稳定;

2) 在硬件设计时,结构要尽量简单使用、易于实现,应尽量

使用各种总线技术,以节约系统有限的I/O资源,并使系统电路尽量简单;

3) 软件设计必须要有完善的思路,要充分考虑到各传感器和

无限收发器的时序,做到程序简单,调试方便;

4) 通过软件设计,尽量降低无线传输的误码率

2 系统方案设计

2.1 方案设计

方案一:该方案由单片机、模拟温度传感器AD590、运算放大器、AD转换器、液晶显示电路、集成功率放大器。 本方案采用模拟温度传感器AD590作为测温元件,传感器将检测的温度变化转换成相应的电流变化,再通过电路转化成电压的变化,使用元放大器将信号放大,最后通过AD转换器转换成数字信号传送给单片机。单片机将AD传送过来的信号处理之后用液晶显示。

单 模拟温度传感器 运算放大器 AD转换 片 机 液晶显示模块

图2.1 方案一温度采集系统方案流程图

方案二:该方案采用了AT89C51单片机为控制核心,以智能温度传感器DS18B20为温度测量传感器,液晶显示电路、nRF无线传输模块、采用多个温度传感器进行多点温度采集。

DS18B20 单片机 无线模块 无线模块 单片机 液晶显示模块

图2.2 方案二温度采集系统方案流程图

2.2 方案比较

方案一采用模拟温度传感器,转换过程需要运用运放和AD转换然后才能传给处理器,它虽然控制简单,但是电路复杂,不容易实现多点温度监控。由于运用多个分立原件和AD转换器,容易出现较大数据偏差。因此此方案不可取。

方案二采用的是智能温度传感器DS18B20,它能直接输出数字量,精度高,电路简单,采用单总线控制,只需要控制DS18B20的时序就能读取其检测温度。因此采用此方案。这个方案因为电路简单,所以程序方面会相对复杂,但是通过我们学过的C语言编程,相信自己能完成这个任务。

3 硬件设计

对于多点无线温度采集系统来说,整个系统由数据采集端和数据接收端组成,两者通过无线信道通信。数据采集端负责数据的采集和发送,数据接收端负责数据的接收与处理,并送给显示模块显示。系统整体结构框图如图3.1所示。

DS18B20 单片机 无线模块 无线模块 单片机 显示模块

图3.1 方案二温度采集系统方案流程图

数据采集端由温度传感器,单片机,无线模块构成。温度传感器将检测到的数字信号由单片机编码由无线模块打包发出。

数据接收端由无线模块,单片机,显示模块组成。数据接收收进行解码,然后将解出来的数据送至显示模块显示出来。

系统硬件实现简单,温度传感器使用DS18B20,无线模块采用nRF905,单片机选用AT89C51。 3.1 AT89C51简介

3.1.1 单片机工作原理

AT89C51是一种带4K字节FLASH储存器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只

读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 1. 主要特性

·与MCS-51 兼容

·4K字节可编程FLASH存储器 ·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24MHz ·三级程序存储器锁定 ·128×8位内部RAM ·32可编程I/O线

·两个16位定时器/计数器 ·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路 2.管脚说明

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲

器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 3.1.2 AT89C51的晶振与复位电路 (1)振荡特性:

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

89C51的时钟是有两种方式,一种是片内时钟振荡方式,需要在18和19脚外界石英晶体和振荡电容,振荡电容的取值一般为10-30pF。另外一种是外部时钟方式,即将XTAL1接外部时钟,XTAL2脚悬空,因为使用外部时钟不太方便,这里我们选择片内时钟振荡方式,如图3.2所示

图3.2 晶体振荡管脚图

当时钟电路起振后,产生一定频率的时钟信号,单片机的CPU在时钟信号的控制下能一步一步完成自己的工作。 振荡周期:单片机外接石英晶体振荡器的周期。

状态周期:单片机完成一个最基本动作所需的时间轴其。

机器周期:单片机完成一次完整具有一定功能的动作所需的时间周期。

指令周期:执行完某条指令所需要的时间周期,一般需要1~4个机器周期。

(2)89C51复位方式

实现复位操作,必须使RST引脚(9)保持两个机器周期以上的高电平。例如,若时钟频率为12MHz,每个机器周期为1us,则需要保持2us以上时间的高电平。复位有两种方式:上电复位和按钮复位。如图3.3所示

图3.3 上电复位与按钮复位。

3.2 DS18B20数字温度传感器简介

DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20每个都具有一个唯一64位器件识别码,这样可以使多个DS18B20挂在同一条单总线系统上,并由一个微处理器来控制这些分布在一个较大区域内的很多DS18B20。因此,可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 3.2.1 DS18B20外形与引脚

图3.3 DS18B20外形以及引脚排列

引脚说明: GND -地 DQ VDD -数据I/O 可选VDD,当工作与寄生电源时,该引脚接地。 3.2.2 DS18B20技术性能描述

1)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

2)测温范围 -55℃~+125℃,固有测温分辨率0.5℃。 3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。 4)工作电源: 3~5V/DC

5)在使用中不需要任何外围元件

6) 测量结果以9~12位数字量方式串行传送 7)不锈钢保护管直径 8)适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温

9) 标准安装螺纹 M10X1, M12X1.5, G1/2”任选

10)PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。

3.2.3 DS18B20工作原理与内部结构

用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55℃的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,

表明所测温度大于-55℃。 同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到 0,如果门周期仍未结束,将重复这一过程。 斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。 DS1820 内部对此计算的结果可提供 0.5℃的分辨力。温度以 16bit 带符号位扩展的二进制补码形式读出,表 1 给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS1820 测温范围-55℃~+125℃,以 0.5℃递增。如用于华氏温度,必须要用一个转换因子查找表。最高有效(符号)位被复制充满存储器中两字节温度寄存器的高 MSB 位,由这种“符号位扩展”产生出了示于表 1 的 16bit 温度读数。 可用下述方法获得更高的分辨力。首先,读取温度值,将 0.5℃位(LSB)从读取的值中截去,这个值叫做 TEMP_READ。然后读取计数器中剩余的值,这个值是门周期结束后保留下来的值(COUNT_REMAIN)。最后,我们用到在这个温度下每度的计数值(COUNT_PER_C)。用户可以用下面的公式计算实际温度值:

图3.4 DS18B20温度计算公式

(1)DS18B20 内部结构图

DS18B20的内部结构框图如图3.5所示,64位ROM存储器件独一无二的序列号。暂存器包含两个字节(0和1字节)的温度寄存器,用于存储温度触感的数字输出。暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存器(2和3字节)、和一字节的配置寄存器(4字节),使用者可以通过配置寄存器来设置温度转换的精度。暂存器的5、6和7字节器件内部保留使用。 第八字节含有循环冗余校验(CRC)。使用寄生电源时,DS18B20不需要提供额外的供电电源;当总线为高电平时,功率由单总线上的上啦电阻通过DQ引脚提供;高电平总线信号同时也向内部电容CPP充电,CPP在总线低电平时为器件供电。

图3.5 DS18B20内部结构框图

(2)DS18B20的命令序列 ·初始化

·ROM命令跟随着需要交换的数据 ·功能命令跟随着需要交换的数据

访问DS18B20必须严格遵守这一命令序列,如果丢失任何一步或序列混乱,DS18B20都不会响应微处理器。 a.初始化

DS18B20所有的数据交换都又一个初始化序列开始。由主机发出的复位脉冲和跟在其后的由DS18B20发出的应答脉冲构成。当DS18B20发出响应主机的应答脉冲时,即向主机表明它已处在总线上并准备工作。 b.ROM命令:

ROM命令通过每个期间64-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。每个ROM命令都是8bit长。 C.功能命令:

主机通过功能命令对DS18B20进行读写Scratchpad存储器,或者启动温度转换。

3.2.4 DS18B20在单片机系统中的应用

图3.6是使用单片机来访问多个单总线器件DS18B20温度传感器的电路图。

图3.6 DS18B20在单片机系统中的应用

/********ds18b20********/ void fuwei() //复位 {

DQ=0;

delay(80); DQ=1;

delay(8); x=DQ;

delay(4); }

void dsxie(uchar dat) //DS18b20写。 {

uchar i;

for(i=0;i<8;i++) {

DQ=0;

DQ=dat & 0x01; delay(4); DQ=1; dat>>=1; }

delay(4); }

uchar dsdu() //DS18b20读 {

uchar val,i;

for(i=0;i<8;i++) {

DQ=0; val>>=1; DQ=1; if(DQ)

val|=0x80; delay(4); }

return val; }

uchar ds18b20() //DS18b20 启动 {

uchar a,b; fuwei();

dsxie(0xcc); dsxie(0x44);

fuwei();

dsxie(0xcc); dsxie(0xbe); a=dsdu(); b=dsdu(); b<<=4;

b+=(a&0xf0)>>4;

return b; }

3.3 nRF905概述

nRF905单片无线收发器是挪威Nordic公司推出的单片射频发射器芯片,工作电压为1.9-3.6V,32引脚QFN封装(5mm×5mm),工作于433/868/915MHz3个ISM频道(可以免费使用)。nRF905单片无线收发器工作由一个完全集成的频率调制器,一个带解调器的接收器,一个功率放大器,一个晶体震荡器和一个调节器组成。nRF905可以自动完成处理字头和CRC(循环冗余码校验)的工作,可由片内硬件自动完成曼彻斯特编码/解码,使用SPI接口与微控制器通信,配置非常方便,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,在接收模式时电流为12.5mA。易于实现功率管理。由于它收发可靠,使用方便,所以在工业控制,消费电子等各领域都具有广阔的应用前景。

nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器和功率放大器等模块,曼彻斯特编码/解码由片内硬件完成,用户无须对数据进行曼彻斯特编码,因此,使用非常方便。nRF905的内部结构图如图3.7所示

图3.7 nRF905的内部结构

3.3.1 工作模式

nRF905 有两种工作模式和两种节能模式 。两种工作模式分别是 ShockBurstTM 接收模式和 ShockBurstT M发送模式,两种节能模式分别是关机模式和空闲模式。nRF905 的工作模式由 TRX_CETX_EN和PWR_UP三个引脚决定,详见图3.8。

图3.8

ShockBurstTM 模式

与射频数据包有关的高速信号处理都在nRF905片内进行,数据速率由微控制器配置的 SPI 接口决定,数据在微控制器中低速处理,但在nRF905中高速发送,因此中间有很长时间的空闲,这很有利于节能 。由于nRF905工作于 ShockBurstTM 模式,因此使用低速的微控制器也能得到很高的射频数据发射速率。在ShockBurstTM 接收模式下,当一个包含正确地址和数据的数据包被接收到后,地址匹配 (AM) 和数据准备好 (DR) 两引脚通知微控制器 。 在 ShockBurstTM 发送模式 , nRF905自动产生字头和 CRC 校验码 ,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。由以上分析可知, nRF905 nRF905 nRF905 nRF905 的 ShockBurstT M收发模式有利于节约存储器和微控制器资源,同时也减小了编写程序的时间。下面具体详细分析nRF905的发送流程和接收流程。 (1)发送流程

典型的nRF905发送流程分以下几步:

A. 当微控制器有数据要发送时,通过 SPI 接口,按时序把接收机的地址和要发送的数据传送给nRF905,SPI 接口的速率在通信协议和器件配置时确定;

B. 微控制器置高 TRX_CE 和 TX_EN ,激发nRF905的ShockBurstTM 发送模式;

C. nRF905的 ShockBurstTM 发送:

·射频寄存器自动开启;

·数据打包 ( 加字头和 CRC 校验码 ) ; · 发送数据包;

· 当数据发送完成,数据准备好引脚被置高;

D. AUTO_RETRAN 被置高,nRF905不断重发,直到 TRX_CE 被置低; E. 当 TRX_CE 被置低, nRF905发送过程完成,自动进入空闲模式。 ShockBurstTM 工作模式保证,一旦发送数据的过程开始,无论 TRX_EN 和 TX_EN 引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。 Void TxPacket(void) {

TX_EN = 1; CSN = 0;

?? //写发送地址,后面跟4字节地址 CSN = 1;

_NOP_();_nop_(); CSN = 0;

?? //发送数据命令,后面跟三字节数据 CSN = 1;

_NOP_();_nop_();

TRX_CE = 1; //设置为发送模式; Dellay(50); //等待发送 TRX_CE = 0; While(!DR); }

(2)接收流程

A. 当TRX_CE为高、TX_EN为低时,nRF905进入ShockBurstTM接收模式;

B. 650us 后,nRF905不断监测,等待接收数据;

C. 当nRF905检测到同一频段的载波时,载波检测引脚被置高; D. 当接收到一个相匹配的地址,地址匹配引脚被置高;

E. 当一个正确的数据包接收完毕, nRF905自动移去字头、地址和 CRC 校验位,然后把数据准备好引脚置高

F. 微控制器把 TRX_CE 置低, nRF905进入空闲模式;

G. 微控制器通过 SPI 口,以一定的速率把数据移到微控制器内; H. 当所有的数据接收完毕,nRF905把数据准备好引脚和地址匹配引脚置低; I. nRF905此时可以进入 ShockBurstTM 接收模式、ShockBurstTM 发送模式或关机模式。当正在接收一个数据包时, TRX_CE 或 TX_EN 引脚的状态发生改变, nRF905立即把其工作模式改变 ,数据包则丢失 。 当微处理器接到地址匹配引脚的信号之后 , 其就知道nRF905

正在接收数据包 ,其可以决定是让nRF905继续接收该数据包还是进入另一个工作模式。 Void Rxpaeket(void) {

uchar i; i = 0; while(DR) {

TxRxBuffp[i]=SpiRead(); i++; }

3.3.3 应用电路

nRF401的应用电路如图3.9

图3.9

3.4 显示电路

显示模块采用了一块1602LCD为显示元件。外加一些电位器和排阻。 void lcdcom(uchar com) //写指令子程序 {

LCDRS=0; P0=com; delay(5);

LCDEN=1; delay(5); LCDEN=0; }

void lcddat(uchar dat) //写数据子程序 {

LCDRS=1; P0=dat; delay(5); LCDEN=1; delay(5); LCDEN=0; }

void DisPlay() {

uchar num;

LCDRW=0; //RW=1为读,RW=0为写。 lcdcom(0x38); lcdcom(0x0e); lcdcom(0x06); lcdcom(0x80+0x03); for(num=0;num<3;num++) {

lcddat(table[num]); delay(10); }

lcdcom(0x80+0x45); for(num=0;num<2;num++) {

lcddat(table1[num]); delay(10); } }

四 系统软件设计

本系统的软件部分采用C51变成,在Keil环境下运行。Keil软件是标准的51单片机集成开发环境。即可以实现软件编译,也可以配合方针模块实现硬件仿真。 4.1 系统整体软件框图

编程时候需要有清晰的设计思路,系统软件流程图如图4.1所示:

温度采集 无线发送模块 无线接收模块 显示模块

图4.1

4.2 多点温度的巡回测量

开关K1打开,将T断开处街上。由于已经在上面获取了多个DS18B20的ROM代码并在89C51单片机内部的EEPROM中建立了测量位置和传感器64位ROM代码之间的关系表,因此对多个温度的巡回测量的步骤如下

1) 发跳过ROM命令CCH

2) 启动所有在线DS18B20进行温度转换命令44H 3) 延迟1s

4) 发送匹配ROM命令55H

5) 按照EEPROM中建立的关系表取出64为ROM代码发送到单总

线。

6) 发送读温度命令BEH,读取温度值。

7) 进行CRC效验和数据处理后送至液晶显示。 流程图:

初始化 设置18b20个数 跳过ROM 匹配ROM 等待1S 读存储器 初始化 存在缓冲区指针+1 初始化 否 B-1=0? 是

图4.2 多点温度测量流程图

4.3 显示流程图

液晶初始化 开启中断 取出编码 显示 送出编码 进行解码

图4.3

五 结论

在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获用是巨大的,在这个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作的信心,相信会对今后的学习工作有给重要的影响,而且大大提高了动手能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦,虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。

参考文献

[1]唐继贤《51单片机工程应用实例》

[2]郑启忠《数字温度传感器DS18B20及无线温度系统设计》

[3]李春杰《基于一种新型嵌入式系统芯片的无限数据采集系统的设计》

本文来源:https://www.bwwdw.com/article/te6r.html

Top