是DQ拉低一次ds1820 8位全给?还是拉低一次给一位?
unsigned char ReadOneChar(void)
{
uchar i=0;
uchar dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delay_18B20(4);
}
return(dat);
}
dat是在哪里被改成ds18b20的数据呢?
以及每次都要
dat>>=1;dat|=0x80 这是为什么呢?