51单片机DS18B20时序问题

#现象:用手捂热后数值不变,且显示如下图

img


#出错点

img


用这种能正常运行

img


用这种不行,会出现上述问题

img

求解😣😣

根据资料:

发送 0:拉低,等 60 - 120us, 释放。
发送 1:拉低,等  1 - 15us, 释放。
0 -- 15 -- 30 -- 60 -- 
----------读取----- 

那么,请问:
OneWire_DQ=1;
OneWire_DQ=0;
这两行连着,中间不需要等待?
另外,
方法一 (i = 4 => 10us, i = 25 => 60us) 和
方法二 (i = 4 => 15us, i = 25 => 55us) 的延时计算不一样?
备注:只是根据程式分析,没有硬件测试。