918博天堂

<kbd id="eyopz"><xmp id="eyopz">
<kbd id="eyopz"><dfn id="eyopz"></dfn></kbd>

  • <source id="eyopz"><xmp id="eyopz">
    1. 文章详情
      所在位置: 首页> 技术文章> 其它>

      数字温度传感器DS18B20的原理与应用

      日期:2021-11-24 14:33
      浏览次数:5774
      摘要:

      数字温度传感器DS18B20的原理与应用

       

      1引言
              DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。
      2DS18B20的内部结构
              DS18B20内部结构如图1所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图2所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地,见图4)。
              ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

       



      图1DS18B20的内部结构



      图2DS18B20的管脚排列



      (a)初始化时序



      (b)写时序



      (c)读时序
      图3DS18B20的工作时序图
      DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。

      23
      22
      21
      20
      2-1
      2-2
      2-3
      2-4


      温度值低字节
      MSBLSB

      S
      S
      S
      S
      S
      22
      25
      24


      温度值高字节
              高低温报警触发器TH和TL、配置寄存器均由一个字节的EEPROM组成,使用一个存储器功能命令可对TH、TL或配置寄存器写入。其中配置寄存器的格式如下:

      0
      R1
      R0
      1
      1
      1
      1
      1


      MSBLSB

              R1、R0决定温度转换的精度位数:R1R0=“00”,9位精度,*大转换时间为93.75ms;R1R0=“01”,10位精度,*大转换时间为187.5ms;R1R0=“10”,11位精度,*大转换时间为375ms;R1R0=“11”,12位精度,*大转换时间为750ms;未编程时默认为12位精度。
        高速暂存器是一个9字节的存储器??剂礁鲎纸诎徊馕露鹊氖至啃畔?;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。
      3DS18B20的工作时序
        DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序,如图3(a)(b)(c)所示。
      4DS18B20与单片机的典型接口设计
          图4以MCS-51系列单片机为例,画出了DS18B20与微处理器的典型连接。图4(a)中DS18B20采用寄生电源方式,其VDD和GND端均接地,图4(b)中DS18B20采用外接电源方式,其VDD端用3V~5.5V电源供电。
          假设单片机系统所用的晶振频率为12MHz,根据DS18B20的初始化时序、写时序和读时序,分别编写了3个子程序:INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由*低位开始。
          DATEQUP1.0
          ……
          INIT:CLREA
          INI10:SETBDAT
          MOVR2,#200




      a)寄生电源工作方式
      (b)外接电源工作方式
      图4DS18B20与微处理器的典型连接图

      INI11:CLRDAT
      DJNZR2,INI11;主机发复位脉冲持续3μs×200=600μs
      SETBDAT;主机释放总线,口线改为输入
      MOVR2,#30
      IN12:DJNZR2,INI12;DS18B20等待2μs×30=60μs
      CLRC
      ORLC,DAT;DS18B20数据线变低(存在脉冲)吗?
      JCINI10;DS18B20未准备好,重新初始化
      MOVR6,#80
      INI13:ORLC,DAT
      JCINI14;DS18B20数据线变高,初始化成功
      DJNZR6,INI13;数据线低电平可持续3μs×80=240μs
      SJMPINI10;初始化失败,重来
      INI14:MOVR2,#240
      IN15:DJNZR2,INI15;DS18B20应答*少2μs×240=480μs
      RET
      ;------------------------
      WRITE:CLREA
      MOVR3,#8;循环8次,写一个字节
      WR11:SETBDAT
      MOVR4,#8
      RRCA;写入位从A中移到CY
      CLRDAT
      WR12:DJNZR4,WR12
      ;等待16μs
      MOVDAT,C;命令字按位依次送给DS18B20
      MOVR4,#20
      WR13:DJNZR4,WR13
      ;保证写过程持续60μs
      DJNZR3,WR11
      ;未送完一个字节继续
      SETBDAT
      RET
      ;------------------------
      READ:CLREA
      MOVR6,#8;循环8次,读一个字节
      RD11:CLRDAT
      MOVR4,#4
      NOP;低电平持续2μs
      SETBDAT;口线设为输入
      RD12:DJNZR4,RD12
      ;等待8μs
      MOVC,DAT
      ;主机按位依次读入DS18B20的数据
      RRCA;读取的数据移入A
      MOVR5,#30
      RD13:DJNZR5,RD13
      ;保证读过程持续60μs
      DJNZR6,RD11
      ;读完一个字节的数据,存入A中
      SETBDAT
      RET
      ;------------------------
              主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。假设一线仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,可写出完成一次转换并读取温度值子程序GETWD。
          GETWD:LCALLINIT
          MOVA,#0CCH
          LCALLWRITE;发跳过ROM命令
          MOVA,#44H
          LCALLWRITE;发启动转换命令
          LCALLINIT
          MOVA,#0CCH;发跳过ROM命令
          LCALLWRITE
          MOVA,#0BEH;发读存储器命令
          LCALLWRITE
          LCALLREAD
          MOVWDLSB,A
          ;温度值低位字节送WDLSB
          LCALLREAD
          MOVWDMSB,A
          ;温度值高位字节送WDMSB
          RET
          ……
              子程序GETWD读取的温度值高位字节送WDMSB单元,低位字节送WDLSB单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。
              如果一线上挂接多个DS18B20、采用寄生电源连接方式、需要进行转换精度配置、高低限报警等,则子程序GETWD的编写就要复杂一些,限于篇幅,这一部分不再详述,请参阅相关内容。
              我们已成功地将DS18B20应用于所开发的“家用采暖洗浴器”控制系统中,其转换速度快,转换精度高,与微处理器的接口简单,给硬件设计工作带来了极大的方便,能有效地降低成本,缩短开发周期。

       

       

       

      版权说明:本文章版权归原作者所有,如有版权争议请与我们联系。

       

       

      下一篇: 暂无
      上一篇: DS18B20数字温度计使用
      918博天堂app 博天堂网 博天堂软伀 博天堂官方首页 918btt 博天堂软伀 博天堂游戏 博天堂软伀 博天堂官方首页 博天堂官方首页 博天堂游戏 博天堂918 博天堂游戏 博天堂918首页 918博天堂app 918btt手机端登录 博天堂软伀 博天堂918APP 博天堂918 918btt注册 博天堂918 918btt手机端登录 918btt 918博天堂app 博天堂官方 博天堂918首页 博天堂918首页 博天堂软伀 918btt手机登陆网 博天堂软伀下载 博天堂软伀 博天堂手机app下载 918btt注册下载 918btt手机端登录 博天堂游戏 博天堂下载客户端 918btt注册下载 918博天堂 918博天堂 918BTT 博天堂918首页 918博天堂app 918博天堂 918btt手机端登录 博天堂游戏 918btt 918博天堂app 918btt手机端登录 博天堂软伀 博天堂918 918博天堂app 博天堂官方 918btt手机登陆网 博天堂网 博天堂手机app 博天堂手机app 918博天堂app 博天堂官方 博天堂918 博天堂游戏 博天堂官方 博天堂手机app 博天堂软伀 下载博天堂app 博天堂手机app下载 博天堂918首页 918btt 918btt 博天堂手机app 博天堂下载客户端 博天堂手机app下载 博天堂手机app 博天堂下载客户端 博天堂软伀下载 918BTT 博天堂游戏 博天堂手机app下载 博天堂软伀 博天堂918首页 918btt注册 918BTT 博天堂918APP 918btt注册下载 博天堂官方 博天堂网 博天堂918首页 918btt手机端登录 博天堂918首页 博天堂软伀下载 博天堂918APP 博天堂网 博天堂918APP 918btt注册下载 918btt手机端登录 博天堂918首页 博天堂游戏 918btt手机端登录 博天堂网 博天堂游戏 918btt手机登陆网
      918btt手机端登录 918btt手机端登录 博天堂918平台注册 918BTT 918btt 博天堂官方首页