畢業(yè)設計論文 基于單片機水溫控制器的設計_第1頁
畢業(yè)設計論文 基于單片機水溫控制器的設計_第2頁
畢業(yè)設計論文 基于單片機水溫控制器的設計_第3頁
畢業(yè)設計論文 基于單片機水溫控制器的設計_第4頁
畢業(yè)設計論文 基于單片機水溫控制器的設計_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的水溫控制器的設計摘 要本系統(tǒng)的設計可以用于熱水器溫度控制系統(tǒng)和飲水機等各種電器電路 中。它以單片機 A T89S52為核心,通過 3個數(shù)碼管顯示溫度和 4個按鍵實 現(xiàn)人機對話,使用單總線溫度轉換芯片 DS18B20實時采集溫度并通過數(shù)碼 管顯示,并提供各種運行指示燈用來指示系統(tǒng)現(xiàn)在所處狀態(tài),如:溫度設 置、加熱、停止加熱等,整個系統(tǒng)通過四個按鍵來設置加熱溫度和控制運 行模式。關鍵詞:單片機;數(shù)碼管顯示;單總線; DS18B20THE DESIGN OF THE CONTROLLER FORWATER TEMPERATURE BASED ON MCUABSTRACTT his sys

2、tem can be used in the design of the water heater temperature control system and various electrical appliances such as rice cookers circuit. The core of it is a microcomputer AT89S52. It realize interactive between people and device by three digital display temperature and four keys. The temperature

3、 conversion 1 -WIRE BUS chip DS18B20 real-time sampling and display the temperature through the digital and provide various indicator to indicate different states of the system now,eg. settings temperature,heating,stop etc. The whole system use four keys to set up the heating temperature and control

4、 mode.KEYWORDS: Microcomputer; Digital Display; 1-WIRE BUS; DS18B20目 錄1 緒論 . - 1 -2 系統(tǒng)總體設計 . - 2 -2.1硬件總體設計 . - 2 -2.1.1硬件系統(tǒng)子模塊 . - 2 -2.2 軟件總體設計 . - 2 -3 硬件系統(tǒng)設計 . - 4 -3.1硬件電路分析和設計報告 . - 4 -3.1.1單片機最小系統(tǒng)電路 . - 4 -3.1.2 鍵盤電路 . - 5 -3.1.3 數(shù)碼管及指示燈顯示電路 . - 5 -3.1.4 溫度采集電路 . - 7 -3.1.5 電源電路 . - 11 -3.1.6

5、報警電路設計 . - 12 -3.1.7加熱管控制電路設計 . - 12 -4 系統(tǒng)軟件設計 . - 14 -4.1主程序流程圖 . - 14 -4.2各個模塊的流程圖 . - 16 -4.2.1讀取溫度 DS18B20模塊的流程 . - 16 -4.2.2鍵盤掃描處理流程 . - 18 -4.2.3 報警處理流程 . - 18 -5 系統(tǒng)調試 . - 20 -5.1 硬件電路調試 . - 20 -5.2 軟件調試 . - 20 -5.3 系統(tǒng)操作說明 . - 21 -5.4數(shù)據(jù)測試 . - 21 -總 結 . - 23 -致 謝 . 錯 誤!未定義書簽。 參考文獻 . - 24 -附錄一:系

6、統(tǒng)源程序 . - 25 -附錄二:系統(tǒng)硬件總圖 . - 34 -基于單片機的水溫控制器的設計1 緒論本系統(tǒng)的設計可以用于水溫控制系統(tǒng)和電飯煲等各種電器電路中。它以單片機 AT89S52為核心,通過數(shù)碼管顯示溫度和語音提示實現(xiàn)人機對話,使用溫度轉換芯片 DS18B20實時采集溫度并通過數(shù)碼管顯示, 并提供各種運行指示燈用來指示系統(tǒng)現(xiàn)在所 處狀態(tài),如:溫度設置、加熱、停止加熱等,整個系統(tǒng)通過四個按鍵來設置加熱溫度和 控制運行模式。溫度控制系統(tǒng)可以說是無所不在,熱水器系統(tǒng)、空調系統(tǒng)、冰箱、電飯煲、電風扇 等家電產(chǎn)品以至手持式高速高效的計算機和電子設備, 均需要提供溫度控制功能。 以計 算機為例,當中

