當(dāng)前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要:提出一種基于DS18B20和AT89C51的多路溫度監(jiān)測系統(tǒng),詳細(xì)介紹了系統(tǒng)的硬軟件設(shè)計(jì)。該設(shè)計(jì)通過DS18B20單總線結(jié)構(gòu)與單片機(jī)多路并行輸入相結(jié)合的硬件改進(jìn)方式,克服了DS18B20采用單總線結(jié)構(gòu)時(shí)溫度數(shù)據(jù)讀取慢、單總

摘要:提出一種基于DS18B20和AT89C51的多路溫度監(jiān)測系統(tǒng),詳細(xì)介紹了系統(tǒng)的硬軟件設(shè)計(jì)。該設(shè)計(jì)通過DS18B20單總線結(jié)構(gòu)與單片機(jī)多路并行輸入相結(jié)合的硬件改進(jìn)方式,克服了DS18B20采用單總線結(jié)構(gòu)時(shí)溫度數(shù)據(jù)讀取慢、單總線驅(qū)動(dòng)能力不足的問題,實(shí)現(xiàn)了多路溫度實(shí)時(shí)快速讀取和巡回監(jiān)測。該系統(tǒng)還具有超溫報(bào)警,與上位機(jī)通訊等功能。最后,利用Proteus與Keil C51軟件聯(lián)合仿真實(shí)現(xiàn)了設(shè)計(jì)的仿真調(diào)試。
關(guān)鍵詞:溫度監(jiān)測;DS18B20;單總線;AT89C51;Proteus

0 引言
    在實(shí)時(shí)溫度監(jiān)控系統(tǒng)中,如大棚溫度監(jiān)控、冷庫測溫、智能建筑溫度控制等系統(tǒng)中,經(jīng)常需要進(jìn)行多路溫度的采集和檢測。快速、可靠地采集到高精度溫度數(shù)據(jù)可為控制系統(tǒng)的工作提供可靠的依據(jù)。傳統(tǒng)上,溫度測量方法多以熱敏電阻、熱電偶等為溫度敏感元件,但都存在可靠性差、精度低、需A/D轉(zhuǎn)換以及線路復(fù)雜等的缺點(diǎn)。本文提出采用美國Dalias公司生產(chǎn)的單總線數(shù)字溫度傳感器DS18B20和AT89C51單片機(jī)構(gòu)成高精度的多路溫度監(jiān)測系統(tǒng),在單片機(jī)的控制下巡回監(jiān)測多路溫度,高低溫度超限報(bào)警,并可實(shí)現(xiàn)與上位機(jī)通訊等功能。

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

2 硬件電路設(shè)計(jì)
   
系統(tǒng)原理框圖如圖1所示,系統(tǒng)由多片DS18B20、AT89C51單片機(jī)、LED驅(qū)動(dòng)顯示電路、溫度上下限設(shè)定電路、報(bào)警提示電路、串行通信接口、時(shí)鐘電路、復(fù)位電路等構(gòu)成。


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


2.1 測溫電路設(shè)計(jì)
   
采用8片DS18B20組成多路測溫電路。DS18B20內(nèi)部均有一個(gè)全球惟一的64位產(chǎn)品序列號(hào),單片機(jī)通過序列號(hào)可對(duì)一條總線上的多路DS18 B20進(jìn)行控制,讀取其溫度。但DS18B20僅由單總線采集多路溫度數(shù)據(jù)時(shí),軟件設(shè)計(jì)算法復(fù)雜,讀取速度慢,無法適用于實(shí)時(shí)性要求高的測溫場合。特別是當(dāng)單總線上掛接的DS18B20傳感器個(gè)數(shù)大于8個(gè)時(shí),采用寄生電源供電方式亦存在總線驅(qū)動(dòng)能力不足等問題。為此,本設(shè)計(jì)采用“單總線結(jié)構(gòu)+并行I/O口輸入”相結(jié)合的方式,實(shí)時(shí)巡回采集多路DS18B20的溫度信息。具體做法是:硬件上將8片DS18B20的單總線分別連到單片機(jī)的并行P1口引腳,同時(shí)各片DS18B20的電源端采用外部電源供電方式,且每個(gè)單總線另接一個(gè)4.7 kΩ的上拉電阻到5 V電源以保證達(dá)到足夠的工作電流;軟件上讀取多路溫度與讀取單路溫度的操作類似,不需讀取讀出所用DS18B20的序列號(hào),而只需通過參數(shù)傳遞來循環(huán)讀取各路溫度數(shù)據(jù)(軟件設(shè)計(jì)中介紹)。
2.2 鍵盤與LED顯示電路設(shè)計(jì)
   
