基于DS18B20 的多路溫度監(jiān)測系統(tǒng)設計與仿真-設計應用_第1頁
基于DS18B20 的多路溫度監(jiān)測系統(tǒng)設計與仿真-設計應用_第2頁
基于DS18B20 的多路溫度監(jiān)測系統(tǒng)設計與仿真-設計應用_第3頁
基于DS18B20 的多路溫度監(jiān)測系統(tǒng)設計與仿真-設計應用_第4頁
基于DS18B20 的多路溫度監(jiān)測系統(tǒng)設計與仿真-設計應用_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

精品文檔-下載后可編輯基于DS18B20的多路溫度監(jiān)測系統(tǒng)設計與仿真-設計應用摘要:提出一種基于DS18B20和AT89C51的多路溫度監(jiān)測系統(tǒng),詳細介紹了系統(tǒng)的硬軟件設計。該設計通過DS18B20單總線結(jié)構(gòu)與單片機多路并行輸入相結(jié)合的硬件改進方式,克服了DS18B20采用單總線結(jié)構(gòu)時溫度數(shù)據(jù)讀取慢、單總線驅(qū)動能力不足的問題,實現(xiàn)了多路溫度實時快速讀取和巡回監(jiān)測。該系統(tǒng)還具有超溫報警,與上位機通訊等功能。

,利用Proteus與KeilC51軟件聯(lián)合仿真實現(xiàn)了設計的仿真調(diào)試。

0引言

在實時溫度監(jiān)控系統(tǒng)中,如大棚溫度監(jiān)控、冷庫測溫、智能建筑溫度控制等系統(tǒng)中,經(jīng)常需要進行多路溫度的采集和檢測??焖佟⒖煽康夭杉礁呔葴囟葦?shù)據(jù)可為控制系統(tǒng)的工作提供可靠的依據(jù)。傳統(tǒng)上,溫度測量方法多以熱敏電阻、熱電偶等為溫度敏感元件,但都存在可靠性差、精度低、需A/D轉(zhuǎn)換以及線路復雜等的缺點。

本文提出采用美國Dallas公司生產(chǎn)的單總線數(shù)字溫度傳感器DS18B20和AT89C51單片機構(gòu)成高精度的多路溫度監(jiān)測系統(tǒng),在單片機的控制下巡回監(jiān)測多路溫度,高低溫度超限報警,并可實現(xiàn)與上位機通訊等功能。

1DS18B20簡介

DSl8B20是Dallas公司推出的1-Wire式單總線智能數(shù)字溫度傳感器。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度,溫度測量范圍為-55~125℃;可通過編程實現(xiàn)9~12位的轉(zhuǎn)換精度,對應的可分辨溫度分別為0.5℃,0.25℃,0.125℃和0.0625℃,可滿足高精度設計要求;在9位分辨率時多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字;電源供電范圍3.0~5.5V;讀取或?qū)懭胄畔⒌紻S18B20僅需要單總線接口(即將地址線、數(shù)據(jù)線、控制線合成一條信號線);測量結(jié)果直接輸出數(shù)字溫度信號,串行傳送給CPU同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力;使用DS18B20可使系統(tǒng)結(jié)構(gòu)簡潔,可靠性更高。以上特性使得DSl8B20非常適用于構(gòu)建高精度的多路溫度采集與檢測系統(tǒng)。

2硬件電路設計

系統(tǒng)原理框圖如圖1所示,系統(tǒng)由多片DS18B20、AT89C51單片機、LED驅(qū)動顯示電路、溫度上下限設定電路、報警提示電路、串行通信接口、時鐘電路、復位電路等構(gòu)成。

系統(tǒng)采用8片DS18B20構(gòu)成溫度采集電路,8片DS18B20采用單總線與并行輸入相結(jié)合的方式接至單片機的P1口。單片機巡回采集各路DS18B20送來的溫度信息后,通過軟件設計算法,將處理后的溫度信息及相應的溫度路數(shù)通過LED數(shù)碼管顯示出來,各路溫度值的上下限可通過P3.2~P3.4獨立式鍵盤進行設定。若某路超過溫度設定的上下限將進行通過P3.5或P3.6進行報警提示。此外,可通過串行口RS232模塊將各路溫度數(shù)據(jù)送上位機處理。系統(tǒng)采用Proteus仿真軟件設計的仿真電路如圖2所示,此時LED顯示的是第3路溫度值。

2.1測溫電路設計

采用8片DS18B20組成多路測溫電路。DS18B20內(nèi)部均有一個惟一的64位產(chǎn)品序列號,單片機通過序列號可對一條總線上的多路DS18B20進行控制,讀取其溫度。但DS18B20僅由單總線采集多路溫度數(shù)據(jù)時,軟件設計算法復雜,讀取速度慢,無法適用于實時性要求高的測溫場合。特別是當單總線上掛接的DS18B20傳感器個數(shù)大于8個時,采用寄生電源供電方式亦存在總線驅(qū)動能力不足等問題[3].為此,本設計采用“單總線結(jié)構(gòu)+并行I/O口輸入”相結(jié)合的方式,實時巡回采集多路DS18B20的溫度信息。具體做法是:硬件上將8片DS18B20的單總線分別連到單片機的并行P1口引腳,同時各片DS18B20的電源端采用外部電源供電方式,且每個單總線另接一個4.7kΩ的上拉電阻到5V電源以保證達到足夠的工作電流;軟件上讀取多路溫度與讀取單路溫度的操作類似,不需讀取讀出所用DS18B20的序列號,而只需通過參數(shù)傳遞來循環(huán)讀取各路溫度數(shù)據(jù)(軟件設計中介紹)。

2.2鍵盤與LED顯示電路設計

