基于單片機(jī)的恒溫箱溫度控制系統(tǒng)的設(shè)計_第1頁
基于單片機(jī)的恒溫箱溫度控制系統(tǒng)的設(shè)計_第2頁
基于單片機(jī)的恒溫箱溫度控制系統(tǒng)的設(shè)計_第3頁
基于單片機(jī)的恒溫箱溫度控制系統(tǒng)的設(shè)計_第4頁
基于單片機(jī)的恒溫箱溫度控制系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計題目:單片機(jī)恒溫箱溫度控制系統(tǒng)的設(shè)計本課程設(shè)計要求:本溫度控制系統(tǒng)為以單片機(jī)為核心,實現(xiàn)了對溫度實時監(jiān)測和控制,實現(xiàn)了控制的智能化。設(shè)計恒溫箱溫度控制系統(tǒng),配有溫度傳感器,采用DS18B20數(shù)字溫度傳感器,無需數(shù)模擬數(shù)字轉(zhuǎn)換,可直接與單片機(jī)進(jìn)行數(shù)字傳輸,采用了PID控制技術(shù),可以使溫度保持在要求的一個恒定范圍內(nèi),配有鍵盤,用于輸入設(shè)定溫度;配有數(shù)碼管LED用來顯示溫度。技術(shù)參數(shù)和設(shè)計任務(wù):1、利用單片機(jī)AT89C2051實現(xiàn)對溫度的控制,實現(xiàn)保持恒溫箱在最高溫度為110。2、可預(yù)置恒溫箱溫度,烘干過程恒溫控制,溫度控制誤差小于±2。3、預(yù)置時顯示設(shè)定溫度,恒溫時顯示實時溫度,

2、采用PID控制算法顯示精確到0.1。4、溫度超出預(yù)置溫度±5時發(fā)出聲音報警。5、對升、降溫過程沒有線性要求。6、溫度檢測部分采用DS18B20數(shù)字溫度傳感器,無需數(shù)模擬數(shù)字轉(zhuǎn)換,可直接與單片機(jī)進(jìn)行數(shù)字傳輸7、人機(jī)對話部分由鍵盤、顯示和報警三部分組成,實現(xiàn)對溫度的顯示、報警。一、本課程設(shè)計系統(tǒng)概述1、系統(tǒng)原理選用AT89C2051單片機(jī)為中央處理器,通過溫度傳感器DS18B20對恒溫箱進(jìn)行溫度采集,將采集到的信號傳送給單片機(jī),在由單片機(jī)對數(shù)據(jù)進(jìn)行處理控制顯示器,并比較采集溫度與設(shè)定溫度是否一致,然后驅(qū)動恒溫箱的加熱或制冷。2、系統(tǒng)總結(jié)構(gòu)圖總體設(shè)計應(yīng)該是全面考慮系統(tǒng)的總體目標(biāo),進(jìn)行硬件初

3、步選型,然后確定一個系統(tǒng)的草案,同時考慮軟硬件實現(xiàn)的可行性??傮w方案經(jīng)過反復(fù)推敲,確定了以美國Atmel公司推出的51系列單片機(jī)為溫度智能控制系統(tǒng)的核心,并選擇低功耗和低成本的存儲器、數(shù)碼顯示器等元件,總體方案如下圖:圖1系統(tǒng)總體框圖二、硬件各單元設(shè)計1、單片機(jī)最小系統(tǒng)電路單片機(jī)選用Atmel公司的單片機(jī)芯片AT89C2051 ,完全可以滿足本系統(tǒng)中要求的采集、控制和數(shù)據(jù)處理的需要。單片機(jī)的選擇在整個系統(tǒng)設(shè)計中至關(guān)重要,該單片機(jī)與MCS-51系列單片機(jī)高度兼容、低功耗、可以在接近零頻率下工作等諸多優(yōu)點,而廣泛應(yīng)用于各類計算機(jī)系統(tǒng)、工業(yè)控制、消費(fèi)類產(chǎn)品中。AT89C2051是AT89系列單片機(jī)中

