智能溫度控制系統(tǒng)畢業(yè)論文_第1頁
智能溫度控制系統(tǒng)畢業(yè)論文_第2頁
智能溫度控制系統(tǒng)畢業(yè)論文_第3頁
智能溫度控制系統(tǒng)畢業(yè)論文_第4頁
智能溫度控制系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 .PAGE27 / NUMPAGES28 目 錄TOC o 1-3 h u HYPERLINK l _Toc11688 引 言1 HYPERLINK l _Toc311 1 系統(tǒng)的相關(guān)介紹2 HYPERLINK l _Toc11433 1.1 系統(tǒng)的目的與意義2 HYPERLINK l _Toc8936 1.2 設(shè)計要求2 HYPERLINK l _Toc21912 1.3 系統(tǒng)傳感器DS18B20的介紹21.3.1 DS18B20的主要特性2 HYPERLINK l _Toc16303 1.3.2 DS18B20的外形和部結(jié)構(gòu)3 HYPERLINK l _Toc28025 2 系統(tǒng)分析設(shè)計

2、4 HYPERLINK l _Toc28142 2.1 溫度控制系統(tǒng)結(jié)構(gòu)圖與總述4 HYPERLINK l _Toc20614 2.2 系統(tǒng)顯示界面方案4 HYPERLINK l _Toc11720 2.3 系統(tǒng)輸入方案5 HYPERLINK l _Toc13332 2.4系統(tǒng)的功能5 HYPERLINK l _Toc32613 3 相關(guān)軟件編譯知識介紹5 HYPERLINK l _Toc6529 3.1 C語言簡介5 HYPERLINK l _Toc21235 3.1.1 C語言的優(yōu)點5 HYPERLINK l _Toc23421 3.1.2 C語言缺點6 HYPERLINK l _Toc3

3、2431 3.2 Keil簡介6 HYPERLINK l _Toc3161 3.2.1 系統(tǒng)概述6 HYPERLINK l _Toc13449 3.2.2 Keil C51單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)7 HYPERLINK l _Toc25504 4系統(tǒng)流程圖設(shè)計7 HYPERLINK l _Toc19922 4.1主程序流程圖7 HYPERLINK l _Toc7565 4.2 DS18B20控制程序流程圖8 HYPERLINK l _Toc797 4.2.1 DS18B20 復(fù)位程序流程圖9 HYPERLINK l _Toc15297 4.2.2 DS18B20寫數(shù)據(jù)程序流程圖9 HYPE

4、RLINK l _Toc3619 4.2.3 DS18B20讀數(shù)據(jù)程序流程圖 PAGEREF _Toc3619 10 HYPERLINK l _Toc14121 4.3 溫度讀取與轉(zhuǎn)換程序流程圖 PAGEREF _Toc14121 12 HYPERLINK l _Toc31086 4.4 MAX7219驅(qū)動程序流程圖 PAGEREF _Toc31086 13 HYPERLINK l _Toc9621 4.4.1 MAX7219寫入一個字節(jié)數(shù)據(jù)程序流程圖 PAGEREF _Toc9621 13 HYPERLINK l _Toc12617 4.4.2 MAX7219寫入一個字?jǐn)?shù)據(jù)程序流程圖15 H

5、YPERLINK l _Toc22473 4.5 數(shù)碼管溫度顯示程序流程圖16 HYPERLINK l _Toc24206 4.6 按鍵中斷服務(wù)程序流程圖17 HYPERLINK l _Toc13680 5 電路仿真19 HYPERLINK l _Toc13987 5.1 PROTEUS軟件介紹19 HYPERLINK l _Toc3145 5.2 溫度控制系統(tǒng)PROTEUS仿真19 HYPERLINK l _Toc4553 6總結(jié) PAGEREF _Toc4553 20 HYPERLINK l _Toc30558 7參考文獻 PAGEREF _Toc30558 21 HYPERLINK l

