新型數(shù)字溫度傳感器DS18B20組成的溫度巡檢系統(tǒng)
1 概 述 隨著現(xiàn)代信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn),能夠獨(dú)立工作的溫度檢測(cè)和顯示系統(tǒng)已經(jīng)應(yīng) 用于諸多領(lǐng)域。傳統(tǒng)的溫度檢測(cè)以熱敏電阻為溫度敏感元件,熱敏電阻成本低,但需要后續(xù)信號(hào)處理電路,而且 熱敏電阻的可靠性相對(duì)較差,測(cè)量溫度的準(zhǔn)確度低,檢測(cè)系統(tǒng)的精度差[1]。我們選用了美國(guó)DALLAS公司最新推出 的DS18B20數(shù)字式溫度傳感器,DS18B20是DS1820的更新產(chǎn)品,它與傳統(tǒng)的熱敏電阻溫度傳感器不同,它能夠直接 讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式,可以分別在93.75ms和750ms內(nèi) 將溫度值轉(zhuǎn)化9位和12位的數(shù)字量。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。 2 AT89C2051單片機(jī) 本文選用的單片機(jī)為AT89C2051,它是一個(gè)只有20引腳的體積小、價(jià)格便宜的Flash ROM型單片 機(jī)。提供以下標(biāo)準(zhǔn)功能:一個(gè)8位CPU、2KB的閃爍存儲(chǔ)器、128字節(jié)RAM、15根I/O線、兩個(gè)16位定時(shí)器、一個(gè)全雙 工串行口、5個(gè)中斷源,還有片內(nèi)振蕩電路和時(shí)鐘電路及一個(gè)精密模擬比較器。具有與MCS-51完全兼容的指令系 統(tǒng),因而系統(tǒng)硬件設(shè)計(jì)簡(jiǎn)單,軟件設(shè)計(jì)也十分方便[2]。 3 DS18B20溫度傳感器的特點(diǎn) ·單線接口,只有一根信號(hào)線與CPU連接 ·傳送串行數(shù)據(jù),不需要外部元件 ·不需要備份電源、可用數(shù)據(jù)線供電 ·溫度測(cè)量范圍從-50oC~125oC,-10oC~85oC時(shí)測(cè)量精度為±0.5oC ·通過編程可實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式, ·在93.75ms和750ms內(nèi)將溫度值轉(zhuǎn)化9位和12位的數(shù)字量 ·用戶可自設(shè)定非易失性的報(bào)警上下限值 ·報(bào)警搜索命令可以識(shí)別哪片DS18B20溫度超限 4 DS18B20溫度傳感器的存儲(chǔ)器 DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦 除的E2RAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。暫存存儲(chǔ)器包含了8個(gè)連續(xù)字節(jié),前兩個(gè)字節(jié)是 測(cè)得的溫度信息,第一個(gè)字節(jié)的內(nèi)容是溫度的低八位,第二個(gè)字節(jié)是溫度的高八位。第三個(gè)和第四個(gè)字節(jié)是TH、 TL的易失性拷貝,第五個(gè)字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個(gè)字節(jié)的內(nèi)容在每一次上電復(fù)位時(shí)被刷新。第 六、七、八個(gè)字節(jié)用于內(nèi)部計(jì)算。第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。 暫存存儲(chǔ)器的前兩個(gè)子節(jié)代表的數(shù)據(jù)格式是: 溫度低位字節(jié)(A) 溫度高位字節(jié)(B) 溫度算法:①SSSSS=11111b,D=-1;SSSSS=00000b,D=1 最小分辨率為0.0625oC:② 當(dāng)D=1時(shí),溫度值 ③ 當(dāng)D=- 1時(shí),溫度值 結(jié)構(gòu)寄存器的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。該字節(jié)各位的意義如下: MSB LSB TM R1 R0 1 1 1 1 1 低五位一直都是1 ,TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè) 置為0,用戶不要去改動(dòng)。R1和R0用來(lái)設(shè)置分辨率,如下表所示:(DS18B20出廠時(shí)被設(shè)置為12位) 表1 分辨率設(shè)置表 R1 R0 分辨率 溫度******轉(zhuǎn)換時(shí)間 0 0 9位 93.75ms 0 1 10位 187.5ms 1 0 11位 375ms 1 1 12位 750ms 5數(shù)碼顯示 利用AT89C2051串行口的移位寄存器工作方式,通過外接美國(guó)MAXIM公司推出的MAX7219串行LED顯示驅(qū) 動(dòng)器,避免了CPU直接定時(shí)對(duì)LED服務(wù),使CPU讓出更多的時(shí)間去處理被控制對(duì)象。MAX7219是串行輸入共陰極顯示 驅(qū)動(dòng)器,每片可驅(qū)動(dòng)8個(gè)LED數(shù)碼管。用戶只需對(duì)片內(nèi)的位和控制寄存器編程,即可選擇譯碼方式、LED個(gè)數(shù)、顯示 亮度和關(guān)閉等一些功能[3]。 6 硬件電路 系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示: 7系統(tǒng)軟件概述 由于DS18B20的分辨率可以通過編程進(jìn)行選擇,使得DS18B20比DS1820在分辨率提高的前提下,整體 表現(xiàn)出一致性很好。 系統(tǒng)的主程序用C51編寫,主要是C51調(diào)用匯編語(yǔ)言,完成對(duì)DS18B20的調(diào)用、中斷管理、測(cè)量溫度值的計(jì)算及溫度 值的顯示等功能。顯示程序?qū)崿F(xiàn)定時(shí)對(duì)各路溫度值的巡檢和顯示,并且在一個(gè)通道上允許修正中斷,以實(shí)現(xiàn)根據(jù) 溫度標(biāo)稱值修正傳感器的目的。使用者只需打開電源就可以從觀察屏上看到關(guān)心的溫度變化情況并且很方便紀(jì)錄 數(shù)據(jù)。 |