LED顯示電路設(shè)計(jì):P0口輸出顯示代碼經(jīng)74LS245驅(qū)動(dòng)后接到8位LED數(shù)碼管的段選線,P2口輸出接到LED的位選線。正常情況下,8位LED數(shù)碼管用于循環(huán)顯示通道號(hào)及該通道的溫度值。
    鍵盤輸入設(shè)計(jì):采用獨(dú)立式鍵盤P3.2~P3.4用來修改溫度報(bào)警的上限與下限值。系統(tǒng)默認(rèn)的溫度報(bào)警上限為50℃,下限為-10℃。系統(tǒng)上電后,LED數(shù)碼管將先后顯示溫度報(bào)警上/下限值。若按P3.2鍵報(bào)警值加1;若按P3.3鍵報(bào)警值減1;P3.4為確定鍵,用于保存修改值。
    此外,當(dāng)系統(tǒng)檢測到當(dāng)前通道溫度值超過設(shè)定的上、下限時(shí),將通過P3.6,P3.7進(jìn)行閃光報(bào)警提示。
2.3 串行通信設(shè)計(jì)
   
檢測系統(tǒng)可通過串行口與上位機(jī)進(jìn)行通信,向上位機(jī)傳送溫度值及相應(yīng)的通道號(hào)。實(shí)物中通過RS 232串行接口與上位機(jī)連接,上位機(jī)的控制界面由VB 6.0編寫。當(dāng)運(yùn)行Proteus軟件時(shí),可以從虛擬終端看到上位機(jī)接收到的8個(gè)通道的溫度數(shù)據(jù)及相應(yīng)的通道號(hào)。

3 軟件設(shè)計(jì)
3.1 軟件總體設(shè)計(jì)
   
如圖3所示,系統(tǒng)上電復(fù)位后,程序主要包括:


    (1)系統(tǒng)初始化設(shè)置。
    (2)按鍵處理子程序:LED數(shù)碼管顯示上限報(bào)警溫度值并閃爍,若10 s中之內(nèi)有按鍵輸入修改溫度值,則進(jìn)行鍵盤操作直至修改完成,并保存溫度上限值;若10 s之內(nèi)無按鍵輸入或按P3.4“確定”鍵,則保存上限溫度;接著顯示下限報(bào)警溫度值并閃爍,重復(fù)上述操作后保存下限報(bào)警溫度值。
    (3)溫度報(bào)警值設(shè)置子程序:實(shí)現(xiàn)將8路的報(bào)警溫度寫入DS18B20中,流程圖詳見圖4所示。
    (4)讀取溫度子程序:在對(duì)顯示路數(shù)初始化后,進(jìn)行溫度值讀取,這是軟件設(shè)計(jì)的關(guān)鍵,下面將單獨(dú)介紹。
    (5)溫度報(bào)警處理:讀取某路DS18B20溫度值及報(bào)警上下限值后,進(jìn)行比較,若超出范圍則啟動(dòng)定時(shí)器0,驅(qū)動(dòng)上/下限報(bào)警提示單元。
    (6)顯示當(dāng)前通道溫度子程序:取得當(dāng)前通道號(hào)后,根據(jù)讀取的2字節(jié)溫度值(溫度暫存器格式參考DS18B20技術(shù)手冊(cè)),判斷其符號(hào)位并分別讀取其整數(shù)部分和小數(shù)部分,通過運(yùn)算后保存到顯示緩沖區(qū),進(jìn)行動(dòng)態(tài)顯示,并刷新顯示若干時(shí)間。
    (7)上位機(jī)通信子程序:每采集一路溫度數(shù)據(jù),通過RS 232串口,將其通道號(hào)、溫度值發(fā)送給上位機(jī),完成相應(yīng)通道的溫度數(shù)據(jù)采集處理。
    (8)循環(huán)修改:修改通道號(hào),進(jìn)行下一路溫度數(shù)據(jù)采集,直至8路溫度處理完成,如此循環(huán)往復(fù)。