4、的一種精簡產(chǎn)品。它是將AT89C51的P0口、P2口、EA/Vpp、ALE/PROG、PSEN口線省去后,形成的一種僅20引腳的單片機(jī),相當(dāng)于早期Intel8031的最小應(yīng)用系統(tǒng)。這對于一些不太復(fù)雜的控制場合,僅有一片AT89C2051就足夠了,是真正意義上的“單片機(jī)”。AT89C2051為很多規(guī)模不太大的嵌入式控制系統(tǒng)提供了一種極佳的選擇方案,使傳統(tǒng)的51系列單片機(jī)的體積、功耗大、可選模式少等諸多弱點不復(fù)存在。該型號單片機(jī)包括: (1)一個8位的微處理器(CPU)。(2)片內(nèi)有2K字節(jié)的程序存儲器(ROM)和128/256字節(jié)RAM。(3)15條可編程雙向I/O口線。(4)兩個16位定時器/

5、計數(shù)器都可以設(shè)置成計數(shù)方式,用以對外部事件進(jìn)行計數(shù),也可設(shè)置成定時方式,并可以根據(jù)計數(shù)或定時的結(jié)果實現(xiàn)計算機(jī)控制。(5)五個中斷源的中斷控制系統(tǒng)。(6)一個全雙工UATR(通用異步接收發(fā)送器)的串行I/0口,用于實現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信。(7)片內(nèi)含模擬比較器。(8)低功耗的閑置和掉電模式。圖2 最小系統(tǒng)電路AT89C2051是一個20腳的雙列直插封裝(DIP)芯片。最小系統(tǒng)電路包括晶體振蕩電路和手動復(fù)位電路,如圖2。本設(shè)計使用一片AT89C2051就代替了原來的8031、EPROM2732和地址鎖存器74LS373,因為AT89C2051內(nèi)部的2KB EPROM和128B的

6、RAM,對智能化溫度傳感器測試系統(tǒng)已能滿足設(shè)計要求,而且降低了成本,結(jié)構(gòu)設(shè)計也較精巧。2、溫度傳感器采用數(shù)字溫度傳感器DS18B20,與傳統(tǒng)的熱敏電阻相比, 他能夠直接讀出被測溫度并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式??梢苑謩e在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量, 并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線( 單線接口) 讀寫, 溫度變換功率來源于數(shù)據(jù)總線, 總線本身也可以向所掛接的DS18B20供電, 而無需額外電源。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高,成本更低。測量溫度范圍為55+125。C,在一10

7、+85。C范圍內(nèi),精度為±0.5。DS1822的精度較差為±2。現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。其引腳分布如圖3所示圖3 DS18B20引腳圖(1) 引腳功能如下:NC(1 、2 、6 、7 、8腳) :空引腳,懸空不使用。VDD(3腳):可選電源腳,電源電壓范圍35.5V。DQ(4腳):數(shù)據(jù)輸入/輸出腳,漏極開路,常態(tài)下高電平。(2) DS18B20測溫原理DS18B20的測溫原理如圖4所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)

8、器2的脈沖輸入。計數(shù)器1和溫度寄存器被預(yù)置在-55所對應(yīng)的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到計數(shù)器2 計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預(yù)置值。DS18B20在正常使用時的測溫分辨率為0.5,如果要更高的精度,則在對DS18B20測溫原理進(jìn)行詳細(xì)分析的基礎(chǔ)上,采取直接讀取DS18B20內(nèi)部暫存寄存器的方法,將DS18

9、B20的測溫分辨率提高到0.10.01。圖4 測溫原理圖(3) DS18B20與單片機(jī)接口電路P1.3口和DSl8B20的引腳DQ連接,作為單一數(shù)據(jù)線。U2即為溫度傳感芯片DSl8B20,本設(shè)計雖然只使用了一片DSl8B20 ,但由于不存在遠(yuǎn)程溫度測量的考慮,所以為了簡單起見,采用外部供電的方式,如圖2.6所示。測溫電纜采用屏蔽4芯雙絞線,其中一對線接地線與信號線,另一對接VCC和地線,屏蔽層在電源源端單點接地。圖5 DS18B20與單片機(jī)接口電路3、 鍵盤顯示電路LED與控制器的連接有并行和串行方式。由于串行方式占用較少接口,因此得到廣泛應(yīng)用。顯示電路中選用MAX7219作為LED驅(qū)動芯片。