6、_Toc2065 附錄1 源程序代碼 PAGEREF _Toc2065 22引 言信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))、信息處理(計算機技術(shù))。傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器被廣泛用于工農(nóng)業(yè)生產(chǎn)、科學(xué)研究和生活等領(lǐng)域,數(shù)量高居各種傳感器之首。近百年來,溫度傳感器的發(fā)展大致經(jīng)歷了以下三個階段;(1)傳統(tǒng)的分立式溫度傳感器(含敏感元件);(2)模擬集成溫度傳感器/控制器;(3)智能溫度傳感器。目前,國際上新型溫度傳感器正從由集成化向智能化、網(wǎng)絡(luò)化的方向發(fā)展。 下面介紹的就是兩種最常見的溫度傳感器: (1)集成溫度傳感器模擬集成溫度傳感器。集成傳感器是將溫度傳感器集成在

7、一個芯片上、可完成溫度測量與模擬信號輸出功能的專用IC。模擬集成溫度傳感器的主要特點是功能單一(僅測量溫度)、測溫誤差小、價格低、響應(yīng)速度快、傳輸距離遠、體積小、微功耗等,適合遠距離測溫、控溫,不需要進行非線性校準(zhǔn),外圍電路簡單。它是目前在國外應(yīng)用最為普遍的一種集成傳感器,典型產(chǎn)品有AD590、AD592、TMP17、LM135等。某些增強型集成溫度控制器(例如TC652/653)中還包含了A/D轉(zhuǎn)換器以與固化好的程序,這與智能溫度傳感器有某些相似之處。但它自成系統(tǒng),工作時并不受微處理器的控制,這是二者的主要區(qū)別。 (2)智能溫度傳感器智能溫度傳感器(亦稱數(shù)字溫度傳感器)是20世紀(jì)90年代中期

8、微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)的結(jié)晶。智能溫度傳感器部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號處理器、存儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(CPU)、隨機存取存儲器(RAM)和只讀存儲器(ROM)。智能溫度傳感器的特點是能輸出溫度數(shù)據(jù)與相關(guān)的溫度控制量,適配各種微控制器(MCU);并且它是在硬件的基礎(chǔ)上通過軟件來實現(xiàn)測試功能的,其智能化程度也取決于軟件的開發(fā)水平。智能溫度傳感器正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性與安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。1 系統(tǒng)的相關(guān)介紹1.1 系統(tǒng)的目的與意義溫度檢測控制系統(tǒng)廣泛應(yīng)用于社

9、會生活的各個領(lǐng)域,如家電、汽車、材料、電力電子等,常用的控制電路根據(jù)應(yīng)用場合和所要求的性能指標(biāo)有所不并且當(dāng)擾動因素不明確時,參數(shù)調(diào)整不便仍是普遍存在的問題。采用數(shù)字溫度傳感器DS18B20,因其部集成了A/D轉(zhuǎn)換器,使得電路結(jié)構(gòu)更加簡單,而且減少了溫度測量轉(zhuǎn)換時的精度損失,使得測量溫度更加精確。數(shù)字溫度傳感器DS18B20只用一個引腳即可與單片機進行通信,大大減少了接線的麻煩,使得單片機更加具有擴展性。由于DS18B20芯片的小型化,更加可以通過單跳數(shù)據(jù)線就可以和主電路連接,故可以把數(shù)字溫度傳感器DS18B20做成探頭,探入到狹小的地方,增加了實用性。更能串接多個數(shù)字溫度傳感器DS18B20進

