DSI8B20内部主要由4部分组成: 64 位激光ROM、温度传感器、非易失性温度报警
触发器TH和TL、配置寄存器等。其内部结构图如图1所示。

(1) 64位激光ROM
激光ROM存储器中存放的是64位序列号,出厂前已经被光刻好,它可以看作是
DS 18B20的地址序列号。光刻ROM作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上接多个DS18B20的目的。
(2)暂存器
暂存器由9个字节组成,其分配表如表1所示。
表1 DS18B20暂存器的分布
字节序号 | 功能 |
0 | 温度转换后的低字节 |
1 | 温度转换后的高字节 |
2 | 温度触发器TH |
3 | 低温度触发器TL |
4 | 配置寄存器 |
5,6,7 | 保留 |
8 | CRC校验寄存器 |
DS l8B20中的温度传感器可完成对温度的测量,当温度转换命令发出后,转换后的温度值以补码形式存放在暂存器的第0和第I 个字节中。按12位分辨率量化时,对应的温度增量的单位值是0.0625"C。温度值用16位符号扩展的二进制补码形式存放,高字节的前5位都是符号位,低字节的最后4位表示实际温度的小数部分,中间的7位表示实际温度的整数部分。如表2所示。
表2 DS18B20 的温度值格式表
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
低字节 | 23 | 22 | 21 | 20 | 2-1 | 2-2 | 2-3 | 2-4 |
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
高字节 | S | S | S | S | S | 26 | 25 | 24 |
付号位标识实际温度的止负,即温度大于0C时,S=0,将所测得的温度值来以0.0625即可得实际温度值。若所测温度小于0C时,S=1, 则应将所测得的温度值先按位取反再加1后,再乘以0.0625才能得到实际的负温度值。
注意:负数的温度值由于以补码形式存放,所以将高字节的D7-D3这5个符号位不变, .
将高字节的D2-D0和低字节的D7-D0 - -共13位按位取反,再在低字节的D0位加1,得到
的数字再乘以0.0625才能得到实际的温度数值,加上符号就是负温度值。
如:读取的温度值0xFFD811111 I11 1101 10002,先判断正负,高5位为1,表明温
度为负值;再取补码,5个符号位不变,余下位取反加1得到111 1 000 001010002;将高
5位变为符号“-”,余下的0000010 10002 转换为|进制数得到40,再乘以0.0625得到
2.5,得温度值为-2.5C。.
在测量精度要求不高的场合下,如果仅需得到实际温度的整数部分,那么只需读取高
字节中的低4位和低字节的高4位,刚好得到的就是整数部分。表3列出了部分实际温度与DS18B20所测温度值的对应关系。
表3 DS18B20的部分温度数据表
温度/℃ | 16位二进制编码 | 十六进制表示 |
+125 | 0000 0111 1101 0000 | 0x07D0 |
+55 | 0000 0011 0111 0000 | 0x0370 |
+15.625 | 0000 0000 1111 1010 | 0x00FA |
+2.5 | 0000 0000 0010 1000 | 0x0028 |
0 | 0000 0000 0000 0000 | 0x0000 |
-2.5 | 1111 1111 1101 1000 | 0xFFD8 |
-15.625 | 1111 1111 0000 0110 | 0xFF06 |
-55 | 1111 1100 1001 0000 | 0xFC90 |
(3)非易失性温度报警触发器TH和TL
高温触发器和低温触发器分别存放温度报警的上限值TH和下限值TL;DS18B20完成
温度转换后,就把转换后的温度值T与温度报警的上限值TH和下限值TL做比较,若
T>TH或T<TL,则把该器件的告警标志位置位,并对处理器发出的告警搜索命令做出响应。
(4)配置寄存器
配置寄存器用于确定温度值的数字转换分辨率,该字节各位的意义如表4所示。
表4
表4 DS18B20的配置寄存器的位
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
TM | R1 | R0 | 1 | 1 | 1 | 1 | 1 |
其中,低五位都为1,TM是测试位,用于设置DS18B20是在工作模式还是在测试模式。R1和R0用来设置分辨率,DS18B20 的默认值是12位的分辨率。如表5所示。
表5 温度值分辨率设置表
R1 | R0 | 分辨率/位 | 温度最大转换时间/ms |
0 | 0 | 9 | 93.75 |
0 | 1 | 10 | 187.5 |
1 | 0 | 11 | 275.00 |
1 | 1 | 12 | 750.00 |
Comments | 1 条评论
没想到能无意中发现怎么惊喜好看的宝藏网站哈哈
想问一下设置TH、TL的方法,还有设置之后如果是51单片机,然后一个引脚加上了蜂鸣器,温度异常时该怎么让蜂鸣器发声呀