首页 理论教育 基于DS18B20的温度监测系统拓展方案

基于DS18B20的温度监测系统拓展方案

时间:2023-06-28 理论教育 版权反馈
【摘要】:DS18B20是单线数字温度传感器,即“一线器件”。DS18B20的部分温度与数据的关系如表7-14所示。图7-50DS18B20外形及封装②引脚功能。DS18B20的初始化包括主机总线发出一个复位脉冲,由从机发送存在脉冲。图7-52DS18B20初始化时序具体要求如下。②数据线拉到高电平15~60μs,等待DS18B20作出反应拉低电平。图7-53DS18B20位写入时序·延时15μs。图7-55基于DS18B20的智能数字温度监测仿真电路3.程序设计参考预处理模块。DS18B20温度数据处理函数。

基于DS18B20的温度监测系统拓展方案

1.DS18B20温度传感器简介

(1)DS18B20的主要特性。

DS18B20是单线数字温度传感器,即“一线器件”。测量温度范围为-55~+125℃,精度为±0.5℃。可以通过程序设定9~12位的分辨率(出厂时设置为12位)。以12位分辨率为例,转换后12位数据在ROM中存放格式如表7-13所示。

表7-13 DS18B20温度数据格式(单位:℃)

表7-13中,二进制的前5位是符号位,如果测量温度为正,该5位为“0”;反之,该5位为“1”。

DS18B20的部分温度与数据的关系如表7-14所示。

表7-14 DS18B20温度与数据关系表

续表

(2)DS18B20的引脚结构及电路连接方式。

①引脚结构及封装形式。DS18B20采用单线传输,只有3个引脚,其外形、封装形式如图7-50所示。

图7-50 DS18B20外形及封装

②引脚功能。

·VDD电源引脚,3.0~5.5 V,DC。

·DQ:数字信号输入输出端。

·GND:接地。

③电路连接方式。DS18B20的实用参考电路如图7-51所示。

图7-51 DS18B20电路连接案例

(3)DS18B20的工作过程。

DS18B20的工作过程主要包括初始化、ROM操作命令、存储器操作命令、数据处理等过程,各过程需遵循相应的操作时序。

第一步:初始化。

DS18B20的初始化包括主机总线发出一个复位脉冲,由从机发送存在脉冲。其时序图如图7-52所示。

图7-52 DS18B20初始化时序

具体要求如下。

①数据线拉到低电平480μs。

②数据线拉到高电平15~60μs,等待DS18B20作出反应拉低电平。

③读数据线状态,如果在15~60μs时间内产生一个由DS18B20所返回的低电平“0”,则初始化成功,结束;否则等待,但不能无限等待,不然会进入死循环,需要进行超时判断。

④CPU读到了数据线上的低电平“0”后,延时至少480μs。

第二步:给出ROM操作命令。

DS18B20应用中常用的ROM操作命令有Read ROM、Match ROM、Skip ROM。

①Read ROM[33h]:允许主机读DS18B20的8位产品系列编号及8位的CRC[6]

每个DS18B20都有一个唯一的48位序列号,此命令只能在总线上仅有一个DS18B20的情况下使用。

②Match ROM[55h]:允许总线主机对多点总线上特定的DS18B20寻址。

③Skip ROM[CCh]:在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。

第三步:给出存储器操作命令。

常用的存储器操作命令有读暂存存储器命令和温度转换命令。

①读暂存存储器[BEh]:此命令读暂存存储器的内容。

②温度转换[44 h]:此命令开启温度转换。

第四步:数据处理。

从DS18B20读取的温度数据首先需进行正数、负数的判断,然后再进行数据处理。数据处理主要是位写入和位读取,需按照相应的时序进行。

①位写入时序。

位写入时序如图7-53所示。

具体要求如下。

·数据线先置低电平“0”。

图7-53 DS18B20位写入时序

·延时15μs。

·按从低位到高位的顺序发送数据,一次只发送一位。(www.xing528.com)

·延时60μs。

·将数据线拉到高电平。

·重复上述步骤,直到发送完整的字节,将数据线拉高。

②位读取时序。

位读取时序如图7-54所示。

图7-54 DS18B20位读取时序

具体要求如下。

·将数据线拉低“0”,延时1μs。

·将数据线拉高“1”,释放总线准备读数据。

·延时10μs。

·读数据线的状态得到1个状态位,并进行数据处理。

·延时45μs。

·重复上述步骤,直到读完一个字节。

2.仿真电路参考

基于DS18B20的数字温度监测仿真电路,如图7-55所示。

图7-55 基于DS18B20的智能数字温度监测仿真电路

3.程序设计参考

(1)预处理模块。

(2)1 ms单位延时函数。

(3)DS18B20初始化函数。

(4)DS18B20写控制字函数。

(5)DS18B20读1位数据函数。

(6)DS18B20读1个字节数据函数。

(7)DS18B20启动温度转换函数。

(8)获取DS18B20温度数据函数。

(9)lcd1602液晶写命令函数。

(10)lcd 1602液晶写数据函数。

(11)lcd 1602液晶初始化函数。

(12)DS18B20温度数据处理函数。

(13)温度显示函数。

(14)主函数。

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

我要反馈