7、的中央處理器的運行速度愈快,所耗散的熱量便愈多,為免計算機系統(tǒng) 過熱而受損,有關系統(tǒng)必須加強溫度過高保護功能。傳統(tǒng)的溫度采集電路相當復雜,需要經(jīng)過溫度采集、信號放大、濾波、 AD 轉換等 一系列工作才能得到溫度的數(shù)字量,并且這種方式不僅電路復雜,元器件個數(shù)多,而且 線性度和準確度都不理想, 抗干擾能力弱。 現(xiàn)在常用的溫度傳感器芯片不但功率消耗低、 準確率高, 而且比傳統(tǒng)的溫度傳感器有更好的線性表現(xiàn), 最重要的一點是使用起來方便。 自動控制儀器儀表總的發(fā)展趨勢是高性能、數(shù)字化、集成化、智能化和網(wǎng)絡化。智 能溫度控制系統(tǒng)的設計是為了滿足市場對成本低、性能穩(wěn)定、可遠程監(jiān)測、控制現(xiàn)場溫 度的需求而做的

8、課題,具有較為廣闊的市場前景。本系統(tǒng)的核心控制芯片選用的是 51系列單片機 AT89S52,單片機在各個技術領域 中的迅猛發(fā)展,與單片機所構成的計算機應用系統(tǒng)的特點有關:·單片機構成的應用系統(tǒng)有較大的可靠性。·系統(tǒng)構建簡潔、易行,能方便的實現(xiàn)系統(tǒng)功能。·由于構成的系統(tǒng)是一個計算機系統(tǒng), 相當多的功能由軟件實現(xiàn), 故具有柔性特 點。·有優(yōu)異的性能價格比。2 系統(tǒng)總體設計設計并制作一個基于單片機的熱水器溫度控制系統(tǒng)的電路,其結構框圖如圖 2-1:圖 2-1 系統(tǒng)結構框圖(1 單片機最小系統(tǒng)電路部分(2 鍵盤掃描電路部分(3 數(shù)碼管溫度顯示和運行指示燈電路部分

9、(4 溫度采集電路部分(5 繼電器控制部分(6 報警部分2.2 軟件總體設計良好的設計方案可以減少軟件設計的工作量, 提高軟件的通用性, 擴展性和可讀性。 本系統(tǒng)的設計方案和步驟如下:(1 根據(jù)需求按照系統(tǒng)的功能要求,逐級劃分模塊。(2 明確各模塊之間的數(shù)據(jù)流傳遞關系, 力求數(shù)據(jù)傳遞少, 以增強各模塊的獨立性, 便于軟件編制和調試。 (3 確定軟件開發(fā)環(huán)境,選擇設計語言,完成模塊功能設計,并分別調試通過。(4 按照開發(fā)式軟件設計結構, 將各模塊有機的結合起來, 即成一個較完善的系統(tǒng)。 首先接通電源系統(tǒng)開始工作, 系統(tǒng)開始工作后, 通過按鍵設定溫度值的上限值和下 限值,確定按鍵將設定的溫度值存儲

10、到指定的地址空間,溫度傳感器開始實時檢測,調 用顯示子程序顯示檢測結果, 調用比較當前顯示溫度值與開始設定的溫度值比較, 如果 當前顯示值低于設定值就通過繼電器起動加熱裝置, 直到達到設定值停止加熱, 之后進 行保溫,如果溫度高于上限進行報警。3 硬件系統(tǒng)設計本次設計主要思路是通過對單片機編程將由溫度傳感器 DS18B20采集的溫度外加 驅動電路顯示出來,包括對繼電器的控制,進行升溫,當溫度達到上下限蜂鳴器進行報 警。 P1.7開關按鈕是用于確認設定溫度的,初始按下表示開始進入溫度設定狀態(tài),然后 通過 P1.5和 P1.6設置溫度的升降,再次按下 P1.7時,表示確認所設定的溫度,然后轉入 升

11、溫或降溫。 P2.3所接的發(fā)光二極管用于表示加熱狀態(tài), P2.5所接的發(fā)光二極管用于表 示保溫狀態(tài)。 P2.3接繼電器。 P3.1是溫度信號線。整個電路都是通過軟件控制實現(xiàn)設計 要求。因為 89S52單片機內部自帶 8K 的 ROM 和 256字節(jié)的 RAM ,因此不必構建單片機系統(tǒng) 的擴展電路。如圖 3-1,單片機最小系統(tǒng)有復位電路和振蕩器電路。值得注意的一點是 單片機的 31腳 VPEA /必須接高電平,否則系統(tǒng)將不能運行。因為該腳不接時為低電平, 單片機將直接讀取外部程序存儲器,而系統(tǒng)沒有外部程序存儲器,所以 VPEA /必須接 VCC 圖 3-1 單片機最小系統(tǒng)圖3.1.2 鍵盤電路鍵

12、盤是單片機應用系統(tǒng)中的主要輸入設備, 單片機使用的鍵盤分為編碼鍵盤和非編 碼鍵盤。編碼鍵盤采用硬件線路來實現(xiàn)鍵盤的編碼,每按下一個鍵,鍵盤能夠自動生成 按鍵代碼,并有去抖功能。因此使用方便,但硬件較復雜。非編碼鍵盤僅僅提供鍵開關 狀態(tài),由程序來識別閉合鍵,消除抖動,產(chǎn)生相應的代碼,轉入執(zhí)行該鍵的功能程序。 非編碼鍵盤中鍵的數(shù)量較少,硬件簡單,在單片機中應用非常廣泛。圖為按鍵和 AT89S52的接線圖,檢測儀共設有 4個按鍵,每個按鍵由軟件來決定其 功能, 4個按鍵功能分別為:(1 SW1:設定按鍵 (設定按鍵 (2 SW2:加法按鍵 (當前位加 5(3 SW3:減法按鍵 (當前位減 5(4 S

13、W4:退出設置鍵 (系統(tǒng)初始化 12345673.1.3 數(shù)碼管及指示燈顯示電路(1數(shù)碼管顯示說明各個數(shù)碼管的段碼都是單片機的數(shù)據(jù)口輸出,即各個數(shù)碼管輸入的段碼都是一樣的,為了使其分別顯示不同的數(shù)字,可采用動態(tài)顯示的方式,即先只讓最低位顯示 0(含 點 ,經(jīng)過一段延時,再只讓次低位顯示 1,如此類推。由視覺暫留,只要我們的延時時 間足夠短,就能夠使得數(shù)碼的顯示看起來非常的穩(wěn)定清楚,過程如表 3-1。 本論文中使用了 3個數(shù)碼管,其中前兩位使用動態(tài)掃描顯示實測溫度,在設置加熱 溫度的時候,兩個數(shù)碼管是閃爍,以提示目前處在溫度設置狀態(tài)。第三位數(shù)碼管靜態(tài)顯 示符號“”。(2運行指示燈說明本熱水器溫度

14、控制系統(tǒng)中共使用到 3個 LED 指示燈和 3個數(shù)碼管。右上角的紅色 LED 是電源指示燈;數(shù)碼管右邊的紅色 LED 是加熱指示燈,當剛開機或溫度降到設定溫度 5以下時, 該燈會亮,表示目前處于加熱狀態(tài);當溫度上升到設定溫度時,該 LED 滅,同時數(shù)碼管 右邊的綠色 LED 亮,表示目前處于保溫狀態(tài),用戶可以使用熱水器;當溫度再次下降到 設定溫度 5以下時,綠色 LED 滅,紅色加熱的 LED 燈亮,不斷循環(huán)。3.1.4 溫度采集電路(1 DS18B20介紹Dallas 最新單線數(shù)字溫度傳感器 DS18B20簡介新的“一線器件”體積更小、適用電 壓更寬、 更經(jīng)濟。 Dallas 半導體公司的數(shù)

15、字化溫度傳感器 DS1820是世界上第一片支持 “一 線總線”接口的溫度傳感器。一線總線獨特而且經(jīng)濟的特點,使用戶可輕松地組建傳感 器網(wǎng)絡, 為測量系統(tǒng)的構建引入全新概念。 DS18B20、 DS1822“一線總線”數(shù)字化溫度 傳感器同 DS18B20一樣, DS18B20也支持“一線總線”接口,測量溫度范圍為 -55 +125,在 -10 +85范圍內 , 精度為±0.5。 DS1822的精度較差為±2。現(xiàn)場溫 度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。其 DS18B20的管 腳配置和封裝結構如圖 3-4所示。 圖 3-4 DS18B20封裝引腳定義:

16、 DQ為數(shù)字信號輸入 /輸出端; GND為電源地; VDD為外接供電電源輸入端(在寄生電源接線方式時接地。(2 DS18B20的單線(1-wire bus系統(tǒng)單線總線結構是 DS18B20的突出特點,也是理解和編程的難點。從兩個角度來理解 單線總線:第一,單線總線只定義了一個信號線,而且 DS18B20智能程度較低(這點可 以與微控制器和 SPI 器件間的通信做一個比較,所以 DS18B20和處理器之間的通信必 然要通過嚴格的時序控制來完成。第二, DS18B20的輸出口是漏級開路輸出,這里給出 一個微控制器和 DS18B20連接原理圖。這種設計使總線上的器件在合適的時間驅動它。 顯然,總線上

17、的器件與(wired AND 關系。這就決定:(1微控制器不能單方面控 制總線狀態(tài)。之所以提出這點,是因為相當多的文獻資料上認為,微控制器在讀取總線 上數(shù)據(jù)之前的 I/O口的置 1操作是為了給 DS18B20一個發(fā)送數(shù)據(jù)的信號。這是一個錯誤的 觀點。如果當前 DS18b20發(fā)送 0,即使微控制器 I/O口置 1,總線狀態(tài)還是 0; 置 1操作是為 了是 I/O口截止(cut off,以確保微控制器正確讀取數(shù)據(jù)。(2除了 DS18B20發(fā)送 0的 時間段,其他時間其輸出口自動截止。自動截止是為確保:1時,在總線操作的間隙總 線處于空閑狀態(tài),即高態(tài)。 2時,確保微控制器在寫 1的時候 DS18B2

18、0可以正確讀入。 由于 DS18B20采用的是 1-Wire 總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳 輸,而對 AT89S52單片機來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對 DS18B20芯片的訪問。 DS18B20的復位時序,如圖 3-5圖 3-5 DS18B20的復位時序圖 DS18B20的讀時序對于 DS18B20的讀時序分為讀 0時序和讀 1時序兩個過程。對于 DS18B20的讀時隙是從主機把單總線拉低之后,在 15秒之內就得釋放單總線, 以讓 DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。 DS18B20在完成一個讀時序過程,至少需要 6

19、0us 才能完成。 DS18B20的讀時序圖如圖 3-6所示。 圖 3-6 DS18B20的讀時序 DS18B20的寫時序對于 DS18B20的寫時序仍然分為寫 0時序和寫 1時序兩個過程。對于 DS18B20寫 0時序和寫 1時序的要求不同,當要寫 0時序時,單總線要被拉低至 少 60us , 保證 DS18B20能夠在 15us 到 45us 之間能夠正確地采樣 IO 總線上的“ 0”電平, 當 要寫 1時序時,單總線被拉低之后,在 15us 之內就得釋放單總線。如圖 3-7所示。 圖 3-7 DS18B20的寫時序圖(3 DS18B20的供電方式在圖 3-8中示出了 DS18B20的寄生

20、電源電路。當 DQ 或 VDD 引腳為高電平時,這個電 路便“取”的電源。寄生電路的優(yōu)點是雙重的,遠程溫度控制監(jiān)測無需本地電源,缺少 正常電源條件下也可以讀 ROM 。 為了使 DS18B20能完成準確的溫度變換, 當溫度變換發(fā) 生時, DQ 線上必須提供足夠的功率。有兩種方法確保 DS18B20 在其有效變換期內得到足夠的電源電流。 第一種方法是 發(fā)生溫度變換時,在 DQ 線上提供一強的上拉,這期間單總線上不能有其它的動作發(fā) 生。 如圖 3-8 所示, 通過使用一個 MOSFET 把 DQ 線直接接到電源可實現(xiàn)這一點, 這 時 DS18B20 工作在寄生電源工作方式,在該方式下 VDD 引腳

21、必須連接到地。 圖 3-8 DS18B20供電方式 1另一種方法是 DS18B20 工作在外部電源工作方式, 如圖 3-9 所示。 這種方法的優(yōu) 點是在 DQ 線上不要求強的上拉,總線上主機不需要連接其它的外圍器件便在溫度變 換期間使總線保持高電平,這樣也允許在變換期間其它數(shù)據(jù)在單總線上傳送。此外,在 單總線上可以并聯(lián)多個 DS18B20,而且如果它們全部采用外部電源工作方式,那么通 過發(fā)出相應的命令便可以同時完成溫度變換。 圖 3-9 DS18B20供電方式 2(4 DS18B20設計中應注意的幾個問題DS18B20具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用接口線少等優(yōu)點,但在 實際應用中

22、也應注意以下幾方面的問題:較小的硬件開銷需要相對復雜的軟件進行補 償,由于 DS18B20 與微處理器間采用串行數(shù)據(jù)傳送。因此, 在對 DS18B20 進行讀寫 編程時,必須嚴格的保證讀寫時序,否則將無法讀取測溫結果。在 DS18B20 有關資料 中均未提及 1Wire 上所掛 DS18B20數(shù)量問題,容易使人誤認為可以掛任意多個 DS18B20,在實際應用中并非如此。當 1Wire 上所掛 DS18B20超過 8個時,就需要考慮微處理器的總 線驅動問題,這一點在進行多點測溫系統(tǒng)設計時要加以注意。連接 DS18B20的總線電纜 是有長度限制的。實際應用中,測溫電纜線建議采用屏蔽 4芯雙絞線,其

23、中一對線接地 線與信號線,另一組接 VCC 和地線,屏蔽層在源端單點接地。本文以廣泛應用的數(shù)字溫度傳感器 DS18B20為例,說明了 1Wire 總線的操作過程和 基本原理。事實上,基于 1Wire 總線的產(chǎn)品還有很多種,如 1Wire 總線的 E2PROM 、實時 時鐘、電子標簽等。他們都具有節(jié)省 I/O資源、結構簡單、開發(fā)快捷、成本低廉、便于 總線擴展等優(yōu)點,因此有廣闊的應用空間,具有較大的推廣價值。本設計將溫度傳感器 DS18B20與單片機 TXD 引腳相連,讀取溫度傳感器的數(shù)值。 DS18B20 圖 3-10 DS18B20與單片機連接圖3.1.5 電源電路采用 L7805穩(wěn)壓塊,輸出

24、為 5V 。電子組件要正常運作都需要電源電壓供電,一般常 用的電源電壓為 +5V或 +12V,因為數(shù)字 IC (Ingegrated Circuit:集成電路所供給的電 壓為 +5V, 而 CMOS IC所供給的電壓為 +12V, 7805是一個穩(wěn)壓塊。 7805穩(wěn)壓管把高電壓 轉換到低電壓, 7805穩(wěn)壓管具有保護單片機的作用。 L7805輸出端要并聯(lián)上一個電解電 容, 濾除交流電干擾, 防止損壞單片機系統(tǒng)。 本設計采用兩種供電方式, 一種為 DC718V直流穩(wěn)壓電源變換成 5V 的直流電;另一種為四節(jié)干電池共 6V 經(jīng)二極管加壓后得到將近5V 的直流電源, 電源配以開關和指示燈, 以方便使

25、用。 黃色發(fā)光二極管表示保溫, 紅色 的表示加熱狀態(tài)。 同時可以在系統(tǒng)里設定溫度上限值, 由于加熱停止后, 加熱管還有余熱當采集到的 外界溫度高于當前所設定溫度上限值時, 程序就會進入報警子程序, 觸發(fā)蜂鳴器進行報 警。報警電路原理圖如圖所示。 FM1圖 3-12 報警電路圖繼電器是常用的輸出控制接口, 可以做交直流信號的輸出切換。 它具有控制系統(tǒng) (又 稱輸入回路和被控制系統(tǒng)(又稱輸出回路,通常應用于自動控制電路中,它實際上 是用較小的電流去控制較大電流的一種“自動開關”。 故在電路中起著自動調節(jié)、 安全 保護、轉換電路等作用。繼電器控制接點操作說明如下: COM :Common ,共同點。

26、輸出控制接點的共同接點。 NC :Normal Close常閉點。 以 Com 為共同點, NC 與 COM 在平時是呈導通狀態(tài)的。 NO :Normal Open常開點。 NO 與 COM 在平時是呈開路狀態(tài)的, 當繼電器動作時, NO 與 COM 導通, NC 與 COM 則呈開路狀態(tài)。當 89S52的 P2.5輸出高電平時,繼電器不導通,反之當輸出低電平時,繼電器導通, 這樣就激活了連接回路。 圖 3-13 單片機控制繼電器電路圖4 系統(tǒng)軟件設計 圖 4-1 主程序流程圖4.2.1讀取溫度 DS18B20模塊的流程由于 DS18B20采用的是一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對 AT89S

27、52單片機來 說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議 時序來完成對 DS18B20芯片的訪問。DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念。因此系統(tǒng)對 DS18B20的各種操作必須按協(xié)議進行。 操作協(xié)議為:初始化 DS18B20(發(fā)復位脈沖 發(fā) ROM 功 能命令發(fā)存儲器操作命令處理數(shù)據(jù) DS18B20雖然具有測溫系統(tǒng)簡單、測溫精度高、 連接方便、占用口線少等優(yōu)點,DS18B20必須首先調用啟動溫度轉換函數(shù),根據(jù)數(shù)據(jù)手冊上對應轉換時間來超作, 如為 12位轉換,則應該是最大 750mS ,另外在對 DS18B20超作時,時序要求非常嚴格, 因

28、此最好禁止系統(tǒng)中斷。由于 DS18B20是在一根 I/O線上讀寫數(shù)據(jù), 因此, 對讀寫的數(shù)據(jù)位有著嚴格的時序要 求。 DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了 幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,而 每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始, 如果要求單總線器件回送數(shù) 據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在 先。DS18B20的讀時序:(1對于 DS18B20的讀時序分為讀 0時序和讀 1時序兩個過程。(2對于 DS18B20的讀時隙是從主機把單總線拉低之后,在 15秒之

29、內就得釋放單 總線 , 以讓 DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。 DS18B20在完成一個讀時序過程, 至少需要 60us 才能完成。DS18B20的寫時序:(1對于 DS18B20的寫時序仍然分為寫 0時序和寫 1時序兩個過程。(2對于 DS18B20寫 0時序和寫 1時序的要求不同,當要寫 0時序時,單總線要被拉 低至少 60us ,保證 DS18B20能夠在 15us 到 45us 之間能夠正確地采樣 IO 總線上的“ 0”電 平,當要寫 1時序時,單總線被拉低之后,在 15us 之內就得釋放單總線。系統(tǒng)程序設計主要包括三部分:讀出溫度子程序 、 溫度轉換命令子程序、顯示溫 度子程序。

30、 圖 4-2讀取溫度 DS18B20模塊的流程圖程序代碼為:GET_TEMPER: SETB DQ ;讀出轉換后的溫度值LCALL INIT_1820 ; 先復位 DS18B20JB FLAG1,TSS2RET ; 判斷 DS1820是否存在 ? 若 DS18B20不存在則返回TSS2: MOV A,#0CCH ;DS18B20已經(jīng)被檢測到 ! 跳過 ROM 匹配LCALL WRITE_1820MOV A,#44H ;發(fā)出溫度轉換命令LCALL WRITE_1820LCALL DISPLAY ; 這里通過調用顯示子程序實現(xiàn)延時一段時間 , 等待 AD 轉換 結束 ,12位的話 750微秒LCA

31、LL INIT_1820 ; 準備讀溫度前先復位MOV A,#0CCH ; 跳過 ROM 匹配LCALL WRITE_1820MOV A,#0BEH ; 發(fā)出讀溫度命令LCALL WRITE_1820LCALL READ_18200 ; 將讀出的溫度數(shù)據(jù)保存到 35H/36HRET此流程為鍵盤掃描處理, CPU 通過檢測各數(shù)據(jù)線的狀態(tài) (0或 1 就能知道是否有按鍵 閉合以及哪個按鍵閉合。 鍵盤管理程序的功能是檢測是否有按鍵閉合, 如果有按鍵閉合, 消除抖動,根據(jù)鍵號轉到相應的鍵處理程序,按鍵流程圖如圖 4-3所示。 圖 4-3鍵盤掃描子程序流程圖4.2.3 報警處理流程運行程序后, 溫度傳感

32、器 DS18B20即可對環(huán)境進行溫度采集, 并送 LED 數(shù)碼管顯示。 我們可以在程序里設定溫度上限值,當采集到的外界溫度高于當前所設定溫度上限值 時,程序就會進入報警子程序,觸發(fā)蜂鳴器進行報警。其程序流程圖如圖 4-4所示。 圖 4-4 報警子程序流程圖5 系統(tǒng)調試5.1 硬件電路調試仔細檢查所接電路, 按照硬件原理圖接線, 理論上是能實現(xiàn)的, 如果數(shù)碼管不顯示, 則應該檢查線路是否正確,或是因為單片機沒有工作,還有集電極和發(fā)射極是否接對。 如果只顯示兩個八,則可能是 DS18B20沒有接正確,檢查上拉電路是否接好。另外要注 意的是,由單片機輸出的控制信號比較小,需要進行放大才能驅動繼電器工

33、作,否則就 不能實現(xiàn)升溫過程, 通常選用 8550三極管來進行放大。 還有 220V 交流電綠色接頭和加熱 管黃色接頭必須接正確,否則導致電路燒壞。蜂鳴器是低電平有效。如果能注意這些問 題,電路基本不會出錯。5.2 軟件調試如果硬件電路檢查后,沒有問題卻實現(xiàn)不了設計要求,則可能是軟件編程的問題, 首先應檢查初始化程序,然后是讀溫度程序,顯示程序,以及繼電器控制程序,對這些 分段程序,要注意邏輯順序,調用關系,以及涉及到了標號,有時會因為一個標號而影 響程序的執(zhí)行,除此之外,還要熟悉各指令的用法,以免出錯。還有一個容易忽略的問 題就是,源程序生成的代碼是否燒入到單片機中,如果這一過程出錯,那不能

34、實現(xiàn)設計 要求也是情理之中的事。 本人在設計的時候在偉福仿真軟件進行調試, 通過此軟件進行 調試可以很方便的觀察單片機內部各個寄存器及內部存儲器變化情況,以方便進行調 試。圖為單片機功能調試圖。 圖 5-1 單片機功能調試圖硬件與軟件調試相結合,仔細檢查各個模塊的設計,舊能順利完成任務,實現(xiàn)設計 要求,在調試過程中必須認真耐心,不能有一點馬虎,否則遺漏一個小的問題就會導致 整個設計的失敗。5.3 系統(tǒng)操作說明本系統(tǒng)上電后數(shù)碼管顯示當前測量溫度,此時加熱指示燈和保溫指示燈均不點亮; 若此時按“自動加熱”鍵, 則單片機自動將預加熱溫度設置為 80并開始加熱, 送出一 個加熱信號,并點亮加熱指示燈;

35、若按“溫度設置”鍵,則進入預加熱溫度設置界面, 此時數(shù)碼管閃爍顯示預設置溫度, 此時通過按鍵“+”和“-”進行設置溫度, 預設置 溫度按“ 5”遞增或遞減,設置好溫度后再按一次“溫度設置”鍵確定,單片機保存預 設置溫度, 并開始加熱。 此時單片機通過數(shù)碼管顯示實時檢測的溫度并和預設置溫度進 行對比, 如果實測溫度大于或等于預設置溫度, 則單片機發(fā)出停止加熱信號并熄滅加熱 指示燈,點亮保溫指示燈,且當超過預設溫度時發(fā)出報警;當溫度下降到預設置溫度以 下 5度時,單片機再次發(fā)出加熱信號,同時熄滅保溫指示燈,點亮加熱指示燈,依次循 環(huán)控制。取一桶凈水,改變它的溫度,觀察數(shù)碼管上顯示的溫度值,并用溫度

36、計進行測溫, 記錄兩組數(shù)據(jù),比較差異。記錄表如下:表 5-1 靜態(tài)溫度數(shù)據(jù)測試表 有測試數(shù)據(jù)可知,本系統(tǒng)測溫結果與溫度計測溫基本一致,能滿足設計,證明了設 計的合理性。進行溫度設定,通過設定溫度值(75,觀察加熱管的加熱情況,以及數(shù)碼管的 顯示值,再用溫度計測量水溫,每隔一段時間記錄一次數(shù)據(jù),將兩組值進行比較。記錄 表如下:(設定前溫度為 25通過上表可看出在加熱的過程中 , 顯示的溫度與實測的溫度近似一樣 , 說明系統(tǒng)的設 計達到精度要求 , 但還是略有偏差 , 基本不影響設計結果。整個測試過程表明設計達到了任務書的要求, 證明了該方案是合理可行的, 順利完 成了設計,達到了預想結果。 總

37、結通過本次的設計,使我們不僅對單片機這門課程有了更深刻的認識,懂得了如何 運用課本知識結合實際來完成定時器的顯示和編程方法以及數(shù)碼顯示電路的驅動方法, 使我們能夠很快的適應現(xiàn)代控制技術發(fā)展的需求, 同時也提高了我們的思維能力和實際 操作能力,為以后更好的走上工作崗位奠定了堅實的基礎。另外,這次的設計還讓我更進一步的認識了關于 AT89S52等芯片的引腳功能以及 使用方法,使我學會了應用不同的芯片來配合完成整個設計的操作。在做硬件電路的這段時間里,從思考設計到對電路的調試經(jīng)過了許多困難。同樣 在對軟件進行設計時,也可為一路坎坷。但是通過對軟硬件不斷撞墻,不斷思考解決 問題的過程中,我學會了很多東

38、西,同時對單片機也有了更深的認識。在做設計的時 候,很需要耐心和對事物的細心,很多時候一個簡單問題的一個簡單的疏忽就會導致 整個電路的不工作,只有不斷的檢查不斷的調試,才能真正完成一個設計的制作。只 有不斷的發(fā)現(xiàn)問題解決問題,才能從問題中改變自己,提升自己對單片機的能力。 此設計雖然能夠完成溫度的顯示和控制, 但功能和精度有待于進一步提高。 以后可 以通過加入 PID 算法優(yōu)化控制功能,并通過液晶顯示屏實時顯示溫度。參考文獻l 樂建波 編著溫度控制系統(tǒng)化學工業(yè)出版社2 美 Ken C.Pohlmann 數(shù)字音頻原理及應用 . 蘇菲 . 第 4版 . 北京 :電子工業(yè)出版社, 2005,26 譚

39、浩強 編著 C 程序設計 . 北京 :清華大學出版社 1999年11 王彬 任艷穎 編著 Digital IC System Design 西安電子科技大學出版社 2005.9 12 趙麗娟 邵欣編著基于單片機的溫度監(jiān)控系統(tǒng)的設計與實現(xiàn) 機械制造13 郭炳坤 簡單的恒溫箱溫控電路 J.儀器與未來 ,199115(美 Bjarne Stroustrup THE C+ PROGRAMMING LANGUAGE , SPECIAL EDITION Addison Wesley 1997附錄一:系統(tǒng)源程序EMPER_L EQU 29H; 用于保存讀出溫度的低 8位 TEMPER_H E QU 28H;

40、 用于保存讀出溫度的高 8位 FLAG1 EQU 38H; 是否檢測到 DS18B20標志位 A_BIT EQU 20H; 數(shù)碼管個位數(shù)存放內存位置 B_BIT EQU 21H; 數(shù)碼管十位數(shù)存放內存位置 B1 EQU 70H; 溫度小數(shù)點位A1 EQU 71H; 設定溫度值DQ EQU P3.1 ;DQ 為 DS18B20數(shù)據(jù)位BELL EQU P2.7 ;/蜂鳴報警ORG 0000H ; 單片機內存分配申明 !AJMP MAIN0;/前面的都是定義MAIN: MOV R0,#10ACALL DELAY125DJNZ R0,M1 ;/此段為燈閃 5次 , 無實際意義 ;/MAIN0: M O

41、V A1,#80 ; 默認加熱為 80度MAIN1: L CALL D1820 ; 調用讀溫度子程序LCALL DISPLAY ; 調用數(shù)碼管顯示子程序 MOV A,29HCLR CCJNE A,A1,MAIN1_1SETB BELL ;/溫度相等 , 關閉蜂鳴器AJMP MAIN1_1_A ;/下等不用叫蜂鳴器 MAIN1_1: JC MAIN1_2 ; 為 1轉移 , 表示小于設定溫度 CPL BELL ; 蜂鳴器斷續(xù)鳴叫AJMP MAIN2MAIN1_2: SETB BELL ;/關閉蜂鳴器CLR P2.5 ;/開發(fā)熱管;/上面的是大于 , 關發(fā)熱管ACALL DELAY125 ;/延時

42、防抖動 , 常用的手法 , 網(wǎng)上很多介紹的JB P1.0,MAIN1;/再次查看JNB P1.0,$ ;/等按鍵完全松手才進入 !MAIN2_1: ACALL DISPLAY1JB P1.2,MAIN2_2ACALL DELAY125JB P1.2,MAIN2_2JNB P1.2,$MOV A,#5ADD A,A1CLR CCJNE A,#100,MAIN2_1_1MOV A,#99AJMP MAIN2_1_3;/上面這一段是 +5度按鍵 , 按下 +5度MAIN2_1_1: JC MAIN2_1_3MAIN2_1_2: CLR CMOV A,#99MAIN2_1_3: MOV A1,AMAI

43、N2_2: JB P1.4,MAIN2_3ACALL DELAY125JB P1.4,MAIN2_3JNB P1.4,$MOV A,A1CJNE A,#99,ZY1MOV B,#4AJMP ZY2ZY1: MOV B,#5ZY2: CLR CMOV A,A1SUBB A,BMAIN2_2_1: JNC MAIN2_2_2MOV A1,#0AJMP MAIN2_3;/上面這一段是 -5度按鍵 , 按下 -5度 MAIN2_2_2: MOV A1,AMAIN2_3: JB P1.6,MAIN2_1ACALL DELAY125JB P1.6,MAIN2_1JNB P1.6,$AJMP MAIN1;/

44、上面這一段是退出的意思的 !D1820: LCALL GET_TEMPER ; 調用讀溫度子程序 MOV B1,29HMOV A,29HMOV C,40H ; 將 28H 中的最低位移入 C RRC AMOV C,41HMOV C,42HRRC AMOV C,43HRRC AMOV 29H,AMOV A,B1MOV B,#10HMUL ABMOV B,#10HDIV ABMOV B,#10MUL ABMOV B,#10HDIV ABMOV B1,ARET;/上面這一段是讀取溫度后進行轉換的意思 !;/;/;/INIT_1820: SETB DQ ;這是 DS18B20復位初始化子程序 NOPC

45、LR DQ ;主機發(fā)出延時 537微秒的復位低脈沖 MOV R1,#3TSR1: MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB DQ ;然后拉高數(shù)據(jù)線NOPNOPNOPMOV R0,#25HTSR2: JNB DQ,TSR3 ; 等待 DS18B20回應DJNZ R0,TSR2LJMP TSR4 ; 延時TSR3: SETB FLAG1 ; 置標志位 , 表示 DS1820存在LJMP TSR5TSR4: CLR FLAG1 ; 清標志位 , 表示 DS1820不存在LJMP TSR7TSR5: MOV R0,#117TSR6: DJNZ R0,TSR6 ; 時序要

46、求延時一段時間TSR7: SETB DQRETGET_TEMPER: SETB DQ ;讀出轉換后的溫度值LCALL INIT_1820 ; 先復位 DS18B20JB FLAG1,TSS2RET ; 判斷 DS1820是否存在 ? 若 DS18B20不存在則返回TSS2: MOV A,#0CCH ;DS18B20已經(jīng)被檢測到 ! 跳過 ROM 匹配LCALL WRITE_1820MOV A,#44H ;發(fā)出溫度轉換命令LCALL WRITE_1820LCALL DISPLAY ; 這里通過調用顯示子程序實現(xiàn)延時一段時間 , 等待 AD 轉換 結束 ,12位的話 750微秒LCALL INIT_1820 ; 準備讀溫度前先復位MOV A,#0CCH ; 跳過 ROM 匹配LCALL WRITE_1820MOV A,#0BEH ; 發(fā)出讀溫度命令LCALL WRITE_1820LCALL READ_18200 ; 將讀出的溫度數(shù)據(jù)保存到 35H/36HRETWRITE_1820: MOV R2,#8 ; 一共 8位數(shù)據(jù)CLR C ; 寫 DS18B20的子程序 (有具體的時序要求 WR1: CLR DQMOV R3,#6DJNZ R3,$RRC AMOV DQ,CMOV R

溫馨提示

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

評論

0/150

提交評論