/*读一个字节函数*/
uchar ds18b20_read_byte()
{
uchar i,value;
for(i=0;i<8;i++)
{
dq=0; // 给低电平过几个微秒之后就采样
value>>=1;
dq=1; //为什么必须释放总线才能采样???
if(dq)
value=value|0x80; //由于是从最低位开始读,所以向后移位
delay1us(5);
}
return value;
}
还有就是如果令dq=1,那么下面if(dq) 不是一定会成立了么?
此帖出自
小平头技术问答
一周热门 更多>