LED顯示電路設計:P0口輸出顯示代碼經(jīng)74LS245驅(qū)動后接到8位LED數(shù)碼管的段選線,P2口輸出接到LED的位選線。正常情況下,8位LED數(shù)碼管用于循環(huán)顯示通道號及該通道的溫度值。

鍵盤輸入設計:采用獨立式鍵盤P3.2~P3.4用來修改溫度報警的上限與下限值。系統(tǒng)默認的溫度報警上限為50℃,下限為-10℃。系統(tǒng)上電后,LED數(shù)碼管將先后顯示溫度報警上/下限值。若按P3.2鍵報警值加1;若按P3.3鍵報警值減1;P3.4為確定鍵,用于保存修改值。

此外,當系統(tǒng)檢測到當前通道溫度值超過設定的上、下,將通過P3.6,P3.7進行閃光報警提示。

2.3串行通信設計

檢測系統(tǒng)可通過串行口與上位機進行通信,向上位機傳送溫度值及相應的通道號。實物中通過RS232串行接口與上位機連接,上位機的控制界面由VB6.0編寫。當運行Proteus軟件時,可以從虛擬終端看到上位機接收到的8個通道的溫度數(shù)據(jù)及相應的通道號。

3軟件設計

3.1軟件總體設計

如圖3所示。

系統(tǒng)上電復位后,程序主要包括:

(1)系統(tǒng)初始化設置。

(2)按鍵處理子程序:LED數(shù)碼管顯示上限報警溫度值并閃爍,若10s中之內(nèi)有按鍵輸入修改溫度值,則進行鍵盤操作直至修改完成,并保存溫度上限值;若10s之內(nèi)無按鍵輸入或按P3.4“確定”鍵,則保存上限溫度;接著顯示下限報警溫度值并閃爍,重復上述操作后保存下限報警溫度值。

(3)溫度報警值設置子程序:實現(xiàn)將8路的報警溫度寫入DS18B20中,流程圖詳見圖4所示。

(4)讀取溫度子程序:在對顯示路數(shù)初始化后,進行溫度值讀取,這是軟件設計的關鍵,下面將單獨介紹。

(5)溫度報警處理:讀取某路DS18B20溫度值及報警上下限值后,進行比較,若超出范圍則啟動定時器0,驅(qū)動上/下限報警提示單元。

(6)顯示當前通道溫度子程序:取得當前通道號后,根據(jù)讀取的2字節(jié)溫度值(溫度暫存器格式參考DS18B20技術(shù)手冊),判斷其符號位并分別讀取其整數(shù)部分和小數(shù)部分,通過運算后保存到顯示緩沖區(qū),進行動態(tài)顯示,并刷新顯示若干時間。

(7)上位機通信子程序:每采集一路溫度數(shù)據(jù),通過RS232串口,將其通道號、溫度值發(fā)送給上位機,完成相應通道的溫度數(shù)據(jù)采集處理。

(8)循環(huán)修改:修改通道號,進行下一路溫度數(shù)據(jù)采集,直至8路溫度處理完成,如此循環(huán)往復。

3.2讀取溫度子程序設計

采用DS18B20進行單路測量時,可直接與單片機相連,不需讀取讀出器件的64位產(chǎn)品序列號。當采用DS18B20進行多路測溫時,在初始化操作后,通常的做法是需要在線逐個地搜索64位ROM編碼以確認各個DS18B20所在位置,并需對ROM編碼進行冗余校驗,算法設計復雜。且等待多路搜索是否完成需要消耗大量的時間,使程序執(zhí)行的效率和系統(tǒng)實時性受到了影響。

本設計采用“單總線結(jié)構(gòu)+并行I/O口輸入”結(jié)合的方式巡回讀取多路溫度。DS18B20作為單總線芯片,進行信息交換時有嚴格的讀/寫時序要求。讀取溫度子程序流程如圖5所示。首先通過參數(shù)傳遞將通道號傳給讀取溫度子程序,接著對DS18B20進行初始化,然后直接執(zhí)行跳過ROM命令(CCH),即不讀取64位ROM編碼而直接向DS18B20發(fā)出功能命令,節(jié)約了時間。之后,再向DS18B20發(fā)送溫度轉(zhuǎn)換命令(44H),DS18B20啟動溫度采樣與A/D轉(zhuǎn)換,并將轉(zhuǎn)換數(shù)據(jù)存儲在暫存器中。

然后再次初始化DS18B20,并在再跳過ROM命令后,執(zhí)行單片機讀暫存器命令(BEH),根據(jù)傳遞參數(shù)確定的通道號,可將通道號對應的DS18B20高速暫存存儲器的9個字節(jié)數(shù)據(jù)讀入單片機中,其中第0,1字節(jié)分別是溫度值低位(LSbyte)和高位(MSbyte),第2,3字節(jié)分別是高溫限值(TH)和低溫限值(TL),從而完成某通道DS18B20的溫度采集。

3.3軟件設計流程

軟件設計流程如圖4,圖5所示。

4KeilC51與Proteus聯(lián)合仿真

軟件采用C語言編程,在KeilC51集成開發(fā)環(huán)境下將編寫的程序進行編譯、調(diào)試[6],并生成目標文件(XX.hex)。

同時利用嵌入式仿真軟件Proteus繪制出電路仿真原理圖,CPU選擇AT89C51.雙擊AT89C51,在出現(xiàn)的對話框中的“Programfile”加入已生成的XX.hex文件,并進行仿真調(diào)試,調(diào)試成功則可以修改溫度報警值,及在正常運行時看到循環(huán)顯示所采集到的溫度值、通道號,仿真效果圖如圖6所示。

5結(jié)語

本設計以Proteus仿真軟件作為開發(fā)工具,以AT89C51單片機作為控制,使用DS18B20芯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論