首页 理论教育 DS18B20工作时序详解

DS18B20工作时序详解

时间:2023-10-23 理论教育 版权反馈
【摘要】:单总线协议规定一条数据线传输串行数据,时序有严格的要求,对于DS18B20的程序设计,必须遵守单总线协议。初始化主要目的是单片机感知DS18B20的存在并为下一步操作做准备,同时启动DS18B20,程序设计根据时序进行。如果单片机P1.0接DS18B20的DQ引脚,则P1.0此时设置高电平,表示单片机释放总线管理权。图5-4 DS18B20的写时序2)延时时间为15μs。

DS18B20工作时序详解

单总线协议规定一条数据线传输串行数据,时序有严格的要求,对于DS18B20的程序设计,必须遵守单总线协议。DS18B20操作主要分为初始化、写数据、读数据几个步骤。下面具体介绍操作步骤。

1.初始化

初始化是单片机对DS18B20的基本操作,其时序如图5-3所示。初始化主要目的是单片机感知DS18B20的存在并为下一步操作做准备,同时启动DS18B20,程序设计根据时序进行。DS18B20初始化操作步骤如下:

978-7-111-43463-4-Chapter05-6.jpg

图5-3 DS18B20初始化时序

1)将数据线置为高电平1,然后延时(可有可无)。

2)将数据线拉到低电平0,然后延时750μs(时间范围是480~960μs),由调用延时函数决定。

3)将数据线拉到高电平1。如果单片机P1.0接DS18B20的DQ引脚,则P1.0此时设置高电平,表示单片机释放总线管理权。此时,P1.0的电平高低由DS18B20的DQ输出决定。

4)延时等待。如果初始化成功则在15~60ms后总线上产生一个由DS18B20返回的低电平0,据该状态可以确定它的存在。但是,不能无限等待,不然会使程序进入死循环,所以要进行超时判断。

5)单片机读到数据线上的低电平0,说明DS18B20存在并进行了响应,还要进行延时。延时的时间从发出高电平算起(第5步)最少要480μs。

6)将数据线再次拉到高电平1,结束初始化步骤。

从单片机对DS18B20的初始化过程来看,单片机要对DS18B20操作,必须先确定DS18B20的存在,当DS18B2响应后,单片机才能进行下面的操作。

2.对DS18B20写数据

1)数据线先置低电平0,发送起始信号,时序如图5-4所示。

978-7-111-43463-4-Chapter05-7.jpg

图5-4 DS18B20的写时序

2)延时时间为15μs。

3)按低位到高位顺序发送数据(一次只发送一位)。(www.xing528.com)

4)延时时间为45μs,等待DS18B20接收。

5)将数据线拉到高电平1,单片机释放总线。

6)重复步骤1)~5),直到发送完整个字节。

7)最后将数据线拉高,单片机释放总线。

3.DS18B20读数据

1)将数据线拉高,时序如图5-5所示。

978-7-111-43463-4-Chapter05-8.jpg

图5-5 DS18B20的读时序

2)延时2μs。

3)将数据线电平拉低到0。

4)延时6μs,延时比写数据时间短。

5)将数据线拉高到1,释放总线。

6)延时4μs。

7)读数据线的状态得到一个状态位,并进行数据处理

8)延时30μs。

9)重复步骤1)~7),直到读取完一个字节。

只有在熟悉了DS18B20操作时序后,才能对其进行编程。由于DS18B20向单片机提供的数据较多,如器件编号、温度的高位和低位、设定温度的上限和下限等,所以DS18B20提供了自己的指令。

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

我要反馈