解释bit Init_Ds18b20() { bit Status_Ds18b20; DQ=1; delay_temp(5); DQ=0; delay_temp(200); delay_temp(200); DQ=1; delay_temp(50); Status_Ds18b20=DQ; delay_temp(25); return Status_Ds18b20; } uchar Read_Ds18b20() { uchar i=0,dat=0; for(i=0;i<8;i++) { DQ=0; dat>>=1; DQ=1; if(DQ) dat|=0x80; delay_temp(25); } return dat; } void Witie_Ds18b20(uchar dat) { uchar i=0; for(i=0;i<8;i++) { DQ=0; DQ=dat&0x01; delay_temp(25); DQ=1; dat>>=1; } delay_temp(25); }
时间: 2024-02-14 17:20:59 浏览: 62
zixingche.rar_DS18B20温度_ds18b20_ds18b20 报警_temp-music-alarm
这是一段针对DS18B20温度传感器的程序。其中包括三个函数:Init_Ds18b20()、Read_Ds18b20()和Witie_Ds18b20()。
Init_Ds18b20()函数的作用是初始化DS18B20传感器。在函数中,首先将DQ引脚拉高,然后等待5微秒,再将DQ拉低,并延时400微秒,再将DQ拉高,等待50微秒后读取DQ引脚的状态,最后延时25微秒并返回状态。
Read_Ds18b20()函数的作用是读取DS18B20传感器中的数据。在函数中,通过循环读取8位数据,每次读取前将DQ拉低,然后通过移位操作将读取的数据存入dat变量中,最后延时25微秒并返回dat。
Witie_Ds18b20()函数的作用是向DS18B20传感器中写入数据。在函数中,通过循环将要写入的数据dat每一位依次写入到DQ引脚中,写入前先将DQ拉低,然后根据dat的最低位将DQ拉高或拉低,最后延时25微秒。
阅读全文