整体时序
总线上只有一个传感器18B20时,
时序:复位→忽略ROM匹配(0xcc)→温度转换(0x44)→延时→复位→忽略ROM匹配→读指令→分别读取温度两个字节
总线上有多个传感器18B20时,
时序:复位→ROM匹配(0x55)→发送8字节ROM ID →温度转换(0x44)→延时→复位→ROM匹配→再次发送8字节ROMID→读指令→分别读取温度两个字节
当然,在第一次发送温度转换之前 可以忽略ROM匹配,此时所有的传感器都进行温度转换
不太对,实际上要两个循环才能读数据,
1——先复位信号。然后跳过ROM指令 ,这时发出温度转换指令
等待750uS后
2——复位信号,跳过ROM指令,这次是读取RAM。
就得到温度了
其实在复位信号后检测下存在脉冲比较稳妥,不然出了问题都不知道哈
我有现成的程序