ds18b20应用程序实例分析

出处: 学修网 发布于:2022-02-26 06:35:13浏览(8880)

  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应用程序实例分析

声明:本文为原创文章,如需转载,请注明来源学修网