51单片机入门教程-2020版 程序全程纯手打 从零开始入门

[13-2] DS18B20温度读取&温度报警器 P30 - 38:01
-000.0625已解决!!!
原因是A2新版开发板是11.0592,时序跟up的大不一样,问题在于
void OneWire_Sendbit()发送一位数据 函数(我取的名字和up不一样)的时序。简单的改进办法就是老实写ifelse语句把写入1和0分开,源码如下:
void OneWire_Sendbit(unsigned char Bit)
{
if(Bit)
{
OneWire_DQ = 0;
_nop_();_nop_();//delay3us
OneWire_DQ = 1;
Delay10us(6);//delay60us
}
else
{
OneWire_DQ = 0;
Delay10us(6);//delay60us
OneWire_DQ = 1;
_nop_();_nop_();//delay3us
}
}