10、MAX7219是一個高集成化的串行輸入/輸出的共陰極LED驅(qū)動顯示器。每片可驅(qū)動8位7段加小數(shù)點的共陰極數(shù)碼管。片內(nèi)包括BCD譯碼器、多路掃描控制器、字和位驅(qū)動器和8×8靜態(tài)RAM。外部只需要一個電阻設(shè)置所有LED顯示器字段電流。MAX7219和控制器只需要三根導(dǎo)線連接,每位顯示數(shù)字有一個地址由控制器寫入。允許使用者選擇每位是BCD譯碼或不譯碼。使用者還可以選擇停機(jī)模式、數(shù)字亮度控制、從18位選擇掃描位數(shù)和對所有LED顯示器的測試模式。(1) 引腳功能 MAX7219是24引腳芯片,它的引腳排列如圖2.7所示。各引腳功能如下:1) DIN(1腳):串行數(shù)據(jù)輸入端,當(dāng)CLK為上升沿時數(shù)

11、據(jù)被載入16位內(nèi)部移位寄存器。2) CLK(13腳):串行時鐘脈沖輸入端,最大工作頻率可達(dá)10MHz。3) LOAD(12腳):片選端,當(dāng)LOAD為低電平時,芯片接收來自DIN的數(shù)據(jù),接收完畢,LOAD回到高電平,接收的數(shù)據(jù)將被鎖定。4) DIG0DIG7(2、3、5、6、7、8、10、11腳):吸收顯示器共陰極電流的位驅(qū)動線,最大值可達(dá)500mA。圖6 MAX7219引腳圖5) SEGASEGG、SEGDP(14、15、16、17、20、21、22、23腳):驅(qū)動顯示器7段及小數(shù)點的輸出電流,一般為40mA,可編程調(diào)整。6) ISET(18腳):硬件亮度調(diào)節(jié)端。7) DOUT(24腳):串行

12、數(shù)據(jù)輸出端;V,正電源。8) GND(9腳):接地。(2)MAX7219與單片機(jī)和LED及鍵盤的接口電路1) MAX7219的3個輸入端DIN、CLK和LOAD與單片機(jī)的三個I/O口連接,DIG0DIG7分別與八個共陰極LED的公共端連接,SEGASEGG、SEGDP分別與每個LED七段動和小數(shù)點驅(qū)動端相連。電路圖如圖7所示。2)鍵盤功能介紹 采用獨立式按鍵設(shè)計,如圖上圖所示。 由于只有四個按鍵,因此按鍵接口電路的設(shè)計比較簡單,單片機(jī)P1.4P1.7端口設(shè)定為輸入狀態(tài),平時通過電阻上拉到Vcc,按鍵按下時,對應(yīng)的端口的電平被拉到低電平。這樣就可以通過查詢P1的高4位來判斷有門有按鍵按下按鍵各接

13、一根輸入線,一根輸入線的按鍵工作狀態(tài)不會影響其他輸入線上的工作狀態(tài)。通過讀I/O口,判斷各I/O口的電平狀態(tài),即可識別出按下的按鍵。4個按鍵定如下:A、P1.4:S1功能鍵,按此鍵則開始鍵盤控制。B、P1.5:S2加,按此鍵則溫度設(shè)定加1度。C、P1.6:S3減,按此鍵則溫度設(shè)定減1度。D、P1.7:S4發(fā)送,按此鍵將傳感器的溫度傳送到上位機(jī)。圖7 MAX7219與單片機(jī)和LED及鍵盤的接口電路4、 驅(qū)動控制電路(1) 熱電制冷介紹熱電制冷原理:半導(dǎo)體熱電偶由N型半導(dǎo)體和P型半導(dǎo)體組成。當(dāng)電流的極性如圖8所示時,電子從電源負(fù)極出發(fā),經(jīng)連接片、P型半導(dǎo)體、連接片、N型半導(dǎo)體,最后回到電源正極。N

