首页 理论教育 单片机开发DS18B20指令

单片机开发DS18B20指令

时间:2023-10-23 理论教育 版权反馈
【摘要】:ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一条总线上挂接多个DS18B20。表5-4 ROM操作指令在实际应用中,单片机要对总线上多个DS18B20中的某一个进行操作时,应将每个DS18B20分别与总线连接,读出其序列号。当单片机发出匹配ROM命令,紧接着主机提供的64位序列,找到对应的DS18B20后,之后的操作才能针对该器件。DS18B20在出厂时温度数值默认为12位,其中最高位为符号位,即温度值共11位。

单片机开发DS18B20指令

1.ROM操作指令

DS18B20指令主要有ROM操作指令、温度操作指令两类。ROM操作指令主要针对DS18B20的内部ROM。每一个DS18B20都有自己独立的编号,存放在DS18B20内部64位ROM中,64位ROM定义为

978-7-111-43463-4-Chapter05-9.jpg

64位ROM中的序列号是出厂前已经固化好的,它可以看做是DS18B20的地址序列码。各位排列顺序是,开始8位为产品类型标号,接下来48位是该DS18B20自身的序列号,最后8位是前面56位的CRC循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一条总线上挂接多个DS18B20。ROM操作指令见表5-4。

表5-4 ROM操作指令

978-7-111-43463-4-Chapter05-10.jpg

在实际应用中,单片机要对总线上多个DS18B20中的某一个进行操作时,应将每个DS18B20分别与总线连接,读出其序列号。当单片机发出匹配ROM命令(55H),紧接着主机提供的64位序列,找到对应的DS18B20后,之后的操作才能针对该器件。(www.xing528.com)

如果总线上只存在一个DS18B20,就不需要读取ROM编码以及匹配ROM编码了,只要跳过ROM(CCH)命令,就可进行温度转换和读取操作。

2.温度操作指令

温度操作指令见表5-5。DS18B20在出厂时温度数值默认为12位,其中最高位为符号位,即温度值共11位。单片机在读取数据时,依次从高速寄存器第0、1地址读2B共16位,读完后将低11位的二进制数转转换为实际温度值。1地址对应的1B的前5个数字为符号位,前5位为1时,读取的温度为负值;前5位为0时,读取的温度为正值,且温度为正值时,只要将测得的数值乘以0.0625即可得到实际的温度值。

表5-5 温度操作指令

978-7-111-43463-4-Chapter05-11.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