第6、7、8字节未用,为全1。第9字节是前面所有8个字节的CRC码,用来保证正确通信。片内还有1个E2PROM为TH、TL以及配置寄存器的映像。配置寄存器暑(第5字节)各位的定义如下:1-RO11-R1TM其中,最高位TM出厂时已被写入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-1R1、RO与分辨率和转换时间的关系ROR1分辨率最大转换时间009位93.75ms0110位187.5 ms1011 位375ms1112位750 ms由表11-1可看出,DS18B20的转换时间与分辨率有关。当设定分辨率为9位时,转换时间为93.75mS;.....;当设定分辨率为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位)数据位001000111110000+12507DOH010100000001000191H+25.0625011001011111-25.0625111FE6FH101010000-5511100一FC90H1下面介绍温度转换的计算方法。当DS18B20采集的温度为+125℃时,输出为07D0H,则:实际温度=(07D0H)/16=(0X163+7×162+13×161+0×160)/16=125℃13
13 下面介绍温度转换的计算方法。 当DS18B20采集的温度为+125℃时,输出为07D0H,则: 实际温度=(07D0H)/16=(0×163+7×162+13×161 +0×160)/16=125℃
当DS18B20采集的温度为-55℃C时,输出为FC90H,由于是补码,则先将11位数据取反加1得0370H,注意符号位不变,也不参加运算,则:实际温度=(0370H)/16=(0×163+3×162+7×161+0X160)/16=55℃注意,负号则需要对采集的温度的结果数据进行判断后,再予以显示。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电平拉低480~960μs后释放,等待15~60μs,单总线器件即可输出一持续60~240μs的低电平,单片机收到此应答后即可进行操作。(2)写时序,当单片机将数据线DQ电平从高拉到低时,产生写时序,有写“0”和写“1”两种时序。写时序开始后,DS18B20在15~60us期间从数据线上采样。如果采样到低电平,则向DS18B20写的是“0”;如果采样到高电平,则向DS18B20写的是“1”。这两个独立的时序间至少需要拉高总线电平1μs的时间。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