温度转换指令发出以后,经转换得到的温度值会以二进制补码的形式存放于暂存存储器的前两个字节。单片机能够通过单线接口读取该数据,读取时高位在后,低位在前。
表6 DS18B20温度数据表
温度/℃ 二进制表示 十辣进制表示
符号位(5位) 数据位(11位)
+125 00000 1 1 1 1 1 0 1 0 0 0 0 07D0H
+25.0625 00000 0 0 1 1 0 0 1 0 0 0 1 0191H
+10.125 00000 0 0 0 1 0 1 0 0 0 1 0 00A2H
+0.5 00000 0 0 0 0 0 0 0 1 0 0 0 0008H
0 00000 0 0 0 0 0 0 0 0 0 0 0 0000H
-0.5 11111 1 1 1 1 1 1 1 1 0 0 0 FFF8H
-10.125 11111 1 1 1 0 1 0 1 1 1 1 0 FF5EH
-25.0625 11111 1 1 0 0 1 0 0 1 1 1 1 FE6FH
-55 11111 1 0 0 1 0 0 1 0 0 0 0 FC90H
DS18B20对温度进行采集并转化后得到12位数据,这些数据存储于DS18B20的RAM中,如上表表6所示,二进制中前边5位是符号位,若测得温度不小于零,这5位均为0,此时实际温度=测得数值×6.25%;若温度小于零,这5位符号位均为1,此时实际温度=测得数值先取反加1然后乘于6.25%。
举例如下:
采集温度为+25.0625℃时:实际温度=0191H*6.25%=401*6.25%=25.0625℃,符号位为正;
采集温度为-55℃时:输出为FC90H,先将数据位取反后加1得0370H(符号位不变,也不作为计算),即实际温度=0370H*6.25%=880*6.25%=55℃,符号位为负。
在本设计中对温度值精确到小数点后一位,形如:XXX.X℃。在LCD显示时:若温度为负,最高位显示“-”;若温度为正且小于100℃,最高位不显示;若温度为正且小于10℃,次高位不显示。
2.4 温度显示模块设计
本设计采用LCD1602实现温度显示。
2.4.1 引脚功能
1602采用标准的16脚接口(如图7),其功能详见表7。
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页