新聞中心

EEPW首頁(yè) > 物聯(lián)網(wǎng)與傳感器 > 基于DS18B20的智能溫度測(cè)量裝置

基于DS18B20的智能溫度測(cè)量裝置

——
作者:21IC中國(guó)電子網(wǎng) 時(shí)間:2007-10-18 來(lái)源:21IC中國(guó)電子網(wǎng) 收藏

一、前言

  溫度是一種最基本的環(huán)境參數(shù),人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過(guò)程中需要實(shí)時(shí)測(cè)量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開(kāi)溫度的測(cè)量,因此研究溫度的測(cè)量方法和裝置具有重要的意義。測(cè)量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段:①傳統(tǒng)的分立式溫度傳感器,②模擬集成溫度傳感器,③智能集成溫度傳感器。目前,國(guó)際上新型溫度傳感器正從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展。文章將介紹智能集成溫度傳感器的結(jié)構(gòu)特征及控制方法,并對(duì)以此傳感器,89C2051單片機(jī)為控制器構(gòu)成的溫度測(cè)量裝置的工作原理及程序設(shè)計(jì)作了詳細(xì)的介紹。該裝置適用于人民的日常生活和工、農(nóng)業(yè)生產(chǎn)用于溫度測(cè)量。

二、單線(xiàn)數(shù)字溫度傳感器

  由DALLAS半導(dǎo)體公司生產(chǎn)的型單線(xiàn)智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測(cè)量及控制儀器、測(cè)控系統(tǒng)和大型設(shè)備中。它具有體積小,接口方便,傳輸距離遠(yuǎn)等特點(diǎn)。

1、DS18B20性能特點(diǎn)

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

2、DS18B20內(nèi)部結(jié)構(gòu)

  DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖1所示。

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

  圖1 DS18B20引腳分布圖

8位產(chǎn)品系列號(hào)

48位產(chǎn)品序號(hào)

8CRC編碼

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

序號(hào)

寄存器名稱(chēng)

   

序號(hào)

寄存器名稱(chēng)

   

0

溫度低字節(jié)

16位補(bǔ)碼形式存放

4、5

保留字節(jié)1、2

1

溫度高字節(jié)

6

計(jì)數(shù)器余值

2

TH/用戶(hù)字節(jié)1

存放溫度上限

7

計(jì)數(shù)器/

3

HL/用戶(hù)字節(jié)2

存放溫度下限

8

CRC

  以12位轉(zhuǎn)化為例說(shuō)明溫度高低字節(jié)存放形式及計(jì)算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)高低兩個(gè)8位的RAM中,二進(jìn)制中的前面5位是符號(hào)位。如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625才能得到實(shí)際溫度。

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與單片機(jī)的連接有兩種方法,一種是Vcc接外部電源,GND接地,I/O與單片機(jī)的I/O線(xiàn)相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。無(wú)論是內(nèi)部寄生電源還是外部供電,I/O口線(xiàn)要接5KΩ左右的上拉電阻。 {{分頁(yè)}}

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

   

          說(shuō)      

溫度轉(zhuǎn)換

44H

啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換

讀暫存器

BEH

讀暫存器9個(gè)字節(jié)內(nèi)容

寫(xiě)暫存器

4EH

將數(shù)據(jù)寫(xiě)入暫存器的TH、TL字節(jié)

復(fù)制暫存器

48H

把暫存器的THTL字節(jié)寫(xiě)到E2RAM

重新調(diào)E2RAM

B8H

E2RAM中的TH、TL字節(jié)寫(xiě)到暫存器THTL字節(jié)

讀電源供電方式

B4H

啟動(dòng)DS18B20發(fā)送電源供電方式的信號(hào)給主CPU

  CPU對(duì)DS18B20的訪問(wèn)流程是:先對(duì)DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對(duì)存儲(chǔ)器操作,數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過(guò)程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。

三、基于DS18B20的溫度測(cè)量裝置

1、系統(tǒng)組成

  由DS18B20構(gòu)成的由三部分組成:DS18B20溫度傳感器、89C2051、顯示模塊。產(chǎn)品的主要技術(shù)指標(biāo):①測(cè)量范圍:-55℃-+125℃,②測(cè)量精度:0.5℃,③反應(yīng)時(shí)間≤500ms。

2、工作原理

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

1、 程序設(shè)計(jì)

根據(jù)DS18B20的通信協(xié)議,按圖2的硬件結(jié)構(gòu)。下面是系統(tǒng)的主要程序。{{分頁(yè)}}

系統(tǒng)主程序********************

ORG  0100H

I/O  BIT  P3.4 

START:LCALL  RST18B20      ;調(diào)DS18B20初始化子程序

        MOV A,#OCCH         ;寫(xiě)CCH到DS18B20,以便跳過(guò)ROM匹配

        LCALL   WIDS18B20    ;WIDS18B20是寫(xiě)18B20子程序

        JNB  F1, START       ;若DS18B20不存在則從新開(kāi)始

        MOV  A,#44H         ;發(fā)溫度轉(zhuǎn)換命令

        LCALL  WIDS18B20    

        LCALL  DSPLAY        ;調(diào)顯示子程序

        LCALL  RST18B20

        MOV  A,#0BEH        ;發(fā)讀溫度命令

        LCALL  WIDS18B20

        LCALL  RDDS18B20     ;RDDS18B20是讀子程序

        LCALL  ZWDS18B20     ;ZWDS18B20是溫度計(jì)算子程序

        LCALL  DSPLAY

        LJMP  START

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

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

RST18B20: SETB    I/O        
         CLR    I/O
         MOV    R0,#0FAH   ;延時(shí)500微秒
 LP1:DJNZ    R0,LP1  
         SETB    I/O         ;釋放總線(xiàn)
         MOV    R0,#15H     ;在63微秒內(nèi)檢測(cè)是否出現(xiàn)應(yīng)答信號(hào)    
 LP2:JNB    I/O,LP3
         DJNZ    R0,LP2          
       CLR    F1                 ;清標(biāo)志位,表示DS1820不存在
         LJMP    LP5

 LP3:SETB  F1           ;標(biāo)專(zhuān)置1,表示DS18B20存在

 MOV    R0,#0FAH    ;延時(shí)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寫(xiě)子程序************

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溫度計(jì)算子程序************         

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

END

結(jié)束語(yǔ)

  數(shù)字單總線(xiàn)溫度傳感器是目前最新的測(cè)溫器件,它集溫度測(cè)量,A/D轉(zhuǎn)換于一體,具有單總線(xiàn)結(jié)構(gòu),數(shù)字量輸出,直接與微機(jī)接口等優(yōu)點(diǎn)。既可用它組成單路溫度測(cè)量裝置,也可用它組成多路溫度測(cè)量裝置,文章介紹的單路溫度測(cè)量裝置已研制成產(chǎn)品,產(chǎn)品經(jīng)測(cè)試在-10℃-70℃間測(cè)得誤差為0.25℃,80℃≤T≤105℃時(shí)誤差為0.5℃,當(dāng)T>105℃誤差為增大到1℃左右。用單總線(xiàn)溫度傳感器和單片機(jī)構(gòu)成的測(cè)溫裝置具有推廣價(jià)值。

 

溫濕度控制器相關(guān)文章:溫濕度控制器原理


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