第6、7、8字节未用,为全1。第9字节是前面所有8个字节的 CRC码,用来保证正确通信。片内还有1个E2PROM为TH TL以及配置寄存器的映像。 配置寄存器(第5字节)各位的定义如下: TM R1 RO 其中,最高位T出厂时已被写入0,用户不能改变;低5位 都为1;R1和R0用来设置分辨率。表11-1列出了R1、R0与分 辨率和转换时间的关系。用户可通过修改R1、R0位的编码, 获得合适的分辨率。 11
11 第6、7、8字节未用,为全1。第9字节是前面所有8个字节的 CRC码,用来保证正确通信。片内还有1个E2PROM为TH、 TL以及配置寄存器的映像。 配置寄存器(第5字节)各位的定义如下: 其中,最高位TM出厂时已被写入0,用户不能改变;低5位 都为1;R1和R0用来设置分辨率。表11-1列出了R1、R0与分 辨率和转换时间的关系。用户可通过修改R1、R0位的编码, 获得合适的分辨率
表11-1 R1、R0与分辨率和转换时间的关系 R1 RO 分辨率 最大转换时间 0 0 9位 93.75ms 0 1 10位 187.5ms 1 0 11位 375ms 1 1 12位 750ms 由表11-1可看出,DS18B20的转换时间与分辨率有关。当设 定分辨率为9位时,转换时间为93.75s;..;当设定分辨率 为12位时,转换时间为750ms。 表11-2列出了DS18B20温度转换后所得到的16位转换结果的 典型值。 12
12 由表11-1可看出,DS18B20的转换时间与分辨率有关。当设 定分辨率为9位时,转换时间为93.75ms;……;当设定分辨率 为12位时,转换时间为750ms。 表11-2列出了DS18B20温度转换后所得到的16位转换结果的 典型值
表11-2DS18B20温度数据 温度/℃ 16位2进制温度值 16进制温度值 符号位(5位) 数据位(11位) +125 0 0 0 0 0 07D0H +25.0625 0 1 0191H -25.0625 1 1 FE6FH -55 1111 110010 0 0 0 FC90H 下面介绍温度转换的计算方法。 当DS18B20采集的温度为+125C时,输出为07D0H,则: 实际温度=(07D0H)/16=(0×163+7×162+13×161 +0X160)/16=125°C 13
13 下面介绍温度转换的计算方法。 当DS18B20采集的温度为+125℃时,输出为07D0H,则: 实际温度=(07D0H)/16=(0×163+7×162+13×161 +0×160)/16=125℃
当DS18B20采集的温度为-55℃时,输出为FC90H,由于是 补码,则先将11位数据取反加1得0370H,注意符号位不变,也 不参加运算,则: 实际温度=(0370H)/16=(0×163+3×162+7×161 +0X160)/16=55C 注意,负号则需要对采集的温度的结果数据进行判断后,再予 以显示。 2.DS18B20的工作时序 DS18B20对工作时序要求严格,延时时间需准确,否则容易 出错。工作时序包括初始化时序、写时序和读时序。 14
14 当DS18B20采集的温度为-55℃时,输出为FC90H,由于是 补码,则先将11位数据取反加1得0370H,注意符号位不变,也 不参加运算,则: 实际温度=(0370H)/16=(0×163+3×162+7×161 +0×160)/16=55℃ 注意,负号则需要对采集的温度的结果数据进行判断后,再予 以显示。 2. DS18B20的工作时序 DS18B20对工作时序要求严格,延时时间需准确,否则容易 出错。工作时序包括初始化时序、写时序和读时序。 14
(1)初始化时序,单片机将数据线DQ电平拉低480960μs后 释放,等待1560s,单总线器件即可输出一持续60~240μs 的低电平,单片机收到此应答后即可进行操作。 (2)写时序,当单片机将数据线DQ电平从高拉到低时,产生 写时序,有写“0”和写“1”两种时序。写时序开始后, DS18B20在1560μs期间从数据线上采样。如果采样到低电 平,则向DS18B20写的是“0”;如果采样到高电平,则向 DS18B20写的是“1”。这两个独立的时序间至少需要拉高总线 电平1s的时间。 15
15 (1)初始化时序,单片机将数据线DQ电平拉低480~960µs后 释放,等待15~60µs,单总线器件即可输出一持续60~240µs 的低电平,单片机收到此应答后即可进行操作。 (2)写时序,当单片机将数据线DQ电平从高拉到低时,产生 写时序,有写“0”和写“1”两种时序。写时序开始后, DS18B20在15~60µs期间从数据线上采样。如果采样到低电 平,则向DS18B20写的是“0”;如果采样到高电平,则向 DS18B20写的是“1”。这两个独立的时序间至少需要拉高总线 电平1µs的时间。 15