10、行圍的溫度檢測。因此溫度監(jiān)測是生產(chǎn)自動化的重要任務(wù)。因而本設(shè)計具有非常實際的生產(chǎn)意義。1.2 設(shè)計要求本設(shè)計是基于單片機STC89C52的溫度控制。它實現(xiàn)的是溫度的監(jiān)測和控制功能。 可設(shè)置報警溫度。本設(shè)計用DS18B20傳感器來檢測溫度,LED用于顯示。MAX7219用來驅(qū)動數(shù)碼顯示。設(shè)計先通過keil和proteus來聯(lián)合仿真,然后焊接實物。具體設(shè)計要求如下:(1) 使用STC89C52控制器和DS18B20溫度傳感器,實現(xiàn)溫度的檢測和顯示;(2) 設(shè)置默認(rèn)報警溫度為500C,并且能夠通過按鍵設(shè)置調(diào)高調(diào)低報警溫度;(3) 當(dāng)溫度高于報警溫度時報警燈亮,低于報警溫度時控制電阻絲加熱;(4) 四

11、位數(shù)碼管能通過按鍵交換顯示實測溫度和報警溫度。1.3 系統(tǒng)傳感器DS18B20的介紹1.3.1 DS18B20的主要特性適應(yīng)電壓圍更寬,電壓圍:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電。 獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。 DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫。 (4)DS18B20在使用中不需要任何外圍元件,全部 傳感元件與轉(zhuǎn)換電路集成在形如一只三極管的集成電路. (5)溫圍55+125,在-10+85時精度為0.5(6)可編程 的分辨率為912位,對應(yīng)的可

12、分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫。 (7)在9位分辨率時最多在 93.75ms把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms把溫度值轉(zhuǎn)換為數(shù)字,速度更快。 (8)測量結(jié)果直接輸出數(shù)字溫度信號,以一 線總線串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力。 (9)負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀, 但不能正常工作。 1.3.2 DS18B20的外形和部結(jié)構(gòu)DS18B20部結(jié)構(gòu)主要由四部分組成:64位光刻ROM 、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的外形與管腳排列如下圖1.3.2.1:

13、 圖1.3.2.1 DS18B20的外形與管腳排列2 系統(tǒng)分析設(shè)計 2.1 溫度控制系統(tǒng)結(jié)構(gòu)圖與總述本設(shè)計實際上是模仿飲水機的工作原理。它是采用DS18B20溫度傳感器測試環(huán)境溫度,經(jīng)過CPU數(shù)據(jù)處理,用LED數(shù)碼管來顯示溫度。該設(shè)計可設(shè)置預(yù)期溫度。當(dāng)溫控開關(guān)打開時,若測得環(huán)境溫度低于設(shè)定溫度,則繼電器吸合,啟動電熱絲工作;若測得環(huán)境溫度高于設(shè)定溫度,則繼電器釋放,電熱絲停止工作。 時鐘電路按鍵設(shè)定電路溫度傳感器電路LED顯示電路報警信號燈控制電路繼電器控制電路單片機(89C52)主控制器 圖2.1.1系統(tǒng)總框圖2.2 系統(tǒng)顯示界面方案該系統(tǒng)要求完成溫度的顯示以與按鍵操作時的實時顯示功能。基于

14、上述原因,本次設(shè)計考慮了兩種方案:方案一:完全采用LCD液晶顯示。這種方案顯示精確,可方便的顯示各種英文字符,溫度符號,正負(fù)號等,但實現(xiàn)復(fù)雜,且須完成大量的軟件工作。方案二:完全采用數(shù)碼管顯示。這種方案優(yōu)點是實現(xiàn)簡單。缺點是功能較少,只能顯示有限的符號和數(shù)碼字符。根據(jù)本設(shè)計的要求,方案二已經(jīng)滿足了要求,所以本次設(shè)計采用方案二以實現(xiàn)系統(tǒng)的顯示功能。2.3 系統(tǒng)輸入方案這里同樣討論了兩種方案:方案一:采用8155擴展I/O口、鍵盤與顯示等。該方案的優(yōu)點是使用靈活可編程,并且有RAM與計數(shù)器。若用該方案,可提供較多I/O口,但操作起來稍顯復(fù)雜。方案二:直接在I/O口線上接上按鍵開關(guān)。因為設(shè)計時精簡和

