摘 要 本溫度設計采用現常見的89C51單片機,配以DS18B20數字溫度傳感器,該溫度傳感器可自行設置溫度上下限。單片機將檢測到的溫度信號與輸入的溫度上、下限進行比較,由此作出判斷是否啟動繼電器以開啟設備。系統包括單片機模塊、溫度檢測模塊、水位檢測模塊和驅動電路設計四個部分。文中對每個部分功能、實現過程作了詳細介紹。 目錄 一.概述 1.1課題研究的目的及意義 1.2技術指標 二.總體設計方案 三.詳細設計方案 1.1溫度檢測系統 1.2水位檢測系統 四.元件說明 1.1 工作原理 1.2單片機的選擇 1.3溫度傳感器 1.4水位傳感器 1.5 顯示元件 五.硬件模塊設計 1.1單片機模塊設計 1.2溫度檢測模塊 1.3水位檢測模塊 1.4 控制模塊 1.5 驅動電路設計 六.軟件設計 1.2 溫度檢測系統 1.3 水位檢測系統 1.4 DS18B20主程序 七.結論 八.參考文獻 附 錄 單片機與顯示器件連接圖 系統軟件源代碼
一.概述
1.1課題研究的目的及意義 目前市場上太陽能熱水器的控制系統大多存在功能單一、操作復雜、控制不方便登問題,很多控制器只具有溫度和水位顯示功能,不具有溫度控制功能。即使熱水器具有輔助加熱功能,也可能由于加熱時間不能控制而產生過燒,從而浪費電能。鑒于此,我以89C51單片機為檢測控制核心,采用數碼管顯示溫度,設計了一種太陽能熱水器微控制器,實現了溫度和水位參數的實時顯示,具有溫度設定、水位控制功能。 1.2技術指標設計并制作一個基于單片機的溫度控制系統,能夠對爐溫進行控制。爐溫可以在一定范圍內由人工設定,并能在爐溫變化時實現自動控制。若測量值高于溫度設定范圍,由單片機發出控制信號,經過驅動電路使加熱器停止工作。當溫度低于設定值時,單片機發出一個控制信號,啟動加熱器。通過繼電器的反復開啟和關閉,使爐溫保持在設定的溫度范圍內。 ⑴溫度設定范圍為0~99℃,最小區分度為1℃,溫度控制的誤差≤1℃ ⑵能夠用數碼管精確顯示當前實際溫度值 ⑶按鍵控制:設置鍵、加一鍵、減一鍵 二.總體設計方案 以89C51為主控制芯片,溫度采集采用DS18B20溫度傳感器,通過外圍電路來采集水位,用四位數碼管顯示當前的水溫,用LED燈指示水位,并且通過鍵盤來輸入所需控制的水溫。并且當水溫水位超于限制時啟動報警系統。如圖2.1總體設計方案圖所示。
圖2.1 總體設計方案圖 三.詳細設計方案3.1 總體結構設計方案一:測溫電路的設計,可以使用DS18B20溫度傳感器利用其感溫效應,在將隨被測溫度變化的電壓或電流采集后,把采樣得到的模擬信號送入ADC0809進行A/D轉換讀入單片機進行A/D轉換后,通過串行口輸入,就可以用單片機進行數據的處理,同時在顯示電路上,就可以將被測溫度顯示出來。 方案二:考慮使用溫度傳感器,結合單片機電路設計,采用一只DS18B20溫度傳感器,直接讀取被測溫度值,之后進行A/D轉換,依次完成設計要求。 比較以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設計容易實現,故實際設計中擬采用方案二。 在本系統的電路設計方框圖如圖3.1.1.2所示,它由三部分組成: ⑴主控芯片89C51; ⑵數據顯示部分; ⑶傳感器部分。   圖3.1.1 溫度計電路總體設計方案 (1)控制部分 采用傳統的數字模似電路,功能可以實現,但電路復雜,溫度誤差大,成本高,可靠性也比較差;于是我選擇采用單片機89C51控制,它結構簡單,可以減少外圍電路的搭接,并且89C51使用方便,成本比較低,性能穩定,還可以控制各模塊輸入輸出。但是由于其不能直接進行模數轉換,因此要做外圍電路設計中加AD0809芯片。 (2)顯示部分 四位一體的共陽數碼管, (3)傳感器部分 DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統的熱敏電阻等測溫元件相比,它能直接讀出被測溫。這一部分主要完成對溫度信號的采集和轉換工作,由DS18B20數字溫度傳感器及其與單片機的接口部分組成。數字溫度傳感器DS18B20把采集到的溫度經數模轉換后通過數據引腳傳到單片機的P1口,單片機接受溫度并存儲。此部分只用到DS18B20、AD0809和單片機,硬件很簡單。 3.2水位檢測系統 對于水位進行控制的方式有很多,而應用較多的主要有3種,三種方式的實現如下:
方案一:簡單的機械式控制方式。其常用形式有浮標式、電極式等,這種控制形式的優點是結構簡單,成本低廉。 方案二:利用單片機進行水位檢測和控制,基于數字電路的全自動控制,其工作過程是被測水位經過模擬信號采集模塊進行采樣,然后把采樣得到的模擬信號送入ADC0809進行A/D轉換讀入單片機,再由單片機進行處理,得出結果是否啟動/停止控制電路  執行信號以達到水位的控制,具體硬件流程框圖入圖3.2.1所示。
圖3.2.1 方案二具體流程框圖 方案三:采用89C51單片機為核心控制器的電路。因為單片機電路結構簡單成本低廉、可靠性高,便于實現各個控制功能能很好的完成設計任務。水位檢測由本設計使用的電極式水位傳感器通過檢測來實現水位的改變。獲得當前水位并通過LED燈顯示。 綜合以上三種方案,方案一和方案二由于缺少溫度檢測模塊,而水溫也是影響太陽能熱水器很重要的一方面:比如說水箱中水溫度過高導致水沸騰這時候雖然水所在刻度不是滿的,實際上已經溢出,這樣說來方案一和方案二的設計算不上智能。方案三是在方案二的基礎上完善和加強的,采用單片機鍵的雙邊通信,比起方案二更加方便,也更加合理。 四.元件說明4.1 工作原理本文闡述了基于單片機的水溫水位控制系統的設計方法,此種方法是以89C51單片機為主控制單元,對水溫水位參數進行控制,從而提高了電器的工作穩定性。以DS18B20為溫度傳感器的對水溫進行數據采集并實現溫度控制。該控制系統還可以實時存儲相關的溫度數據以及水位高度并能記錄當前的時間。為了實現功能本系統設計了相關的硬件電路和相關應用程序。硬件電路主要包括89C51單片機最小系統,測溫電路、測水位電路、LCD12864液晶顯示電路以及報警電路、鍵盤輸入參數等。系統程序主要包括主程序,讀出溫度子程序,計算溫度子程序、水位顯示子程序、按鍵處理程序、12864液晶顯示程序以及數據存儲程序以及時間顯示程序等 4.2單片機的選擇單片機的選擇在整個系統設計中至關重要,要滿足大內存、高速率、通用性、價格便宜等要求,本課題選擇89C51作為主控芯片。 89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機。它是美國ATMEL公司的低電壓,高性能CMOS8位單片機。89C2051是一種帶2K字節閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的89C51是一種高效微控制器,89C2051是它的一種精簡版本。89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。
1.3溫度傳感器美國Dallas半導體公司的數字化溫度傳感器DS18B20是世界上第一片支持 "一線總線"接口的溫度傳感器,在其內部使用了在板(ON-B0ARD)專利技術。 1.3.1 DS18B20性能及結構 
DS18B20原理與特性本系統采用了DS18B20單總線可編程溫度傳感器,來實現對溫度的采集和轉換,大大簡化了電路的復雜度,以及算法的要求。首先先來介紹一下DS18B20這塊傳感器的特性及其功能: DSl8B20的管腳及特點 DS18B20可編程溫度傳感器有3個管腳。內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。DS18B20的外形及管腳排列如下圖4.1.3.1
圖4.1.3.1 DS18B20的外形及管腳圖 GND為接地線,DQ為數據輸入輸出接口,通過一個較弱的上拉電阻與單片機相連。VDD為電源接口,既可由數據線提供電源,又可由外部提供電源,范圍3.O~5.5 V。本文使用外部電源供電。 主要特點有: 1. 用戶可自設定報警上下限溫度值。 2. 不需要外部組件,能測量-55~+125℃ 范圍內的溫度。 3. -10℃ ~+85℃ 范圍內的測溫準確度為±0.5℃ 。 4. 通過編程可實現9~l2位的數字讀數方式,可在至多750 ms內將溫度轉換成12 位的數字,測溫分辨率可達0.0625℃ 。 5. 獨特的單總線接口方式,與微處理器連接時僅需要一條線即可實現與微處理器雙向通訊。6. 測量結果直接輸出數字溫度信號,以"一線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力。7. 負壓特性:電源極性接反時,芯片不會因發熱而燒毀,但不能正常工作。8. DS18B20支持多點組網功能,多個DS18B20可以并聯在唯一的三線上,實現組網多點測溫。 
DS18B20的內部結構 DS18B20內部功能模塊如圖4.1.3.2所示, 圖4.1.3.2 DS18B20內部功能模塊
1.3.2 DS18B20工作原理 DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數因分辨率不同DS18B20 為9位~12位A/D轉換精度,而DS1820為9位A/D轉換,雖然我們采用了高精度的芯片,但在實際情況上由于技術問題比較難實現,而實際精度此時溫度寄存器中的數值即為所測溫度。斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數器1的預置值。如下圖的測溫原理圖不同,且溫度轉換時的延時時間由2s減為750ms。 DS18B20測溫原理如圖4.1.3.3所示。圖中低溫度系數晶振的振蕩頻率受溫度影響很小,用于產生固定頻率的脈沖信號送給計數器1。則高溫度系數晶振隨溫度變化其振蕩率明顯改變,所產生的信號作為計數器2的脈沖輸入。計數器1和溫度寄存器被預置在-55℃所對應的一個基數值時。計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當計數器1的預置值減到0時,溫度寄存器的值將加1,計數器1的預置將重新被裝入,計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直 到計數器2計數到0時,停止溫度寄存器值。 圖4.1.3.3 DS18B20原理圖 1.3.3 DS18B20使用中注意事項 DS18B20雖然具有測溫系統簡單、測溫精度高、連接方便、占用口線少等優點,但在實際應用中也應注意以下幾方面的問題: ⑴較小的硬件開銷需要相對復雜的軟件進行補償,由于DS18B20與微處理器間采用串行數據傳送,因此,在對DS18B20進行讀寫編程時,必須嚴格的保證讀寫時序,否則將無法讀取測溫結果。在使用PL/M、C等高級語言進行系統程序設計時,對DS18B20操作部分最好采用匯編語言實現。 ⑵在DS18B20的有關資料中均未提及單總線上所掛DS18B20數量問題,容易使人誤認為可以掛任意多個DS18B20,在實際應用中并非如此。當單總線上所掛DS18B20超過8個時,就需要解決微處理器的總線驅動問題,這一點在進行多點測溫系統設計時要加以注意。 ⑶連接DS18B20的總線電纜是有長度限制的。試驗中,當采用普通信號電纜傳輸長度超過50m時,讀取的測溫數據將發生錯誤。當將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達150m,當采用每米絞合次數更多的雙絞線帶屏蔽電纜時,正常通訊距離進一步加長。這種情況主要是由總線分布電容使信號波形產生畸變造成的。因此,在用DS18B20進行長距離測溫系統設計時要充分考慮總線分布電容和阻抗匹配問題。 ⑷在DS18B20測溫程序設計中,向DS18B20發出溫度轉換命令后,程序要等待DS18B20的返回信號,一旦某個DS18B20接觸不好或斷線,當程序讀該DS18B20時,將沒有返回信號,程序進入死循環。這一點在進行DS1820硬件連接和軟件設計時也要給予一定的重視。 測溫電纜線建議采用屏蔽4芯雙絞線,其中一對線接地線與信號線,另一組接VCC和地線,屏蔽層在源端單點接地。 1.4水位傳感器單片機水塔水位控制原理如圖l所示,圖中的虛線表示允許水位變化的上、下限位置。在正常情況下.水位應控制在虛線范圍之內。為此,在水塔內的不同高度處,安裝固定不變的3根金屬棒A、B、C。用以反映水位變化的情況。其中,A棒在下限水位.B棒在上、下限水位之間,C棒在上限水位(底端靠近水池底部.不能過低,要保證有足夠大的流水量)。水塔由電機帶動水泵供水。單片機控制電機轉動,隨著供水,水位不斷上升.當水位上升到上限水位時,由于水的導電作用。使B、C棒均與+5 V連通。因此b、C兩端的電壓都為+5 V即為。l”狀態,此時應停止電機和水泵工作,不再向水塔注水;當水位處于上、下限之間時。B棒和A棒導通.而C棒不能與A棒導通,b端為“r狀態。C端為“O”狀態。此時電機帶動水泵給水塔注水,使水位上升,還是電機不工作,水位不斷下降,都應繼續維持原有工作狀態;當水位處于下限位置以下時,B、C棒均不能與A棒導通,b、c均為“0”狀態。此時應啟動電機轉動,帶動水泵給水塔注水。 1.5 顯示元件
五.硬件模塊設計1.1單片機模塊設計控制模塊是整個設計方案的核心,它控制了溫度的采集、處理與顯示、溫度值的設定與溫度越限時控制電路的啟動。本控制模塊由單片機89C51及其外圍電成,電路如圖5.1.1所示。