14、型材料有多余的電子,有負(fù)溫差電勢。P型材料電子不足,有溫差電勢;當(dāng)電子從P型穿過結(jié)點至N型時,其能量必然增加,而且增加的能量相當(dāng)于結(jié)點所消耗的能量。這一點可用溫差降低來證明。相反,當(dāng)電子從N型流至P型材料時,結(jié)點的溫度就會升高。直接接觸的熱電偶電路在實際的引用中不可用,所以用圖8的連接方式來代替,實驗證明,在溫差電路中引入銅連接片和導(dǎo)線,不會改變電路的特性。簡單地說當(dāng)一塊N型半導(dǎo)體材料和一塊P型半導(dǎo)體材料聯(lián)結(jié)成電偶對時,在這個電路中接通直流電流后,就能產(chǎn)生能量的轉(zhuǎn)移,電流由N型元件流向P型元件的接頭吸收能量,成為冷端;由P型元件流向N型元件的接頭釋放熱量,成為熱端。吸收和放熱的大小是通過電流的

15、大小以及半導(dǎo)體材料N、P的元件對數(shù)來決定。圖8 半導(dǎo)體制冷原理圖 (2) 驅(qū)動控制電路光耦合雙向可控硅驅(qū)動器是一種單片機(jī)輸出與雙向可控硅之間較理想的接口器件,它由入和輸出兩部分組成,輸入部分為砷化鎵發(fā)光二極管,該二極管在5mA15mA正向電流作用下發(fā)出足夠強(qiáng)度的紅外光,觸發(fā)輸出部分。連接電路如圖9所示。輸出部分為硅光敏雙向可控硅,在紅外線作用下可雙向?qū)?。光電耦合器是以光為媒介傳輸電信號的一種“電-光-電”轉(zhuǎn)換器件。它由發(fā)光源和受光器兩部分組成。把發(fā)光源和受光器組裝在同一殼體內(nèi),彼此間用透明絕緣體隔離。發(fā)光源的引腳為輸入部分,受光器的引腳為輸出端,常見的發(fā)光源為發(fā)光二極管,受光器為光敏二極管、

16、光敏三極管等。在光電耦合器輸入端加電信號使發(fā)光源發(fā)光,光的強(qiáng)度取決于激勵電流的大小,此光照射到封裝在一起的受光器上后,因光電效應(yīng)而產(chǎn)生了光電流,由受光器輸出端引出,這樣就實現(xiàn)了“電-光-電”轉(zhuǎn)換。在光電耦合器的內(nèi)部,由于發(fā)光管和受光器之間的耦合電容很小,使用共模輸入電壓通過極間耦合電容對輸出電流的影響很小,因而共模抑制比很高。在發(fā)光二極管上提供一個偏置電流,再把信號電壓通過電阻耦合到發(fā)光二極管上,這樣光電晶體管接收到的是在偏置電流上增、減變化的光信號,其輸出電流將隨輸入的信號電壓作線性變化。光電耦合器也可工作在開關(guān)狀態(tài),傳輸脈沖信號。在傳輸脈沖信號是,輸入信號和輸出信號之間存在一定的延時,不同

17、結(jié)構(gòu)的光電耦合器輸入、輸出延時時間相差很大。圖9 加熱降溫驅(qū)動控制電路5、看門狗和上位機(jī)通信電路(1) 串口通信功能實現(xiàn)在實際的工作中,計算機(jī)的CPU與外部設(shè)備之間常常要進(jìn)行信息交換,一臺計算機(jī)與其他計算機(jī)之間也往往要交換信息,所有這些信息交換均可稱為通信。串行通信是指:數(shù)據(jù)是一位一位按順序傳送的通信方式。它的突出優(yōu)點是只需一對傳輸線(利用電話線就可以作為傳輸線),這樣就大大降低了成本,特別適用與遠(yuǎn)距離通信;其缺點是傳送速度低。(2)MAX232與單片機(jī)接口電路設(shè)計 圖10為MAX232與單片機(jī)接口電路;通過它可以把單片機(jī)和計算機(jī)連接起來,實現(xiàn)遠(yuǎn)程通訊功能。(3)看門狗與電源監(jiān)控芯片介紹由于工

