如果某一传感器损坏,只需按上述连接方法,拨动开关K2输入损坏传感器的位置编号,将新的DS18B20插入Z1插座重新测试,单片机自动根据读取的编号值将测得的ROM代码取代E2PROM中相同位置编号处的原ROM代码即可。
3.2多点温度的巡回测量
开关K1打开,将T断开处接上。由于已经在上面获取了多个DS18B20的ROM代码并在AVR单片机内部的E2PROM中建立了测量位置点和传感器64位ROM代码之间的关系表,因此对多个温度的巡回测量的步骤如下:
(1)发跳过ROM命令CCH。
(2)发启动所有在线的DS18B20进行温度转换命令44H。
(3)延迟1s。
(4)发匹配ROM命令55H。
(5)按照E2PROM中建立的关系表的顺序取出64位ROM代码发送到单总线。
(6)发读温度值命令BEH,读取温度值。
(7)进行CRC校验和数据处理后送LCD显示器显示。
(8)重复第4步到第7步,直到所有的DS18B20测量处理完。
(9)再重复第1步到第8步,进行下一轮的巡回测量。
如果只对某一个DS18B20进行温度测量,只要将第1步的跳过ROM命令CCH,改为匹配ROM命令55H,将拨动开关拨到和要测量的DS18B20的编号相对应的数值上,单片机90S8515读取拨动开关的数值(编号)n,到E2PROM建立的关系表中从(n-1)×8开始的单元取出ROM代码发送到总线,去掉第8步,其余和上面步骤相似即可。
测试中,DS18B20选择芯片出厂时默认的12位转换精度,转换的结果用16位符号扩展的二进制补码读数形式提供。关于DS18B20可参考DALLAS公司的数据手册。
多点温度巡回测量的主要程序如下:
来源:仪表技术