版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
年4月19日基于單片機的恒溫箱溫度控制系統(tǒng)的設計文檔僅供參考課程設計題目:單片機恒溫箱溫度控制系統(tǒng)的設計本課程設計要求:本溫度控制系統(tǒng)為以單片機為核心,實現(xiàn)了對溫度實時監(jiān)測和控制,實現(xiàn)了控制的智能化。設計恒溫箱溫度控制系統(tǒng),配有溫度傳感器,采用DS18B20數(shù)字溫度傳感器,無需數(shù)模擬∕數(shù)字轉(zhuǎn)換,可直接與單片機進行數(shù)字傳輸,采用了PID控制技術,能夠使溫度保持在要求的一個恒定范圍內(nèi),配有鍵盤,用于輸入設定溫度;配有數(shù)碼管LED用來顯示溫度。技術參數(shù)和設計任務:1、利用單片機AT89C2051實現(xiàn)對溫度的控制,實現(xiàn)保持恒溫箱在最高溫度為110℃。2、可預置恒溫箱溫度,烘干過程恒溫控制,溫度控制誤差小于±2℃。3、預置時顯示設定溫度,恒溫時顯示實時溫度,采用PID控制算法顯示精確到0.1℃。4、溫度超出預置溫度±5℃時發(fā)出聲音報警。5、對升、降溫過程沒有線性要求。6、溫度檢測部分采用DS18B20數(shù)字溫度傳感器,無需數(shù)模擬∕數(shù)字轉(zhuǎn)換,可直接與單片機進行數(shù)字傳輸7、人機對話部分由鍵盤、顯示和報警三部分組成,實現(xiàn)對溫度的顯示、報警。一、本課程設計系統(tǒng)概述1、系統(tǒng)原理選用AT89C2051單片機為中央處理器,經(jīng)過溫度傳感器DS18B20對恒溫箱進行溫度采集,將采集到的信號傳送給單片機,在由單片機對數(shù)據(jù)進行處理控制顯示器,并比較采集溫度與設定溫度是否一致,然后驅(qū)動恒溫箱的加熱或制冷。2、系統(tǒng)總結(jié)構圖總體設計應該是全面考慮系統(tǒng)的總體目標,進行硬件初步選型,然后確定一個系統(tǒng)的草案,同時考慮軟硬件實現(xiàn)的可行性??傮w方案經(jīng)過重復推敲,確定了以美國Atmel公司推出的51系列單片機為溫度智能控制系統(tǒng)的核心,并選擇低功耗和低成本的存儲器、數(shù)碼顯示器等元件,總體方案如下圖:圖1系統(tǒng)總體框圖二、硬件各單元設計1、單片機最小系統(tǒng)電路單片機選用Atmel公司的單片機芯片AT89C2051,完全能夠滿足本系統(tǒng)中要求的采集、控制和數(shù)據(jù)處理的需要。單片機的選擇在整個系統(tǒng)設計中至關重要,該單片機與MCS-51系列單片機高度兼容、低功耗、能夠在接近零頻率下工作等諸多優(yōu)點,而廣泛應用于各類計算機系統(tǒng)、工業(yè)控制、消費類產(chǎn)品中。AT89C2051是AT89系列單片機中的一種精簡產(chǎn)品。它是將AT89C51的P0口、P2口、EA/Vpp、ALE/PROG、PSEN口線省去后,形成的一種僅20引腳的單片機,相當于早期Intel8031的最小應用系統(tǒng)。這對于一些不太復雜的控制場合,僅有一片AT89C2051就足夠了,是真正意義上的“單片機”。AT89C2051為很多規(guī)模不太大的嵌入式控制系統(tǒng)提供了一種極佳的選擇方案,使傳統(tǒng)的51系列單片機的體積、功耗大、可選模式少等諸多弱點不復存在。該型號單片機包括:(1)一個8位的微處理器(CPU)。(2)片內(nèi)有2K字節(jié)的程序存儲器(ROM)和128/256字節(jié)RAM。(3)15條可編程雙向I/O口線。(4)兩個16位定時器/計數(shù)器都能夠設置成計數(shù)方式,用以對外部事件進行計數(shù),也可設置成定時方式,并能夠根據(jù)計數(shù)或定時的結(jié)果實現(xiàn)計算機控制。(5)五個中斷源的中斷控制系統(tǒng)。(6)一個全雙工UATR(通用異步接收發(fā)送器)的串行I/0口,用于實現(xiàn)單片機之間或單片機與微機之間的串行通信。(7)片內(nèi)含模擬比較器。(8)低功耗的閑置和掉電模式。圖2最小系統(tǒng)電路AT89C2051是一個20腳的雙列直插封裝(DIP)芯片。最小系統(tǒng)電路包括晶體振蕩電路和手動復位電路,如圖2。本設計使用一片AT89C2051就代替了原來的8031、EPROM2732和地址鎖存器74LS373,因為AT89C2051內(nèi)部的2KBEPROM和128B的RAM,對智能化溫度傳感器測試系統(tǒng)已能滿足設計要求,而且降低了成本,結(jié)構設計也較精巧。2、溫度傳感器采用數(shù)字溫度傳感器DS18B20,與傳統(tǒng)的熱敏電阻相比,她能夠直接讀出被測溫度而且可根據(jù)實際要求經(jīng)過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。能夠分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,而且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也能夠向所掛接的DS18B20供電,而無需額外電源。因而使用DS18B20可使系統(tǒng)結(jié)構更趨簡單,可靠性更高,成本更低。測量溫度范圍為~55℃~+125℃。C,在一10℃~+85℃。C范圍內(nèi),精度為±0.5℃。DS1822的精度較差為±2℃?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。其引腳分布如圖3所示圖3DS18B20引腳圖(1)引腳功能如下:NC(1、2、6、7、8腳):空引腳,懸空不使用。VDD(3腳):可選電源腳,電源電壓范圍3~5.5V。DQ(4腳):數(shù)據(jù)輸入/輸出腳,漏極開路,常態(tài)下高電平。(2)DS18B20測溫原理DS18B20的測溫原理如圖4所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預置在-55℃所對應的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預置值。DS18B20在正常使用時的測溫分辨率為0.5℃,如果要更高的精度,則在對DS18B20測溫原理進行詳細分析的基礎上,采取直接讀取DS18B20內(nèi)部暫存寄存器的方法,將DS18B20的測溫分辨率提高到0.1~圖4測溫原理圖(3)DS18B20與單片機接口電路P1.3口和DSl8B20的引腳DQ連接,作為單一數(shù)據(jù)線。U2即為溫度傳感芯片DSl8B20,本設計雖然只使用了一片DSl8B20,但由于不存在遠程溫度測量的考慮,因此為了簡單起見,采用外部供電的方式,如圖2.6所示。測溫電纜采用屏蔽4芯雙絞線,其中一對線接地線與信號線,另一對接VCC和地線,屏蔽層在電源源端單點接地。圖5DS18B20與單片機接口電路3、鍵盤顯示電路LED與控制器的連接有并行和串行方式。由于串行方式占用較少接口,因此得到廣泛應用。顯示電路中選用MAX7219作為LED驅(qū)動芯片。MAX7219是一個高集成化的串行輸入/輸出的共陰極LED驅(qū)動顯示器。每片可驅(qū)動8位7段加小數(shù)點的共陰極數(shù)碼管。片內(nèi)包括BCD譯碼器、多路掃描控制器、字和位驅(qū)動器和8×8靜態(tài)RAM。外部只需要一個電阻設置所有LED顯示器字段電流。MAX7219和控制器只需要三根導線連接,每位顯示數(shù)字有一個地址由控制器寫入。允許使用者選擇每位是BCD譯碼或不譯碼。使用者還能夠選擇停機模式、數(shù)字亮度控制、從1~8位選擇掃描位數(shù)和對所有LED顯示器的測試模式。(1)引腳功能MAX7219是24引腳芯片,它的引腳排列如圖2.7所示。各引腳功能如下:1)DIN(1腳):串行數(shù)據(jù)輸入端,當CLK為上升沿時數(shù)據(jù)被載入16位內(nèi)部移位寄存器。2)CLK(13腳):串行時鐘脈沖輸入端,最大工作頻率可達10MHz。3)LOAD(12腳):片選端,當LOAD為低電平時,芯片接收來自DIN的數(shù)據(jù),接收完畢,LOAD回到高電平,接收的數(shù)據(jù)將被鎖定。4)DIG0~DIG7(2、3、5、6、7、8、10、11腳):吸收顯示器共陰極電流的位驅(qū)動線,最大值可達500mA。圖6MAX7219引腳圖5)SEGA~SEGG、SEGDP(14、15、16、17、20、21、22、23腳):驅(qū)動顯示器7段及小數(shù)點的輸出電流,一般為40mA,可編程調(diào)整。6)ISET(18腳):硬件亮度調(diào)節(jié)端。7)DOUT(24腳):串行數(shù)據(jù)輸出端;V+,正電源。8)GND(9腳):接地。(2)MAX7219與單片機和LED及鍵盤的接口電路1)MAX7219的3個輸入端DIN、CLK和LOAD與單片機的三個I/O口連接,DIG0~DIG7分別與八個共陰極LED的公共端連接,SEGA~SEGG、SEGDP分別與每個LED七段動和小數(shù)點驅(qū)動端相連。電路圖如圖7所示。2)鍵盤功能介紹采用獨立式按鍵設計,如圖上圖所示。由于只有四個按鍵,因此按鍵接口電路的設計比較簡單,單片機P1.4~P1.7端口設定為輸入狀態(tài),平時經(jīng)過電阻上拉到Vcc,按鍵按下時,對應的端口的電平被拉到低電平。這樣就能夠經(jīng)過查詢P1的高4位來判斷有門有按鍵按下按鍵各接一根輸入線,一根輸入線的按鍵工作狀態(tài)不會影響其它輸入線上的工作狀態(tài)。經(jīng)過讀I/O口,判斷各I/O口的電平狀態(tài),即可識別出按下的按鍵。4個按鍵定如下:A、P1.4:S1功能鍵,按此鍵則開始鍵盤控制。B、P1.5:S2加,按此鍵則溫度設定加1度。C、P1.6:S3減,按此鍵則溫度設定減1度。D、P1.7:S4發(fā)送,按此鍵將傳感器的溫度傳送到上位機。圖7MAX7219與單片機和LED及鍵盤的接口電路4、驅(qū)動控制電路(1)熱電制冷介紹熱電制冷原理:半導體熱電偶由N型半導體和P型半導體組成。當電流的極性如圖8所示時,電子從電源負極出發(fā),經(jīng)連接片、P型半導體、連接片、N型半導體,最后回到電源正極。N型材料有多余的電子,有負溫差電勢。P型材料電子不足,有溫差電勢;當電子從P型穿過結(jié)點至N型時,其能量必然增加,而且增加的能量相當于結(jié)點所消耗的能量。這一點可用溫差降低來證明。相反,當電子從N型流至P型材料時,結(jié)點的溫度就會升高。直接接觸的熱電偶電路在實際的引用中不可用,因此用圖8的連接方式來代替,實驗證明,在溫差電路中引入銅連接片和導線,不會改變電路的特性。簡單地說當一塊N型半導體材料和一塊P型半導體材料聯(lián)結(jié)成電偶對時,在這個電路中接通直流電流后,就能產(chǎn)生能量的轉(zhuǎn)移,電流由N型元件流向P型元件的接頭吸收能量,成為冷端;由P型元件流向N型元件的接頭釋放熱量,成為熱端。吸收和放熱的大小是經(jīng)過電流的大小以及半導體材料N、P的元件對數(shù)來決定。圖8半導體制冷原理圖(2)驅(qū)動控制電路光耦合雙向可控硅驅(qū)動器是一種單片機輸出與雙向可控硅之間較理想的接口器件,它由入和輸出兩部分組成,輸入部分為砷化鎵發(fā)光二極管,該二極管在5mA~15mA正向電流作用下發(fā)出足夠強度的紅外光,觸發(fā)輸出部分。連接電路如圖9所示。輸出部分為硅光敏雙向可控硅,在紅外線作用下可雙向?qū)?。光電耦合器是以光為媒介傳輸電信號的一種“電-光-電”轉(zhuǎn)換器件。它由發(fā)光源和受光器兩部分組成。把發(fā)光源和受光器組裝在同一殼體內(nèi),彼此間用透明絕緣體隔離。發(fā)光源的引腳為輸入部分,受光器的引腳為輸出端,常見的發(fā)光源為發(fā)光二極管,受光器為光敏二極管、光敏三極管等。在光電耦合器輸入端加電信號使發(fā)光源發(fā)光,光的強度取決于激勵電流的大小,此光照射到封裝在一起的受光器上后,因光電效應而產(chǎn)生了光電流,由受光器輸出端引出,這樣就實現(xiàn)了“電-光-電”轉(zhuǎn)換。在光電耦合器的內(nèi)部,由于發(fā)光管和受光器之間的耦合電容很小,使用共模輸入電壓經(jīng)過極間耦合電容對輸出電流的影響很小,因而共模抑制比很高。在發(fā)光二極管上提供一個偏置電流,再把信號電壓經(jīng)過電阻耦合到發(fā)光二極管上,這樣光電晶體管接收到的是在偏置電流上增、減變化的光信號,其輸出電流將隨輸入的信號電壓作線性變化。光電耦合器也可工作在開關狀態(tài),傳輸脈沖信號。在傳輸脈沖信號是,輸入信號和輸出信號之間存在一定的延時,不同結(jié)構的光電耦合器輸入、輸出延時時間相差很大。圖9加熱降溫驅(qū)動控制電路5、看門狗和上位機通信電路(1)串口通信功能實現(xiàn)在實際的工作中,計算機的CPU與外部設備之間常常要進行信息交換,一臺計算機與其它計算機之間也往往要交換信息,所有這些信息交換均可稱為通信。串行通信是指:數(shù)據(jù)是一位一位按順序傳送的通信方式。它的突出優(yōu)點是只需一對傳輸線(利用電話線就能夠作為傳輸線),這樣就大大降低了成本,特別適用與遠距離通信;其缺點是傳送速度低。(2)MAX232與單片機接口電路設計圖10為MAX232與單片機接口電路;經(jīng)過它能夠把單片機和計算機連接起來,實現(xiàn)遠程通訊功能。(3)看門狗與電源監(jiān)控芯片介紹由于工業(yè)現(xiàn)場對控制系統(tǒng)可能造成很強的干擾,為保證控制器在任何干擾條件下都能正常工作,就必須對單片機的運行進行監(jiān)控,避免死機、程序跑飛或進入死循環(huán)。采用看門狗電路則能夠大大提高整個系統(tǒng)的抗干擾能力態(tài)。本系統(tǒng)選用MAX813L,該芯片能夠監(jiān)控電源電壓、電池故障和微控制器的工作狀態(tài)。MAX813L引腳功能如下:1)MR(1腳):手動復位輸入,低電平有效。2)PRI(4腳)、PFO(5腳):分別為電源故障輸入和電源故障輸出。3)WDI(6腳)、WDO(8腳):分別為看門狗輸入和看門狗輸出。4)RESET(7腳):復位輸出。MAX813L芯片主要特點:1)復位輸出:系統(tǒng)上電、掉電以及供電電壓降低時,第7腳產(chǎn)生復位脈沖,復位脈沖寬度的典型值為200ms,高電平有效,復位門限值為4.65V。2)看門狗電路輸出:如果在1.6s內(nèi)沒有觸發(fā)該電路,則第8腳輸出一個低電平信號。3)手動復位輸入:低電平有效,即第1腳輸入一個低電平,則地7腳產(chǎn)生復位輸出。4)第4腳輸入電壓為1.25V時,第5腳輸出一個低電平信號。(5)MAX813L與單片機的連接MAX813L的典型應用電路如圖10所示,在軟件設計中,P3.7不斷的輸出脈沖信號。如果因某種原因進入死循環(huán),則P3.7無脈沖輸出,于是1.6s后在MAX813L的第8腳輸出低電平。該低電平加到1腳,使MAX813L產(chǎn)生復位輸出,使單片機有效復位,擺脫死循環(huán)。另外,當電源電壓低于限制值4.65V時,MAX813L也會產(chǎn)生復位輸出,使單片機處于復位狀態(tài),不執(zhí)行任何指令,知道電壓電壓恢復正常,以有效防止因電源電壓較低使單片機產(chǎn)生錯誤的動作。圖10MAX232與單片機接口電路6、電源電路圖11電源電路電源電路雖然簡單,但需要功能可靠,要有CBB電容和高品質(zhì)的ELNA電容做退藕,,設計所用的電源都是直流電源+5V,所用采用三端集成穩(wěn)壓器7805,能夠方便的實現(xiàn)此功能,電路如圖11所示7、PID控制算法(1)PID的數(shù)學模型PID控制是一種比較成熟的控制理論,它經(jīng)過比例、積分、微分三部分的合理組合能夠用比較簡單的方法獲得令人滿意的控制效果。PID的數(shù)學模型如圖12表示:圖12PID數(shù)學模型給定值R(t)與實際值Y(t)構成控制誤差:E(t)=R(t)-Y(t)式2-1PID控制器根據(jù)E(t)將誤差的比例(P)、積分(I)、和微分(D)經(jīng)過線性組合構成控制量,對受控對象進行控制,其控制規(guī)律如式2所示:U(t)=KP[e(t)+]式2-2U(t)——控制器輸出函數(shù);E(t)——控制器誤差函數(shù);KP——比例系數(shù);Ti——積分時間常數(shù);Td——微分時間常數(shù)。一個最簡單的控制器能夠只有比例部分,它能夠產(chǎn)生與輸入信號成比例的輸出信號,因此誤差一旦產(chǎn)生,控制器立即就有控制作用,使被控制量朝著減小誤差的方向變化,控制作用的強弱取決于比例系數(shù)KP。比例控制的缺點是不能在設置點和反饋點之間產(chǎn)生零誤差(靜差),為了產(chǎn)生有限的輸出信號,必須保持這種靜差。加大KP能夠減小靜差,可是KP過大會導致動態(tài)性能變壞,甚至會使閉環(huán)系統(tǒng)不穩(wěn)定。為了消除這種靜差,能夠引入積分控制環(huán)節(jié),積分環(huán)節(jié)能對誤差進行記憶并積分,即使只存在很小的偏差,也能夠?qū)⑵浞e分后作用于操作部分,有利于消除靜差。可是積分作用具有滯后特性,它總是滯后于偏差的存在,這樣會使系統(tǒng)易于振蕩,結(jié)果往往超調(diào),使被控變量波動很大。積分控制常見于補償高精度的控制系統(tǒng)。微分控制能對誤差進行微分,敏感出誤差的變化趨勢,將預期的動作作用于操作部分,增大微分控制作用能夠加快系統(tǒng)的響應,使超調(diào)量減小,增加系統(tǒng)的穩(wěn)定性。缺點是微分控制對干擾同樣敏感,使系統(tǒng)抑制干擾的能力降低。微分控制可用于補償快速變化的控制系統(tǒng)。(2)PID控制規(guī)律的離散化為了用計算機實現(xiàn)PID控制,必須將式表示PID控制規(guī)律的連續(xù)形式變成離散形式,才能經(jīng)過編程實現(xiàn)。若設溫度采樣周期為T,第n次采樣得到的輸入偏差為en,輸出為Un。微分用差分代替式2-3積分用求和代替式2-4這樣PID控制器控制算法的離散形式改寫為式2-5這種算法的缺點是,由于是全量輸出,因此每次輸出均與過去的狀態(tài)有關,計算時要對E(n)進行累加,因此計算機工作量大。而且,因為計算機輸出的U(n)對應的是執(zhí)行機構的實際位置,如果計算機出現(xiàn)故障,u(n)的大幅度變化會引起執(zhí)行機構位置的大幅度變化,這種情況往往是生產(chǎn)實踐中不允許的,在某些場合,可能造成重大的生產(chǎn)事故,因此產(chǎn)生了增量式PID控制的控制算法。所謂增量式PID控制算法是指數(shù)字控制器的輸出只是控制量的增量U(n)。當執(zhí)行機構需要的是控制量的增量時,可由式導出提供增量的PID控制算法。根據(jù)遞推規(guī)律得:式2-6用式2-5減去式2-6可得:式2-7改寫成:=式2-8事實證明,對于PID這樣簡單的控制器,能夠適用于廣泛的工業(yè)和民用對象,并以其很高的性價比在市場中占主導地分反映了PID控制,但在工業(yè)控制過程中經(jīng)常會碰到大滯位,充后、時變的、非線性的復雜系統(tǒng),其中有的是非線性系統(tǒng);有的帶有延時和隨機干擾;有的無法獲得較準確的數(shù)學模型或者模型非常粗燥。對于以上這些系統(tǒng),如果采用常規(guī)的PID控制器,則難以整定PID參數(shù),因此比較難以達到預期的控制效果。同時,在實際生產(chǎn)現(xiàn)場,由于受到參數(shù)整定方法繁雜的困擾,常規(guī)PID控制器參數(shù)往往整定不良、性能欠佳,對運行工礦的適用性很差。三、軟件設計1、溫度傳感器DS18B20模塊軟件設計DS18B20上電后處于空閑狀態(tài),需要控制器發(fā)能完成溫度轉(zhuǎn)換。DS18B20的單線通訊功能是分時完成的,具有嚴格的時序要求,而AT89C2051單片機并不支持單線傳輸,必須采用軟件的方法來模擬單線的協(xié)議時序。DS18B20的操作必須嚴格按照協(xié)議進行。工作協(xié)議流程為:主機發(fā)復位脈沖初始化DS18B20→DS18B20發(fā)響應脈沖→主機發(fā)ROM操作指令→主機發(fā)存儲器操作指令→數(shù)據(jù)傳輸。對DS18B20操作時,首先要將它復位。復位時,DQ線被拉為低電平,時間為480~960us;接著將數(shù)據(jù)線拉為高電平,時間為15~60us;最后DS18B20發(fā)出60~240us的低電平作為應答信號,這時主機才能進行讀寫操作。進行寫操作時,將數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生寫起始信號。從DQ線的下降沿起計時,在15us到60us這段時間內(nèi)對數(shù)據(jù)線進行檢測,如數(shù)據(jù)線為高電平則寫1;若為低電平,則寫0,完成了一個寫周期。在開始另一個寫周期前,必須有1us以上的高電平恢復期。每個寫周期必須要進行寫操作時,將數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生寫起始信號。從DQ線的下降沿起計時,在15us到60us這段時間內(nèi)對數(shù)據(jù)線進行檢測,如數(shù)據(jù)線為高電平則寫1;若為低電平,則寫0,完成了一個寫周期。在開始另一個寫周期前,必須有1us以上的高電平恢復期。每個寫周期必須要有60us以上的持續(xù)期。讀操作時,主機將數(shù)據(jù)線從高電平拉至低電平1us以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀起始信號。從主機將數(shù)據(jù)線從高電平拉至低電平起15us至60us,主機讀取數(shù)據(jù)。每個讀周期最短的持續(xù)期為60us,周期之間必須有1us以上的高電平恢復期。溫度轉(zhuǎn)換讀取溫度數(shù)值程序流程如圖13所示圖13溫度轉(zhuǎn)換讀取溫度數(shù)值程序流程2、顯示程序設計MAX7219上電時,譯碼方式、亮度調(diào)節(jié)、掃描位數(shù)、待機開關和顯示檢測5個控制寄存器全部清零。對于MAX7219,串行數(shù)據(jù)以16位數(shù)據(jù)包的形式從DIN腳串行輸入,在CLK的每一個上升沿一位一位的送入芯片內(nèi)部16位移位寄存器,而不論LOAD腳的狀態(tài)如何。LOAD腳必須在第16個上升沿出現(xiàn)的同時或之后,但在下一個CLK上升沿之前變?yōu)楦唠娖?,否則移入的數(shù)據(jù)將丟失。3、鍵盤程序設計在按鍵的軟件設計時考慮了按鍵去抖動技術問題。因為按鍵的無操作抖動很可能影響單片機對按鍵的判斷,因此必須考慮去抖動問題。鍵盤的程序流程圖如圖14圖14鍵盤的程序流程4、PID控制程序設計由式2-8能夠改寫成:P(K)=P(K-1)+KP[E(K)-E(K-1)]+KI·E(K)+KD[E(K)-2E(K-1)+E(K-2)]=P(K-1)+PP+PI+PD式3-1根據(jù)式3-1編程,相應的程序框圖如圖15所示:圖15PID算法程序流程圖5、主程序流程圖及程序設計(1)系統(tǒng)主程序流程圖如圖16所示。有了各個功能塊的軟件實現(xiàn)方法,軟件的總體設計就變得簡單了,軟件設計中一個重要的思想就是采用模塊化設計,把一個大的任務分解成若干個小任務,分別編制實現(xiàn)這些小任務的子程序,然后將子程序按照總體要求組裝起來,就能夠?qū)崿F(xiàn)這個大任務了。這種思路對于可重復使用的子程序顯得尤為優(yōu)越,因為不但程序結(jié)構清晰,而節(jié)約程序存儲空間。圖16主程序流程圖(2)主程序設計#include“AT89C2051.h”#include<intrins.h>sbitTSOR=P1^7;//溫度測試端sbitDIN=P1^2;//MAX7219串行數(shù)據(jù)輸入sbitLOAD=P1^1;//MAX7219裝載數(shù)據(jù)輸入sbitLCK=P1^0;//MAX7219時鐘輸入sbitSCL=P3^2;//AT24C32信號線sbitSDA=P3^3;//AT24C32數(shù)據(jù)線sbitOUT0=P3^4;//控制制冷光耦sbitOUT1=P3^5;//控制加熱光耦sbitweidog=P3^7;//看門狗/*************************全局變量********************************/#defineucharunsignedchau;#defineuintunsigneduint;uchartemp1,temp2;//溫度的整數(shù)和小數(shù)ucharsetb,sets,setg,setx;//預設定溫度的百、十、個位和小數(shù)位ucharxianb,xians,xiang,xianx;//顯示溫度的百、十、個位和小數(shù)位ucharadd_1,add_10;//ucharcount;//T0中斷計數(shù)ucharpid;//PID數(shù)值bitoutflag;//升溫降溫標志位bitalert;/*************************函數(shù)聲明*********************************/voidInitInterupt();/**************************鍵盤掃描*********************************/ucharkey();/*********************MAX7219子程序*********************************/voidsend(ucharadd,dat)/*******************溫度傳感器子程序********************************/voidDelay15();//延時15usvoidDelay60();//延時60usvoidDelay100ms();//延時100msvoidWrite0TS();//寫DS18B20數(shù)據(jù)位0voidWrite1TS();//寫DS18B20數(shù)據(jù)位1voidReadTS();//讀DS18B20數(shù)據(jù)位voidResetTS();//復位DS18B20voidWriteBTS();//寫1字節(jié)voidReadBTS();//讀1字節(jié)voidInitTS();//初始化DS18B20voidGetTempTS();//讀取測得的溫度/************************比較程序********************************/Voidcompare();/************************主程序************************************/voidmain(){uchari,j;ucharaa;//PID值sp=0x50;TSOR=1;//1—wire總線釋放Delay(500);//延時500msInitInterupt();//初始化中斷設置setb=Ox00;sets=Ox02;setg=Ox03setx=Ox05;//預設值23.5count=0;P1=0xff;InitTS();//初始化DS18B20send(Ox0c;Ox01);//設定停機方式send(Ox0b;Ox07);//掃描7位send(Ox0a;Oxf5);//亮度等級send(Ox09;Oxff);//譯碼方式while(1){GetTempTS();//讀取測得的溫度i=temp1;if(i>=0‖i<=100){xianb=i/100;j=i%100;xians=j/10;xiang=j%10︱Ox80;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);//顯示預設定的溫度}elsealert=1;警告voidkey();//調(diào)按鍵掃描voidcompare();//調(diào)比較程序if(outflag==1){pid=_a_func();//調(diào)PID算法for(i=0;i<8,i++)//將PID算法值送到輸出口{j=aa&Ox01;OUT0=j;//啟動壓縮機工作aa=aa>>1;i++;}}elseif(outflag==-1){pid=_a_func();for(i=0;i<8,i++)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力保安工作總結(jié)
- 2025年全球及中國交流造水機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國IO-Link信號塔行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國吸收式工業(yè)消聲器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球低聚半乳糖粉末行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球雙通道聽力計行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國冰淇淋服務用品行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球汽車水泵機械密封行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球CT 掃描計量行業(yè)調(diào)研及趨勢分析報告
- 2025合同模板建設工程施工合同(港口)范本
- (二模)遵義市2025屆高三年級第二次適應性考試試卷 地理試卷(含答案)
- 二零二五隱名股東合作協(xié)議書及公司股權代持及回購協(xié)議
- IQC培訓課件教學課件
- 2025年計算機二級WPS考試題目
- 高管績效考核全案
- 2024年上海市中考英語試題和答案
- 教育部《中小學校園食品安全和膳食經(jīng)費管理工作指引》知識培訓
- 長沙醫(yī)學院《無機化學》2021-2022學年第一學期期末試卷
- eras婦科腫瘤圍手術期管理指南解讀
- GB/T 750-2024水泥壓蒸安定性試驗方法
- 初一到初三英語單詞表2182個帶音標打印版
評論
0/150
提交評論