溫度是一種最基本的環(huán)境參數(shù),人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中需要實(shí)時(shí)測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。測量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段:①傳統(tǒng)的分立式溫度傳感器,②模擬集成溫度傳感器,③智能集成溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展。因此本文介紹了智能集成溫度傳感器DS18B20的結(jié)構(gòu)特征及控制方法,并對(duì)以此傳感器,以89C2051單片機(jī)為控制器構(gòu)成的溫度測量裝置的工作原理及程序設(shè)計(jì)作了詳細(xì)的介紹。
1.DS18B20介紹
1.1性能特點(diǎn)
由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測量及控制儀器、測控系統(tǒng)和大型設(shè)備中。其性能特點(diǎn)如下:
①采用單總線專用技術(shù),既可通過串行口線,也可通過其它I/O口線與微機(jī)接口,無須經(jīng)過其它變換電路,直接輸出被測溫度值(9位二進(jìn)制數(shù),含符號(hào)位);
②測溫范圍為-55℃-+125℃,測量分辨率為0.0625℃;
③內(nèi)含64位經(jīng)過激光修正的只讀存儲(chǔ)器ROM;
④適配各種單片機(jī)或系統(tǒng)機(jī);
⑤用戶可分別設(shè)定各路溫度的上、下限;
⑥內(nèi)含寄生電源。
1.2內(nèi)部結(jié)構(gòu)
DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖1所示。
圖1 DS18B20引腳分布圖
64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號(hào)。不同的器件地址序列號(hào)不同。
DS18B20高速暫存器共9個(gè)存儲(chǔ)單元,如表所示:
以12位轉(zhuǎn)化為例說明溫度高低字節(jié)存放形式及計(jì)算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)高低兩個(gè)8位的RAM中,二進(jìn)制中的前面5位是符號(hào)位。如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625才能得到實(shí)際溫度。
1.3DS18B20控制方法
在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是Vcc接外部電源,GND接地,I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。無論是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻。
DS18B20有六條控制命令,如表所示:
CPU對(duì)DS18B20的訪問流程是:先對(duì)DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對(duì)存儲(chǔ)器操作,數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。
2.溫度測量裝置設(shè)計(jì)
2.1系統(tǒng)組成
由DS18B20構(gòu)成的智能溫度測量裝置由三部分組成:DS18B20溫度傳感器、89C2051、顯示模塊。產(chǎn)品的主要技術(shù)指標(biāo):①測量范圍:-55℃-+125℃,②測量精度:0.5℃,③反應(yīng)時(shí)間≤500ms。
2.2工作原理
基于DS18B20的溫度測量裝置電圖如圖2所示:溫度傳感器DS18B20將被測環(huán)境溫度轉(zhuǎn)化成帶符號(hào)的數(shù)字信號(hào)(以十六位補(bǔ)碼形式,占兩個(gè)字節(jié)),傳感器可置于離裝置150米以內(nèi)的任何地方,輸出腳I/O直接與單片機(jī)的P1.1相連,R1為上拉電阻,傳感器采用外部電源供電。89C2051是整個(gè)裝置的控制核心,89C2051內(nèi)帶1K字節(jié)的FlashROM,用戶程序存放在這里。顯示器模塊由四位一體的共陽數(shù)碼管和4個(gè)9012組成。系統(tǒng)程序分傳感器控制程序和顯示器程序兩部分,傳感器控制程序是按照DS18B20的通信協(xié)議編制。系統(tǒng)的工作是在程序控制下,完成對(duì)傳感器的讀寫和對(duì)溫度的顯示。
圖2 基于DS18B20的溫度測量裝置電路圖
2.3程序設(shè)計(jì)
根據(jù)DS18B20的通信協(xié)議,按圖2的硬件結(jié)構(gòu)。下面是系統(tǒng)的主要程序。
系統(tǒng)主程序********************
ORG 0100H
I/O BIT P3.4
START:LCALL RST18B20 ;調(diào)DS18B20初始化子程序
MOV A,#OCCH ;寫CCH到DS18B20,以便跳過ROM匹配
LCALL WIDS18B20 ;WIDS18B20是寫18B20子程序
JNB F1, START ;若DS18B20不存在則從新開始
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 ;釋放總線
MOV R0,#15H ;在63微秒內(nèi)檢測是否出現(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)專置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寫子程序************
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é)束語
并且該單路溫度測量裝置已研制成產(chǎn)品,產(chǎn)品經(jīng)測試在-10℃-70℃間測得誤差為0.25℃,80℃≤T≤105℃時(shí)誤差為0.5℃;當(dāng)T》105℃誤差為增大到1℃左右。用單總線溫度傳感器和單片機(jī)構(gòu)成的測溫裝置適用于人民的日常生活和工、農(nóng)業(yè)生產(chǎn)用于溫度測量,具有推廣價(jià)值。
責(zé)任編輯人:CC
-
溫度測量
+關(guān)注
關(guān)注
0文章
199瀏覽量
28249 -
DS18B20
+關(guān)注
關(guān)注
10文章
779瀏覽量
80874
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論