首页 理论教育 实践指南:15.2DS18B20温度测量与控制实验

实践指南:15.2DS18B20温度测量与控制实验

时间:2023-10-18 理论教育 版权反馈
【摘要】:DS18B20可以程序设定9~12位的分辨率,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20内部结构主要由4部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20温度测量与控制电路原理如图15-6所示。

实践指南:15.2DS18B20温度测量与控制实验

1.实验目的

(1)了解DS18B20温度传感器的工作原理。

(2)了解温度控制的基本原理。

(3)掌握一线总线接口的使用。

2.实验说明

(1)DALLAS单线数字温度传感器DS18B20简介 DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3~5.5V的电压范围,使系统设计更灵活、方便。

DS18B20测量温度范围为-55~125°C,在-10~85°C范围内,精度为±0.5°C。DS18B20可以程序设定9~12位的分辨率,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

DS18B20内部结构主要由4部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的引脚排列如图15-5所示。DQ为数字信号输入/输出端,GND为电源地,VCC为外接供电电源输入端(在寄生电源接线方式时接地)。978-7-111-50307-1-Chapter15-10.jpg

光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位是单线系列编码(DS18B20为28H),接着的48位是该图15-5 DS18B20引脚图DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例,用16位符号扩展的进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。DS18B20温度寄存器格式见表15-1。

表15-1 DS18B20温度寄存器格式

978-7-111-50307-1-Chapter15-11.jpg

这是12位转化后得到的12位数据,存储在DS18B20的两个8位的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。如125℃的数字输出为07D0H,10.125℃的数字输出为00A2H,-10.125℃的数字输出为FF5EH,-55℃的数字输出为FC90H。

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者用于存放高低温报警触发值TH和TL。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第1个字节的内容是温度的低8位;第2个字节是温度的高8位,第3、4个字节是TH、TL的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这3个字节的内容在每一次上电复位时被刷新;第6、7、8个字节用于内部计算;第9个字节是冗余检验字节。

该字节各位的意义如下:

978-7-111-50307-1-Chapter15-12.jpg

低5位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,见表15-2(DS18B20出厂时被设置为12位)。

根据DS18B20的通信协议,主机控制DS18B20完成温度转换必须经过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500μs,然后释放,DS18B20收到信号后等待16~60μs左右,后发出60~240μs的低电平,主CPU收到此信号表示复位成功。

表15-2 DS18B20分辨率设置表

978-7-111-50307-1-Chapter15-13.jpg(www.xing528.com)

(2)本实验在读取温度值的基础上,完成恒温控制实验。用加热电阻进行加热,采用自然冷却。温度值通过LED显示电路以十进制形式显示出来,单片机发出指令信号,继电器吸合,红色LED点亮,加热电阻开始加热。

3.实验电路图

本实验用到单片机最小应用系统模块、8位动态数码显示模块、7279阵列式键盘模块、DS18B20温度控制模块。DS18B20温度测量与控制电路原理如图15-6所示。

978-7-111-50307-1-Chapter15-14.jpg

图15-6 温度测量与控制实验原理图

4.实验内容及步骤

(1)把7279阵列式键盘J9的4只短路帽打在上方,J10打在VCC处,用8P排线将7279阵列式键盘模块的JD7、JD8和8位动态数码显示模块的JD11、JD12分别连,单片机最小应用系数模块的P1.0、P1.4分别接DS18B20温度控制模块的OUT、CONTROL。

(2)全速运行程序,程序正常运行后,数码管显示十进制温度测量值(XX.X)。如温度未达到设定值(49℃)则开始加热,LED灯亮,温度也随着变化,当加热达到温度设定值(50.5℃)则停止加热,LED灯灭。

5.程序框图及源程序

(1)程序框图 温度测量与控制实验程序框图如图15-7所示。

978-7-111-50307-1-Chapter15-15.jpg

图15-7 温度测量与控制实验程序框图

(2)温度测量与控制实验程序

978-7-111-50307-1-Chapter15-16.jpg

978-7-111-50307-1-Chapter15-17.jpg

978-7-111-50307-1-Chapter15-18.jpg

978-7-111-50307-1-Chapter15-19.jpg

6.思考题

如何实现DS18B20多点测温?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