15、優(yōu)化了電路,所以剩余的端口資源還比較多。 由于該系統(tǒng)是對設(shè)定報警溫度的控制,只需用單片機本身的I/O口就可實現(xiàn),且本身的計數(shù)器與RAM已經(jīng)夠用,故選擇方案二。 2.4系統(tǒng)的功能能完成對系統(tǒng)溫度的監(jiān)測與控制,并且能夠?qū)Ρ豢噩F(xiàn)場的溫度進行智能調(diào)節(jié),以保持被控現(xiàn)場溫度基本不變。該系統(tǒng)如果應(yīng)用于現(xiàn)實生活具有很強的實用意義。3 相關(guān)軟件編譯知識介紹3.1 C語言簡介C語言是一種HYPERLINK :/baike.baidu /view/2561555.htm計算機程序設(shè)計語言。它既具有HYPERLINK :/baike.baidu /view/14900.htm高級語言的特點,又具有HYPERLINK

16、:/baike.baidu /view/49.htm匯編語言的特點。它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)HYPERLINK :/baike.baidu /view/330120.htm應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。它的應(yīng)用圍廣泛,具備很強的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言 。具體應(yīng)用比如單片機以與HYPERLINK :/baike.baidu /view/657641.htm嵌入式系統(tǒng)開發(fā)。3.1.1 C語言的優(yōu)點C語言現(xiàn)在被廣泛應(yīng)用于單片機以與嵌入式系統(tǒng)的開發(fā),它具有如下一些優(yōu)點: 簡潔緊湊、靈活方便;運算符豐富; 數(shù)據(jù)

17、類型豐富 ; C是結(jié)構(gòu)式語言;語法限制不太嚴(yán)格,程序設(shè)計自由度大;允許直接訪問物理地址,對硬件進行操作;生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高;適用圍大,可移植性好 。3.1.2 C語言缺點C語言是一種較匯編語言高級的語言,但相對于匯編這種直接面向機器的語言來說,它的處理效率較會變低。3.2 Keil簡介Keil C51是HYPERLINK :/baike.baidu /view/2398.htm美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、

18、庫管理和一個功能強大的仿真調(diào)試器等在的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。3.2.1 系統(tǒng)概述Keil C51軟件提供豐富的HYPERLINK :/baike.baidu /view/905012.htm庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全HYPERLINK :/baike.baidu /view/4821.htmWindows

19、界面。另外重要的一點,只要看一下HYPERLINK :/baike.baidu /view/69568.htm編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。 3.2.2 Keil C51單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它HYPERL

20、INK :/baike.baidu /view/499644.htm編輯器編輯C或匯編源文件。然后分別由C51與C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進行HYPERLINK :/baike.baidu /view/60376.htm源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。 4系統(tǒng)流程圖設(shè)計軟件總體設(shè)計主要完成各部分的軟件控制和協(xié)調(diào)。本系統(tǒng)主程序模塊

21、主要完成的工作是對系統(tǒng)的初始化,發(fā)送顯示數(shù)據(jù),同時對鍵盤進行掃描,等待外部中斷,以與根據(jù)所需要的功能進行相應(yīng)的操作。4.1主程序流程圖 本設(shè)計是模擬溫度控制系統(tǒng),主程序通過調(diào)用讀取溫度子程序和顯示子程序,來實時掃描并顯示系統(tǒng)溫度;并通過調(diào)用溫度控制子程序?qū)y得的溫度與系統(tǒng)所設(shè)的報警溫度比較進而對溫度進行控制。通過掃描中斷口檢查是否有按鍵按下,調(diào)用相應(yīng)的按鍵掃描子程序來進行對應(yīng)的設(shè)置。主程序如下:void main(void)EA=1; /開中斷總開關(guān)EX0=1; /允許INT0中斷IT0=1; /下降沿產(chǎn)生中斷text_rst();/第一次使用數(shù)碼管測試while(1)T_Current=Ge

