📄 新型数字温度传感器ds18b20介绍.htm
字号:
<DIV align=center>R1</DIV></TD>
<TD width="12%">
<DIV align=center>R0</DIV></TD>
<TD width="12%">
<DIV align=center>1</DIV></TD>
<TD width="12%">
<DIV align=center>1</DIV></TD>
<TD width="12%">
<DIV align=center>1</DIV></TD>
<TD width="14%">
<DIV align=center>1</DIV></TD>
<TD width="14%">
<DIV
align=center>1</DIV></TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE>
<P
align=justify> 低五位一直都是"1",TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)</P>
<TABLE width="66%" align=center border=0>
<TBODY>
<TR>
<TD vAlign=top width="45%">
<DIV align=center><STRONG>表4:</STRONG>
温度分辨率设置表</DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV class=style110 align=center>
<TABLE cellSpacing=0 borderColorDark=#ffffff width="81%"
align=center borderColorLight=#128288 border=1>
<TBODY>
<TR>
<TD width="20%" height=34>
<DIV align=center>R1</DIV></TD>
<TD width="21%">
<DIV align=center>R0</DIV></TD>
<TD width="22%">
<DIV align=center>分辨率</DIV></TD>
<TD width="37%">
<DIV align=center>温度最大转换时间</DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>0</DIV></TD>
<TD>
<DIV align=center>0</DIV></TD>
<TD>
<DIV align=center>9位</DIV></TD>
<TD>
<DIV align=center>
<P>93.75ms </P></DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>0</DIV></TD>
<TD>
<DIV align=center>1</DIV></TD>
<TD>
<DIV align=center>10位</DIV></TD>
<TD>
<DIV align=center>
<P>187.5ms </P></DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>1</DIV></TD>
<TD>
<DIV align=center>0</DIV></TD>
<TD>
<DIV align=center>11位</DIV></TD>
<TD>
<DIV align=center>
<P>375ms </P></DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>1</DIV></TD>
<TD>
<DIV align=center>1</DIV></TD>
<TD>
<DIV align=center>12位</DIV></TD>
<TD>
<DIV align=center>
<P>750ms
</P></DIV></TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE>
<P align=justify><BR><SPAN class=style117>四、 高速暂存存储器
</SPAN></P>
<P
align=justify> 高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表?2是对应的一部分温度值。第九个字节是冗余检验字节。
</P>
<TABLE width="66%" align=center border=0>
<TBODY>
<TR>
<TD vAlign=top width="45%">
<DIV align=center><STRONG>表5:</STRONG>
DS18B20暂存寄存器分布</DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV class=style110 align=center>
<TABLE cellSpacing=0 borderColorDark=#ffffff width="81%"
align=center borderColorLight=#128288 border=1>
<TBODY>
<TR>
<TD width="20%" height=34>
<DIV class=style118 align=center>
<P>寄存器内容 </P></DIV></TD>
<TD width="21%">
<DIV
align=center><STRONG>字节地址</STRONG></DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>温度值低位 (LS Byte)</DIV></TD>
<TD>
<DIV align=center>0</DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>温度值高位 (MS Byte)</DIV></TD>
<TD>
<DIV align=center>1</DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>高温限值(TH)</DIV></TD>
<TD>
<DIV align=center>2</DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>低温限值(TL)</DIV></TD>
<TD>
<DIV align=center>3</DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>配置寄存器</DIV></TD>
<TD>
<DIV align=center>4</DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>保留</DIV></TD>
<TD>
<DIV align=center>5</DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>保留</DIV></TD>
<TD>
<DIV align=center>6</DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>保留</DIV></TD>
<TD>
<DIV align=center>7</DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>CRC校验值</DIV></TD>
<TD>
<DIV
align=center>8</DIV></TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE>
<P
align=justify> 根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
</P>
<TABLE width="88%" align=center border=0>
<TBODY>
<TR>
<TD vAlign=top width="45%">
<DIV align=center><STRONG>表6:</STRONG> ROM指令表
</DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV class=style110 align=center>
<TABLE cellSpacing=0 borderColorDark=#ffffff
width="100%" align=center borderColorLight=#128288
border=1>
<TBODY>
<TR>
<TD width="20%" height=34>
<DIV class=style118 align=center>
<P align=center>指 令</P></DIV></TD>
<TD width="20%">
<DIV align=center><STRONG>约定代码</STRONG></DIV></TD>
<TD width="60%">
<DIV align=center><STRONG>功 能</STRONG></DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>读ROM</DIV></TD>
<TD>
<DIV align=center>33H</DIV></TD>
<TD>
<DIV align=center>
<P align=justify>读DS1820温度传感器ROM中的编码(即64位地址)
</P></DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>
<P>符合 ROM </P></DIV></TD>
<TD>
<DIV align=center>55H</DIV></TD>
<TD>
<DIV align=center>
<P align=justify>发出此命令之后,接着发出 64 位 ROM
编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820
的读写作准备。 </P></DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>
<P>搜索 ROM </P></DIV></TD>
<TD>
<DIV align=center>0FOH</DIV></TD>
<TD>
<DIV align=center>
<P align=justify>用于确定挂接在同一总线上 DS1820 的个数和识别 64 位
ROM 地址。为操作各器件作好准备。 </P></DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>
<P>跳过 ROM </P></DIV></TD>
<TD>
<DIV align=center>0CCH</DIV></TD>
<TD>
<DIV align=justify>
<P>忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。
</P></DIV></TD></TR>
<TR>
<TD height=34>
<DIV align=center>
<P>告警搜索命令 </P></DIV></TD>
<TD>
<DIV align=center>0ECH</DIV></TD>
<TD>
<DIV align=justify>
<P>执行后只有温度超过设定值上限或下限的片子才做出响应。
</P></DIV></TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE><BR>
<TABLE width="88%" align=center border=0>
<TBODY>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -