用单片机控制DS18B20温度传感器采集温度的工作过程是不是这样?

来源:百度知道 编辑:UC知道 时间:2024/06/24 10:27:40
DS18B20工作过程

1:数据口DQ下拉(置0)延时500微妙,然后释放,数据口再上拉(置1)
2:发送一条“跳过ROM指令”#0cch
3:发送RAM指令
(发送“温度变换”指令#44h,12位的延时750ms)
(发送“读暂存器”指令#0beh)

整体时序

总线上只有一个传感器18B20时,
时序:复位→忽略ROM匹配(0xcc)→温度转换(0x44)→延时→复位→忽略ROM匹配→读指令→分别读取温度两个字节

总线上有多个传感器18B20时,
时序:复位→ROM匹配(0x55)→发送8字节ROM ID →温度转换(0x44)→延时→复位→ROM匹配→再次发送8字节ROMID→读指令→分别读取温度两个字节

当然,在第一次发送温度转换之前 可以忽略ROM匹配,此时所有的传感器都进行温度转换

不太对,实际上要两个循环才能读数据,
1——先复位信号。然后跳过ROM指令 ,这时发出温度转换指令
等待750uS后
2——复位信号,跳过ROM指令,这次是读取RAM。
就得到温度了
其实在复位信号后检测下存在脉冲比较稳妥,不然出了问题都不知道哈

我有现成的程序