新聞中心

        EEPW首頁 > 物聯網與傳感器 > 基于DS18B20的智能溫度測量裝置

        基于DS18B20的智能溫度測量裝置

        ——
        作者:21IC中國電子網 時間:2007-10-18 來源:21IC中國電子網 收藏

        一、前言

          溫度是一種最基本的環境參數,人民的生活與環境的溫度息息相關,在工業生產過程中需要實時測量溫度,在農業生產中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。測量溫度的關鍵是溫度傳感器,溫度傳感器的發展經歷了三個發展階段:①傳統的分立式溫度傳感器,②模擬集成溫度傳感器,③智能集成溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數字式,從集成化向智能化、網絡化的方向飛速發展。文章將介紹智能集成溫度傳感器的結構特征及控制方法,并對以此傳感器,89C2051單片機為控制器構成的溫度測量裝置的工作原理及程序設計作了詳細的介紹。該裝置適用于人民的日常生活和工、農業生產用于溫度測量。

        二、單線數字溫度傳感器

          由DALLAS半導體公司生產的型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業、民用、軍事等領域的溫度測量及控制儀器、測控系統和大型設備中。它具有體積小,接口方便,傳輸距離遠等特點。

        1、DS18B20性能特點

          DS18B20的性能特點:①采用單總線專用技術,既可通過串行口線,也可通過其它I/O口線與微機接口,無須經過其它變換電路,直接輸出被測溫度值(9位二進制數,含符號位),②測溫范圍為-55℃-+125℃,測量分辨率為0.0625℃,③內含64位經過激光修正的只讀存儲器ROM,④適配各種單片機或系統機,⑤用戶可分別設定各路溫度的上、下限,⑥內含寄生電源。

        2、DS18B20內部結構

          DS18B20內部結構主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發的溫度報警觸發器TH和TL,高速暫存器。DS18B20的管腳排列如圖1所示。

          64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號。不同的器件地址序列號不同。

          圖1 DS18B20引腳分布圖

        8位產品系列號

        48位產品序號

        8CRC編碼

          DS18B20高速暫存器共9個存存單元,如表所示:

        序號

        寄存器名稱

           

        序號

        寄存器名稱

           

        0

        溫度低字節

        16位補碼形式存放

        45

        保留字節12

        1

        溫度高字節

        6

        計數器余值

        2

        TH/用戶字節1

        存放溫度上限

        7

        計數器/

        3

        HL/用戶字節2

        存放溫度下限

        8

        CRC

          以12位轉化為例說明溫度高低字節存放形式及計算:12位轉化后得到的12位數據,存儲在18B20的兩個高低兩個8位的RAM中,二進制中的前面5位是符號位。如果測得的溫度大于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625才能得到實際溫度。

        8

        S

        S

        S

        S

        S

        26

        25

        24

        8

        23

        22

        21

        20

        2-1

        2-2

        2-3

        2-4

        1、DS18B20控制方法

          在硬件上,DS18B20與單片機的連接有兩種方法,一種是Vcc接外部電源,GND接地,I/O與單片機的I/O線相連;另一種是用寄生電源供電,此時UDD、GND接地,I/O接單片機I/O。無論是內部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻。 {{分頁}}

          DS18B20有六條控制命令,如表所示:

           

                        

        溫度轉換

        44H

        啟動DS18B20進行溫度轉換

        讀暫存器

        BEH

        讀暫存器9個字節內容

        寫暫存器

        4EH

        將數據寫入暫存器的THTL字節

        復制暫存器

        48H

        把暫存器的THTL字節寫到E2RAM

        重新調E2RAM

        B8H

        E2RAM中的THTL字節寫到暫存器THTL字節

        讀電源供電方式

        B4H

        啟動DS18B20發送電源供電方式的信號給主CPU

          CPU對DS18B20的訪問流程是:先對DS18B20初始化,再進行ROM操作命令,最后才能對存儲器操作,數據操作。DS18B20每一步操作都要遵循嚴格的工作時序和通信協議。如主機控制DS18B20完成溫度轉換這一過程,根據DS18B20的通訊協議,須經三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發送一條ROM指令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。

        三、基于DS18B20的溫度測量裝置

        1、系統組成

          由DS18B20構成的由三部分組成:DS18B20溫度傳感器、89C2051、顯示模塊。產品的主要技術指標:①測量范圍:-55℃-+125℃,②測量精度:0.5℃,③反應時間≤500ms。

        2、工作原理

          基于DS18B20的溫度測量裝置電圖如圖2所示:溫度傳感器DS18B20將被測環境溫度轉化成帶符號的數字信號(以十六位補碼形式,占兩個字節),傳感器可置于離裝置150米以內的任何地方,輸出腳I/O直接與單片機的P1.1相連,R1為上拉電阻,傳感器采用外部電源供電。89C2051是整個裝置的控制核心,89C2051內帶1K字節的FlashROM,用戶程序存放在這里。顯示器模塊由四位一體的共陽數碼管和4個9012組成。系統程序分傳感器控制程序和顯示器程序兩部分,傳感器控制程序是按照DS18B20的通信協議編制。系統的工作是在程序控制下,完成對傳感器的讀寫和對溫度的顯示。

        1、 程序設計

        根據DS18B20的通信協議,按圖2的硬件結構。下面是系統的主要程序。{{分頁}}

        系統主程序********************

        ORG  0100H

        I/O  BIT  P3.4 

        START:LCALL  RST18B20      ;調DS18B20初始化子程序

                MOV A,#OCCH         ;寫CCH到DS18B20,以便跳過ROM匹配

                LCALL   WIDS18B20    ;WIDS18B20是寫18B20子程序

                JNB  F1, START       ;若DS18B20不存在則從新開始

                MOV  A,#44H         ;發溫度轉換命令

                LCALL  WIDS18B20    

                LCALL  DSPLAY        ;調顯示子程序

                LCALL  RST18B20

                MOV  A,#0BEH        ;發讀溫度命令

                LCALL  WIDS18B20

                LCALL  RDDS18B20     ;RDDS18B20是讀子程序

                LCALL  ZWDS18B20     ;ZWDS18B20是溫度計算子程序

                LCALL  DSPLAY

                LJMP  START

        ***********部分子程序************

        DS18B20初始化子程序***********

        RST18B20: SETB    I/O        
                 CLR    I/O
                 MOV    R0,#0FAH   ;延時500微秒
         LP1:DJNZ    R0,LP1  
                 SETB    I/O         ;釋放總線
                 MOV    R0,#15H     ;在63微秒內檢測是否出現應答信號    
         LP2:JNB    I/O,LP3
                 DJNZ    R0,LP2          
               CLR    F1                 ;清標志位,表示DS1820不存在
                 LJMP    LP5

         LP3:SETB  F1           ;標專置1,表示DS18B20存在

         MOV    R0,#0FAH    ;延時500微秒
        LP4:DJNZ    R0,LP4      
        LP5:SETB    I/O
                RET

        18B20讀子程序**********

        RDDS18B20:MOV    R2,#8

        LOOP:CLR    C
               SETB    I/Q
               NOP
               CLR    I/Q
               NOP
                SETB    I/Q
               MOV    R3,#7
               DJNZ    R3,$
               MOV    C,I/Q
               MOV    R3,#23
               DJNZ    R3,$
               RRC    A
               DJNZ    R2,LOOP

               RET

        18B20寫子程序************

        WIDS18B20: MOV    R2,#8
                       CLR    C
                WI:CLR    DQ
                      MOV    R3,#6
                      DJNZ    R3,$
                      RRC    A
                      MOV    DQ,C
                      MOV    R3,#23
                      DJNZ    R3,$
                      SETB    DQ
                      NOP
                      DJNZ    R2,WR1
                      SETB    DQ
                      RET

        18B20顯示子程序************

        DSPLAY:----------

        18B20溫度計算子程序************         

        ZWDS18B20:----------          

        END

        結束語

          數字單總線溫度傳感器是目前最新的測溫器件,它集溫度測量,A/D轉換于一體,具有單總線結構,數字量輸出,直接與微機接口等優點。既可用它組成單路溫度測量裝置,也可用它組成多路溫度測量裝置,文章介紹的單路溫度測量裝置已研制成產品,產品經測試在-10℃-70℃間測得誤差為0.25℃,80℃≤T≤105℃時誤差為0.5℃,當T>105℃誤差為增大到1℃左右。用單總線溫度傳感器和單片機構成的測溫裝置具有推廣價值。

         

        溫濕度控制器相關文章:溫濕度控制器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 三门县| 府谷县| 嫩江县| 黄骅市| 凭祥市| 吉安市| 三都| 曲靖市| 惠安县| 罗江县| 临汾市| 浙江省| 共和县| 寿阳县| 秭归县| 苗栗市| 海城市| 抚松县| 郑州市| 镇江市| 郸城县| 靖安县| 五常市| 克拉玛依市| 邵阳县| 崇仁县| 左权县| 循化| 图木舒克市| 呼图壁县| 西宁市| 镇远县| 华容县| 育儿| 仁寿县| 平和县| 翼城县| 古田县| 德令哈市| 西青区| 阿鲁科尔沁旗|