18、業(yè)現(xiàn)場對控制系統(tǒng)可能造成很強(qiáng)的干擾,為保證控制器在任何干擾條件下都能正常工作,就必須對單片機(jī)的運(yùn)行進(jìn)行監(jiān)控,避免死機(jī)、程序跑飛或進(jìn)入死循環(huán)。采用看門狗電路則可以大大提高整個系統(tǒng)的抗干擾能力態(tài)。本系統(tǒng)選用MAX813L,該芯片能夠監(jiān)控電源電壓、電池故障和微控制器的工作狀態(tài)。MAX813L引腳功能如下:1)MR(1腳):手動復(fù)位輸入,低電平有效。2)PRI(4腳) 、PFO(5腳):分別為電源故障輸入和電源故障輸出。3)WDI(6腳)、WDO(8腳):分別為看門狗輸入和看門狗輸出。4)RESET(7腳):復(fù)位輸出。 MAX813L芯片主要特點:1)復(fù)位輸出:系統(tǒng)上電、掉電以及供電電壓降低時,第7腳

19、產(chǎn)生復(fù)位脈沖,復(fù)位脈沖寬度的典型值為200ms,高電平有效,復(fù)位門限值為4.65V。2)看門狗電路輸出:如果在1.6s內(nèi)沒有觸發(fā)該電路,則第8腳輸出一個低電平信號。3)手動復(fù)位輸入:低電平有效,即第1腳輸入一個低電平,則地7腳產(chǎn)生復(fù)位輸出。4)第4腳輸入電壓為1.25V時,第5腳輸出一個低電平信號。(5) MAX813L與單片機(jī)的連接MAX813L的典型應(yīng)用電路如圖10所示,在軟件設(shè)計中,P3.7不斷的輸出脈沖信號。如果因某種原因進(jìn)入死循環(huán),則P3.7無脈沖輸出,于是1.6s后在MAX813L的第8腳輸出低電平。該低電平加到1腳,使MAX813L產(chǎn)生復(fù)位輸出,使單片機(jī)有效復(fù)位,擺脫死循環(huán)。另外

20、,當(dāng)電源電壓低于限制值4.65V時,MAX813L也會產(chǎn)生復(fù)位輸出,使單片機(jī)處于復(fù)位狀態(tài),不執(zhí)行任何指令,知道電壓電壓恢復(fù)正常,以有效防止因電源電壓較低使單片機(jī)產(chǎn)生錯誤的動作。圖10 MAX232與單片機(jī)接口電路6、電源電路圖11 電源電路 電源電路雖然簡單,但需要功能可靠,要有CBB電容和高品質(zhì)的ELNA電容做退藕,設(shè)計所用的電源都是直流電源+5V,所用采用三端集成穩(wěn)壓器7805,可以方便的實現(xiàn)此功能,電路如圖11所示7、PID控制算法(1) PID的數(shù)學(xué)模型PID控制是一種比較成熟的控制理論,它通過比例、積分、微分三部分的合理組合可以用比較簡單的方法獲得令人滿意的控制效果。PID的數(shù)學(xué)模型

21、如圖12表示:圖12 PID數(shù)學(xué)模型給定值R(t)與實際值Y(t)構(gòu)成控制誤差: E(t)=R(t)-Y(t) 式2-1PID控制器根據(jù)E(t)將誤差的比例(P)、積分(I)、和微分(D)通過線性組合構(gòu)成控制量,對受控對象進(jìn)行控制,其控制規(guī)律如式2所示:U(t)=KPe(t)+ 式2-2U(t)控制器輸出函數(shù);E(t)控制器誤差函數(shù);KP比例系數(shù);Ti積分時間常數(shù);Td微分時間常數(shù)。一個最簡單的控制器可以只有比例部分,它能夠產(chǎn)生與輸入信號成比例的輸出信號,所以誤差一旦產(chǎn)生,控制器立即就有控制作用,使被控制量朝著減小誤差的方向變化,控制作用的強(qiáng)弱取決于比例系數(shù)KP。比例控制的缺點是不能在設(shè)置點和

