您当前的位置:五五电子网电子知识单元电路驱动电路及控制电路DS18B20温度模块驱动原理 正文
DS18B20温度模块驱动原理

DS18B20温度模块驱动原理

点击数:7644 次   录入时间:03-04 11:53:39   整理:http://www.55dianzi.com   驱动电路及控制电路

  一、原理简介
  
  DS18820美国DSLIAS公司推出的单总线数字温度传感器,具有微型化、低功耗、高性能、抗干扰能力强、易匹配处理器等优点。处理器与DS18820通信只需要一根数据线即可,同时该数据线还可以向挂接的DS18820供电。DS18820内部自带A/D转换器,通过内部的温度采集、A/D转换等一系列过程,将温度值以规定的格式转换为数据并输出,用户可以通过一些简单的算法,将数据还原为温度值。其分辨率可以达到12位,满足一般情况下对温度采集的需要。与模拟温度传感器相比,DS18820省去了信号调理、A/D转换等通道处理电路,从而使得系统线路简单,成本低廉。主要性能指标如下:
  
  ①电压范围:+3.O~+5.5V(可用数据线供电)。
  
  ②测温范围:-55℃~+125℃。
  
  ③通过编程可实现9~12位的数字读数方式,测温分辨率可达0.0625℃。
  
  ④可自设定非易失性的报警上下限值。
  
  DS18820管脚如上图所示,1脚为电源VCC,2脚为DQ,3脚接CND。(注意不要接反,否则就烧掉了!)其内部结构图如下图所示。

  
  二、硬件电路
  
  本电路图利用到了数码管显示,如下图所示。为了增加数据通信的稳定性,DS18820的数据线上需要接一个4.7k左右的上拉电阻。

温度模块驱动电路连接图



www.55dianzi.com

  三、关键程序分析
  
  其实,单片机与任何外部器件通信,都是数据的传输过程,只要掌握了最基本的读取一个字节和写入一个字节之后,之后操作就变得简单了!而不同的总线有不同的协议,这点需要注意。DS18820是一款l-wire总线接口的器件,即与外部的处理器通信只有一根线,因此,通信流程就显得稍微复杂。用单片机的I/O口软件模拟l-wire的时序,下图分别是初始化时序、写入lBit时序和读取lBit时序。

      1、关键程序

  2.程序详解
  
  (1)初始化l-wire总线子函数
  
  (3)拉低总线
  
  (4)延时480us左右
  
  (5)置高总线
  
  (6)延时160us左右,保证有效复位
  
  (8)从总线上读取一个字节子函数

  (10)定义临时使用位变量
  
  (11)定义循环变量及返回变量
  
  (12)循环8次读取一个字节
  
  (14)拉低总线
  
  (15)置高总线
  
  (16)读取总线上的当前值
  
  (17)延时一小段时间
  
  (18)判断读回来的位高低?
  
  (19)如果为高,直接修改当前的循环位为高(从低位开始读取)
  
  (21)8次循环完毕,将读取的字节上传
  
  (23)向总线写入一个字节子函数
  
  (25)定义循环变量
  
  (26)循环8次写入一个字节数据  
  
  (28)拉低总线
  
  (29)判断当前写入的位高低?
  
  (30)如果为高,拉高总线,否则继续保持低电平
  
  (31)延时一小段时间,将数据写入
  
  (32)拉高总线,准备写入下一个位
  
  (33)待写入数据右移一位,从低位开始写入
  
  (35)全部写入之后,延时一段时间,恢复总线电平

.

  3.注意事项
  
  对DS18820的操作必须严格按照时序进行,访问DS18820的顺序如下:
  
  step1初始化
  
  step2ROM命令
  
  step3功能命令(其后跟着所需要的数据交换)
  
  每次DS18820被访问时,都必须严格按照这个顺序进行操作,否则DS18820就不会有响应,读取一次温度的流程图如下图所示。

温度的流程图

  四、调试过程及要点
  
  首先,接好硬件设备,将开发板通过串口线连接到电脑端,接好USB电源线或者直流5v电源线。之后打开下载软件,选择生成的温度计.hex文件,分别进行下载(注意冷启动,先点击下载,之后再给单片机系统上电)。实际温度测量效果如下图所示。

 

 




本文关键字:暂无联系方式驱动电路及控制电路单元电路 - 驱动电路及控制电路