/* ==== 18b20复位子程序==== */
void b20init()
{
uchar temp;
DQ=0;
delay(60); //总机拉低超过480us以上,初始化总时间不超过960us。此处拉低556us(调试时显示此值)
DQ=1;//释放总线后,以便从机18b20通过拉低总线来指示其是否在线,
delay(3); //存在检测高电平时间:15~60us,此处拉低43us(调试时显示此值)
temp=DQ;
if (temp==0) //如果总线被拉低,则表示B20应答了
flag=1;
else
flag=0; //否则表示未联系成功
delay(10); //在60--240us之内,18B20应该做出反应,并将总线置为0,此处拉低106us(调试时显示此值)
DQ=1; //再次拉高总线,让总线处于空闲状态
}
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。