22、反饋點之間產(chǎn)生零誤差(靜差),為了產(chǎn)生有限的輸出信號,必須保持這種靜差。加大KP可以減小靜差,但是KP過大會導(dǎo)致動態(tài)性能變壞,甚至?xí)归]環(huán)系統(tǒng)不穩(wěn)定。為了消除這種靜差,可以引入積分控制環(huán)節(jié),積分環(huán)節(jié)能對誤差進(jìn)行記憶并積分,即使只存在很小的偏差,也可以將其積分后作用于操作部分,有利于消除靜差。但是積分作用具有滯后特性,它總是滯后于偏差的存在,這樣會使系統(tǒng)易于振蕩,結(jié)果往往超調(diào),使被控變量波動很大。積分控制常用于補(bǔ)償高精度的控制系統(tǒng)。微分控制能對誤差進(jìn)行微分,敏感出誤差的變化趨勢,將預(yù)期的動作作用于操作部分,增大微分控制作用可以加快系統(tǒng)的響應(yīng),使超調(diào)量減小,增加系統(tǒng)的穩(wěn)定性。缺點是微分控制對干擾同

23、樣敏感,使系統(tǒng)抑制干擾的能力降低。微分控制可用于補(bǔ)償快速變化的控制系統(tǒng)。(2) PID控制規(guī)律的離散化為了用計算機(jī)實現(xiàn)PID控制,必須將式表示PID控制規(guī)律的連續(xù)形式變成離散形式,才能通過編程實現(xiàn)。若設(shè)溫度采樣周期為T,第n次采樣得到的輸入偏差為en,輸出為Un。微分用差分代替 式2-3積分用求和代替 式2-4 這樣PID控制器控制算法的離散形式改寫為 式2-5這種算法的缺點是,由于是全量輸出,所以每次輸出均與過去的狀態(tài)有關(guān),計算時要對E(n)進(jìn)行累加,所以計算機(jī)工作量大。而且,因為計算機(jī)輸出的U(n)對應(yīng)的是執(zhí)行機(jī)構(gòu)的實際位置,如果計算機(jī)出現(xiàn)故障,u(n)的大幅度變化會引起執(zhí)行機(jī)構(gòu)位置的大幅

24、度變化,這種情況往往是生產(chǎn)實踐中不允許的,在某些場合,可能造成重大的生產(chǎn)事故,因此產(chǎn)生了增量式PID控制的控制算法。所謂增量式PID控制算法是指數(shù)字控制器的輸出只是控制量的增量U(n)。當(dāng)執(zhí)行機(jī)構(gòu)需要的是控制量的增量時,可由式導(dǎo)出提供增量的PID控制算法。根據(jù)遞推規(guī)律得: 式2-6用式2-5減去式2-6可得: 式2-7改寫成: = 式2-8事實證明,對于PID這樣簡單的控制器,能夠適用于廣泛的工業(yè)和民用對象,并以其很高的性價比在市場中占主導(dǎo)地分反映了PID控制,但在工業(yè)控制過程中經(jīng)常會碰到大滯位,充后、時變的、非線性的復(fù)雜系統(tǒng),其中有的是非線性系統(tǒng);有的帶有延時和隨機(jī)干擾;有的無法獲得較準(zhǔn)確的

