首页 理论教育温度传感器电路设计-51单片机初级入门实战教程

温度传感器电路设计-51单片机初级入门实战教程

【摘要】:DS18B20数字温度计是DALLAS公司生产的1—Wire,即单总线器件,具有线路简单,体积小特点。报警搜索命令识别并标志超过程序限定温度的器件。图23-5 DS18B20读时序图23-6 DS18B20写时序温度采集电路连接到单片机的P3.7引脚,I/O口上通过R3上拉到VCC。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。

DS18B20数字温度计是DALLAS公司生产的1—Wire,即单总线器件,具有线路简单,体积小特点。因此,用它来组成一个测温系统,线路简单,十分方便。

1.DS18B20产品的特点

(1)独特的单线接口仅需一个端口引脚进行通信

(2)简单的多点分布应用。

(3)无需外部器件。

(4)可通过数据线供电。

(5)零待机功耗。

(6)测温范围-55~125℃,以0.5℃递增。华氏器件-67~2570F,以0.90F递增。

(7)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃。

(8)温度数字量转换时间200ms(典型值),12位分辨率时最多在750ms内把温度值转换为数字。

(9)用户可定义的非易失性温度报警设置。

(10)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。

(11)应用包括温度控制、工业系统、消费品、温度计或任何热感测系统。

(12)负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。

2.DS18B20的引脚说明

TO-92封装的DS18B20的引脚排列如图23-3,其引脚功能描述见表23-1。

978-7-111-47690-0-Part03-170.jpg

图23-3 DS18B20引脚图

表23-1 DS18B20详细引脚描述

978-7-111-47690-0-Part03-171.jpg

3.DS18B20使用方法

由于DS18B20采用的是1—Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S52单片机来说,硬件上并不支持单总线协议。因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序有初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机须启动读时序完成数据接收。数据和命令的传输都是低位在先。

(1)DS18B20复位时序如图23-4所示。(www.chuimin.cn)

978-7-111-47690-0-Part03-172.jpg

图23-4 DS18B20复位时序图

(2)DS18B20读时序 对于DS18B20的读时序分为读0时序和读1时序两个过程。DS18B20读时序是从主机把单总线拉低之后,在15s之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60μs才能完成。读时序如图23-5所示。

(3)DS18B20写时序 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60μs,保证DS18B20能够在15~45μs之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15μs之内就得释放单总线。写时序如图23-6所示。

978-7-111-47690-0-Part03-173.jpg

图23-5 DS18B20读时序

978-7-111-47690-0-Part03-174.jpg

图23-6 DS18B20写时序

温度采集电路连接到单片机的P3.7引脚,I/O口上通过R3上拉到VCC。温度传感模块电路如图23-7所示。

DS18B20对采集的信息进行处理时,利用其内部的高速暂存存储器,其分配如图23-8所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。

表23-2是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8位的RAM中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,

978-7-111-47690-0-Part03-175.jpg

图23-7 温度传感模块电路原理图

978-7-111-47690-0-Part03-176.jpg

图23-8 高速暂存分配图

只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。

表23-2 DS18B20温度数据表

978-7-111-47690-0-Part03-177.jpg

温度转换计算方法举例:

例如:当DS18B20采集到125℃的实际温度后,输出为07D0H,则

实际温度=07D0H×0.0625=2000×0.0625=125℃

例如:当DS18B20采集到-55℃的实际温度后,输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作为计算),则

实际温度=370H×0.0625=880×0.0625=55℃