你好!欢迎来到深圳市品慧电子有限公司!
语言
当前位置:首页 >> 传感器 >> ds18b20应用程序实例分析

ds18b20应用程序实例分析


DS18B20,是一款强大的测温传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点,所以是开发中必不可少的一个芯片,为了方便大家上手

DS18B20温度传感器是DALLAS公司生产的1-wire式单总线器件,具有线路简单,体积小的特点,用它组成的温度测量系统线路非常简单,只要求一个端口即可实现通信。温度测量范围在-55℃~+125℃之间,分辨率可以从9~12位选择,内部还有温度上、下限报警设置。每个DS18B20芯片都有唯一的序列号,所以可以利用多个DS18B20同时连接在同一条总线上,组成多点测温系统。但最多只能连接8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。

 ds18b20应用程序实例分析

  DS18B20 的初始化:

根据 DS18B20 的通讯协议,主机(单片机)控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位操作,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。复位要求主 CPU 将数据线下拉 500 微秒,然后释放,当 DS18B20 收到信号后等待 16~60 微秒左右,后发出 60~240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。

(1) 先将数据线 DQ 置高电平“1”。

(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)

(3) 数据线拉到低电平“0”。

(4) 延时 750 微秒(该时间的时间范围可以从 480 到 960 微秒)。

(5) 数据线拉到高电平“1”。

(6) 延时等待(如果初始化成功则在 15 到 60 微妙时间之内产生一个由 DS18B20 所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。

(7) 若 CPU 读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要 480 微秒。

(8) 将数据线再次拉高到高电平“1”后结束。

  初始化程序如下:

uchar Init_DS18B20()

{

uchar status; //status 为 DS18B20 返回的状态

DQ = 1;

Delay(8);

DQ = 0;

Delay(90);

DQ = 1;

Delay(8);

status=DQ;

Delay(100);

DQ = 1;

return status;

}

  DS18B20 应用举例(一)

如下图所示:DQ 通过 4.7K 上拉电阻外接正电源(由于单总线为开漏所以需要外接一个 4.7K 的上拉电阻),并连接单片机 P3.3 口。

本例中,1602LCD 显示 DS18B20 所测量的外部温度,调节 DS18B20 模拟改变外界温度时,新的温度将刷新显示在 LCD 上

ds18b20应用程序实例分析

用户评论

发评论送积分,参与就有奖励!

发表评论

评论内容:发表评论不能请不要超过250字;发表评论请自觉遵守互联网相关政策法规。

深圳市品慧电子有限公司