25、數(shù)學(xué)模型或者模型非常粗燥。對于以上這些系統(tǒng),如果采用常規(guī)的PID控制器,則難以整定PID參數(shù),因此比較難以達(dá)到預(yù)期的控制效果。同時,在實際生產(chǎn)現(xiàn)場,由于受到參數(shù)整定方法繁雜的困擾,常規(guī)PID控制器參數(shù)往往整定不良、性能欠佳,對運(yùn)行工礦的適用性很差。三、軟件設(shè)計1、溫度傳感器DS18B20模塊軟件設(shè)計 DS18B20上電后處于空閑狀態(tài),需要控制器發(fā)能完成溫度轉(zhuǎn)換。DS18B20的單線通訊功能是分時完成的,具有嚴(yán)格的時序要求,而AT89C2051單片機(jī)并不支持單線傳輸,必須采用軟件的方法來模擬單線的協(xié)議時序。DS18B20的操作必須嚴(yán)格按照協(xié)議進(jìn)行。工作協(xié)議流程為:主機(jī)發(fā)復(fù)位脈沖初始化DS18B2

26、0DS18B20發(fā)響應(yīng)脈沖主機(jī)發(fā)ROM操作指令主機(jī)發(fā)存儲器操作指令數(shù)據(jù)傳輸。對DS18B20操作時,首先要將它復(fù)位。復(fù)位時,DQ線被拉為低電平,時間為480960us;接著將數(shù)據(jù)線拉為高電平,時間為1560us;最后DS18B20發(fā)出60240us的低電平作為應(yīng)答信號,這時主機(jī)才能進(jìn)行讀寫操作。進(jìn)行寫操作時,將數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生寫起始信號。從DQ線的下降沿起計時,在15us到60us這段時間內(nèi)對數(shù)據(jù)線進(jìn)行檢測,如數(shù)據(jù)線為高電平則寫1;若為低電平,則寫0,完成了一個寫周期。在開始另一個寫周期前,必須有1us以上的高電平恢復(fù)期。每個寫周期必須要進(jìn)行寫操作時,將數(shù)據(jù)線從高電平拉至低電平,

27、產(chǎn)生寫起始信號。從DQ線的下降沿起計時,在15us到60us這段時間內(nèi)對數(shù)據(jù)線進(jìn)行檢測,如數(shù)據(jù)線為高電平則寫1;若為低電平,則寫0,完成了一個寫周期。在開始另一個寫周期前,必須有1us以上的高電平恢復(fù)期。每個寫周期必須要有60us以上的持續(xù)期。讀操作時,主機(jī)將數(shù)據(jù)線從高電平拉至低電平1us以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀起始信號。從主機(jī)將數(shù)據(jù)線從高電平拉至低電平起15us至60us,主機(jī)讀取數(shù)據(jù)。每個讀周期最短的持續(xù)期為60us,周期之間必須有1us以上的高電平恢復(fù)期。溫度轉(zhuǎn)換讀取溫度數(shù)值程序流程如圖13所示圖13 溫度轉(zhuǎn)換讀取溫度數(shù)值程序流程2、顯示程序設(shè)計MAX7219上電時,譯碼方

28、式、亮度調(diào)節(jié)、掃描位數(shù)、待機(jī)開關(guān)和顯示檢測5個控制寄存器全部清零。對于MAX7219,串行數(shù)據(jù)以16位數(shù)據(jù)包的形式從DIN腳串行輸入,在CLK的每一個上升沿一位一位的送入芯片內(nèi)部16位移位寄存器,而不管LOAD腳的狀態(tài)如何。LOAD腳必須在第16個上升沿出現(xiàn)的同時或之后,但在下一個CLK上升沿之前變?yōu)楦唠娖剑駝t移入的數(shù)據(jù)將丟失。3、鍵盤程序設(shè)計在按鍵的軟件設(shè)計時考慮了按鍵去抖動技術(shù)問題。因為按鍵的無操作抖動很可能影響單片機(jī)對按鍵的判斷,因此必須考慮去抖動問題。鍵盤的程序流程圖如圖14圖14 鍵盤的程序流程4、PID控制程序設(shè)計由式2-8可以改寫成:P(K)=P(K-1)+KPE(K)-E(K

29、-1)+KI·E(K)+KDE(K)-2E(K-1)+E(K-2) =P(K-1)+PP+PI+PD 式3-1根據(jù)式3-1編程,相應(yīng)的程序框圖如圖15所示:圖15 PID算法程序流程圖5、主程序流程圖及程序設(shè)計(1)系統(tǒng)主程序流程圖如圖16所示。有了各個功能塊的軟件實現(xiàn)方法,軟件的總體設(shè)計就變得簡單了,軟件設(shè)計中一個重要的思想就是采用模塊化設(shè)計,把一個大的任務(wù)分解成若干個小任務(wù),分別編制實現(xiàn)這些小任務(wù)的子程序,然后將子程序按照總體要求組裝起來,就可以實現(xiàn)這個大任務(wù)了。這種思路對于可重復(fù)使用的子程序顯得尤為優(yōu)越,因為不僅程序結(jié)構(gòu)清晰,而節(jié)約程序存儲空間。圖16 主程序流程圖(2)主程序

