![溫度控制系統(tǒng)的設(shè)計_第1頁](http://file4.renrendoc.com/view14/M08/3B/02/wKhkGWc4ILKAK2qCAAGdgoqtBPM052.jpg)
![溫度控制系統(tǒng)的設(shè)計_第2頁](http://file4.renrendoc.com/view14/M08/3B/02/wKhkGWc4ILKAK2qCAAGdgoqtBPM0522.jpg)
![溫度控制系統(tǒng)的設(shè)計_第3頁](http://file4.renrendoc.com/view14/M08/3B/02/wKhkGWc4ILKAK2qCAAGdgoqtBPM0523.jpg)
![溫度控制系統(tǒng)的設(shè)計_第4頁](http://file4.renrendoc.com/view14/M08/3B/02/wKhkGWc4ILKAK2qCAAGdgoqtBPM0524.jpg)
![溫度控制系統(tǒng)的設(shè)計_第5頁](http://file4.renrendoc.com/view14/M08/3B/02/wKhkGWc4ILKAK2qCAAGdgoqtBPM0525.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
...wd......wd......wd...單片機溫度控制系統(tǒng)的設(shè)計摘要溫度是表征物體冷熱程度的物理量,是工農(nóng)業(yè)生產(chǎn)過程中一個很重要而普遍的參數(shù)。由于溫度測量的普遍性,溫度傳感器的數(shù)量在各種傳感器中居首位。溫度控制的開展引入單片機后,可以降低對某些硬件電路的要求?;趩纹瑱C的溫度控制系統(tǒng),可以實現(xiàn)對溫度的準(zhǔn)確控制。本文以溫室為研究對象,以AT89C51單片機為核心所實現(xiàn)的溫度控制系統(tǒng)具有自動完成數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)轉(zhuǎn)換控制、鍵盤終端處理及顯示的功能。當(dāng)實際溫度低于設(shè)定值,PTC進展加熱,反之PTC就停頓加熱。實際溫度超上限或者低下限時,系統(tǒng)自動報警。溫度控制采用的是雙位控制,簡單易行,在精度要求不是特別高的溫室,可行度很高。最后對系統(tǒng)進展調(diào)試并在PROTEUS里仿真,結(jié)果說明該系統(tǒng)原理可行。又在一個小空間進展試驗,誤差在1℃左右,結(jié)果符合預(yù)期。運行穩(wěn)定、控制效果好、性價比高。關(guān)鍵詞:單片機,溫度控制,DS18B20,溫室目錄摘要IAbstractI目錄II第一章緒論11.1課題研究背景及意義11.2國內(nèi)外研究現(xiàn)狀11.2.1國外研究現(xiàn)狀11.2.2國內(nèi)研究現(xiàn)狀11.2.3總的開展階段21.3課題研究的內(nèi)容2第二章硬件系統(tǒng)總體方案設(shè)計32.1硬件系統(tǒng)總體設(shè)計方案一32.2硬件系統(tǒng)總體設(shè)計方案二42.3硬件系統(tǒng)的方案選擇4第三章控制系統(tǒng)硬件設(shè)計63.1單片機63.2數(shù)字溫度計DS18B2093.2.1DS18S20數(shù)字溫度計的主要特性93.34X4鍵盤93.4數(shù)碼管103.5光電耦合器123.6雙向晶閘管133.7PTC加熱器143.8反相器7406153.9雙四輸入與門74LS21163.9蜂鳴器16第四章控制系統(tǒng)軟件設(shè)計174.1主程序模塊設(shè)計174.1.1主程序流程圖174.2溫度采集模塊程序設(shè)計184.2.1DS18B20的時序184.2.3讀溫度子程序流程圖204.3溫度設(shè)定模塊程序設(shè)計214.3.1中斷服務(wù)子程序214.3.2鍵盤掃描子程序214.4溫度顯示模塊設(shè)計234.4.1設(shè)定值顯示子程序234.4.2實際值顯示子程序244.5溫度控制模塊設(shè)計254.5.1雙位控制算法設(shè)計254.5.2溫度控制子程序流程圖254.6報警模塊程序設(shè)計26第五章結(jié)果分析275.1PROTEUS仿真275.1.1鍵盤設(shè)定溫度仿真275.1.2溫度采集仿真285.1.3整體仿真285.2實際運行結(jié)果29第六章總結(jié)與展望316.1總結(jié)316.2展望31附錄程序33第一章緒論1.1課題研究背景及意義溫度是表征物體冷熱程度的物理量,是工農(nóng)業(yè)生產(chǎn)過程中一個很重要而普遍的參數(shù)。溫度的測量及控制對保證產(chǎn)品質(zhì)量、提高生產(chǎn)效率、節(jié)約能源、生產(chǎn)安全、促進國民經(jīng)濟的開展起到非常重要的作用。由于溫度測量的普遍性,溫度傳感器的數(shù)量在各種傳感器中居首位。而且隨著科學(xué)技術(shù)和生產(chǎn)的不斷開展,溫度傳感器的種類還是在不斷增加豐富來滿足生產(chǎn)生活中的需要。在單片機溫度測量系統(tǒng)中的關(guān)鍵是測量溫度、控制溫度和保持溫度,溫度測量是工業(yè)對象中主要的被控參數(shù)之一。溫度控制采用單片機設(shè)計的全數(shù)字儀表,是常規(guī)儀表的的升級產(chǎn)品。溫度控制的開展引入單片機后,可以降低對某些硬件電路的要求,但依然需要重視測試電路本身的重要性,尤其是直接獲取被測信號的傳感器局部,仍應(yīng)給以充分的重視,有時提高整臺儀器的性能的關(guān)鍵仍然在于測試電路尤其是傳感器的改良?,F(xiàn)在傳感器也正在受著微電子技術(shù)的影響,不斷開展變化。傳感器正朝著小型、固態(tài)、多功能和集成化的方向開展?;趩纹瑱C的溫度控制系統(tǒng),可以實現(xiàn)對溫度的準(zhǔn)確控制,使得在某些場合下人們對溫度上下的要求得以實現(xiàn)。對人們的生產(chǎn)和生活影響巨大,比方,在我國的北方,冬天溫度極低,但引入溫室大棚后,冬天的時候人們也能吃到新鮮的蔬菜;鋼鐵廠里煉鐵,對溫度的要求更高,這就使得溫度控制變得極為有意義,而在我們的日常生活中,空調(diào)讓冬天不冷夏天不熱,確實讓我們感受到溫度控制對我們生活質(zhì)量的提高也有著極大的作用。總之,現(xiàn)代工業(yè)設(shè)計,工程建設(shè)及日常生活中溫度控制都起著重要的作用。1.2國內(nèi)外研究現(xiàn)狀1.2.1國外研究現(xiàn)狀國外對溫度控制技術(shù)研究較早,始于20世紀(jì)70年代。先是采用模擬式的組合儀表,采集現(xiàn)場信息并進展指示、記錄和控制。80年代末出現(xiàn)了分布式控制系統(tǒng)。目前正開發(fā)和研制計算機數(shù)據(jù)采集控制系統(tǒng)的多因子綜合控制系統(tǒng)。990年代中期,智能溫控儀問世,它是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)的結(jié)晶。目前,國際上已開發(fā)出多種智能溫控器系列產(chǎn)品。智能溫控器內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號處理器和接口電路。有的產(chǎn)品還有多路選擇器、中央控制器〔CPU〕、隨機存儲器〔RAM〕和只讀存儲器〔ROM〕?,F(xiàn)在世界各國的溫度測控技術(shù)開展很快,一些國家在實現(xiàn)自動化的根基上正向著完全自動化、無人化的方向開展。1.2.2國內(nèi)研究現(xiàn)狀我國對于溫度測控技術(shù)的研究較晚,始于20世紀(jì)80年代。我國工程技術(shù)人員在吸收興旺國家溫度測控技術(shù)的根基上,才掌握了溫度室內(nèi)微機控制技術(shù),該技術(shù)僅限于對溫度的單項環(huán)境因子的控制。我國溫度測控設(shè)施計算機應(yīng)用,在總體上正從消化吸收、簡單應(yīng)用階段向?qū)嵱没?、綜合性應(yīng)用階段過渡和開展。在技術(shù)上,以單片機控制的單參數(shù)單回路系統(tǒng)居多,尚無真正意義上的多參數(shù)綜合控制系統(tǒng),與興旺國家相比,存在較大差距。我國溫度測量控制現(xiàn)狀還遠遠沒有到達工廠化的程度,生產(chǎn)實際中仍然有許多問題困擾著我們,存在著裝備配套能力差,產(chǎn)業(yè)化程度低,環(huán)境控制水平落后,軟硬件資源不能共享和可靠性差等缺點。1.2.3總的開展階段總的來說,溫控器被廣泛應(yīng)用于工農(nóng)業(yè)生產(chǎn)、科學(xué)研究和生活等領(lǐng)域,數(shù)量日漸上升。近百年來,溫控器的開展大致經(jīng)歷了三個階段:1.模擬溫度控制器;2.集成溫度控制器;3.能溫度控制器,目前,國際上新型溫控器正從模擬式向數(shù)字式、由集成化向智能化、網(wǎng)絡(luò)化的方向開展。1.3課題研究的內(nèi)容本文所要研究的課題是基于單片機的溫度控制系統(tǒng)的設(shè)計,控制對象為溫室,主要目標(biāo)是實現(xiàn)溫度的設(shè)定值顯示、實際值實時測量及顯示,溫度超上限和低下限不安全報警。單片機連接的溫度調(diào)節(jié)裝置由軟件與硬件電路配合來實現(xiàn)溫度實時控制,顯示可由軟件控制并在數(shù)碼管中顯示。對比采集到溫度與設(shè)定值及上下限的大小,然后做出相應(yīng)的反響,控制執(zhí)行機構(gòu)是否降溫或升溫,判斷警報與否。第二章硬件系統(tǒng)總體方案設(shè)計本次畢業(yè)設(shè)計以51系列單片機為核心對溫度進展控制,使被控對象的溫度穩(wěn)定在某一指定數(shù)值上,允許有1℃的誤差〔不包括元件本身的制造引起的誤差〕,鍵盤輸入設(shè)定溫度值,LED數(shù)碼管顯示溫度值〔實際的或設(shè)定的〕?;谏鲜鲆?,提出以下兩種方案,下文是對兩種方案的具體論述。2.1硬件系統(tǒng)總體設(shè)計方案一方案一如圖2-1所示,此方案選用DS18B20芯片進展溫度采集及模擬量與數(shù)字量之間的轉(zhuǎn)換,并直接輸出數(shù)字量,無需信號放大,且只占用一根口線,然后將其送數(shù)碼管顯示。4X4矩陣式鍵盤,首先要對其進展鍵盤掃描,判斷是否有鍵按下,如有鍵按下,要判斷是那個鍵按下,確定鍵值,然后對其進展輸入,把最后設(shè)定的溫度值送給數(shù)碼管進展顯示。如果對一個溫度值已經(jīng)設(shè)定完畢后,無需再按任何鍵即有效,如果溫度值設(shè)定得不合理,可對溫度進展重新設(shè)定,溫度的上下限可由軟件編程設(shè)定,這樣就完成了對溫度的總體設(shè)置。對于數(shù)碼管顯示模塊,采用了動態(tài)顯示的方法,在程序的設(shè)計中也相應(yīng)的采用動態(tài)顯示方法對其進展編寫。首先把設(shè)定的〔或采集到〕數(shù)據(jù)的十進制數(shù)進展字節(jié)拆分,分別求出要顯示個位數(shù)、十位數(shù)、百位數(shù)〔顯示實際溫度時,還要求出十分位〕,然后將其送至數(shù)碼管顯示。顯示設(shè)定值還是實際值,可由按鍵進展切換。對于溫度控制模塊,首先是把采集的數(shù)據(jù)和設(shè)定的溫度上下限進展對比,如低于下限值或高于上限值,蜂鳴器警報,再把實際溫度和設(shè)定的溫度對比,決定加熱與否以及加熱時間的控制。單片機軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種控制算法和邏輯控制,不需要向外擴展存儲器,可使系統(tǒng)整體構(gòu)造更為簡單。信號的傳遞路線短,可以提高系統(tǒng)精度。DS18B20DS18B20單片機鍵盤設(shè)定溫度雙向可控硅光電耦合器加熱裝置報警數(shù)碼管顯示圖2-1方案一框圖2.2硬件系統(tǒng)總體設(shè)計方案二方案二如圖2-2所示,采用AT89C51作為控制核心,以使用最為普遍的器件ADC0809作模數(shù)轉(zhuǎn)換,控制上使用電阻絲進展加熱。此方案簡易可行,器件的價格廉價,且ADC0809是8位的模數(shù)轉(zhuǎn)換,測溫范圍是0-800℃,誤差為0.5%,即分辨率為1/200,而ADC0809的分辨率為1/256,故能滿足此題目的精度要求。系統(tǒng)要有溫度設(shè)定局部,由于8051的接口不夠的問題,所以對其進展接口擴展,采用最常用的8255并行接口芯片對其擴展,采用4×4矩陣式鍵盤接在8255的A口和B口,鍵盤中有0到15之間十六個數(shù)字鍵,對溫度的顯示采用三個數(shù)碼管對其進展顯示,分別是百位、十位、個位。且系統(tǒng)設(shè)置報警裝置,使用戶能夠?qū)崟r知道溫度是否在所設(shè)定所的范圍內(nèi)??刂齐娐肪植坎捎肕OC3041控制可控硅的通斷以實現(xiàn)對溫室溫度的控制。AD590AD590放大電路單片機模數(shù)轉(zhuǎn)換鍵盤設(shè)定溫度82555A雙向可控硅光電耦合器數(shù)碼管顯示加熱裝置報警圖2-2方案二框圖2.3硬件系統(tǒng)的方案選擇兩種方案的區(qū)別在于溫度的采集局部,由上可知,DS18B20相對于AD590在此系統(tǒng)的優(yōu)勢相當(dāng)明顯,節(jié)約單片機的I/O口線,數(shù)據(jù)傳送路徑短,準(zhǔn)確度高,節(jié)約成本,應(yīng)選用方案一。此方案以單片機為該系統(tǒng)的控制核心。溫度的檢測局部使用了DS18B20、AT89C51單片機及數(shù)碼管的硬件電路完成對室溫的實時檢測與顯示,通過4×4鍵盤設(shè)定溫室的溫度,對比溫度的設(shè)定值與實測值的大小,然后由單片機發(fā)出信號,控制光電耦合器和雙向可控硅導(dǎo)通與否,由此控制PTC加熱器的通斷,實現(xiàn)對溫室溫度的恒溫控制。因為溫室的溫度波動對比小,故不必采用軟件濾波對溫度進展平滑控制。報警局部采用一個3V的有源蜂鳴器,發(fā)出不安全警報。此單片機溫度控制系統(tǒng)具有微型化、低功耗、高性能、易配微處理器等優(yōu)點,可以進展多點測溫,DS18B20可以直接將溫度轉(zhuǎn)化成串行數(shù)字信號供微機處理,而且每片DS18B20都有唯一的產(chǎn)品號,可以一并存入其ROM中,以便在構(gòu)成大型溫度測控系統(tǒng)時在單線上連接多個DS18B20芯片,當(dāng)然一個I/O口能掛接多少片DS18B20,因單片機的不同而異。從DS18B20讀出或?qū)懭隓S18B20信息僅需要一根口線,其讀寫及溫度變換功率來源于數(shù)據(jù)總線,該總線本身也可以向所連接的DS18B20供電,不需要外部電源,同時DS18B20能提供9-12位溫度讀數(shù),出廠默認(rèn)是12位,無需任何外圍硬件即可方便地構(gòu)成溫度檢測系統(tǒng)。單片機具體實現(xiàn)的功能如下:1、連續(xù)測量溫室的溫度值,控制數(shù)碼管顯示溫室的實際溫度;2、控制鍵盤設(shè)定溫室的溫度值,并用數(shù)碼管顯示。設(shè)定范圍為室溫至125℃;實現(xiàn)溫室的恒溫控制,比方設(shè)定值為50℃,則應(yīng)使實際值與50℃相接近。第三章控制系統(tǒng)硬件設(shè)計基于上章的分析,我選擇了方案一,方案一的原理圖如圖3-1所示。本章主要介紹介紹控制系統(tǒng)中所使用到的各種元器件。圖3-1系統(tǒng)原理圖3.1單片機將運算器、控制器、存儲器和各種輸入/輸出接口等計算機的主要部件集成在一塊芯片上,就能得到一個單芯片的微型計算機。它雖然只是一個芯片,但在組成和功能上已經(jīng)具有了計算機系統(tǒng)的特點,因此稱之為單片微型計算機(Single-ChipMicrocomputer),簡稱單片機。因為其體積小、功耗低、價格低廉、抗干擾能力強且可靠性高,適合應(yīng)用于工業(yè)過程控制、智能儀器儀表和測控系統(tǒng)的前端裝置。本次畢業(yè)設(shè)計所采用的是AT89C51。以下簡述本次畢業(yè)設(shè)計所用到的與其相關(guān)的知識。1、主要特性:〔1〕與MCS-51兼容〔2〕4K字節(jié)可編程閃爍存儲器,壽命為1000次寫/擦循環(huán),數(shù)據(jù)可保存時間為10年〔3〕全靜態(tài)工作:0Hz-24Hz〔4〕三級程序存儲器鎖定〔5〕128X8位內(nèi)部RAM〔6〕4個I/O口,共32根可編程口線〔7〕兩個16位定時器/計數(shù)器〔8〕5個中斷源〔9〕可編程串行通道〔10〕低功耗的閑置和掉電模式〔11〕片內(nèi)振蕩器和時鐘電路2、管腳說明:AT89C51的管腳布置如圖3-2所示VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時,P0口作為原碼輸入口,當(dāng)FIASH進展校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為低八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1〞時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進展存取時,P2口輸出地址的高八位。在給出地址“1〞時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進展讀寫時,P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1〞后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL〕這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下所示:P3口管腳備選功能P3.0RXD〔串行輸入口〕P3.1TXD〔串行輸出口〕P3.2/INT0〔外部中斷0〕P3.3/INT1〔外部中斷1〕P3.4T0〔記時器0外部輸入〕P3.5T1〔記時器1外部輸入〕P3.6/WR〔外部數(shù)據(jù)存儲器寫選通〕P3.7/RD〔外部數(shù)據(jù)存儲器讀選通〕P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低8位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想制止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。微處理器在外部執(zhí)行狀態(tài)ALE制止,置位無效。PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指令期間,每個機器周期兩次PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不出現(xiàn)EA/VPP:當(dāng)EA保持低電平時,則在此期間外部程序存儲器〔0000H-FFFFH〕,不管是否有內(nèi)部程序存儲器。注意加密方式1時,EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源〔VPP〕。圖3-2AT89C51管腳3.2數(shù)字溫度計DS18B20在傳統(tǒng)的模擬信號遠距離傳送的測量系統(tǒng)中,需要很好的解決引線誤差補償問題、多點切換誤差問題和放大電路的零點誤差問題等技術(shù)。另外考慮到一般的測量現(xiàn)場的電磁環(huán)境非常的惡劣,各種干擾信號較強,模擬信號很容易受到干擾而產(chǎn)生測量誤差,影響測量精度。因此,在溫度測量系統(tǒng)中,采用抗干擾能力較強的新型數(shù)字溫度傳感器是解決這些問題的最有效的方案。在實際的溫度測量過程中被廣泛應(yīng)用,同時也取得了良好的測量效果。3.2.1DS18S20數(shù)字溫度計的主要特性1、DS18S20的適應(yīng)電壓范圍更寬,其范圍為:3.0-5.5V,而且它能夠直接由數(shù)據(jù)線獲取電源(寄生電源),無需外部工作電源。2、DS18S20提供了9-12位攝氏溫度測量,具有非易失性、上下觸發(fā)門限用戶可編程的報警功能。3、DS18S20通過1-Wire總線與中央微處理器通信,僅需要單根數(shù)據(jù)線(或地線)。同時,在使用過程中,它不需要任何的外圍的元件,全部的傳感元件和轉(zhuǎn)換電路集成在形狀如一只三極管的集成電路內(nèi)。4、DS18S20具有-55°C至+125°C的工作溫度范圍,在-10°C至+85°C溫度范圍內(nèi)精度為±0.5°C。5、每片DS18B20具有唯一的64位序列碼,這些序列碼允許多片DS18B20在同一條1-Wire總線上工作,因而,可方便地使用單個微處理器控制分布在大范圍內(nèi)的多片DS18S20器件。6、DS18S20的測量結(jié)果直接輸出數(shù)字溫度信號,以“一線總線〞串行傳送給CPU,同時還可以傳送給CRC校驗碼,它具有極強的抗干擾糾錯的能力。7、DS18S20具有負(fù)載特性,當(dāng)電源極性接反時,芯片不會因發(fā)熱而燒毀,但是不能正常的工作。3.34×4鍵盤用于計算機系統(tǒng)的鍵盤通常有兩類:一類是編碼鍵盤,即鍵盤上閉合鍵的識別由專用硬件來實現(xiàn):另一類是非編碼鍵盤,即鍵盤上閉合鍵的識別由軟件來完成。本次畢業(yè)設(shè)計采用的是4×4矩陣鍵盤,矩陣鍵盤由行線與列線組成,按鍵位于行列線的穿插點上。如圖3-3所示,一個4×4的行列構(gòu)造可以構(gòu)成一個含有16個按鍵的鍵盤,顯然,在按鍵數(shù)量較多時,矩陣鍵盤較之獨立式鍵盤要節(jié)省很多的I/O口線。本次畢業(yè)設(shè)計中鍵盤的設(shè)計思路如下:對P1賦值使P1=0xff,然后令第一行即P1.0等于零,如果第一行有按鍵按下,則P1.4至P1.7的值會發(fā)生變化:如果第一個按鍵按下,則P1.4等于0;如果第二個按鍵按下,則P1.5等于0;如果第三個按鍵按下,則P1.6等于0;如果第四個按鍵按下,則P1.7等于0。按此規(guī)律,直至第四行掃描完成。圖3-3為鍵盤的原理圖在此系統(tǒng)中,鍵盤用于設(shè)定溫度值,只是CPU的工作內(nèi)容之一。CPU對鍵盤的響應(yīng)取決于鍵盤的工作方式,鍵盤的工作方式應(yīng)根據(jù)實際運用系統(tǒng)中CPU的工作狀況而定,其選擇的原則是既要保證CPU能及時響應(yīng)按鍵操作,又不要過多占用CPU的工作時間。通常,鍵盤的工作方式有3種,即編程掃描、定時掃描和中斷掃描,本次畢業(yè)設(shè)計采用中斷掃描。采用編程掃描或定時掃描,無論是否有鍵按下,CPU都要定時掃描,而按鍵按下不是經(jīng)常發(fā)生的事件,這樣CPU對鍵盤會時常進展空掃描。為進一步提高CPU的工作效率,應(yīng)選用中斷掃描,其工作過程如下:當(dāng)無鍵按下,CPU處理自己的工作,當(dāng)鍵盤上有鍵按下時才產(chǎn)生一個外部中斷請求,CPU響應(yīng)鍵盤中斷請求,在中斷服務(wù)子程序中掃描并判別鍵盤上閉合的鍵號,求出輸入的數(shù)值。CPU對鍵盤上閉合鍵的鍵號進展確定,可以根據(jù)行線和列線的狀態(tài)確定;也可以預(yù)先在程序存儲器中放入鍵盤鍵值表,本次畢業(yè)設(shè)計采用前者。3.4數(shù)碼管在單片機應(yīng)用系統(tǒng)中通常使用的是七段LED,這種顯示器的構(gòu)造如圖2-1所示,共有8個發(fā)光二極管,其中7個發(fā)光二極管七段字形“8〞,一個發(fā)光二極管構(gòu)成小數(shù)點。本次畢業(yè)設(shè)計用的是四位共陰極數(shù)碼管,數(shù)碼管的發(fā)光二極管陰極接地,當(dāng)某個發(fā)光二極管的陽極為高電平,即邏輯“1〞時,發(fā)光二極管點亮。如圖3-4所示,P0口接一個5V的上拉電阻,P0.0-P0.7依次與數(shù)碼管的A-DP相接,構(gòu)成數(shù)碼管的段選,P2.0-P2.3依次與1-4相接,構(gòu)成數(shù)碼管的位選。圖3-4數(shù)碼管顯示原理圖LED顯示器工作原理:點亮顯示器有靜態(tài)和動態(tài)兩種方法。所謂靜態(tài)顯示,就是當(dāng)顯示某一字符時,相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止,如上圖中七段顯示器的a、b、c、d、e、f導(dǎo)通,g截止,則顯示“0〞。這種顯示方式每一位顯示器都需要有一個8位輸出口控制,其優(yōu)點是顯示穩(wěn)定,無閃爍,缺點是占用口線多,適用于顯示位數(shù)較少的場合。當(dāng)顯示位數(shù)較多時,一般采用動態(tài)顯示方法。所謂動態(tài)顯示就是一位一位的輪流點亮各位顯示器,對于每一位顯示器來說每隔一段時間點亮一次。由于循環(huán)顯示的頻率高較高時,利用人眼的暫留特性,看不出閃爍現(xiàn)象,顯示器的點亮既跟點亮?xí)r的導(dǎo)通電流有關(guān),也跟點亮?xí)r間和間隔時間有關(guān),調(diào)整電流和時間的參數(shù),可實現(xiàn)亮度較高較穩(wěn)定的顯示。假設(shè)顯示的位數(shù)不大于8位,則控制顯示器的公共電極只需一個I/O口控制各位顯示器,所顯示的字形也只需一個I/O口。LED數(shù)碼管分為共陽極和共陰極,不同的共極方式,顯示同樣的字符,數(shù)碼管的段選是不同的,如下表1為七段共陰極LED字型碼。表1七段共陰極LED段字型碼顯示字符dpGfedcba共陰極0001111113FH10000011006H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FH3.5光電耦合器光電隔離器件從大的方面來看,可粗略的分為光耦合器及應(yīng)用光耦合器或其他電子器件制成或應(yīng)用光耦合器制成的器件。光耦合器因可實現(xiàn)輸入與輸出電位上的嚴(yán)格隔離,所以在電力電子設(shè)備中晶閘管的門極控制與全控型器件的驅(qū)動及信號傳輸實現(xiàn)輸入輸出的隔離等方面都得到了廣泛的應(yīng)用,光電耦合器雖種類較多,內(nèi)部構(gòu)造有所不同,其速度也有差異,但其基本特性和參數(shù)定義卻有共同點。在光電耦合器內(nèi)部,由于發(fā)光二極管和光敏管之間的耦合電容很小,所以共模輸入電壓通過極間耦合電容對電流Ic的影響很小,因而共模抑制比很高。光電耦合器中光敏管的集電極電流與發(fā)光二極管的注入電流之比稱之為電流傳輸比。對于微小變量輸出電流與注入電流之比叫微變電流傳輸。對于線性度對比好的光耦合器,以上兩者近似相等。光耦合器的發(fā)光二極管和光敏晶體管之間額隔離電阻〔絕緣電阻〕較大,隔離電壓為500~4000V,有的可達10KV,隔離電容小于2pF。光耦合器與晶體管一樣,可以線性工作,也可開關(guān)狀態(tài)工作。在電源的驅(qū)動電路中,光耦合器一般用來傳送脈沖信號,所以光耦合器工作在開關(guān)狀態(tài)。在高頻工作時,應(yīng)考慮光耦合器的響應(yīng)時間。發(fā)光二極管電阻Ri的大小影響光耦合器的響應(yīng)時間,Ri越小,光耦合器響應(yīng)的時間越短,所以,在實際應(yīng)用中,在光耦合器允許的集電極電流范圍內(nèi),盡量減小負(fù)載電阻,以提高光耦合器的響應(yīng)速度。MOC3041是直流輸入雙向晶閘管輸出的光耦合器。該器件有輸入、輸出兩局部組成,它的輸入端有兩個引腳,輸入極是一個砷化鎵紅外發(fā)光二極管,工作時該二極管發(fā)出足夠的紅外光,觸發(fā)輸出局部,它的輸出端也有兩個引腳組成,輸出極為具有過零觸發(fā)的光控雙向晶閘管,當(dāng)紅外發(fā)光二極管中通過5~15mA的正向電流時,發(fā)出紅外光,輸出極的雙向晶閘管的光敏基極受到紅外光的照射,而觸發(fā)雙向晶閘管,使輸出端電壓接近0時導(dǎo)通,即輸入與輸出端有光耦合,器件導(dǎo)通后,其輸出端電壓降至很低,當(dāng)電流小于雙向晶閘管維持電流100μA時,雙向晶閘管關(guān)斷。如圖3-5所示,單片機的P3.0通過7406反相器接在MOC3041的陰極〔管腳2〕,當(dāng)P3.0口置1時,MOC3041的管腳2被置零,又5/330=0.015A,即MOC的觸發(fā)電流小于但約等于15Am,MOC3041的紅外發(fā)光二級管發(fā)出足夠的紅光,觸發(fā)輸出局部。當(dāng)P3.0置0時,MOC3041的管腳2被置1,處于高電平,此時,MOC3041的紅外發(fā)光二極管處于截至狀態(tài),輸出局部不被觸發(fā)。MOC3041相關(guān)參數(shù)如下:〔1〕、隔離電壓:7500Vac〔2〕、輸出類型:過零檢測〔3〕、輸入電流:60mA〔4〕、輸出電壓:400V〔5〕、針腳數(shù):6〔7〕、光電耦合器類型:三端雙向可控驅(qū)動器〔8〕、關(guān)態(tài)電壓:400V〔9〕、功耗:250mW〔10〕、工作溫度范圍:-40°C至+85°C〔11〕、正向電壓Vf最大:1.5V〔12〕、電壓,Vf典型值:1.25V〔13〕、觸發(fā)電流,If最大:15mA3.6雙向晶閘管在溫度控制系統(tǒng)中,主電路一般使用晶閘管組成開關(guān)電路,通過控制晶閘管的導(dǎo)通時間來控制加熱時間,因此本系統(tǒng)中,主電路采用了雙向晶閘管,在交流電壓的正半周期使其沿某方向?qū)?,在?fù)半周期則逆向?qū)?。主要參?shù)的選?。贺?fù)載為220V,120W的PTC加熱器負(fù)載電流有效值為負(fù)載電流峰值為×因為當(dāng)雙向晶閘管全開時,單方向的電流為交流半個周期的電流,所以而流過雙向晶閘管的電流的平均值晶閘管額定電壓的選擇:晶閘管的額定電壓應(yīng)為正常工作峰值電壓的2-3倍?!痢了匀=600V。晶閘管額定電流的選擇:晶閘管通態(tài)平均電流為實際正常平均值的1.5-2.0倍。=2.0×=2.0×0.49=0.98A所以晶閘管的額定電流可取8A。根據(jù)計算的數(shù)據(jù)選擇雙向晶閘管的型號為BTA08-600C。主要參數(shù)為:通態(tài)電流IT(RMS)=8A浪涌電流ITSM=80A正向耐壓VDRM>600V反向耐壓VRRM>600V觸發(fā)電流IGT<25mA通態(tài)壓降VTM<1.55V晶閘管的過流,過壓保護采用了一般的阻容保護電路,其參數(shù)為:=50×0.1×〔×220〕×=0.0484w圖3-5光電耦合器控制可控硅原理圖3.7PTC加熱器加熱裝置是對溫室進展加熱,使溫度穩(wěn)定在設(shè)定的溫度值。本系統(tǒng)采用PTC加熱器進展加熱。PTC是PositiveTemperatureCoefficient的縮寫,意思是正的溫度系數(shù),泛指正溫度系數(shù)很大的半導(dǎo)體材料或元器件。通常我們提到的PTC是指正溫度系數(shù)熱敏電阻,簡稱PTC熱敏電阻。圖3-6是其電阻隨溫度變化的曲線,PTC熱敏電阻是一種典型具有溫度敏感性的半導(dǎo)體電阻,超過一定的溫度(居里溫度)時,它的電阻值隨著溫度的升高呈階躍性的增高。陶瓷材料通常用作高電阻的優(yōu)良絕緣體,而陶瓷PTC熱敏電阻是以鈦酸鋇為基,摻雜其它的多晶陶瓷材料制造的,具有較低的電阻及半導(dǎo)特性。通過有目的的摻雜一種化學(xué)價較高的材料作為晶體的點陣元來到達的:在晶格中鋇離子或鈦酸鹽離子的一局部被較高價的離子所替代,因而得到了一定數(shù)量產(chǎn)生導(dǎo)電性的自由電子。對于PTC熱敏電阻效應(yīng),也就是電阻值階躍增高的原因,在于材料組織是由許多小的微晶構(gòu)成的,在晶粒的界面上,即所謂的晶粒邊界(晶界)上形成勢壘,阻礙電子越界進入到相鄰區(qū)域中去,因此而產(chǎn)生高的電阻,這種效應(yīng)在溫度低時被抵消:在晶界上高的介電常數(shù)和自發(fā)的極化強度在低溫時阻礙了勢壘的形成并使電子可以自由地流動。而這種效應(yīng)在高溫時,介電常數(shù)和極化強度大幅度地降低,導(dǎo)致勢壘及電阻大幅度地增高,呈現(xiàn)出強烈的PTC效應(yīng)。圖3-6PTC電阻溫度曲線PTC型陶瓷加熱器采用PTC陶瓷發(fā)熱組件與波紋鋁條經(jīng)高溫膠粘組成。該類型PTC加熱器有熱電阻小、換熱效率高的優(yōu)點,是一種自動恒溫、省電的電加熱器。它的顯著特點有加熱器本體的設(shè)計加熱溫度在200攝氏度以下的多檔次,任何情況下本體不發(fā)紅且有保護隔離層,任何應(yīng)用場合均不需要石棉等隔熱材料進展降溫處理,可放心使用不存在對人體燙傷和引發(fā)火災(zāi)的問題。對比電熱管和電阻絲加熱產(chǎn)品,本產(chǎn)品是靠材料自身的特性,根據(jù)環(huán)境溫度的改變來調(diào)節(jié)自身的熱功率輸出,所以它能將加熱器的電能消耗優(yōu)化控制在最小,同時高發(fā)熱效率的材料也大幅提升了電能的利用效率。本次畢業(yè)設(shè)計我所選用的PTC加熱器的主要參數(shù)有電壓:220V,功率120w,長40mm,寬40mm,厚7mm。屬于小功率類型,用其加熱時恒溫發(fā)熱、無明火、熱轉(zhuǎn)換率高、受電源電壓影響小。3.8反相器7406在本系統(tǒng)中,兩次運用了7406反向器,一次是在單片機的P3.0口與MOC3041的管腳2之間,作用是使P3.0被置1時,MOC3041的管腳2被置0,且與真實的0更接近,MOC3041的光敏二級管導(dǎo)通;當(dāng)P3.0被置0時,MOC3041的管腳被置1,且更接近5V,使MOC3041的光敏二級管真正能夠處于截至狀態(tài)。另一處是與蜂鳴器的陰極相接,作用和上述的類似。我所采用的型號是SN7406N,14管腳,6路獨立反向驅(qū)動,,VCC的范圍為4.75-5.25V。圖3-7反相器7406管腳3.9雙四輸入與門74LS2174LS21是雙輸入四與門,Y=ABCD,我所使用的型號是SN74LS21N,14管腳,VCC的范圍為4.75-5.25V,推薦使用5V。在此系統(tǒng)中,按鍵未按下時,P3.2始終為高電平,當(dāng)有鍵按下時,通過74LS21的作用,輸出低電平,使P3.2的高電平變?yōu)榈碗娖?,觸發(fā)外部中斷0,在中斷程序里掃描鍵盤,并計算輸入的溫度的設(shè)定值。使用中斷的好處是使CPU在有鍵按下時才掃描鍵,提高了CPU的效率。圖3-8四輸入與門74LS21管腳3.9蜂鳴器本次畢業(yè)設(shè)計的警報局部是通過一個有源的3V蜂鳴器來實現(xiàn)的,當(dāng)實際溫度超上限或低下限時進展不安全報警,其長腳為正極,短腳為負(fù)極,正極與5V電壓相接,負(fù)極通過一個7406與P3.1相接。第四章控制系統(tǒng)軟件設(shè)計為了實現(xiàn)系統(tǒng)的溫度檢測和控制,并能夠?qū)崟r顯示,整個系統(tǒng)由如下幾個主要模塊組成,主程序模塊、溫度采集模塊、溫度設(shè)定模塊、溫度顯示模塊,報警模塊,溫度控制模塊等幾個模塊組成。本章將對如上所表達的幾個模塊分別進展介紹,并闡述程序的編寫思路和所實現(xiàn)的功能。4.1主程序模塊設(shè)計主程序的主要設(shè)計思想是圍繞題目基本要求而展開的,系統(tǒng)按鍵設(shè)定溫度產(chǎn)生外部中斷0,轉(zhuǎn)入中斷服務(wù)程序,在中斷服務(wù)程序中獲取設(shè)定的溫度值,之后在主程序進展數(shù)據(jù)存儲、調(diào)用數(shù)碼管顯示、報警控制、溫度控制等子程序模塊。所以主程序主要是對系統(tǒng)的初始化和調(diào)用各子程序模塊。4.1.1主程序流程圖圖4-1為主程序流程圖圖4-1主程序流程圖4.2溫度采集模塊程序設(shè)計溫度的采集是數(shù)字溫度計DS18B20通過單片機進展嚴(yán)格的時序控制來完成的,在空間不是很大的范圍內(nèi),采用一片DS18B20進展單點測溫即可實現(xiàn)對溫度的較為準(zhǔn)確的控制。4.2.1DS18B20的時序DS18B20的時序可分為三個局部:初始化時序、寫時序和讀時序。只有遵守嚴(yán)格的時序,DS18B20才能進展溫度的采集。4.2.2.1初始化時序DS18B20的所有通信都是由復(fù)位脈沖組成的初始化序列開場。該初始化序列由主機發(fā)出,后跟由DS18B20發(fā)出的存在脈沖〔presencepulse〕。圖4-2闡述了這一點,當(dāng)發(fā)出應(yīng)答復(fù)位脈沖的存在脈沖后,DS18B20通知主機它在總線上并且準(zhǔn)備好操作了。在初始化步驟中,總線上的主機通過拉低單總線至少480μs來產(chǎn)生復(fù)位脈沖。然后總線主機釋放總線并進入接收模式。當(dāng)總線釋放后,5kΩ的上拉電阻把單總線上的低電平拉回高電平。當(dāng)DS18B20檢測到上升沿后等待15到60μs,然后以拉低總線60-240μS的方式發(fā)出存在脈沖,主機將總線拉低最短480μS,之后釋放總線。由于5kΩ上拉電阻的作用,總線恢復(fù)到高電平。至此,初始化和存在時序完畢。4.2.2.2寫時序如圖4-3所示,所有的寫時隙必須至少有60μs的持續(xù)時間。相鄰兩個寫時隙必須要有最少1μs的恢復(fù)時間。所有的寫時隙〔寫0和寫1〕都由拉低總線產(chǎn)生。為產(chǎn)生寫1時隙,在拉低總線后主機必須在15μs內(nèi)釋放總線〔拉低的電平要持續(xù)至少1us〕。由于上拉電阻的作用,總線電平恢復(fù)為高電平,直到完成寫時隙。為產(chǎn)生寫0時隙,在拉低總線后主機持續(xù)拉低總線即可,直到寫時隙完成后釋放總線〔持續(xù)時間60-120μs〕。寫時隙產(chǎn)生后,DS18B20會在產(chǎn)生后的15到60μs的時間內(nèi)采樣總線,以此來確定寫0還是寫1。4.2.2.3讀時序如圖4-4所示,DS18B20只有在主機發(fā)出讀時隙時才能發(fā)送數(shù)據(jù)到主機。因此,主機必須在BE〔讀存儲器〕命令,B4〔讀電源〕命令后立即產(chǎn)生讀時隙以使DS18B20提供相應(yīng)的數(shù)據(jù)。另外,在44〔溫度轉(zhuǎn)換〕命令,B8〔recall〕命令后也要產(chǎn)生讀時隙。所有的讀時隙必須至少有60μs的持續(xù)時間。相鄰兩個讀時隙必須要有最少1μs的恢復(fù)時間。所有的讀時隙都由拉低總線,持續(xù)至少1μs后再釋放總線〔由于上拉電阻的作用,總線恢復(fù)為高電平〕產(chǎn)生。DS18B20輸出的數(shù)據(jù)在下降沿產(chǎn)生1后5μs內(nèi)有效。因此,釋放總線和主機采樣總線等動作要在15μs內(nèi)完成。圖4-2DS18B20復(fù)位時序圖圖4-3DS18B20寫時序圖圖4-4DS18B20讀時序圖4.2.3讀溫度子程序流程圖讀溫度子程序是在單片機的控制下,形成嚴(yán)格的時序,完成溫度的轉(zhuǎn)換并作數(shù)據(jù)的相應(yīng)處理。溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開場命令,本次畢業(yè)設(shè)計采用12位分辨率,轉(zhuǎn)換所需的時間約為750ms。因為是單點測溫,不需要CRC校驗。圖4-5為讀溫度子程序流程圖圖4-5讀溫度子程序流程圖4.3溫度設(shè)定模塊程序設(shè)計溫度設(shè)定模塊是用來設(shè)定溫度的,通過4X4鍵盤輸入想要控制的溫度值。本次畢業(yè)設(shè)計通過中斷進展掃描。4.3.1中斷服務(wù)子程序系統(tǒng)中中斷采用的是外部中斷0,外部中斷0的初始化子程序在主程序開場時即被調(diào)用,當(dāng)鍵盤上有鍵按下時,即產(chǎn)生一個外部中斷0,執(zhí)行中斷子程序,獲取輸入的設(shè)定值,之后中斷回。圖4-6為中斷服務(wù)子程序的流程圖圖4-6中斷服務(wù)子程序流程圖4.3.2鍵盤掃描子程序鍵盤的掃描是中斷掃描,假設(shè)有鍵按下,則從第一行開場掃描,直到確定按鍵的行與列,確定鍵值,并返回鍵值。圖4-7為鍵盤掃描子程序流程圖圖4-7鍵盤掃描子程序流程圖4.4溫度顯示模塊設(shè)計溫度顯示模塊要顯示的溫度有設(shè)定值與實際值,通過P3.5的電平的上下來控制,而P3.5電平的上下由與其相連的開關(guān)的通斷來控制。4.4.1設(shè)定值顯示子程序設(shè)定的數(shù)值范圍為自然狀態(tài)下室溫-125℃且為整數(shù),所以四位七段的數(shù)碼管的左數(shù)第一位的位選信號始終被置零,P0口進展段選,P2口的低四位依次進展千、百、十、個位的數(shù)碼管的位選。圖4-8為設(shè)定值顯示子程序的流程圖圖4-8設(shè)定值顯示子程序4.4.2實際值顯示子程序?qū)嶋H值是一個溫室自然狀態(tài)下的室溫-125℃之間的數(shù),其帶有一位小數(shù),四位八段的數(shù)碼管從左至右依次是百位、十位、個位、十分位。數(shù)碼管的段選口還是P0口,P2口的低四位依次是百位、十位、各位、十分位數(shù)碼管的位選口線。圖4-9為實際值顯示子程序的流程圖。圖4-9實際值顯示子程序流程圖4.5溫度控制模塊設(shè)計溫度控制模塊簡單的說就是要實現(xiàn)溫度的控制,實際溫度高于設(shè)定值,降溫;實際溫度低于設(shè)定值,加熱。系統(tǒng)中加熱的裝置為PTC加熱器。4.5.1雙位控制算法設(shè)計溫室環(huán)境是一個復(fù)雜分布式參數(shù)系統(tǒng),由于其本身的復(fù)雜性和外界大氣候較強的影響,要使自控系統(tǒng)將其控制到一定的指標(biāo)上存在一定的難度,但由于溫室內(nèi)作物對于各種參數(shù)變化不是很敏感,因此,沒有必要將各種參數(shù)進展準(zhǔn)確控制,只要控制在一段適宜的范圍內(nèi)即可,又考慮到本智能終端的通用性,本次畢業(yè)設(shè)計采用實現(xiàn)起來對比簡單的雙位控制算法。雙位控制又稱為繼電器接觸控制,理想的雙位控制規(guī)律的數(shù)學(xué)表達式為:雙位控制規(guī)律是測量值大于(或小于)給定值時,控制器的輸出為最大(或最小)值,即系統(tǒng)只有兩個輸出值,在此系統(tǒng)中,P3.0就相當(dāng)于一個雙位控制器。其只有“1〞和“0〞這兩種狀態(tài)。執(zhí)行機構(gòu)也只有“開"和“關(guān)"兩個極限工作位置。給定溫度的設(shè)定值,當(dāng)被控溫室的溫度低于設(shè)定值時,P3.0置1,PTC加熱器工作,而當(dāng)溫室內(nèi)的溫度高于設(shè)定值時,P3.0置0,關(guān)閉PTC加熱器,從而實現(xiàn)溫度的控制。雙位控制對象特性好、負(fù)荷變化較小、過程滯后小、允許被控制參數(shù)在一定的范圍內(nèi)波動,可以適用于溫室系統(tǒng)的控制。4.5.2溫度控制子程序流程圖圖4-10為溫度控制子程序流程圖圖4-10溫度控制子程序流程圖4.6報警模塊程序設(shè)計報警模塊的工作很簡單,就是判斷實際溫度超上限或低下限報警。圖4-11為報警控制子程序流程圖圖4-11報警控制子程序流程圖第五章結(jié)果分析5.1PROTEUS仿真總體電路原理圖設(shè)計好后,在KEIL3里用C語言編出相應(yīng)的程序,程序調(diào)試在沒有問題后,接著就對程序進展仿真,總體思路是:由局部到整體。首先進展鍵盤設(shè)定溫度值并用數(shù)碼管顯示的仿真,再進展DS18B20采集溫度并用數(shù)碼管顯示的仿真,這兩個關(guān)鍵局部完成后,就進展總體程序的仿真。5.1.1鍵盤設(shè)定溫度仿真將4×4鍵盤的掃描程序編好后,在PROTEUS里進展仿真,發(fā)現(xiàn)當(dāng)我按下某個按鍵時,數(shù)碼管的百位,十位,各位顯示的都是那個鍵的值,比方我按下3的時候,這三個位的數(shù)碼管都是3,思考了許久,我初步判斷原因可能是是按鍵按下后,因為鍵盤一直處于按下的狀態(tài),而按鍵掃描程序掃描按鍵的速度非??欤灾劣谖野聪乱淮?,鍵盤掃描了好些次,如此想后,我就設(shè)定一個標(biāo)志位,按鍵按下置1,鍵抬起置0,但效果依舊不佳;最后,我在掃描每行鍵的最后都加上一個判斷按鍵是否釋放的程序,如釋放,再讀取鍵值,如此之后,就能正確輸入按鍵的值,比方,我要輸入123,就只需要依次按下1、2、3。如圖5-1所示,鍵盤設(shè)定初值32℃并用數(shù)碼管顯示圖5-1鍵盤設(shè)定溫度32℃仿真5.1.2溫度采集仿真根據(jù)DS18B20的時序圖編好程序并在KEIL3里檢查好語法沒有錯誤后,鏈接到PROTEUS里進展仿真。開場在PROTEUS里設(shè)定改變溫度的步長為1℃,在軟件里也就相應(yīng)的將采集到的溫度設(shè)置為整數(shù),上下限與這個整數(shù)相差為一度。這樣會使誤差加大,之后將仿真的步長改為0.1℃,程序也做出相應(yīng)的的修改,使實際溫度保存一位小數(shù)。仿真能夠獲取實際溫度,這個實際溫度可從DS18B20的仿真模型中設(shè)置。如圖5-2所示,PROTEUS仿真溫度采集,獲取當(dāng)前的環(huán)境溫度為28.7℃。圖5-2溫度采集仿真5.1.3整體仿真因為實際溫度保存一位小數(shù),在仿真的時候,就出現(xiàn)了一個錯誤,比方,我設(shè)定的溫度為28攝氏度時,在正確的情況下,蜂鳴器會在實際溫度小于27℃和大于29℃報警,但是仿真出來的結(jié)果是小于27℃時,蜂鳴器報警,但是當(dāng)溫度大于29℃時蜂鳴器并未報警,直至實際大于30℃時蜂鳴器才會報警。仔細(xì)檢查程序后,我發(fā)現(xiàn)在讀溫度子程序模塊中,我讀取的是實際溫度的10倍并取整,然后在我將其與實際值對比之前,又讓其除以10,所得值賦給一個整形數(shù),這樣就出現(xiàn)了這樣種情況,比方,我最初測得的實際值是27.8℃,10倍變?yōu)?78℃,這是為了方便顯示,為了判斷是否報警,我要將其與設(shè)定值對比,又設(shè)定值是個整形數(shù),因此,將此數(shù)縮小10倍,賦給一個整形數(shù)后實際溫度就變?yōu)?7℃。如此實際溫度就當(dāng)于自減了1℃,故要到實際值為30℃時才能報警。實際溫度比設(shè)定小1℃能報警,又是因為,只有實際值比設(shè)定值小1℃才會報警,實際溫度等于設(shè)定的下限并不會報警,因此,〔27.0-27.9〕℃賦值給整形數(shù)始終是27℃,只有當(dāng)實際溫度小于27℃時,實際值才會小于下限〔設(shè)定值28-1〕,蜂鳴器才會警報。找出問題的所在后,我將設(shè)定值擴大10倍,再與實際值的10倍對比,這樣就很好的解決了這個問題。仿真總體完畢。由上可知,在仿真調(diào)試過程中,我遇到了很大的麻煩。在仿真的過程中,有時會感覺程序和硬件都沒有一點問題,但是就是不能實現(xiàn)系統(tǒng)所要實現(xiàn)的功能,因為它不允許軟件和硬件有一點問題,哪怕是細(xì)小的一點問題都不允許。舉一個最簡單的例子,就拿數(shù)碼管顯示程序的調(diào)試仿真來說,PROTEUS里單片機的I/O口可以直接驅(qū)動動態(tài)顯示的數(shù)碼管,但在實際中卻是不可以的。因為在PROTEUS中加熱裝置和實際出入大,所以在PROTEUS里進展加熱仿真就是成功也沒有太大的實際意義,所以我只進展了系統(tǒng)中兩個重要局部的軟件仿真,以及這兩局部合起來的一個總體仿真。5.2實際運行結(jié)果仿真結(jié)果符合預(yù)期后,我就著手實物的制作,將所用到的元件焊接在電路板后,就開場測試系統(tǒng)性能。第一次因為焊接技術(shù)不過關(guān),數(shù)碼管顯示時好時壞,為了求得個良好的結(jié)果,我又重新將元件焊接在另一塊板子上,積累了上次焊接的經(jīng)歷后,第二次的焊接效果比之前好了很多,數(shù)碼管顯示正常。由于是動態(tài)顯示,數(shù)碼管的亮度不是很高。加熱裝置我選擇的是PTC加熱器,其功率為120W,很小,只能在對比小的空間內(nèi)才能進展溫度控制。在實際的試驗中,DS18B20在以此加熱器為圓心,以半徑20CM為圓,高度不超過15CM圓柱范圍內(nèi),控制效果良好,誤差較小。以下簡述實際試驗的一些情況。首先,給單片機上電后,設(shè)定溫度為29℃,這個值就是我的期望值了,與此同時,軟件中相應(yīng)的把系統(tǒng)能容忍的溫度上下限分別定為30℃和28℃,按下溫度的切換鍵,顯示當(dāng)前溫度為27.6℃,低于溫控系統(tǒng)要求的下限,產(chǎn)生報警。因為實際溫度小于設(shè)定溫度,PTC加熱,一小段時間后,警報解除,說明溫度已進入溫度控制系統(tǒng)的上下限之間,又過了一段時間〔時間長短由DS18B20離PTC加熱器的距離而變,但當(dāng)系統(tǒng)穩(wěn)定后,時間的差異性變小〕,實際溫度到達29℃,PTC關(guān)斷,其余溫使溫度繼續(xù)上升,但沒有觸發(fā)警報,一段時間后,溫度又降到29度,比29℃稍低一點,PTC就會加熱,因為PTC的加熱很快,冷卻較慢,實際溫度在PTC關(guān)斷后,下降超過設(shè)定值的幅度很小,即使再小,PTC也會進展加熱,如此循環(huán),經(jīng)過屢次長時間的試驗,實際溫度28.8℃<T<29.8℃,誤差為1℃左右,又由于DS18B20的誤差為±0.5℃,累計的最大誤差為2℃,這個誤差在本系統(tǒng)中是可以容忍的。故本次畢業(yè)設(shè)計總體來說是成功的。圖5-3,為本次畢業(yè)設(shè)計的實物顯示設(shè)定溫度圖5-4,為本次畢業(yè)設(shè)計的實物顯示實際溫度圖5-3系統(tǒng)運行顯示設(shè)定溫度圖5-4系統(tǒng)運行顯示實際溫度第六章總結(jié)與展望6.1總結(jié)無論仿真還是在實際試驗中,本系統(tǒng)都到達了預(yù)期的要求。本次畢業(yè)設(shè)計主要完成的工作有:硬件電路圖設(shè)計、軟件編程與仿真調(diào)試、硬件制作等。以下是具體的總結(jié):(1)以AT89C51單片機為核心進展系統(tǒng)設(shè)計,輸入通道采用DS18B20芯片,完成溫度的采集以及輸出數(shù)字量;輸出通道采用光電耦合器控制雙向可控硅作為開關(guān)管理PTC加熱器的通斷。通過雙位控制調(diào)節(jié)可實現(xiàn)對溫度的自動控制。由于輸入端與輸出端有光電隔離,能夠有效地抑制干擾;(2)在溫度控制系統(tǒng)中采用雙位控制算法,將單片機的某個口線作為雙位控制器,通過置“0〞或置“1〞控制輸出通道的通斷。(3)采用C51進展編程,通用性強。在原理圖設(shè)計過程中使用了PROTEUS仿真,這些都節(jié)約了設(shè)計的時間,而且便于編寫、調(diào)試、修改和增刪,系統(tǒng)軟件的編制采用了模塊化的設(shè)計方法?!?〕制作硬件的時候采用雙面的焊接板,輔于焊錫膏,焊接可靠,在完成時,用萬用表對焊接件進展“虛焊〞與短路測試。減少硬件調(diào)試不成功尋找因素的麻煩?!?〕根據(jù)溫控空間的大小選擇加熱裝置功率的大小?!?〕使用溫度計對18B20所測得的溫度進展校正,可使結(jié)果更接近真實情況。6.2展望本系統(tǒng)使用的AT89C51屬于與C51系列兼容的8位單片機,這種單片機共4個I/O口,32根口線,資源較少,運用于較復(fù)雜的系統(tǒng)中需要擴展,而且擴展的空間也極為有限。隨著工業(yè)的開展,對象的復(fù)雜程度不斷加深,雙位控制的缺陷也逐漸暴露出來,而另一方面隨著智能控制如模糊控制、神經(jīng)網(wǎng)絡(luò)控制等先進控制技術(shù)的迅速開展,它們與常規(guī)PID控制相結(jié)合,揚長避短,發(fā)揮各自的優(yōu)勢,形成所謂的智能PID控制。結(jié)合上面的論述,今后還需要做進一步的研究和解決的問題有:(1)硬件方面,采用性能更優(yōu)良的單片機對系統(tǒng)的硬件進展重新設(shè)計;(2)控制算法方面,如要用于準(zhǔn)確控制,雙位控制不是好的選擇,嘗試采用現(xiàn)在得到快速開展的智能控制方法,如模糊控制、神經(jīng)網(wǎng)絡(luò)控制和模糊PID控制等等;〔3〕在按鍵方面,采用4×4鍵盤,占用了I/O口的十二根口線,對于資源本身就少的89C51單片機來說,不是很經(jīng)濟,在復(fù)雜的系統(tǒng)中,按鍵應(yīng)盡可能少占用I/O口。附錄程序#include<reg52.h>#include<intrins.h>typedefunsignedcharuchar;typedefunsignedintuint;#defineuintunsignedint#defineucharunsignedcharsbitDATA=P3^7;//DS18B20接入口sbitP10=P1^0;sbitP11=P1^1;sbitP12=P1^2;sbitP13=P1^3;sbitP30=P3^0;sbitbeep=P3^1;sbitP35=P3^5;uintupper,lower,count=0,settemp=0;ucharbai,shi,ge,fen;uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/*延時子函數(shù)子程序μs級*/voiddelayo(uintnumo){ while(numo--);}/*************DS18b20溫度傳感器函數(shù)*********************/Init_DS18B20(void) //初始化DS18B20{ ucharx=0; DATA=1;//但總線復(fù)位 delayo(10);//延時60μs左右 DATA=0;//拉低總線 delayo(80);//延時大于480μs DATA=1;//拉高總線 delayo(20); x=DATA;//稍延時后,假設(shè)x=0則初始化成功,假設(shè)x=1則初始化失敗 delayo(30);}//讀一個字節(jié)ReadOneChar(void){ uchari=0; uchardat=0; for(i=8;i>0;i--) { DATA=0;//發(fā)脈沖信號 dat>>=1; DATA=1;//發(fā)脈沖信號 if(DATA) dat|=0x80; delayo(8); } return(dat);}//寫一個字節(jié)WriteOneChar(uchardat){ uchari=0; for(i=8;i>0;i--) { DATA=0; DATA=dat&0x01; delayo(10); DATA=1; dat>>=1; } delayo(8);}//讀取溫度10倍uintReadTemperature(void){ uchara=0; ucharb=0; intt=0; uinttt=0; Init_DS18B20(); WriteOneChar(0xCC);//跳過讀序號列號的操作 WriteOneChar(0x44);//啟動溫度轉(zhuǎn)換 Init_DS18B20(); WriteOneChar(0xCC);//跳過讀序號列號的操作 WriteOneChar(0xBE);//讀取溫度存放器等〔共可讀9個存放器〕前兩個就是溫度 a=ReadOneChar();//讀取溫度低位 b=ReadOneChar();//讀取溫度高位 t=b; tt=(t*256+a)*0.625;//讀數(shù)結(jié)果擴大十倍 return(tt);}voiddisplayreal(uintaa)//顯示實際溫度{ P0=0x00; P2=0xfb;//顯示小數(shù)點 P0=0X80; delayo(250); P0=0x00; P2=0xfe; bai=aa/1000;//顯示百位 P0=table[bai]; delayo(250); P0=0x00; P2=0xfd; shi=aa/100%10;//顯示十位 P0=table[shi]; delayo(250); P0=0x00; P2=0xfb; ge=aa/10%10;//顯示個位 P0=table[ge]; delayo(250); P0=0x00; P2=0xf7; fen=aa%10;//顯示十分位 P0=table[fen]; delayo(250);}//*****************延時子程序ms級***************************voiddelay(uinti){uintj;for(;i>0;i--)for(j=0;j<125;j++);}//**************蜂鳴器警報程序***********************voidbuzzer(uintaa,uintbb,uintcc){ if(aa>bb||aa<cc)//實際溫度超上限或低下限報警 {beep=1; //delay(10);} else beep=0;}//***********溫度控制子程序***********************voidcontrol(uintkk,yy){if(kk>yy)//實際值大于設(shè)定值 P30=0;//停頓加熱else//實際值小于設(shè)定值 P30=1;//加熱 }//**************矩陣鍵盤掃描子程序***********************uintkeyscan(){uchartemp,keynum;P1=0xff;//P1口輸出高電平P10=0;//**************掃描第一行**********************temp=P1;//讀取P1口狀態(tài)temp&=0xf0;//讀取有或無鍵按下時temp的狀態(tài)if(temp!=0xf0)//判斷是否有鍵按下{delay(10);//有鍵按下時去抖 temp=P1;//讀取P1口狀態(tài) temp&=0xf0;//讀取有無鍵按下時temp的狀態(tài) if(temp!=0xf0)//再次確認(rèn)是否有鍵按下 { temp=P1;//有鍵按下,讀P1口狀態(tài) temp&=0xf0;//取按鍵按下時的數(shù)據(jù) switch(temp)//確定鍵值 { case0xe0:keynum=0;break; case0xd0:keynum=1;break; case0xb0:keynum=2;break; case0x70:keynum=3;break; } while(temp!=0xf0)//等待按鍵釋放 { temp=P1;//按鍵未釋放讀取P1口狀態(tài) temp&=0xf0;//為while判斷提供判斷數(shù)據(jù) } }}P1=0xff;P11=0;//**************掃描第二行**********************temp=P1
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市標(biāo)準(zhǔn)租賃合同樣本
- 中外房屋租賃合同樣本
- 個人與雇主家政服務(wù)合同
- 鄉(xiāng)村振興項目裝修合同
- 不可撤銷貸款合同范文
- 三人合作房地產(chǎn)開發(fā)合同范本(版)
- 個人貨車租賃標(biāo)準(zhǔn)合同樣本
- 世界游泳錦標(biāo)賽服務(wù)合同
- 二手房購買合同樣本集錦
- LED租賃服務(wù)合同范本
- 【大學(xué)課件】機電設(shè)備管理技術(shù)概論
- (2024)甘肅省公務(wù)員考試《行測》真題及答案解析
- 醫(yī)院醫(yī)務(wù)人員醫(yī)德考評標(biāo)準(zhǔn)
- 小紅書種草營銷師(初級)認(rèn)證考試真題試題庫(含答案)
- 癲癇病人的護理(課件)
- 企業(yè)資產(chǎn)管理培訓(xùn)
- 2024年WPS計算機二級考試題庫350題(含答案)
- 2024年4月27日浙江省事業(yè)單位招聘《職業(yè)能力傾向測驗》試題
- 2024年6月浙江省高考地理試卷真題(含答案逐題解析)
- 醫(yī)院培訓(xùn)課件:《如何撰寫護理科研標(biāo)書》
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試 數(shù)學(xué) 含答案
評論
0/150
提交評論