22、tTemperature(); /溫度值傳給T_timetemperature_display(T_Current);/顯示溫度if(T_Current0; i-)DQ = 0;DQ = dat&0 x01;delay(10);DQ = 1;dat=1; 開始循環(huán)控制變量i=8 i=0? Y NDQ=dat&0 x01延時DQ=1dat=1結(jié)束圖4.2.2 DS18B20寫數(shù)據(jù)程序流程圖4.2.3 DS18B20讀數(shù)據(jù)程序流程圖DS18B20讀數(shù)據(jù)程序流程圖如圖4.2.3所示。DS18B20讀數(shù)據(jù)程序如下:ds18b20read(void) /讀DS18B20的程序unsigned char

23、i=0;unsigned char dat = 0;for (i=8;i0;i-)DQ = 0;dat=1;DQ = 1;if(DQ)dat|=0 x80;delay(8);return(dat); 開始循環(huán)控制變量i=8dat=0 i=0? Y NDQ=0;dat1;DQ=1 Y DQ=1? Ndat|=0 x80延時返回dat 值結(jié)束圖4.2.3 DS18B20讀數(shù)據(jù)程序流程圖4.3 溫度讀取與轉(zhuǎn)換程序流程圖溫度讀取與轉(zhuǎn)換流程圖如圖4.3.1所示。溫度讀取與轉(zhuǎn)換具體程序如下:GetTemperature(void) /從DS18B20中讀出兩個字節(jié)的溫度數(shù)據(jù)uchar symbol;uns

24、igned int temperature;unsigned char a=0;unsigned char b=0;unsigned int t=0;ds18b20rst();ds18b20write(0 xCC);ds18b20write(0 x44);ds18b20rst();ds18b20write(0 xCC);ds18b20write(0 xBE);a=ds18b20read();b=ds18b20read();t=b;t=8; /進行精度轉(zhuǎn)換t=t|a;if(t0 x0fff)symbol=0;elset=t+1;symbol=1;temperature=t*0.625;if(sy

25、mbol=1) temperature=-temperature;return(temperature);開始DS18B20初始化啟動溫度轉(zhuǎn)換讀取當(dāng)前實際溫度值處理讀取的溫度值Y 溫度大于0? N符號標(biāo)志為0 符號為1,按正溫度處理 返回處理后的溫度值結(jié)束圖4.3.1 溫度讀取與轉(zhuǎn)換程序流程圖4.4 MAX7219驅(qū)動程序流程圖4.4.1 MAX7219寫入一個字節(jié)數(shù)據(jù)程序流程圖寫入一個字節(jié)數(shù)據(jù)程序流程圖如圖4.4.1所示。 開始循環(huán)控制變量i=8 code1=ch&0 x80 ch=ch1 code1=1? Y DIN=1,給上升沿 N DIN=0,給上升沿 結(jié)束 圖4.4.1 MAX721

26、9寫入一個字節(jié)數(shù)據(jù)程序流程圖具體程序如下:void write_byte(uchar ch)uchar i,code1;_nop_();_nop_();_nop_();for(i=0;i8;i+)code1=ch&0 x80;ch=ch1;if(code1)DIN=1;CLK=0;CLK=1;elseDIN=0;CLK=0;CLK=1;4.4.2 MAX7219寫入一個字?jǐn)?shù)據(jù)程序流程圖寫入一個字節(jié)數(shù)據(jù)程序流程圖如圖4.4.1所示。開始LOAD=0延時寫地址延時寫數(shù)據(jù)延時LOAD=1結(jié)束圖4.4.2 MAX7219寫入一個字?jǐn)?shù)據(jù)程序流程圖具體程序如下:void write7219(uchar a

27、ddr,uchar number)LOAD=0;_nop_();_nop_();_nop_();write_byte(addr);_nop_();_nop_();_nop_();write_byte(number);_nop_();_nop_();_nop_();LOAD=1;4.5 數(shù)碼管溫度顯示程序流程圖數(shù)碼管溫度顯示程序流程圖如圖4.5.1所示。具體程序如下:temperature_display(int temperature_x)uchar symbol;if(temperature_x0)symbol=1;temperature_x=-temperature_x;else symb