30、設(shè)計#include “AT89C2051.h”#include <intrins.h>sbit TSOR=P17; /溫度測試端sbit DIN=P12; /MAX7219串行數(shù)據(jù)輸入sbit LOAD=P11; /MAX7219裝載數(shù)據(jù)輸入sbit LCK=P10; /MAX7219時鐘輸入sbit SCL=P32; /AT24C32信號線sbit SDA=P33; / AT24C32數(shù)據(jù)線sbit OUT0=P34; /控制制冷光耦sbit OUT1=P35; /控制加熱光耦sbit weidog=P37; /看門狗/* 全 局 變 量 */#define uchar uns

31、igned chau;#define uint unsigned uint;uchar temp1,temp2; /溫度的整數(shù)和小數(shù)uchar setb,sets,setg,setx;/預(yù)設(shè)定溫度的百、十、個位和小數(shù)位uchar xianb,xians,xiang,xianx;/顯示溫度的百、十、個位和小數(shù)位uchar add_1,add_10;/ uchar count; /T0中斷計數(shù)uchar pid; /PID數(shù)值bit outflag;/升溫降溫標(biāo)志位bit alert;/* 函 數(shù) 聲 明 */void Init Interupt ();/*鍵 盤 掃 描 */uchar key

32、(); /* MAX7219子程序 */void send(uchar add, dat)/* 溫度傳感器子程序 */void Delay15(); /延時15usvoid Delay60(); /延時60usvoid Delay100ms(); /延時100msvoid Write0TS(); /寫DS18B20數(shù)據(jù)位0void Write1TS(); /寫DS18B20數(shù)據(jù)位1void ReadTS(); /讀DS18B20數(shù)據(jù)位void ResetTS(); /復(fù)位DS18B20void WriteBTS(); / 寫1字節(jié)void ReadBTS(); /讀1字節(jié)void InitTS

33、(); / 初始化DS18B20void GetTempTS(); / 讀取測得的溫度/* 比 較 程 序 */Void compare();/*主 程 序 */void main() uchar i,j; uchar aa;/ PID值sp=0x50;TSOR=1;/ 1wire總線釋放Delay(500);/ 延時500msInitInterupt();/ 初始化中斷設(shè)置setb=Ox00;sets=Ox02;setg=Ox03setx=Ox05; /預(yù)設(shè)值23.5°Ccount=0;P1=0xff;InitTS();/初始化DS18B20 send(Ox0c;Ox01);/設(shè)定

34、停機(jī)方式 send(Ox0b;Ox07);/掃描7位 send(Ox0a;Oxf5);/亮度等級 send(Ox09;Oxff);/譯碼方式 while(1) GetTempTS();/讀取測得的溫度 i=temp1; if(i>=0i<=100) xianb=i/100;j=i%100;xians=j/10;xiang=j%10Ox80;xinx=temp2;send(Ox01;xianb);/ send(Ox02;xians);/ send(Ox03;xiang);/ send(Ox04;xianx);/顯示測得的溫度 send(Ox05;setb);/ send(Ox06;sets);/ Send(Ox07;setg);/ send(Ox08;setx);/顯示預(yù)設(shè)定的溫度 else alert=1;警告 void key(); /調(diào)按鍵掃描 void compare(); /調(diào)比較程序 if(outflag=1) pid=_a_func(); /調(diào)PID算法fo

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論