首页 理论教育 使用DS18B20控制方法降低温度

使用DS18B20控制方法降低温度

时间:2023-10-11 理论教育 版权反馈
【摘要】:DS18B20有严格的通信协议来保证数据传输的正确性和完整性。图6-15 DS18B20的读时序读DS18B20的时序分别为读0时序和读1时序两个过程。读DS18B20测得的温度数据的编程。2)主机对DS18B20写1时,将总线拉低1~15μs,然后拉高,总时间在60μs以上。

使用DS18B20控制方法降低温度

DS18B20采用的是1-Wire总线协议方式,即用一根数据线实现数据的双向传输,而对于51系列单片机来说,硬件上不支持单总线协议,因此需用软件的方法来模拟单总线的协议时序来实现对DS18B20芯片的访问。DS18B20有严格的通信协议来保证数据传输的正确性和完整性。该协议定义了以下几种信号的时序:初始化时序、读时序、写时序。所有时序都是将单片机作为主设备,单总线器件作为从设备。

1.初始化时序

(1)DS18B20单总线初始化步骤。单总线上的所有器件均以初始化开始,主机发出复位脉冲(即将总线DQ拉低480~960μs),再等待(即将总线DQ拉高)15~60μs,然后判断从件是否有应答(即判断总线DQ是否为0),为0则表示从件有应答(即从器件发出持续60~240μs的存在脉冲,使主机确认从器件准备好)。初始化时序如图6-14所示。

978-7-111-46996-4-Part02-53.jpg

图6-14 DS18B20初始化总线(启动)时序

(2)DS18B20初始化编程示例。详见6.4节74~81行。

2.读DS18B20的时序

(1)读DS18B20的时序如图6-15所示。

978-7-111-46996-4-Part02-54.jpg

图6-15 DS18B20的读时序

读DS18B20的时序分别为读0时序和读1时序两个过程。读时序是在主机把单总线由高拉低(保持1μs以上)作为读开始,主机在拉低持续15μs时拉高单总线,接着读总线状态。读每一位的总持续时间不得少于60μs。

(2)读DS18B20测得的温度数据的编程。详见6.4节92~102行。

3.写DS18B20的时序

所谓写DS18B20,就是将一些命令传给DS18B20。

(1)DS18B20的写时序如图6-16所示。(www.xing528.com)

978-7-111-46996-4-Part02-55.jpg

图6-16 DS18B20的写时序

1)主机对DS18B20写0时,将总线拉低60~120μs,然后拉高1μs以上。

2)主机对DS18B20写1时,将总线拉低1~15μs,然后拉高,总时间在60μs以上。

(2)写DS18B20的编程。详见6.4节第83~90行。

总之,初始化、读/写操作的共同点是:DS18B20在静态时总线必须为高电平,所有的读/写操作都是由拉低总线开始的,不同的操作保持的低电平时间间隙不一样。

4.DS18B20ROM操作命令

DS18B20的ROM操作命令详见表6-6。

6-6 DS18B20ROM操作命令

978-7-111-46996-4-Part02-56.jpg

5.存储器操作命令

存储器操作命令详见表6-7。

6-7 存储器操作命令

978-7-111-46996-4-Part02-57.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