28、ol=0;switch(symbol)case 0:DisBuffer0=0 x0f;break;case 1:DisBuffer0=0 x0a;break;DisBuffer1=temperature_x/100;DisBuffer2=(temperature_x%100)/10;DisBuffer2=DisBuffer2|0 x80;DisBuffer3=temperature_x%10;if(DisBuffer1=0 x00)DisBuffer1=0 x0f;write7219(0 x01,DisBuffer0);write7219(0 x02,DisBuffer1);write7219

29、(0 x03,DisBuffer2);write7219(0 x04,DisBuffer3);開始 溫度小于0? Y symbol=1Nsymbol=0顯示符號位顯示十位顯示個位顯示小數(shù)位結(jié)束圖4.5.1 數(shù)碼管溫度顯示程序流程圖4.6 按鍵中斷服務(wù)程序流程圖按鍵中斷服務(wù)程序流程圖如圖4.6.1所示。具體程序如下:int0() interrupt 0 using 0temperature_display(T_Original);key_v = 0 x07;for(;)if(key()delayms(10);if(key()key_v = key_s;if(key_v & 0 x01) = 0)

30、T_Original=10+T_Original;temperature_display(T_Original);else if(key_v & 0 x02) = 0)T_Original=T_Original-10;temperature_display(T_Original);else if(key_v & 0 x04) = 0)goto EXIT;EXIT:temperature_display(T_Current); 中斷入口 K1鍵按下? Y 報警溫度加一, 顯示報警溫度 N K2鍵按下? Y 報警溫度減一, 顯示報警溫度NK3鍵按下退出按鍵程序,顯示當(dāng)前溫度中斷返回圖4.6.1 按

31、鍵中斷服務(wù)程序流程圖5 電路仿真5.1 PROTEUS軟件介紹Proteus軟件是Labcenter Electronics公司的一款電路設(shè)計與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來完成PCB的設(shè)計,而ISIS模塊用來完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機芯片,比如MCS-51系列、PIC系列等等,以與單片機外圍電路,比如鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實用方便的單片機實驗室。5.2 溫度控制系統(tǒng)PROTEUS仿真系統(tǒng)仿真

32、圖如圖5.2.1所示。 圖5.2.1 系統(tǒng)仿真圖6總結(jié)用單片機實現(xiàn)系統(tǒng)溫度控制,可以使我們的生活方便快捷。這項看起來不需要多少技術(shù)的工作卻是非常需要耐心和精力,幾天的設(shè)計對我們來說的意義,不僅僅是讓我們把所學(xué)的理論知識與實踐相結(jié)合起來,還提高了我們的實際動手能力和獨立思考的能力,更重要的是團隊合作,雖然我們這次設(shè)計倉促,制作有些簡單,但我們得到了很多遠大于設(shè)計的東西!通過這次課程設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面的系統(tǒng)的鍛煉。使我在單片機的基本原理、單片機應(yīng)用系統(tǒng)開發(fā)過程,以與在常用編程設(shè)計思路技巧,特別是對于C語言的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人

