




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
武漢理工大學(xué)《計算機控制技術(shù)》課程設(shè)計說明書PAGEPAGE41摘要《計算機控制技術(shù)》主要研究如何將計算機技術(shù)和自動控制理論應(yīng)用于工業(yè)生產(chǎn)過程,并設(shè)計出所需要的計算機控制系統(tǒng),是自動化專業(yè)的主干專業(yè)課程。《生物培養(yǎng)液微機溫度控制系統(tǒng)的設(shè)計》涉及到傳感與檢測技術(shù)、A/D轉(zhuǎn)換技術(shù)、自動控制技術(shù)、單片機的編程和應(yīng)用等知識。本文詳細(xì)地介紹了基于單片機AT89C51和溫度傳感器LM35的溫度控制系統(tǒng)的設(shè)計方案與軟硬件實現(xiàn)方案。系統(tǒng)采用數(shù)字溫度傳感器LM35采集溫度信號裝化為模擬信號電壓信號,經(jīng)過ADC0808A/D轉(zhuǎn)換成單片機可識別的數(shù)字電壓信號,數(shù)碼管顯示溫度測量值與設(shè)定值。當(dāng)溫度低于設(shè)定值時,單片機控制繼電器啟動加熱電阻絲加熱,當(dāng)溫度高于設(shè)定值時,單片機控制繼電器啟動風(fēng)扇制冷,從而實現(xiàn)了控制溫度的目的。關(guān)鍵字:單片機、A/D轉(zhuǎn)換、溫度控制傳感器、LED生物培養(yǎng)液微機溫度控制系統(tǒng)1設(shè)計要求1.1初始條件設(shè)計一個生物培養(yǎng)液微型計算機溫度控制系統(tǒng),系統(tǒng)為一階慣性純滯后特性,溫度在1525℃范圍內(nèi)連續(xù)可控,溫度控制精度為0.5℃1.2要求完成的主要任務(wù)1.輸入通道及輸出通道設(shè)計(溫度傳感器,A/D轉(zhuǎn)換,PWM輸出控制和溫度調(diào)節(jié)驅(qū)動電路);2.鍵盤(溫度設(shè)置)與LED(溫度顯示)接口設(shè)計;3.采用改進PID控制算法;4.系統(tǒng)軟件流程及各程序模塊設(shè)計;5.完成符合要求的設(shè)計說明書2總體設(shè)計方案及框圖2.1系統(tǒng)設(shè)計方案論證實現(xiàn)溫度控制的方法主要有以下幾種。方案一:采用純硬件的閉環(huán)控制系統(tǒng)。該系統(tǒng)的優(yōu)點在于速度較快,但可靠性比較差控制精度比較低、靈活性小、線路復(fù)雜、調(diào)試、安裝都不方便。且要實現(xiàn)題目所有的要求難度較大。方案二:單片機與高精度溫度傳感器結(jié)合的方式。即用單片機完成人機界面,系統(tǒng)控制,信號分析處理,由前端溫度傳感器完成信號的采集與轉(zhuǎn)換。這種方案克服了方案一的缺點,所以本設(shè)計方案是基于該方案。2.2系統(tǒng)結(jié)構(gòu)框圖該生物培養(yǎng)液微型計算機溫度控制系統(tǒng)由以下幾個部分組成:溫度檢測電路,信號放大電路,A/D轉(zhuǎn)換電路,加熱控制電路,降溫電路,報警電路,鍵盤(溫度設(shè)置)模塊和LED(溫度顯示)模塊,單片機判斷輸入溫度信號與設(shè)定的溫度的差距,再通過改進的PID算法給以調(diào)節(jié)。放大器用來放大LM35的輸出模擬信號,ADC0808是用來把采集到的模擬電壓信號轉(zhuǎn)換成單片機可以識別的數(shù)字信號。高阻抗加熱絲和風(fēng)扇(電機)是該溫度控制系統(tǒng)的溫度調(diào)節(jié)部分,當(dāng)采集溫度不符合要求時,則通過計算機判斷后進行調(diào)節(jié)。風(fēng)扇用來降溫,高阻抗加熱絲用來加溫。顯示部分則用來顯示生物培養(yǎng)液的當(dāng)前溫度以及在設(shè)定時顯示設(shè)置的溫度值。溫度檢測電路采用溫度傳感器LM35來采集培養(yǎng)液的溫度。通過以上的幾個部分的組合,則組成了一個生物培養(yǎng)液微機溫度控制系統(tǒng)。生物培養(yǎng)液微型計算機溫度控制系統(tǒng)的結(jié)構(gòu)圖如下圖2-1所示。溫度顯示電路報警電路溫度設(shè)置電路C51單片機風(fēng)扇降溫控制電路高阻抗加熱絲升溫控制電路A/D轉(zhuǎn)換電路信號放大電路傳感檢測電路生物培養(yǎng)液溫度顯示電路報警電路溫度設(shè)置電路C51單片機風(fēng)扇降溫控制電路高阻抗加熱絲升溫控制電路A/D轉(zhuǎn)換電路信號放大電路傳感檢測電路生物培養(yǎng)液圖2-1生物培養(yǎng)液微機溫度控制系統(tǒng)結(jié)構(gòu)圖3硬件設(shè)計3.1單片機選擇單片機的選擇在整個系統(tǒng)設(shè)計中至關(guān)重要,要滿足大內(nèi)存、高速率、通用性、價格便宜等要求,本課題選擇AT89C51最為主控芯片。AT89C51是一種帶4K字節(jié)FLASHC存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C51芯片具有以下特性:·與MCS-51兼容·4K字節(jié)可編程FLASH存儲器·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保留時間:10年·全靜態(tài)工作:0Hz-24MHz·三級程序存儲器鎖定·128×8位內(nèi)部RAM·32可編程I/O線·兩個16位定時器/計數(shù)器·5個中斷源·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時鐘電路AT89C51芯片管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(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口輸出地址的高八位。在給出地址“1P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89CRST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(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;/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。AT89C51單片機引腳圖如圖3-1所示圖3-1AT89C51引腳圖3.2溫度檢測電路溫度檢測電路包括溫度傳感器、由放大器和電阻組成的信號放大電路。選用的溫度傳感器型號為LM35,LM35是由NationalSemiconductor所生產(chǎn)的溫度感測器,其輸出電壓與攝氏溫標(biāo)呈線性關(guān)系,轉(zhuǎn)換公式如式(3-1),0°C時輸出為0V,每升高1°C,輸出電壓增加10mV。Vout-LM35(T)=10mv/°C×T°C(3-1)LM35有多種不同封裝型式,外觀如圖2所示。在常溫下,LM35不需要額外的校準(zhǔn)處理即可達(dá)到±°1/4C的準(zhǔn)確率。其電源供應(yīng)模式有單電源與正負(fù)雙電源兩種,其引腳如圖3所示,正負(fù)雙電源的供電模式可提供負(fù)溫度的量測;兩種接法的靜默電流-溫度關(guān)係如圖4所示,單電源模式在25°C下靜默電流約50μA,非常省電。圖3-2LM35封裝及引腳排列圖3-3單電源模式圖3-4雙電源模式由課程設(shè)計要求溫度在1525℃范圍內(nèi)連續(xù)可控。因此,只需要單電源模式即可滿足要求。又由于,LM35輸出的電壓太小,因此將輸出用同相放大器放大十倍,參數(shù)設(shè)置根據(jù)公式Uo=Ui*(1+R2/R3)(3-2)可以確定電阻的參數(shù),其電路圖如下圖3-5所示。圖3-5溫度傳感模塊電路3.3A/D轉(zhuǎn)換電路由于LM35溫度傳感器輸出的是模擬量的溫度電壓值,單片機無法直接識別,因此需要對采集到的電壓信號進行A/D轉(zhuǎn)換,將其轉(zhuǎn)化為單片機能識別的數(shù)字量。本設(shè)計采用ADC0808A/D轉(zhuǎn)換器,下面介紹ADC0808的特性。3.3.1ADC0808(1)8路8位A/D轉(zhuǎn)換器,即分辨率8位。(2)具有轉(zhuǎn)換起停控制端。(3)轉(zhuǎn)換時間為100μs(4)單個+5V電源供電(5)模擬輸入電壓范圍0~+5V,不需零點和滿刻度校準(zhǔn)。(6)工作溫度范圍為-40~+85攝氏度(7)低功耗,約15mW。3.3.2ADC0808ADC0809是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖13.22所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型D/A轉(zhuǎn)換器、逐次逼近。3.外部特性(引腳功能)ADC0808芯片有28條引腳,采用雙列直插式封裝,如圖13.23所示。下面說明各引腳功能。IN0~IN7:8路模擬量輸入端。2-1~2-8:8位數(shù)字量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路。與ADC0809不同的是,ADC0808的out8為最低位out1為最高位,out8-out1分別接單片機的P0.0到P0.7端。圖3-6ADC0808通道選擇ALE:地址鎖存允許信號,輸入,高電平有效。START:A/D轉(zhuǎn)換啟動信號,輸入,高電平有效。EOC:A/D轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。REF(+)、REF(-):基準(zhǔn)電壓。Vcc:電源,單一+5V。GND:地。ADC0808的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)OE輸入高電平時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。圖3-7ADC0808內(nèi)部結(jié)構(gòu)框圖圖3-8ADC0808外部引腳圖本系統(tǒng)中ADC0809的轉(zhuǎn)化電路如下圖3-9圖3-9ADC0809轉(zhuǎn)換電路接線圖3.4加熱控制電路在讀取到從溫度傳感模塊采集到的溫度數(shù)值后,與事先設(shè)定好的溫度值進行比較,若當(dāng)前檢測得的溫度比設(shè)定的溫度低,則需要對培養(yǎng)液進行加熱處理。本系統(tǒng)利用高阻抗的電阻絲來對培養(yǎng)液加熱。如下圖10所示,在檢測到溫度比設(shè)定的溫度低時,P3.0管腳輸出高電平,從而NPN管道通,驅(qū)動繼電器啟動,從而高阻抗加熱電阻絲導(dǎo)通加熱生物培養(yǎng)液。利用改進的PID算法來計算PWM脈寬得出控制輸出。從而根據(jù)檢測到的溫度而自動調(diào)節(jié)繼電器導(dǎo)通時間,從而實現(xiàn)實際溫度低于設(shè)定時加熱的功能。繼電器是具有隔離功能的自動開關(guān),廣泛用于遙控,遙測,通信,自動控制,機電一體化及電力電子設(shè)備中,是最重要的控制元件之一。繼電器是在自動控制電路中起控制與隔離作用的執(zhí)行部件,它實際上是一種可以用低電壓、小電流來控制大電流、高電壓的自動開關(guān)。在本系統(tǒng)中,繼電器控制的自動溫度調(diào)節(jié)電路和AT89C51單片機中程序構(gòu)成溫度自動監(jiān)測電路,實現(xiàn)對生物培養(yǎng)液溫度的監(jiān)測和自動控制。圖3-10培養(yǎng)液電阻絲加熱電路3.5降溫控制電路若當(dāng)前檢測得的溫度比設(shè)定的溫度高,則需要對培養(yǎng)液進行降溫處理。本系統(tǒng)利用風(fēng)扇來對培養(yǎng)液進行降溫。實際使用中也是同電阻絲加熱模塊一樣,采用繼電器,在滿足制冷條件下繼電器接通,接通制冷電源,利用改進的PID算法來計算PWM脈寬得出控制輸出,從而達(dá)到根據(jù)檢測到的溫度而自動調(diào)節(jié)繼電器導(dǎo)通時間在滿足制冷條件下繼電器接通,電風(fēng)扇的電機接通電源而轉(zhuǎn)動制冷。也是利用改進的PID算法來計算PWM脈寬得出控制輸出。從而達(dá)到根據(jù)檢測到的溫度而自動調(diào)節(jié)風(fēng)扇的轉(zhuǎn)速。圖3-11培養(yǎng)液降溫電路3.6LED溫度顯示電路由于任務(wù)書要求使用LED顯示溫度,而且溫度在1525℃范圍內(nèi)連續(xù)可控,溫度控制精度為0.5℃。因此,本系統(tǒng)采用了四位共陽極的LED七段數(shù)碼管。如圖10所示為4位7段數(shù)碼管的原理圖。由于所有的段選線并聯(lián)到同一個I/O,由這個I/O口來控制,因此,若是所有的4位8段LED都選通的話,4位8段LED將會顯示相同的字符。要使各個位的8段LED顯示不同的字符,就必須采用動態(tài)掃描方法來輪流點亮每一位8段LED,即在每一瞬間只選通一位8段LED進行顯示單獨的字符。在此段點亮?xí)r間內(nèi),段選控制I/O口輸出要顯示的相應(yīng)字符的段選碼,而位選控制I/O口則輸出位選信號,向要顯示的位送出選通電平(共陰極則送出低電平,共陽極則送出高電平),使得該位顯示相應(yīng)字符。這樣將四位8段LED輪流去點亮,使得每位分時顯示該位應(yīng)顯示的字符。由于人眼的視覺暫留時間為0.1秒,當(dāng)每位顯示的間隔未超過33ms時,并在顯示時保持直到下一位顯示,則由于人眼的視覺暫留效果眼睛看上去就像是4位8段LED都在點亮。設(shè)計時,要注意每位顯示的間隔時間,由于一位8段LED的熄滅時間不能超過100ms,也就是說點亮其它位所用的時間不能超過100ms,這樣當(dāng)有N位的8段LED用來顯示時,每一位間隔的時間t就必須符合下面的式子:t≦100ms/(N-1),本系統(tǒng)中N=4,則由式子可以算出t≦33ms,就是每一位的間隔時間不能超過33ms,本系統(tǒng)延時圖3-12LED的動態(tài)顯示原理圖圖3-13LED溫度顯示模塊電路在進行顯示編程時,首先選定需要顯示的位數(shù),然后向段選位送數(shù)據(jù)。即可顯示。由于單片機可以直接驅(qū)動LED顯示管,因此不需外加驅(qū)動電路了,在LED的段選線上應(yīng)加上上拉電阻,且由于是共陽極LED故上拉電阻1引腳接高電平。3.7溫度設(shè)置電路本系統(tǒng)共有四個按鍵式鍵盤,分別是設(shè)置、溫度的十位、溫度的個位、清零,設(shè)置連P3.3,十位連P3.5,個位連P3.6,清零連P3.7。設(shè)置溫度時,將設(shè)置按鍵按下使之不彈起,在按十位、個位、清零進行設(shè)置。圖3-14溫度設(shè)置電路3.8報警電路如果培養(yǎng)液里的溫度過高或者是過低了,超出了其允許的某個溫度范圍,則系統(tǒng)會自動報警,提醒用戶,可以讓用戶采取更為快速和有效地措施來避免或是減少損失。報警電路圖下圖15所示。當(dāng)微機判斷當(dāng)前溫度值超出范圍時,將P3.3管腳置低電平,利用非門來驅(qū)動喇叭報警。圖3-15報警電路電路圖3.9系統(tǒng)總體原理圖系統(tǒng)整體原理圖如圖3-16所示。圖3-16系統(tǒng)總體原理圖4.軟件設(shè)計4.1總體流程分析與設(shè)計軟件設(shè)計基于硬件設(shè)計連接,由上面對于硬件的分析說明和設(shè)計,對整個程序流程需要有一個整體的思考和規(guī)劃。程序需要實現(xiàn)以下幾個功能:三位LED顯示溫度傳感器的當(dāng)前溫度,可以通過按鍵設(shè)定所需要的溫度,當(dāng)溫度超過15~25攝氏度的時候報警,以及通過自動控制加熱、制冷模塊控制溫度。程序主要思想是通過單片機將ADC0808輸入模擬量轉(zhuǎn)化成數(shù)字量之后與設(shè)定溫度進行比較,通過PID算法調(diào)節(jié)脈沖寬度即占空比來控制加熱與制冷,完成溫度控制。主程序流程圖如圖4-1所示。開始開始報警程序Y加熱指示燈亮>設(shè)定的溫度值?>=設(shè)定的溫度值?溫度超出?控制量輸出調(diào)用PID數(shù)據(jù)處理程序降溫指示燈亮單片機系統(tǒng)初始化有鍵按下?溫度采樣與A/D轉(zhuǎn)換調(diào)用LED顯示N報警程序Y加熱指示燈亮>設(shè)定的溫度值?>=設(shè)定的溫度值?溫度超出?控制量輸出調(diào)用PID數(shù)據(jù)處理程序降溫指示燈亮單片機系統(tǒng)初始化有鍵按下?溫度采樣與A/D轉(zhuǎn)換調(diào)用LED顯示NYNYN圖圖4-1主程序流程圖對于代碼段如下://主程序voidmain(){uinti=0;Init_INT();heat=0;cold=0;while(1){led_red=!led_red;ST=0;ST=1;ST=0;//啟動轉(zhuǎn)換while(EOC==0);//等待轉(zhuǎn)換結(jié)果OE=1;//允許輸出ad=P1*250/128;//顯示A/D轉(zhuǎn)換結(jié)果。線性度0.1,T=(P1/128)*255/0.1再乘以10放大以便取出小數(shù)位。OE=0;//關(guān)閉輸出m1=ad/100%10;m2=ad/10%10;m3=ad%10;display(m1,m2,m3); pwm=PIDcalc(PID,ad,key_ad);//調(diào)用PID算法計算pwm占空比 //pwm=1500; if(pwm>=0) //pwm控制制熱 { for(i=0;i<2000;i++) { if(i<pwm)heat=1; elseheat=0; } } elseif(pwm<0) //pwm控制制冷 { pwm=-pwm; for(i=0;i<2000;i++) { if(i<pwm)cold=1; elsecold=0; } } if(ad>250||ad<150)beep=0; elsebeep=1;}}4.2PID控制算法分析與設(shè)計采用典型的反饋式溫度控制系統(tǒng),組成部分見下圖4-1。其中數(shù)字控制器的功能由單片機實現(xiàn)。圖4-2控制系統(tǒng)框圖已知培養(yǎng)皿的傳遞函數(shù)為設(shè),其中τ1為電阻加熱的時間常數(shù),為電阻加熱的純滯后時間,為采樣周期。A/D轉(zhuǎn)換器可劃歸為零階保持器內(nèi),所以廣義對象的傳遞函數(shù)為(4-1)廣義對象的Z傳遞函數(shù)為(4-2)所以系統(tǒng)的閉環(huán)Z傳遞函數(shù)為:(4-3)系統(tǒng)的數(shù)字控制器為:=(4-4)寫成差分方程即為:(4-5)令,,則有(4-6)式中——第次采樣時的偏差;——第次采樣時的偏差;——第次采樣時的偏差;本生物培養(yǎng)液溫控系統(tǒng)采用的數(shù)字PID算法由軟件實現(xiàn),增量PID控制算法的優(yōu)點是編程簡單,數(shù)據(jù)可以遞推使用,占用存儲空間少,運算快。但是對于溫度這種響應(yīng)緩慢、滯后性大的過程,不能用標(biāo)準(zhǔn)的PID算法進行控制。當(dāng)擾動較大或者給定的溫度值大幅度變化時,由于產(chǎn)生較大的偏差,加上溫控本身的慣性及滯后,在積分作用下,系統(tǒng)往往產(chǎn)生較大的超調(diào)和長時間的振蕩。因此,為克服這種不良的影響,采用積分分離法對增量PID算法進行改進。當(dāng)偏差e(k)絕對值較大時,暫時取消積分作用;當(dāng)偏差e(k)絕對值小于某一設(shè)定值M時,才將積分作用投入。(1)當(dāng)|e(k)|<M時,用PlD控制。偏差小,說明系統(tǒng)溫度已經(jīng)接近設(shè)定值,此時加入了積分作用,可以消除系統(tǒng)靜差,保證系統(tǒng)的控制精度。根據(jù)遞增原理可得:式中:e(K)=r(K)一y(K)為第K時刻所得偏差信號,其中r(K)是給定值,y(K)是實際輸出值;
(4-7)其中kp為比例增益;ki為積分系數(shù);kd為微分系數(shù)。則增量式PID控制算法為:(4-8)(2)當(dāng)|e(k)|≥M時,用PD控制。由于偏差大,說明系統(tǒng)溫度遠(yuǎn)離設(shè)定值,應(yīng)快速降溫,采用PD控制,可以提高系統(tǒng)的動態(tài)響應(yīng)速度,避免產(chǎn)生過大的超調(diào),減小動態(tài)誤差。對應(yīng)程序段如下:floatPIDcalc(float*PID,uintshow_ad,uintset_ad) {intPID_pwm;PID[0]=set_ad-show_ad; //偏差ErrorPID[1]+=PID[0]; //積分 iErrorPID[2]=PID[0]-PID[3];//當(dāng)前微分dErrorPID[3]=PID[4]; //prev_Error=last_errorPID[4]=PID[0]; //last_Error=ErrorPID_pwm=KP*PID[0]+KI*PID[1]+KD*PID[2];returnPID_pwm;}4.3顯示模塊流程分析與設(shè)計由硬件部分可知本系統(tǒng)選用紅色四位共陽極LED數(shù)碼管,LED有4個位選引腳讀入片選信號和8個段選引腳控制信號。用到的三個位選信號控制三位分時顯示,通過延時程序的2ms延時使每位持續(xù)亮2ms直到下一位點亮,利用人眼視覺暫留,實現(xiàn)同時顯示,將獲取的溫度的十位個位及小數(shù)位分別顯示在LED上。對應(yīng)程序段如下://數(shù)碼管顯示函數(shù)voiddisplay(ucharshi,ucharge,ucharxiao){P0=table[shi];C1=1;//十位點亮delayms(5);//延時5msC1=0;//十位熄滅P0=table[ge];dip=0;C2=1;delayms(5);C2=0;P0=table[xiao];C3=1;delayms(5);C3=0;}溫度顯示程序流程圖如圖4-3所示。開始開始延時2ms取消選擇中的數(shù)碼管讀取十位數(shù)據(jù)選擇數(shù)碼管顯示十位讀取小數(shù)位數(shù)據(jù)延時2ms取消選擇中的數(shù)碼管讀取十位數(shù)據(jù)選擇數(shù)碼管顯示十位讀取小數(shù)位數(shù)據(jù)選擇數(shù)碼管顯示小數(shù)位延時2ms取消選中的數(shù)碼管延時2ms取消選中的數(shù)碼管延時2ms取消選中的數(shù)碼管讀取個位數(shù)據(jù)選擇數(shù)碼港顯示個位延時2ms取消選中的數(shù)碼管讀取個位數(shù)據(jù)選擇數(shù)碼港顯示個位結(jié)束圖4-3數(shù)碼顯示溫度流程圖4.4按鍵模塊流程分析與設(shè)計由于本系統(tǒng)需要對溫度進行設(shè)置,且由于設(shè)置溫度范圍最高為25攝氏度,故在硬件上設(shè)計了十位與各位按鍵。設(shè)置按鍵按下進行設(shè)置,清零按鍵按下將設(shè)置的溫度重置。對應(yīng)的代碼段如下://鍵盤掃描程序uintkey_scan(void){ staticuintkey_up=1;//按鍵按松開標(biāo)志 if(key_up&&(key_shi==0||key_ge==0)) { delayms(10);//去鍵盤機械抖動 key_up=0; if(key_shi==0) { return1; } elseif(key_ge==0) { return2; } }elseif(key_shi==1&&key_ge==1)key_up=1; return0;//無按鍵按下}按鍵掃描程序流程圖如圖4-4所示。返回值為1十位按下?開始十位或者個位按鍵按下?返回值為1十位按下?開始十位或者個位按鍵按下?延遲去按鍵抖動按鍵松開標(biāo)志YYNNNY返回值為2個位按下?NNY返回值為2個位按下?按鍵松開標(biāo)志按鍵松開標(biāo)志無鍵按下返回值為0無鍵按下返回值為0圖4-4按鍵掃描程序流程圖結(jié)束圖4-4按鍵掃描程序流程圖結(jié)束5調(diào)試過程及記錄5.1調(diào)試過程采用KeiluVision4進行程序編寫,首先點擊Project新建NewuVisionProject,鍵入文件名保存后,點擊atmel選擇AT89C51。然后新建text,將程序?qū)懺趖ext內(nèi)并保存后綴為.c。然后將c文件添加進Target中的SourceGroupe中,再點擊魔術(shù)棒選擇Output選項卡,勾選Create,,HexFlie,最后保存編譯。雙擊AT89C51添加生成的HEX,即可運行仿真。傳感器溫度以手動調(diào)節(jié),設(shè)置溫度低于實際測量溫度后觀察加熱指示燈,加熱指示燈點亮。設(shè)置溫度高于實際測量溫度后觀察降溫指示燈,降溫指示燈點亮。并且LED可以顯示當(dāng)前溫度和設(shè)置溫度。超過25攝氏度或低于15攝氏度報警。起初LED顯示出現(xiàn)了亂碼,經(jīng)過檢查程序與硬件發(fā)現(xiàn)程序中寫入的是共陰極段碼表,后來改成共陽極段碼,還遇到問題是小數(shù)點不顯示,后來修改程序?qū)ip=1改為dip=0后小數(shù)點可以正常顯示,由此將前面十位個位的標(biāo)志位改為先賦值1再賦值0,修改后LED終于可以正常顯示了。起初報警電路的喇叭,并沒有連接非門,在程序中報警時將報警標(biāo)志beep置1正常時置0。結(jié)果出現(xiàn)了正常溫度范圍報警,非正常范圍不報警的錯誤。試圖修改時,將beep報警置0正常置1發(fā)現(xiàn)蜂鳴器不響。后來連接非門才解決了問題,實現(xiàn)正常報警。起初在傳感器輸出信號的放大上出現(xiàn)問題,由于沒有理解放大器的正向放大與反相放大,在電阻設(shè)置上設(shè)置了R2/R1=10。結(jié)果在用電壓表測量放大器輸出時發(fā)現(xiàn)電壓沒有準(zhǔn)確放大10倍,查閱資料后進行改正。本系統(tǒng)使用的是正向放大,故R2/R1應(yīng)為9。改正后可以準(zhǔn)確按照10倍放大傳感器輸出電壓了。5.2仿真過程加熱過程,設(shè)定溫度為20攝氏度,實際溫度為18度,加熱過程仿真圖如圖5-1所示。圖5-1加熱過程仿真圖降溫過程,設(shè)定溫度為20攝氏度,實際溫度為22攝氏度,降溫過程仿真圖如圖5-2所示。圖5-2降溫過程仿真圖實際溫度為27攝氏度,超過25攝氏度,報警過程仿真圖如圖5-3所示。圖5-3報警過程仿真電路心得體會一周時間緊張而有序的課程設(shè)計結(jié)束了,雖然此次設(shè)計的方案并不具有很高的實際應(yīng)用價值,但是它讓我了解到了溫度控制系統(tǒng)的基本重要模塊的組成。在本次課程設(shè)計中,通過查閱資料基本完成了硬件的設(shè)計,然后根據(jù)硬件電路進行軟件設(shè)計,基本實現(xiàn)了生物培養(yǎng)液微機溫度控制系統(tǒng)的功能要求。在老師的指導(dǎo)和同學(xué)們的幫助以及自己的努力下,我順利完成了這次課程設(shè)計,通過這次課程設(shè)計,使我對單片機AT89C51的應(yīng)用、計算機控制技術(shù)、傳感器技術(shù)等等專業(yè)知識有了更深刻的了解,學(xué)習(xí)到了了許多在理論學(xué)習(xí)過程中不能理解的知識,提高了自己理論聯(lián)系實際的能力,并且在實際應(yīng)用理論知識過程中發(fā)現(xiàn)了很多問題,最后通過查找資料以及同學(xué)之間相互交流解決了問題。為今后在工作中專業(yè)知識的應(yīng)用積累了寶貴的經(jīng)驗,也讓更加了解了今后在工作中解決問題的方法。那就是靜下心來,先認(rèn)真把理論知識弄清楚,原理清楚了之后在實際應(yīng)用中遇到問題也可以很快的想到解決方案。通過本次溫度監(jiān)控系統(tǒng)的設(shè)計我了解到了設(shè)計系統(tǒng)時的主要方法,這些都是寶貴的經(jīng)驗。設(shè)計時可以采取先分后總的方式來設(shè)計總電路圖。也就是說先根據(jù)功能把系統(tǒng)劃分為幾個獨立的模塊或者結(jié)構(gòu),然后再根據(jù)各個模塊之間的聯(lián)系性,把它們通過一定的關(guān)系綜合起來,就得出了一個完整的系統(tǒng)。特別是在設(shè)計大型系統(tǒng)的時候就顯得特別的重要,有幾個或者幾十個設(shè)計者來合作,為了節(jié)省時間,必須同時開始,這就得劃分模塊分工合作,最終再合起來。“先分后總”這是一種設(shè)計方式。另外在本次設(shè)計的過程中遇到了使得我重新復(fù)習(xí)了過去的知識,加深了對知識的了解。過去有些不了解的知識點經(jīng)過現(xiàn)在的復(fù)習(xí),有了更好的理解??偟膩碚f,本次課設(shè)讓我對單片機程序、單片機應(yīng)用、傳感器、放大器、A/D轉(zhuǎn)換等很多知識有更深一步的認(rèn)識。參考文獻于海生《計算機控制技術(shù)》,機械工業(yè)出版社,2007年5月劉教瑜曾勇《單片機原理及應(yīng)用》,武漢理工大學(xué)出版社,2011年4月戴卓《傳感與檢測》,武漢理工大學(xué)出版社,2003年4月陳立周陳宇《單片機原理術(shù)及應(yīng)用》,機械工業(yè)出版社,2007年1月何立民《單片機應(yīng)用系統(tǒng)設(shè)計》,北京航空航天大學(xué)出版社,,2000.年附錄#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共陽極段碼//ADC0808引腳定義sbitOE=P2^4;sbitEOC=P2^5;sbitST=P2^6;//LED引腳定義,C1左起第二個數(shù)碼管sbitC1=P2^1;sbitC2=P2^2;sbitC3=P2^3;sbitdip=P0^7;//按鍵sbitkey_shi=P3^5;sbitkey_ge=P3^6;sbitkey_clean=P3^7;sbitled_red=P2^0;//加熱、冷卻模塊sbitbeep=P3^4;sbitheat=P2^7;sbitcold=P3^1;uintKP=10; //PID系數(shù)uintKI=0.5;uintKD=3;floatPID[5]={0,0,0,0,0};//ErrordErroriErrorprev_Errorlast_Errorintpwm=0;uintad,key_ad=0;//ad采樣溫度,key_ad設(shè)定溫度ucharm1,m2,m3;//存放各個數(shù)位//延時子程序voiddelayms(uintms){uchari;while(ms--)for(i=0;i<120;i++);}//數(shù)碼管顯示函數(shù)voiddisplay(ucharshi,ucharge,ucharxiao){P0=table[shi];C1=1;delayms(2);C1=0;P0=table[ge];dip=0;C2=1;delayms(2);C2=0;P0=table[xiao];C3=1;delayms(2);C3=0;}//鍵盤掃描程序uintkey_scan(void){ staticuintkey_up=1;//按鍵按松開標(biāo)志 if(key_up&&(key_shi==0||key_ge==0)) { delayms(10);//去鍵盤機械抖動 key_up=0; if(key_shi==0) { return1; } elseif(key_ge==0) { return2; } }elseif(key_shi==1&&key_ge==1)key_up=1; return0;//無按鍵按下}//外部中斷初始化函數(shù)voidInit_INT(){EX1=1;//開啟外部中斷1IT1=0;//設(shè)置成低電平觸發(fā),1為下降沿觸發(fā)EA=1;//開啟總中斷}//外部中斷1函數(shù)voidInterrupt0_handler()interrupt2{uintkey; uintbai,shi,ge;EA=0;//關(guān)閉總中斷,以消除按鍵出現(xiàn)的抖動所產(chǎn)生的干擾 key=key_scan(); //led_green=1; switch(key) //按鍵設(shè)置溫度 { case1:key_ad+=100;//設(shè)置十位 break; case2:key_ad+=5;//設(shè)置個位 break; } if(key_ad>250)key_ad=250; if(key_clean==0)key_ad=0;bai=key_ad/100%10; /
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第19課《懷疑與學(xué)問》教學(xué)設(shè)計2024-2025學(xué)年統(tǒng)編版語文九年級上冊
- 2024中國建筑一局(集團)有限公司計量專項工作人員招聘筆試參考題庫附帶答案詳解
- 第1課時 不退位減(教學(xué)設(shè)計)-2024-2025學(xué)年二年級上冊數(shù)學(xué)人教版
- 2025年貴州護理職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫審定版
- 13《林教頭風(fēng)雪山神廟》教學(xué)設(shè)計2024-2025學(xué)年高一語文下學(xué)期(必修下冊)
- 第16課《散文二篇》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版語文八年級上冊
- 第7單元第3課時《找規(guī)律(三)》導(dǎo)學(xué)案設(shè)計
- 2025年邯鄲幼兒師范高等??茖W(xué)校單招職業(yè)適應(yīng)性測試題庫必考題
- 山東省日照市部分學(xué)校2023-2024學(xué)年高三上學(xué)期12月校級聯(lián)合考試地理試題(解析版)
- 遼寧省沈陽市重點高中聯(lián)合體2023-2024學(xué)年高二上學(xué)期期中考試地理試題(解析版)
- 氬氣安全技術(shù)說明書MSDS
- 汽車運行材料ppt課件(完整版)
- 四年級數(shù)學(xué)下冊教案-練習(xí)一-北師大版
- GB∕T 1732-2020 漆膜耐沖擊測定法
- 2022《化工裝置安全試車工作規(guī)范》精選ppt課件
- Q∕GDW 12067-2020 高壓電纜及通道防火技術(shù)規(guī)范
- 汽車系統(tǒng)動力學(xué)-輪胎動力學(xué)
- 《經(jīng)濟研究方法論》課程教學(xué)大綱
- 10T每天生活污水處理設(shè)計方案
- 中國民航國內(nèi)航空匯編航路314系列航線
- 山西特色文化簡介(課堂PPT)
評論
0/150
提交評論