3.2 讀取溫度子程序設(shè)計(jì)
   
采用DS18B20進(jìn)行單路測量時(shí),可直接與單片機(jī)相連,不需讀取讀出器件的64位產(chǎn)品序列號(hào)。當(dāng)采用DS18B20進(jìn)行多路測溫時(shí),在初始化操作后,通常的做法是需要在線逐個(gè)地搜索64位ROM編碼以確認(rèn)各個(gè)DS18B20所在位置,并需對(duì)ROM編碼進(jìn)行冗余校驗(yàn),算法設(shè)計(jì)復(fù)雜。且等待多路搜索是否完成需要消耗大量的時(shí)間,使程序執(zhí)行的效率和系統(tǒng)實(shí)時(shí)性受到了影響。
    本設(shè)計(jì)采用“單總線結(jié)構(gòu)+并行I/O口輸入”結(jié)合的方式巡回讀取多路溫度。DS18B20作為單總線芯片,進(jìn)行信息交換時(shí)有嚴(yán)格的讀/寫時(shí)序要求。讀取溫度子程序流程如圖5所示。首先通過參數(shù)傳遞將通道號(hào)傳給讀取溫度子程序,接著對(duì)DS18B20進(jìn)行初始化,然后直接執(zhí)行跳過ROM命令(CCH),即不讀取64位ROM編碼而直接向DS18B20發(fā)出功能命令,節(jié)約了時(shí)間。之后,再向DS18B20發(fā)送溫度轉(zhuǎn)換命令(44H),DS18B20啟動(dòng)溫度采樣與A/D轉(zhuǎn)換,并將轉(zhuǎn)換數(shù)據(jù)存儲(chǔ)在暫存器中。
    然后再次初始化DS18B20,并在再一次跳過ROM命令后,執(zhí)行單片機(jī)讀暫存器命令(BEH),根據(jù)傳遞參數(shù)確定的通道號(hào),可將通道號(hào)對(duì)應(yīng)的DS18B20高速暫存存儲(chǔ)器的9個(gè)字節(jié)數(shù)據(jù)讀入單片機(jī)中,其中第0,1字節(jié)分別是溫度值低位(LS byte)和高位(MS byte),第2,3字節(jié)分別是高溫限值(TH)和低溫限值(TL),從而完成某通道DS18B20的溫度采集。
3.3 軟件設(shè)計(jì)流程
   
軟件設(shè)計(jì)流程如圖4,圖5所示。



4 Keil C51與Proteus聯(lián)合仿真
   
軟件采用C語言編程,在Keil C51集成開發(fā)環(huán)境下將編寫的程序進(jìn)行編譯、調(diào)試,并生成目標(biāo)文件(XX.hex)。同時(shí)利用嵌入式仿真軟件Proteus繪制出電路仿真原理圖,CPU選擇AT89C51。雙擊AT89C51,在出現(xiàn)的對(duì)話框中的“Program file”加入已生成的XX.hex文件,并進(jìn)行仿真調(diào)試,調(diào)試成功則可以修改溫度報(bào)警值,及在正常運(yùn)行時(shí)看到循環(huán)顯示所采集到的溫度值、通道號(hào),仿真效果圖如圖6所示。



5 結(jié)語
   
本設(shè)計(jì)以Proteus仿真軟件作為開發(fā)工具,以AT89C51單片機(jī)作為控制核心,使用DS18B20芯片作為溫度傳感器,加上適當(dāng)?shù)耐鈬娐?,組成了多路溫度巡回監(jiān)測系統(tǒng)。與傳統(tǒng)溫度傳感器相比,可直接輸出數(shù)字信號(hào)而不必考慮A/D轉(zhuǎn)換問題,抗干擾能力與可靠性大大提升。同時(shí),采用單總線與多路并行輸入相結(jié)合的方法,克服了DS18B20傳統(tǒng)上采用單總線結(jié)構(gòu)時(shí)所存在的問題,實(shí)現(xiàn)多路溫度實(shí)時(shí)讀取、巡回監(jiān)測、與上位機(jī)通信等功能,且系統(tǒng)具有結(jié)構(gòu)簡潔、精度高、適應(yīng)性強(qiáng)、維護(hù)方便等優(yōu)點(diǎn),在多路溫度采集與監(jiān)測領(lǐng)域中有很好的實(shí)用價(jià)值。



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