33、才打下良好的基礎(chǔ)。該設(shè)計雖然結(jié)束了,但由于時間、設(shè)備、條件和水平等各方面因素,還存在一些不足,還需要不斷改進,當(dāng)然也就需要學(xué)習(xí)并運用更多相關(guān)的知識。在以后我會更加深入研究單片機,相信在不久的將來我會通過自己的努力親手做出一個實用的產(chǎn)品出來。7參考文獻1王靜霞.單片機應(yīng)用技術(shù).電子工業(yè),20092何立民.單片機高等教程.航空航天大學(xué),20003何立民.單片機應(yīng)用系統(tǒng)設(shè)計系統(tǒng)配置與接口技術(shù).航空航天大學(xué), 20014靜.51單片機C語言程序設(shè)計.人民郵電,20105群芳等.單片微機計算機與接口技術(shù).電子工業(yè),2008附錄1 源程序代碼/規(guī)定默認(rèn)設(shè)定溫度為T0=40度,K0鍵為開始設(shè)置鍵,K1鍵為加

34、一度鍵,K2鍵為減一度鍵#include#include#define uchar unsigned char/MAX7219端口定義sbit DIN=P20;sbit CLK=P21;sbit LOAD=P22;sbit JIDIANQI=P24;/繼電器接口sbit K0=P32;sbit K1=P25;sbit K2=P26;sbit K3=P27;sbit DQ =P13; /DS18B20定義單片機數(shù)據(jù)引腳 sbit alarm=P23; uchar DisBuffer4=0,0,0,0;unsigned int T_Original=500; / 規(guī)定默認(rèn)設(shè)定溫度為T0=40度un

35、signed int T_Current;unsigned char key_s, key_v;void delay(unsigned int i) /延時程序 while(i-); ds18b20rst(void) /DS18B20復(fù)位初始化 unsigned char x=0; DQ = 1; delay(16); DQ = 0; delay(160); DQ = 1; delay(28); x=DQ; delay(40);ds18b20read(void) /讀DS18B20的程序 unsigned char i=0; unsigned char dat = 0; for (i=8;i0

36、;i-) DQ = 0; dat=1; DQ = 1; if(DQ) dat|=0 x80; delay(8); return(dat);ds18b20write(unsigned char dat) /寫DS18B20的子程序 unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0 x01; delay(10); DQ = 1; dat=1; GetTemperature(void) /從DS18B20中讀出兩個字節(jié)的溫度數(shù)據(jù) uchar symbol; unsigned int temperature; unsigned char a

37、=0; unsigned char b=0; unsigned int t=0; ds18b20rst(); ds18b20write(0 xCC); ds18b20write(0 x44); ds18b20rst(); ds18b20write(0 xCC); ds18b20write(0 xBE); a=ds18b20read(); b=ds18b20read(); t=b; t=8; /進行精度轉(zhuǎn)換 t=t|a; if(t0 x0fff)symbol=0; else t=t+1; symbol=1; temperature=t*0.625; if(symbol=1) temperatur

38、e=-temperature; return(temperature); /*向MAX7219寫入一個字節(jié)數(shù)據(jù)*/void write_byte(uchar ch) uchar i,code1; _nop_(); _nop_(); _nop_(); for(i=0;i8;i+) code1=ch&0 x80; ch=ch1; if(code1) DIN=1; CLK=0; CLK=1; else DIN=0; CLK=0; CLK=1; /*向MAX7219寫入一個字(16位)*/void write7219(uchar addr,uchar number) LOAD=0; _nop_();

39、_nop_(); _nop_(); write_byte(addr); _nop_(); _nop_(); _nop_(); write_byte(number); _nop_(); _nop_(); _nop_(); LOAD=1;/*MAX7219初始化*/void max_rst() write7219(0 x0b,0 x03); write7219(0 x09,0 xff); write7219(0 x0a,0 x0a); write7219(0 x0c,0 x01);void delayms(unsigned int ms)/ 延時子程序,單位為ms unsigned char i; while(ms-) for(i = 0; i 120; i+); /溫度顯示void text_rst()/第一次使用數(shù)碼管測試 max_rst(); write7219(0 x0f,0 x01); delayms(1000);

溫馨提示

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

最新文檔

評論

0/150

提交評論