DS18B20数字温度传感器能进行通信主要是通过一个单线端口一个引脚,在是单线端口的前提下,必须先建立ROM操作协议,才能进行存储器和控制器。一条控制指令操作指示传感器完成一次温度测量,并且把测量的结果放在传感器的暂存器里,另一条控制器可以把暂存器里的数据读出[2]。
特点:
(1) 使用者可以设置分辨率为9至12位;
(2) 可以在0。75秒内将温度转换为12位;
(3) 可以依靠数据线供电,电源的范围在3V至5。5V之间;
(4) 可与微处理器连接时实现双向数据传送;
(5) 分布式温度检测应用被多节点能力所简化,无需外部组件;
本设计中DS18B20温度传感器探测温度后,STC89C52RC单片机的P2。4口将接收到DS18B20所传送的温度数据,通过单片机的内部自动处理之后,再传送到数码管并通过数码管显示出测量之前温度传感器所探测到的温度。
引脚说明:
GND - 地
DQ - 数据I/O
VDD - 正极
NC - 空引脚
DS18B20温度传感器实物图和引脚图如图2-3所示:
图2-3 温度传感器实物图及引脚图
2。2。2 单线(1-wire)技术
1-wire技术是指只有一根信号线用来传输时钟和信号,并可以实现双向传输功能。每一个1-wire在设备中都有唯一的,不可参考的并且过程编码有64位的ID作为地址。单线技术在器件工作的电压范围是在2。8V至5。25V之间,大多数的单线器件没有引脚供电,它们可以从总线中的寄生电源中得到所需的能量[3]。
该技术适用于单主机系统,主机能够通过一个三太端口或者一个漏极开路连接该数据线,以此来控制住一个或者多个能够接受命令(从机)的设备。为了使单线在空闲的时候呈现的状态为高电平,一般会外接一个5K的上拉电阻。
关于主机与从机之间的通讯可以由以下步骤来实现:
初始化--〉识别--〉传送数据
单线 (1-wire)协议主要是通过以下几种信号来实现:
1。写0 (1) 2。读0 (1) 2。复位脉冲 3。应答脉冲
其中写0 (1)、读0 (1)、复位脉冲是由主机发起的,而且所有的指令和数据字节都是低位靠前的。
2。2。3 DS18B20温度数字转换
DS18B20温度传感器可以将测量到的外界温度值转换为二进制或十六进制数,然后发送给STC89C52RC单片机。另外,DS18B20温度传感器在工作时必须遵守单总线(1-wire)的工作时序。
DS18B20温度读取方法:DS18B20原配置为12位,在读取温度时可以读取到16位,输出的数字量的前四位是符号位,如表2-1可以看出,当前四位都置0时,说明探测到的温度值大于0 (正数);反之,当前四位都置1时, 说明探测到的温度值小于0 (负数)。
表2-1 部分温度和温度传感器输出量转换
温度值/℃ 数字输出(二进制) 数字输出(十六进制)
+125 0000 0111 1101 0000 07D0H
+85 0000 0101 0101 0000 0550H
+0。5 0000 0000 0000 1000 0008H
0 0000 0000 0000 0000 0000H
-0。5