• <blockquote id="62eys"></blockquote>
  • <object id="62eys"><s id="62eys"></s></object>
  • 文章详情
    所在位置: 首页> 技术文章> 其它>

    数字温度传感器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数字温度计使用
    w66利来下载手机app 利来w66 利来w66手机版 w66利来最新登陆手机端 w66利来官网来就送38 利来w66开户 w66利来手机端登录 w66利来最新登录地址 w66利来最新登陆手机端 国际利来w66 国际利来w66 w66利来app苹果 利来W66 利来w66最给力的老牌 w66利来手机登录 利来w66旗舰厅 利来w66官方网 w66利来最新登录手机版 利来w66平台 利来w66娱乐 国际利来w66 w66利来注册手机端 w66利来官网登录 w66利来注册安卓版下载 利来w66官网官方下载 利来w66网站来就送38 w66利来网址 利来w66最给力的老牌 利来w66网站来就送38 w66利来最新登录首页 利来w66官网官方下载 w66利来游戏直营网 利来w66娱乐 w66利来官网登录来就送38 w66利来最给力的老牌平台 利来w66网站来就送38 利来w66旗舰厅 w66利来手机app w66利来最新登录首页 利来w66com登录 利来w66com登录 利来w66官网来就送38 w66利来下载手机app w66利来指定入口 利来w66官网官方下载 利来w66娱乐 w66利来最给力的老牌平台 w66利来下载手机app w66利来 w66利来手机版网投 利来w66最给利的老牌 利来w66官网来就送38 w66利来首页 w66利来游戏直营网 w66利来最给力的老牌 利来w66平台 利来w66 w66利来手机版网投 w66利来最新登录地址 利来w66最老牌 w66利来官网 w66利来最新登录手机版 利来w66com登录 利来w66利来w66官网 利来w66最给力的老牌 国际利来w66 w66利来最新登陆手机端 w66利来注册手机端 w66利来最给力的老牌平台 w66利来最新登录首页 利来w66w66手机版 利来官方网w66利来 利来w66利来 w66利来 利来w66官网官方下载 w66利来篮球手机网 w66利来最新登录首页 利来w66 w66利来游戏直营网 w66利来最给力的老牌平台 w66利来最给力的老牌 w66利来手机端登录 利来w66利来 利来w66网站 w66利来app登录 利来w66首页 利来w66旗舰厅 w66利来官网登录来就送38 w66利来官网登录来就送38 利来w66娱乐官网地址 利来w66最老牌 利来w66网站来就送38 w66利来手机端登录 w66利来游戏直营网 利来w66最给利的老牌 利来w66最给力的老牌 w66利来网址 利来w66首页 利来w66最老的品牌 利来W66
    w66利来 w66利来app登录 利来w66官网官方下载 利来w66com登录 w66利来最老牌 w66利来网址 |盐山县| 南丹县| 临沭县| 舒兰市| 广昌县| 河津市| 江都市| 桃园县| 深泽县| 申扎县| 如东县| 静海县| 专栏| 共和县| 彝良县| 始兴县| 舞阳县| 皋兰县| 黄陵县| 阳泉市| 旅游| 繁昌县| 萨嘎县| 铜山县| 班玛县| 汶上县| 固阳县| 聂拉木县| 栾城县| 东山县| 三穗县| 逊克县| 繁峙县| 白城市| 雅江县| 开封市| 迭部县| 米易县| 铜川市| 韶山市| 上蔡县|