在此程序中,运行开始,首先对 DS18B20 进行初始化,发出复位命令使其进行复位,返回值1/0,然后对检测到的温度进行读取。再进行温度转换,初始化DS18B20 的I0口,同时检测DS的存在,从DS得到温度值后返回温度值。程序运行的每一步操作都要遵循严格的工作时序和通信协议。扩写
时间: 2024-04-02 09:33:17 浏览: 94
DS18B20的工作时序和通信协议非常严格,不遵循规定的时序和协议,就无法正常进行通信。
在进行DS18B20的初始化时,需要发出复位命令,让DS18B20进行复位。复位命令是由主机向DS18B20发送一个低电平脉冲信号,持续时间不小于480us,然后主机释放总线,让DS18B20回复高电平,等待主机的下一步操作。如果复位命令执行成功,DS18B20会返回1,否则返回0。
在读取温度值时,需要发送读取温度命令,让DS18B20开始测量温度。读取温度命令是由主机向DS18B20发送一个低电平脉冲信号,持续时间不小于480us,然后主机释放总线,让DS18B20回复高电平,等待主机的下一步操作。DS18B20测量温度需要一定的时间,主机需要等待足够的时间,再发送读取温度命令,让DS18B20将测量结果传输给主机。主机接收到温度值后,需要根据DS18B20的温度转换公式将其转换为实际温度值。
在进行DS18B20的检测时,需要初始化DS18B20的IO口,并发送ROM命令,让DS18B20进入数据传输状态。然后发送功能命令,让DS18B20读取ROM码,判断DS18B20是否存在。如果DS18B20存在,DS18B20会回复ROM码,主机就可以从DS18B20读取温度值;如果DS18B20不存在,主机就无法从DS18B20读取温度值。
总之,DS18B20的工作时序和通信协议非常严格,需要按照规定的流程进行操作,才能正常进行通信和测量。
阅读全文