圖5.1.1 單片機控制模塊電路 該電路采用按鍵加上電復位,S2為復位按鍵,復位按鍵按下后,復位端通過51Ω的小電阻與電源接通,迅速放電,使RST引腳為高電平,復位按鍵彈起后,電源通過8.2KΩ的電阻對10KμF的電容C5重新充電,RST引腳端出現復位正脈沖. AT89S51內部有一個高增益反相放大器,用于構成振蕩器,但要形成時鐘脈沖,外部還需附加電路,本設計采用內部時鐘方式,利用芯片內部的振蕩器,然后在引腳XTAL1和XTAL2兩端跨接晶體振蕩器,就構成了穩定的自激振蕩器,發出的脈沖直接送入內部時鐘電路,C6和C7的值通常選擇為30pF左右,晶振Y1選擇12MHz.為了減小寄生電容,更好地保證振蕩器穩定、可靠地工作,振蕩器電容應盡可能安裝得與單片機引腳XTAL1和XTAL2靠近。 單片機的31腳(EA)接+5V電源,表示允許使用片內ROM。 1.2溫度檢測模塊溫度由DALLAS 公司生產的一線式數字溫度傳感器DS18B20 采集。DS18B20 測溫范圍為-55°C~+125°C,測溫分辨率可達0.0625°C,被測溫度用符號擴展的16 位補碼形式串行輸出。CPU 只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。 本設計采用三引腳PR-35封裝的DS18B20,其引腳圖見圖5.1.2。Vcc接外部+5V電源,GND接地,I/O與單片機的P3.4(T0)引腳相連。
圖5.1.2 溫度傳感器電路引腳圖
1.3水位檢測模塊1.3.1 傳感器電路 作原理圖如5.1.3.1所示
圖5.1.3.1壓阻式壓力傳感器原理圖 1.3.2 時鐘電路與復位電路 要使單片機按照設計要求正常工作,完整單片機最基本的工作要求,考慮到系統無需精確地定時功能,且為了方便串口通信波特率的計算,采用11.0592MHz的晶振提供系統時鐘。并附加復位電路,組成單片機最小系統。復位操作有上電自動復位和按鍵手動復位兩種方式。我們采用上電自動復位,其是通過外部復位電路的電容充電來實現的。其電路圖如圖2-16(a)所示。這樣,只要電源 的上升時間不超過1ms,就可以實現自動上電復位,即接通電源就完成了系統的復位初始化。關于參數的選定,在振蕩穩定后應保證復位信號高電平持續時間大于2個機器周期。當采用的晶體頻率為6 MHz時,可采用C=22µF,R=1kΩ;當采用的晶體頻率為12 MHz時,可采用C=10µF,R=8.2kΩ。 
圖2-16復位電路 如果上述電路復位不僅要使單片機復位,而且還要使單片機的一些外圍芯片也同時復位,那么上述電阻、電容參考值應作少許調整。 對于CMOS型的89C51,由于在RST端內部有一個下拉電阻,故可將外部電阻去掉,而將外接電容減至1µF。 1.3.3 A/D采集轉換電路 本系統A/D芯片所選用的是ADC0809,該大規模集成電路芯片是一種由單一+5V電源供電,采用逐次逼近轉換原理,能夠對8路0—+5V輸入模擬電壓進行分時轉換的八位并行通用型可編程模數轉換器。ADC0809由單片機控制驅動,對傳感器進行定式循環采集,然后單片機將各測量參數傳至PC機,進行后臺數據處理。電路連接如圖5.1.3.3。
圖5.1.3.3 A/D轉換電路圖 1.3.4 按鍵設計 鍵盤在單片機應用系統中是一個很關鍵的部件,它能實現向單片機系統輸入數據、發送命令等功能,是人工干預單片機的主要手段。考慮到本設計實際需要的按鍵較少,故采用獨立式鍵盤接口電路。在程序查詢方式下,通過I/O端口讀入按鍵狀態,當有按鍵按下時,相應的I/O端口變為低電平,而未被按下的按鍵在上拉電阻作用下為高電平,這樣通過讀I/O口的狀態判斷是否有按鍵按下。 圖5.1.3.4 系統按鍵電路 1.4 控制模塊 控制電路與單片機的P0.2口相連,由于單片機輸出控制信號非常微弱,需要用三極管來驅動外圍電路,三極管選用NPN型的 9014,當檢測溫度低于設定溫度時,在單片機的P0.2口輸出高電平控制信號,使三極管9014導通,使繼電器兩控制端產生壓差,從而使繼電器吸合,常開觸點接通,控制外部電路對鍋爐進行加熱。控制電路電路圖如圖5.1.4所示。 圖5.1.4 控制電路 1.5 驅動電路設計 在單片機控制系統中,需要用開關量去控制和驅動一些執行元件,如發光二極管、繼電器等。但89C51單片機驅動能力有限,且高電平比低電平驅動低。一般情況下,需要加驅動接口電路,且用低電平驅動。如圖5.1.5所示
圖5.1.5驅動電路
六.軟件設計
1.1 系統軟件設計整體思路程序設計語言有三種:機器語言、匯編語言和高級語言。機器語言是機器唯一能“懂”的語言,用匯編語言或高級語言編寫的程序(稱為源程序)最終都必須翻譯成機器語言的程序(成為目標程序),計算機才能“看懂”,然后逐一執行。 高級語言是面向問題和計算過程的語言,它可通過于各種不同的計算機,用戶編程時不必仔細了解所用的計算機的具體性能與指令系統,而且語句的功能強,常常一個語句已相當于很多條計算機指令,于是用高級語言編制程序的速度比較快,也便于學習和交流,但是本系統卻選用了匯編語言。原因在于,本系統是編制程序工作量不大、規模較小的單片機微控制系統,使用匯編語言可以不用像高級語言那樣占用較多的存儲空間,適合于存儲容量較小的系統。同時,本系統對位處理要求很高,需要解決大量的邏輯控制問題。 1.2 溫度檢測系統1.2.1 系統流程圖
圖6.1.2.1 系統流程圖
1.2.2 程序編寫 程序的功能是:啟動DS18B20測量溫度,將測量值與給定值進行比較,若測得溫度小于設定值,則進入加熱階段,置P1.1為低電平,這期間繼續對溫度進行監測,直到溫度在設定范圍內,置P1.1為高電平斷開可控硅, 關閉加熱器,等待下一次的啟動命令。當測得溫度大于設定值,則進入降溫階段,則置P1.2為低電平,這期間繼續對溫度進行監測,直到溫度在設定范圍內,置P1.2為高電平斷開,關閉風扇,等待下一次的啟動命令。 1.3 水位檢測系統1.3.1系統主程序流程圖
七.結論本文詳細介紹了基于單片機89C51的溫度控制系統的設計方案與軟硬件實現。系統包括數據采集模塊,單片機控制模塊,顯示模塊和溫度設置模塊,驅動電路五個部分。文中對每個部分功能、實現過程作了詳細介紹。完成了課題既定的任務,達到了預期的目標。系統具有如下特點: ⑴.采用智能溫度傳感器DS18B20采集溫度數據,簡化了硬件電路設計,溫度采集數據更加精準; ⑵.89C51單片機的采用,有利于功能擴展; ⑶.電路設計充分考慮了系統可靠性和安全性。 本課題軟件和硬件相結合,有相當的難度,同時也有很大的實用性。
0.png (48.92 KB, 下載次數: 49)
下載附件
2018-7-1 04:30 上傳
完整的Word格式文檔51黑下載地址(仿真+源碼):
http://www.raoushi.com/bbs/dpj-126041-1.html
|