<rt id="rbfbh"><optgroup id="rbfbh"><strike id="rbfbh"></strike></optgroup></rt>
    <span id="rbfbh"><optgroup id="rbfbh"></optgroup></span>

    文章詳情
    所在位置: 首頁> 技術文章> 其它>

    數字溫度傳感器DS18B20的原理與應用

    日期:2025-02-13 14:21
    瀏覽次數:7016
    摘要:

    數字溫度傳感器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數字溫度計使用
    主站蜘蛛池模板: 中国videos性高清免费| 激情无码亚洲一区二区三区| 精品四虎免费观看国产高清午夜| 亚洲精品偷拍视频免费观看| 美女扒开屁股让男人桶爽免费| 国产色婷婷精品免费视频| 亚洲欧美精品午睡沙发| 在线视频免费观看www动漫| 色噜噜亚洲男人的天堂| 波多野结衣久久高清免费 | 国产亚洲日韩一区二区三区| 新最免费影视大全在线播放| 中文亚洲成a人片在线观看| 免费无码黄网站在线看| 亚洲综合在线视频| 成人免费视频77777| 亚洲综合成人婷婷五月网址| 在线日韩av永久免费观看| 牛牛在线精品观看免费正| 亚洲自偷自偷偷色无码中文| 免费人成激情视频在线观看冫| 亚洲AV福利天堂一区二区三| 黄在线观看www免费看| 亚洲国产区男人本色| 亚洲日韩人妻第一页| 久久国产精品萌白酱免费| 亚洲毛片免费视频| 国产无遮挡又黄又爽免费视频 | 在线观看肉片AV网站免费| 亚洲美女一区二区三区| 免费的一级黄色片| 一级毛片在线免费视频| 中文字幕亚洲综合精品一区| 成人免费无毒在线观看网站| 一个人看的www视频免费在线观看| 亚洲情a成黄在线观看动漫尤物| 91在线品视觉盛宴免费| 国产福利在线观看永久免费| 亚洲精品韩国美女在线| yy6080久久亚洲精品| 中文字幕在线观看免费视频|