恒溫箱控制系統(tǒng)_第1頁(yè)
恒溫箱控制系統(tǒng)_第2頁(yè)
恒溫箱控制系統(tǒng)_第3頁(yè)
恒溫箱控制系統(tǒng)_第4頁(yè)
恒溫箱控制系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-.z.-----總結(jié)資料學(xué)科代碼:080601**:**師大學(xué)〔本科〕畢業(yè)論文題目:恒溫箱自動(dòng)控制系統(tǒng)學(xué)院:機(jī)械與電氣工程學(xué)院專業(yè):電氣工程及其自動(dòng)化年級(jí):2010級(jí)**:周康指導(dǎo)教師:吳志堅(jiān)〔講師〕完成時(shí)間:2014年5月5日摘要恒溫箱主要是用來(lái)控制溫度,它為農(nóng)業(yè)研究、生物技術(shù)測(cè)試提供所需要的各種環(huán)境模擬條件,因此可廣泛適用于藥物、紡織、食品加工等無(wú)菌試驗(yàn)、穩(wěn)定性檢查以及工業(yè)產(chǎn)品的原料性能、產(chǎn)品包裝、產(chǎn)品壽命等測(cè)試。恒溫箱供科研機(jī)關(guān)及醫(yī)院作細(xì)菌培養(yǎng)之用;也可以作育種、發(fā)酵以及大型養(yǎng)殖孵化等用途。恒溫箱控制系統(tǒng)能夠自動(dòng)溫度控制、人工干預(yù)溫度控制、遠(yuǎn)程溫度控制等多功能的高性能裝置??梢孕纬梢?guī)?;彤a(chǎn)業(yè)化,大范圍的應(yīng)用到現(xiàn)代化工業(yè)生產(chǎn)。本論文結(jié)合工廠中如何實(shí)現(xiàn)恒溫箱控制,討論大多數(shù)工業(yè)生產(chǎn)情況下對(duì)恒溫箱中的溫度進(jìn)展有效控制的方法。因此采用以單片機(jī)為根底的恒溫箱控制系統(tǒng),單片機(jī)系統(tǒng)包括89C52處理器、擴(kuò)展存儲(chǔ)器27512及6264,并行接口芯片8255、8253、ADC0809、8279、掉電保護(hù)和復(fù)位以及看門狗電路等。具體方法是使用鉑鍺-鉑熱電偶進(jìn)展溫度數(shù)據(jù)采集,經(jīng)過(guò)放大和濾波電路進(jìn)展A/D轉(zhuǎn)換,轉(zhuǎn)換后的值再根據(jù)標(biāo)準(zhǔn)分度表轉(zhuǎn)換成溫度值,同時(shí)顯示出來(lái)。并且通過(guò)CAN總線傳輸控制參數(shù)關(guān)鍵詞:單片機(jī)、恒溫箱、熱電偶、CAN總線AbstractThethermostatismainlyusedtocontroltemperature.Itcanprovidemanykindsofsimulatedconditionswhichareneededforagriculturalresearchandbiologicaltechnologytests.Sothethermostatiswidelyusedforthesterilitytestingofmedicine,te*tileindustry,foodprocessing,andstabilitycheckandalltestsonindustrialproduct,includingthematerialpropertiesofproducts,productpackagingandproductlife.Thethermostatcansupplyscientificresearchinstitutionsandhospitalswithgermiculture.Inaddition,thethermostatcanbeusedforbreeding,fermentationandlargescalebreedingincubator.Thethermostatisahighperformancedevicewithmanyfunctions,whichcanautomaticallycontroltemperature,conductmanualinterventionandremotelycontroltemperatureandcanformscaleandindustrializationandbewidelybroughtinthemodernizationofindustrialproduction.Thepapere*plainshowthethermostatrealizestemperaturecontrolinfactoriesanddiscussesthewaysinwhichthefactorieseffectivelycontrolthetemperatureofthethermostatinindustrialproduction.Thepapertakesthethermostatbasedonsinglechipmicroputerasane*ample.Singlechipmicroputersystemconsistsofthe89C52processor,theE*tendedmemory27512and6264,Parallelinterfacechip8255,8253,8279andADC0809,Power-failprotectionandresetandwatchdogcircuit.ThespecificmethodisusingPTge-Platinumthermocoupletocollectdataontemperature,thenamplifyingandfilteringthecircuittoconverseA/D,thenaccordingtothestandardinde*ingtable,convertingtheconversionvaluetothetemperaturevalueandshowingthetwovalues,theconversionvalueandthetemperaturevalue.FinallyconveyingthecontrollingparameterbytheCANbustransmission.Keywords:Singlechipmicroputer,Thermostat,Thermocouples,TheCANbus引言溫度控制是工業(yè)生產(chǎn)過(guò)程中經(jīng)常遇到的過(guò)程控制,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足重輕的作用,其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量,因而設(shè)計(jì)一種較為理想的溫度控制系統(tǒng)是非常有價(jià)值的。對(duì)于不同場(chǎng)所、不同工藝、所需溫度上下范圍不同、精度不同,則采用的測(cè)溫元件、測(cè)溫方法以及對(duì)溫度的控制方法也將不同;產(chǎn)品工藝不同、控制溫度的精度不同、時(shí)效不同,則對(duì)數(shù)據(jù)采集的精度和采用的控制算法也不同。因而,對(duì)溫度的測(cè)控方法多種多樣。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速開(kāi)展,微機(jī)測(cè)量和控制技術(shù)也得到了迅速的開(kāi)展和廣泛的應(yīng)用。利用微機(jī)對(duì)溫度進(jìn)展測(cè)控的技術(shù),也便隨之而生,并得到日益開(kāi)展和完善,越來(lái)越顯示出其優(yōu)越性。然而現(xiàn)有的溫度傳感元件大多為模擬器件〔熱電耦〕體積大、應(yīng)用復(fù)雜、而且不容易實(shí)現(xiàn)數(shù)字化等缺點(diǎn),阻礙了應(yīng)用領(lǐng)域的擴(kuò)展。本設(shè)計(jì)從實(shí)際應(yīng)用出發(fā)選取了體積小、精度相對(duì)高的數(shù)字式溫度傳感元件DS18B20作為溫度采集器,單片機(jī)STC89C52作為主控芯片,液晶顯示屏作為顯示輸出,實(shí)現(xiàn)了對(duì)溫度的實(shí)時(shí)測(cè)量與恒定控制。目錄:系統(tǒng)方案………………1恒溫箱控制系統(tǒng)設(shè)計(jì)任務(wù)和要求…………………1恒溫箱控制系統(tǒng)局部………………2溫度控制系統(tǒng)算法分析……………2系統(tǒng)硬件設(shè)計(jì)…………5總體設(shè)計(jì)框圖及說(shuō)明………………6各個(gè)子模塊設(shè)計(jì)……………………72.2.1CPU的選擇…………………7溫度采集電路………………8溫度控制電路設(shè)計(jì)…………102.2.4LCD顯示電路………………122.2.5報(bào)警電路…………………13系統(tǒng)軟件設(shè)計(jì)……………133.1程序框架構(gòu)造………………………143.2程序流程圖及局部程序……………14主程序模塊…………………143.2.2LCD顯示程序………………153.2.3DS18B20采集溫度程序……………………183.2.4PID計(jì)算程序………………203.2.5繼電器控制程序……………214結(jié)論與心得體會(huì)………………………235參考文獻(xiàn)………………246致謝……………………247附錄系統(tǒng)源程序……………………25-.z.系統(tǒng)方案1.1恒溫箱控制系統(tǒng)設(shè)計(jì)任務(wù)和要求該系統(tǒng)為一實(shí)驗(yàn)系統(tǒng),系統(tǒng)設(shè)計(jì)任務(wù)如下:設(shè)計(jì)一個(gè)恒溫箱自動(dòng)控制系統(tǒng),控制對(duì)象為一玻璃鋼的一局部。箱內(nèi)溫度可以在一定范圍內(nèi)由人工設(shè)定,并能在環(huán)境溫度降低時(shí)實(shí)現(xiàn)自動(dòng)調(diào)整,以保持特定的溫度不變。系統(tǒng)設(shè)計(jì)具體要求:溫度設(shè)定范圍為30-50攝氏度;環(huán)境溫度降低是控制恒溫箱溫度誤差小于0.5攝氏度;采用適當(dāng)?shù)姆椒?,使得溫度在一定范圍?nèi)才進(jìn)展控制,大于*一范圍直接加熱或者不加熱,減小系統(tǒng)的調(diào)節(jié)時(shí)間;采用適當(dāng)方法減少系統(tǒng)的超調(diào)量;用LCD1602顯示溫度與時(shí)間。恒溫箱控制系統(tǒng)局部溫度控制系統(tǒng)是一個(gè)過(guò)程控制系統(tǒng),組成框圖如圖1所示,由控制器、執(zhí)行器、被控對(duì)象其反應(yīng)作用的測(cè)量組成。圖1計(jì)算機(jī)控制系統(tǒng)框圖本系統(tǒng)中CPU選擇為單片機(jī),執(zhí)行器為繼電器,控制加熱片通斷,檢測(cè)裝置為溫度傳感器采集溫度并反應(yīng)給單片機(jī)。另外還有顯示局部以及報(bào)警局部〔硬件的具體選擇與應(yīng)用我會(huì)在第二章做具體說(shuō)明〕,總體框圖如下〔圖2〕圖2溫控箱控制系統(tǒng)總體框圖溫度控制系統(tǒng)的算法分析系統(tǒng)算法控制采用工業(yè)上常用的位置型PID數(shù)字控制,并且結(jié)合特定的系統(tǒng)加以算法的改良,形成了開(kāi)關(guān)量控制—積分別離PID控制相結(jié)合的自動(dòng)識(shí)別的控制算法。該方法不僅減小了超調(diào)量,而且有效地克制了積分飽和的影響,使控制精度提高。長(zhǎng)期以來(lái)國(guó)內(nèi)外科技工作者對(duì)溫度控制器進(jìn)展了廣泛深入的研究,產(chǎn)生了大批溫度控制器,如性能成熟應(yīng)用廣泛的PID調(diào)節(jié)器、智能控制PID調(diào)節(jié)器、自適應(yīng)控制等。目前在過(guò)程控制中應(yīng)用較多的還是PI控制算法、PD控制算法和PID控制算法。溫度控制系統(tǒng)的控制對(duì)象具有熱儲(chǔ)存能力大,慣性也較大的特點(diǎn),空氣的流動(dòng)或加熱片熱量傳遞都存在一定的阻力,因而可以歸于具有純滯后的一階大慣性環(huán)節(jié)。對(duì)于大慣性系統(tǒng)的過(guò)渡過(guò)程控制,一般可采用以下幾種控制方案:比例控制(P控制)tty圖4比例控制比例控制的輸出與偏差成比例關(guān)系,當(dāng)負(fù)荷變化時(shí),抗干擾能力強(qiáng),過(guò)渡過(guò)程時(shí)間短,但過(guò)程終了存在余差;適用于控制通道滯后較小、負(fù)荷變化不大、允許被控量在一定范圍內(nèi)變化的系統(tǒng)。如圖4所示。比例積分控制(PI控制)控制器的輸出與偏差的積分成比例,積分的作用使過(guò)渡過(guò)程完畢時(shí)無(wú)余差,但降低了系統(tǒng)的穩(wěn)定性;PI控制適用于滯后較小,負(fù)荷變化不大,被控量不允許有余差的控制系統(tǒng)。如圖5所示。tty圖5PI控制tty圖6PID控制比例積分加微分控制(PID控制)微分的作用是使控制器的輸出與偏差變化的速度成比例,它對(duì)克制對(duì)象的容量滯后有顯著的效果;在比例根底上參加微分作用,使穩(wěn)定性提高,再加上積分作用,可以消除余差;PID控制適用于負(fù)荷變化大、容量滯后較大、控制品質(zhì)要求又很高的控制系統(tǒng)。如圖6所示。由圖7可知PID調(diào)節(jié)器是一種線性調(diào)節(jié)器,這種調(diào)節(jié)器是將設(shè)定值w與實(shí)際輸出值y進(jìn)展比擬構(gòu)成偏差并將其比例、積分、微分通過(guò)線性組合構(gòu)成控制量。其動(dòng)態(tài)方程為:其中---為調(diào)節(jié)器的比例放大系數(shù)---為積分時(shí)間常數(shù)---為微分時(shí)間常數(shù)PID調(diào)節(jié)器的離散化表達(dá)式為;其增量表達(dá)形式為:其中T為采樣周圖7PID調(diào)節(jié)器可見(jiàn)溫度PID調(diào)節(jié)器有三個(gè)可設(shè)定參數(shù),即比例放大系數(shù)、積分時(shí)間常數(shù)、微分時(shí)間常數(shù)。比例調(diào)節(jié)的作用是使調(diào)節(jié)過(guò)程趨于穩(wěn)定,但會(huì)產(chǎn)生穩(wěn)態(tài)誤差;積分作用可消除被調(diào)量的穩(wěn)態(tài)誤差,但可能會(huì)使系統(tǒng)振蕩甚至使系統(tǒng)不穩(wěn)定;微分作用能有效的減小動(dòng)態(tài)偏差。通過(guò)以上分析,結(jié)合溫度系統(tǒng)的特性,該系統(tǒng)選擇位置式PID,并用開(kāi)關(guān)量控制——積分別離PID相結(jié)合的改良算法進(jìn)展系統(tǒng)的調(diào)節(jié)與控制。選擇PID參數(shù)是使得系統(tǒng)滿足精度要求的關(guān)鍵。系統(tǒng)硬件設(shè)計(jì)2.1總體設(shè)計(jì)框圖及說(shuō)明本系統(tǒng)是一個(gè)簡(jiǎn)單的單回路控制系統(tǒng)。為了實(shí)現(xiàn)溫度的自動(dòng)測(cè)量和控制,根據(jù)系統(tǒng)總體方案,系統(tǒng)由單片機(jī)根本系統(tǒng)、前向通道、反應(yīng)通道和人機(jī)對(duì)話通道等4個(gè)主要的功能模塊組成,總體框圖如上面圖2所示。單片機(jī)系統(tǒng)是整個(gè)控制系統(tǒng)的核心,STC89C52可以提供系統(tǒng)控制所需的I/O口、中斷、定時(shí)及存放中間結(jié)果的RAM電路;前向通道是控制執(zhí)行的通道,主要包括光耦、繼電器、加熱管;反應(yīng)通道由DS18b20構(gòu)成,采集當(dāng)前實(shí)際的溫度。數(shù)據(jù)采集:運(yùn)用DS18b20數(shù)字溫度傳感器采集當(dāng)前溫度并反應(yīng)給CPU進(jìn)展處理,用于控制和顯示。數(shù)據(jù)顯示:運(yùn)用LCD1602字符型液晶顯示屏顯示設(shè)定溫度、實(shí)際溫度以及當(dāng)前的時(shí)間。執(zhí)行機(jī)構(gòu):通過(guò)三極管控制繼電器來(lái)完成對(duì)加熱管的控制,為防止強(qiáng)電弱電相互影響,在單片機(jī)與繼電器之間參加TLP521-1光電耦合器進(jìn)展強(qiáng)電弱電的隔離。系統(tǒng)總體仿真圖如圖8圖8恒溫箱溫度控制系統(tǒng)圖各個(gè)子模塊設(shè)計(jì)CPU的選擇單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。其使用起來(lái)十分簡(jiǎn)單靈活方便,因此選擇單片機(jī)作為CPU。本系統(tǒng)選擇自己較為熟悉的STC89C52單片機(jī)作為CPU。如圖9所示。圖9STC89C52封裝圖STC89C52是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,STC89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。主要功能特性:1、兼容MCS51指令系統(tǒng)2、8k可反復(fù)擦寫(大于1000次〕FlashROM;3、32個(gè)雙向I/O口;4、256*8bit內(nèi)部RAM;5、3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷;6、時(shí)鐘頻率0-24MHz;7、2個(gè)串行中斷,可編程UART串行通道;8、2個(gè)外部中斷源,共8個(gè)中斷源;9、2個(gè)讀寫中斷口線,3級(jí)加密位;10、低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能;11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求。其最小系統(tǒng)連接如圖10圖1089C52最小系統(tǒng)連接圖〔其中晶振連接18、19兩腳〕溫度采集電路本系統(tǒng)采用DS18b20數(shù)字溫度傳感器進(jìn)展當(dāng)前溫度的采集。DS18b20是一片支持"一線總線〞借口的溫度傳感器,體積小,不占單片機(jī)過(guò)多的IO口,經(jīng)濟(jì)靈活,實(shí)物如圖11〔圖12為實(shí)際應(yīng)用的帶探頭的溫度傳感器〕圖11DS18b20芯片圖12實(shí)際應(yīng)用的帶探頭的DS18b20技術(shù)性能描述:①、獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。②、測(cè)溫范圍-55℃~+125℃,固有測(cè)溫分辨率0.5℃。③、支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個(gè),實(shí)現(xiàn)多點(diǎn)測(cè)溫,如果數(shù)量過(guò)多,會(huì)使供電電源電壓過(guò)低,從而造成信號(hào)傳輸?shù)牟环€(wěn)定。④、工作電源:3~5V/DC⑤、在使用中不需要任何外圍元件⑥、測(cè)量結(jié)果以9~12位數(shù)字量方式串行傳送⑦、不銹鋼保護(hù)管直徑Φ6圖13是DS18b20的仿真局部:圖13DS18b20與單片機(jī)連接圖可見(jiàn)該數(shù)字傳感器用起來(lái)十分方便,僅需要一根口線與單片機(jī)相連,數(shù)據(jù)線與電源之間一般接4K7的電阻,保證DQ在空閑時(shí)為高電平〔DS18B20數(shù)據(jù)線是漏級(jí)開(kāi)路構(gòu)造,在沒(méi)有數(shù)據(jù)的時(shí)候,總線狀態(tài)不確定.加一個(gè)上拉電阻就可以使總線在空閑的時(shí)候處于高電平狀態(tài).〕溫度控制電路設(shè)計(jì)此局部通過(guò)控制繼電器的通斷從而控制加熱片,采用對(duì)加在電熱管兩端的電壓進(jìn)展通斷的方法進(jìn)展控制,以實(shí)現(xiàn)對(duì)恒溫箱中空氣加熱功率的調(diào)整,從而到達(dá)對(duì)溫度控制的目的,即在閉環(huán)控制系統(tǒng)中對(duì)被控對(duì)象實(shí)施控制。繼電器選則松樂(lè)SRD-05VDC-SL-C繼電器。另外,為了防止強(qiáng)電對(duì)弱電的影響,我在繼電器與單片機(jī)之間加了TLP521—1進(jìn)展隔離。繼電器是一種電控制器件。它具有控制系統(tǒng)〔又稱輸入回路〕和被控制系統(tǒng)〔又稱輸出回路〕之間的互動(dòng)關(guān)系。通常應(yīng)用于自動(dòng)化的控制電路中,它實(shí)際上是用小電流去控制大電流運(yùn)作的一種"自動(dòng)開(kāi)關(guān)〞。故在電路中起著自動(dòng)調(diào)節(jié)、平安保護(hù)、轉(zhuǎn)換電路等作用。如圖14所示圖14繼電器原理圖圖15實(shí)際應(yīng)用的繼電器只要在線圈兩端加上一定的電壓,線圈中就會(huì)流過(guò)一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會(huì)在電磁力吸引的作用下克制返回彈簧的拉力吸向鐵芯,從而帶動(dòng)銜鐵的動(dòng)觸點(diǎn)與靜觸點(diǎn)〔常開(kāi)觸點(diǎn)〕吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會(huì)在彈簧的反作用力返回原來(lái)的位置,使動(dòng)觸點(diǎn)與原來(lái)的靜觸點(diǎn)〔常閉觸點(diǎn)〕釋放。這樣吸合、釋放,從而到達(dá)了在電路中的導(dǎo)通、切斷的目的。本系統(tǒng)采用松樂(lè)5V直流繼電器。該繼電器為無(wú)極性電磁繼電器,吸合電壓為5V,最低為3.75V,吸合額定電流為71.2mA,落下電壓為0.5V。光電耦合器是以光為媒介傳輸電信號(hào)的一種電一光一電轉(zhuǎn)換器件。它由發(fā)光源和受光器兩局部組成。把發(fā)光源和受光器組裝在同一密閉的殼體內(nèi),彼此間用透明絕緣體隔離。發(fā)光源的引腳為輸入端,受光器的引腳為輸出端。在光電耦合器輸入端加電信號(hào)使發(fā)光源發(fā)光,光的強(qiáng)度取決于鼓勵(lì)電流的大小,此光照射到封裝在一起的受光器上后,因光電效應(yīng)而產(chǎn)生光電流,由受光器輸出端引出,這樣就實(shí)現(xiàn)了電一光一電的轉(zhuǎn)換。內(nèi)部電路如圖16本系統(tǒng)采用TLP521—1光耦。其封裝如圖16圖16TLP521—1以下為光耦使用參數(shù)溫度控制電路圖如圖17圖17溫度控制電路圖三極管作為繼電器的驅(qū)動(dòng)電路,二極管的作用是保護(hù)驅(qū)動(dòng)繼電器的三極管,防止三極管由導(dǎo)通變?yōu)榻刂箷r(shí)繼電器產(chǎn)生的自感電動(dòng)勢(shì)使得三極管擊穿。2.2.5LCD顯示電路本系統(tǒng)采用LCD1602顯示溫度值與時(shí)間。如圖20所示。圖20LCD1602圖21LCD與單片機(jī)連接圖1602液晶也叫1602字符型液晶它是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有假設(shè)干個(gè)5*7或者5*11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。1602LCD主要技術(shù)參數(shù):顯示容量:16×2個(gè)字符芯片工作電壓:4.5—5.5V工作電流:2.0mA(5.0V)模塊最正確工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm1602液晶顯示模塊可以和單片機(jī)STC89C52直接接口,電路如圖21所示。2.2.6報(bào)警電路本系統(tǒng)采用簡(jiǎn)易的報(bào)警電路進(jìn)展報(bào)警,仿真圖如圖22所示:圖22報(bào)警電路圖設(shè)計(jì)思想為當(dāng)預(yù)設(shè)溫度不在所期望的范圍〔30—50度〕,則蜂鳴器發(fā)出警報(bào),假設(shè)實(shí)際溫度大于50度則亮紅燈進(jìn)展提醒,假設(shè)實(shí)際溫度小于30度則亮黃燈進(jìn)展提醒。系統(tǒng)軟件設(shè)計(jì)3.1程序框架構(gòu)造一個(gè)整體的系統(tǒng)軟件設(shè)計(jì)是由各個(gè)在系統(tǒng)里起著不同作用的模塊整合在一起,從而實(shí)現(xiàn)系統(tǒng)的所要實(shí)現(xiàn)的功能。本系統(tǒng)包括主控制程序,鍵盤掃描程序,溫度采集程序,時(shí)間顯示與調(diào)整程序,PID算法程序,LCD顯示程序。構(gòu)造框架圖如圖23所示。圖23系統(tǒng)程序框架主程序模塊相當(dāng)于調(diào)度室,對(duì)子程序模塊的調(diào)用進(jìn)展管理,它主要負(fù)責(zé)初始化IO口;等待鍵盤的被按下,并調(diào)用相應(yīng)的模塊進(jìn)展處理;顯示溫度控制過(guò)程及時(shí)間;在適當(dāng)?shù)臅r(shí)候通過(guò)DS18b20檢測(cè)實(shí)際溫度,并與所設(shè)定的值進(jìn)展比擬,判斷報(bào)警并通過(guò)調(diào)用PID算法處理數(shù)據(jù),處理后來(lái)控制繼電器的通斷,從而控制熱電管到達(dá)控制溫度的目的。程序流程圖及局部程序主程序模塊由于模塊化程序的設(shè)計(jì),通過(guò)調(diào)用程序即可實(shí)現(xiàn)所用功能,主程序流程圖如圖24所示。圖24主程序流程圖主程序見(jiàn)附件一。由以上程序可以看出,調(diào)用程序前即系統(tǒng)運(yùn)行首要先對(duì)系統(tǒng)進(jìn)展初始化。然后對(duì)按鍵進(jìn)展掃描,然后讀取當(dāng)前溫度進(jìn)展計(jì)算并顯示,計(jì)算是否報(bào)警以及是否進(jìn)展PID計(jì)算,最終控制繼電器的工作。3.2.3LCD顯示程序程序顯示要根據(jù)芯片的時(shí)序圖編寫圖26主要接口說(shuō)明圖27根本操作時(shí)序圖圖28狀態(tài)字說(shuō)明圖29RAM地址映射圖圖30顯示模式設(shè)置圖31顯示開(kāi)關(guān)及光標(biāo)設(shè)置圖32數(shù)據(jù)指針設(shè)置圖33讀操作時(shí)序圖44寫操作時(shí)序由于LCD1602比擬常用,編程序是按照時(shí)序?qū)懭爰纯桑@里不再贅述。LCD顯示程序見(jiàn)附件一.3.2.4DS18b20采集溫度程序DS18b20數(shù)字溫度傳感器對(duì)時(shí)序的要求十分嚴(yán)格,延時(shí)大多是us級(jí)的,因此該子程序中的延時(shí)程序需要區(qū)別于LCD顯示的延時(shí)程序。DS18B20有六條控制命令:溫度轉(zhuǎn)換44H啟動(dòng)DS18B20進(jìn)展溫度轉(zhuǎn)換讀暫存器BEH讀暫存器9位二進(jìn)制數(shù)字寫暫存器4EH將數(shù)據(jù)寫入暫存器的TH、TL字節(jié)復(fù)制暫存器48H把暫存器的TH、TL字節(jié)寫到E2RAM中重新調(diào)E2RAMB8H把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié)讀電源供電方式B4H啟動(dòng)DS18B20發(fā)送電源供電方式的信號(hào)給主CPUDS18B20的初始化〔1〕先將數(shù)據(jù)線置高電平"1〞?!?〕延時(shí)〔該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn)〕〔3〕數(shù)據(jù)線拉到低電平"0〞?!?〕延時(shí)750微秒〔該時(shí)間的時(shí)間范圍可以從480到960微秒〕?!?〕數(shù)據(jù)線拉到高電平"1〞。〔6〕延時(shí)等待〔如果初始化成功則在15到60微妙時(shí)間之內(nèi)產(chǎn)生一個(gè)由DS18B20所返回的低電平"0〞。據(jù)該狀態(tài)可以來(lái)確定它的存在,但是應(yīng)注意不能無(wú)限的進(jìn)展等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)展超時(shí)控制〕?!?〕假設(shè)CPU讀到了數(shù)據(jù)線上的低電平"0〞后,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起〔第〔5〕步的時(shí)間算起〕最少要480微秒。〔8〕將數(shù)據(jù)線再次拉高到高電平"1〞后完畢。其時(shí)序圖如圖28圖28DS18b20初始化時(shí)序圖DS18B20的寫操作〔1〕數(shù)據(jù)線先置低電平"0〞。〔2〕延時(shí)確定的時(shí)間為15微秒?!?〕按從低位到高位的順序發(fā)送字節(jié)〔一次只發(fā)送一位〕。〔4〕延時(shí)時(shí)間為45微秒?!?〕將數(shù)據(jù)線拉到高電平?!?〕重復(fù)上〔1〕到〔6〕的操作直到所有的字節(jié)全部發(fā)送完為止?!?〕最后將數(shù)據(jù)線拉高。DS18B20的讀操作〔1〕將數(shù)據(jù)線拉高"1〞?!?〕延時(shí)2微秒?!?〕將數(shù)據(jù)線拉低"0〞?!?〕延時(shí)3微秒?!?〕將數(shù)據(jù)線拉高"1〞?!?〕延時(shí)5微秒?!?〕讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)展數(shù)據(jù)處理?!?〕延時(shí)60微秒。時(shí)序圖如圖29圖29DS18b20讀寫時(shí)序圖只要嚴(yán)格按照時(shí)序圖寫程序,DS18b20即可運(yùn)行。DS18b20具體程序見(jiàn)附件。3.2.5PID計(jì)算和繼電器控制程序前面已經(jīng)提到PID是一種線性控制器,因此本系統(tǒng)PID控制的思路是在第一次PID調(diào)節(jié)時(shí)記下PID調(diào)節(jié)器的輸出值uk0〔該值為以后PID調(diào)節(jié)器輸出地最大值〕,并以該值為參考,以后的輸出uk與uk0做比值,假設(shè)uk0表示加熱a,則輸出uk與uk0比值表示加熱a*uk/uk0時(shí)間,以此類推,最后算出每次計(jì)算應(yīng)該加熱的時(shí)間作用于繼電器,控制加熱管加熱。由于溫度變化緩慢,則設(shè)置為5s計(jì)算PID一次。另外本系統(tǒng)的PID采用了開(kāi)關(guān)量計(jì)算—積分別離相結(jié)合的改良PID算法,具體思路是當(dāng)溫差大于等于15度時(shí)不用PID直接進(jìn)展開(kāi)關(guān)控制。當(dāng)溫度在0-15度之間時(shí)才采用PID計(jì)算。當(dāng)溫差大于4度是采用PD控制加快響應(yīng)速度并減少超調(diào),當(dāng)溫差小于4度是采用PID控制保證系統(tǒng)的穩(wěn)態(tài)精度。具體程序如下:〔1〕PID計(jì)算voidPID(void){floatek,ek1,ek2,ek_sum;uinta; ek=K-temp; //計(jì)算誤差while(1){ if(ON_OFF==1)//溫控開(kāi)關(guān)開(kāi){ if(ek>=15){outflag=1;OUT=0;Time_on=100;break;}//溫差大于15度,不用PID調(diào)節(jié)elseif(ek<0){ek=0;outflag=0;OUT=1;Time_on=0;break;}//溫差小于等于0不調(diào)節(jié)else{if(ek>5) a=0; if(ek<5)a=1;ek2=ek1; ek1=ek; ek_sum+=ek;uk=kp*ek+ki*ek_sum+kd*(ek1-ek2); //計(jì)算PID輸出ukif(start_flag==0) //PID運(yùn)算標(biāo)志位{uk0=uk; //uk初值,用于參考以后uk加熱時(shí)間start_flag=1;div=100/uk0;} //開(kāi)場(chǎng)PID計(jì)算elseif(start_flag==1){ //加熱片加熱時(shí)間Time_on=uk*div;OUT=0;outflag=1;}break;}} else{outflag=0;OUT=1;break;} //不加熱}}〔2〕5s調(diào)用一次PID函數(shù)//控制加熱片加熱時(shí)間if(TIM>Time_on)//模擬遲滯{OUT=1;outflag=0;}if(TIM>=100)//5s進(jìn)展一次PID計(jì)算 {PID(); TIM=0;}4.結(jié)論與心得體會(huì)結(jié)論與展望三個(gè)多月的畢業(yè)設(shè)計(jì)即將完畢了,我深刻感受到專業(yè)知識(shí)的缺乏,同時(shí),在整個(gè)設(shè)計(jì)過(guò)程中我也感受到自身知識(shí)的進(jìn)步,特別是在單片機(jī)控制系統(tǒng)方面。設(shè)計(jì)是以80C51單片機(jī)為核心進(jìn)展的,數(shù)據(jù)采樣模塊采用可直接輸出數(shù)字量的數(shù)字溫度傳感器DS18B20,使系統(tǒng)的軟、硬件都簡(jiǎn)化了很多;采用繼電器驅(qū)動(dòng)模塊作為為系統(tǒng)的降溫局部,大大地簡(jiǎn)化了系統(tǒng)硬件電路。通過(guò)對(duì)風(fēng)機(jī)的控制可實(shí)現(xiàn)糧庫(kù)溫度的自動(dòng)控制。由于采用數(shù)字溫度傳感器DS18B20采集溫度,所以,詳細(xì)介紹了DS18B20的運(yùn)用;軟件設(shè)計(jì)方面采用匯編語(yǔ)言對(duì)系統(tǒng)的軟件編程,為了便于編寫、調(diào)試、修改和增刪,系統(tǒng)軟件的編制采用了模塊化的設(shè)計(jì)方法。鑒于溫度控制的開(kāi)展趨勢(shì),在以后的實(shí)踐中對(duì)系統(tǒng)還要做進(jìn)一步的改良:硬件方面,采用DSP,ARM或者利用第一章提到的片上系統(tǒng)SOC對(duì)系統(tǒng)的硬件進(jìn)展重新設(shè)計(jì),軟件方面,摒棄傳統(tǒng)的前后臺(tái)系統(tǒng)軟件編程模式,改用基于實(shí)時(shí)操作系統(tǒng)的系統(tǒng)軟件開(kāi)發(fā);控制算法方面,采用了PID控制。5.參考文獻(xiàn):[1]萬(wàn)隆.單片機(jī)原理與應(yīng)用技術(shù).:清華大學(xué).2005.4[2]*瑋等.AVR單片機(jī)快速入門.:機(jī)械工業(yè).2011.11[3]戴勝華單片機(jī)原理與應(yīng)用.:清華大學(xué).交通大學(xué).2005.4[4]胡壽松.自動(dòng)控制原理.:科學(xué).2007.16.致本課題是在代廣珍導(dǎo)師的悉心指導(dǎo)下完成的,從論文的選題、系統(tǒng)設(shè)計(jì)、到修改定稿都沒(méi)有離開(kāi)代教師的無(wú)私幫助,通過(guò)本次設(shè)計(jì),本人在代教師的指引下學(xué)到了許多知識(shí),這些是在平時(shí)的學(xué)習(xí)中得不到的知識(shí),他嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、淵博的學(xué)識(shí)和悉心的指導(dǎo)使我受益非淺。在此,向代教師表以崇高的敬意和由衷的感謝!還要感謝各位評(píng)閱教師,經(jīng)過(guò)你們的認(rèn)真評(píng)閱和指正,將會(huì)使我的設(shè)計(jì)的系統(tǒng)更加完善。在此,我向你們致以最誠(chéng)摯的謝意!**師范大學(xué)機(jī)電學(xué)院的教師們,在平時(shí)嚴(yán)謹(jǐn)?shù)闹螌W(xué)和勤懇的教育,讓我在平時(shí)打下堅(jiān)實(shí)的根底,才能順利完本錢次設(shè)計(jì),可以說(shuō)沒(méi)有你們的教導(dǎo)和指導(dǎo),我們也不會(huì)取得今天的成績(jī)。我想對(duì)他們說(shuō)一聲:感謝你們的教導(dǎo)和關(guān)心,您們辛苦了!本次課程設(shè)計(jì)的完成還離不開(kāi)我身邊同學(xué)和一些教師的幫助,在系統(tǒng)軟件設(shè)計(jì)方面同學(xué)給了我很大的幫助,因?yàn)槠陂g我一直在外實(shí)習(xí)工作,許多事都要麻煩在校的教師和同學(xué)幫助,在此,向他們表示感謝!鑒于本人所學(xué)知識(shí)有限,經(jīng)歷缺乏,又是初次研究這種復(fù)雜的設(shè)計(jì),在此過(guò)程中難免存在一些錯(cuò)誤和缺乏之處,懇請(qǐng)各位教師給予批評(píng)和指正。7.附件:恒溫箱控制系統(tǒng)源程序/*************************************************************************/恒溫箱控制系統(tǒng)源程序程序?qū)崿F(xiàn)功能:通過(guò)PID調(diào)節(jié)控制恒溫箱中溫度為一定值***************************************************************************/#include"delay.h"#include"1602.h"#include"zhongduan.h"#include"wendu1.h"#include"delay.h"#include"1602.h"bitshanshuo_st;//閃爍間隔標(biāo)志bitbeep_st;//蜂鳴器間隔標(biāo)志ucharn;signedcharm;//溫度值全局變量ucharbaiwei,gewei,shiwei;ucharnum;ucharcodetable1[]={"wendu:"};ucharcodetable2[]={'0','1','2','3','4','5','6','7','8','9'};signedcharshang*ian=50;//上限報(bào)警溫度signedchar*ia*ian=30;//下限報(bào)警溫度sbitDEC=P1^0;//定義減少鍵下限sbitDEC1=P1^1; //定義減少鍵上限sbitADD1=P1^3; //定義增加鍵上限sbitADD=P1^2;//定義增加鍵下限sbitBEEP=P3^7;//定義蜂鳴器sbitOUT=P2^6;//光耦、繼電器驅(qū)動(dòng)信號(hào)sbitlcdrs=P2^3;//數(shù)據(jù)、命令選擇端sbitlcdrw=P2^4;//讀/寫信號(hào)選擇斷sbitlcden=P2^5;//LCD使能信號(hào)sbitDQ=P3^6;//定義ds18b20通信端口sbitLED1=P1^4;//調(diào)整上限加減的燈sbitLED2=P1^5;//調(diào)整下限加減的燈unsignedintTIM; //PID計(jì)時(shí)中斷變量bitstart_flag=0; //開(kāi)場(chǎng)PID運(yùn)算標(biāo)志位floatdiv,kp=1.5,kd=1; //用于PID計(jì)算的變量floatki=0.01;floatuk,uk0;uintTime_on; //控制加熱片加熱時(shí)間voidPID(void); //PID計(jì)算子程序voidAlarm();voidDisp_alarm(ucharbaojing);voidAlarm() //報(bào)警程序{if((m>=shang*ian)||(m<*ia*ian)) BEEP=0; else BEEP=1;}voidDisp_alarm(ucharbaojing) //顯示調(diào)整溫度值{Delay(200);shiwei=baojing%10;//顯示十位baiwei=baojing/10;//顯示百位n=0;}/*********延時(shí)函數(shù),12.000mhz*************/#include"delay.h"voidDelay_DS18B20(uintnum1){ while(num1--);}voidDelay(uintnum1){while(--num1);}voiddelay_ms(ucharz)//ms級(jí)延時(shí){while(z--){delay_us(245);delay_us(245);}}voiddelay_us(ucharz)//us級(jí)延時(shí){while(--z);}/**********LCD初始化子函數(shù)******************/voidlcdinit(){write_cmd(0*38);//設(shè)置16*2顯示,5*7點(diǎn)陣顯示delay_ms(4);write_cmd(0*38);delay_ms(4);write_cmd(0*0c);//開(kāi)顯示,不顯光標(biāo)delay_ms(4);write_cmd(0*06);//顯示一個(gè)字符后,地址指針加1且光標(biāo)加1delay_ms(4);write_cmd(0*01);//清屏delay_ms(4);}/**********寫指令到LCD子函數(shù)**************/voidwrite_cmd(ucharcmd){lcdrs=0;//寫命令信號(hào)lcdrw=0;delay_ms(4);lcden=1;//開(kāi)使能端delay_ms(4);P0=cmd;//寫命令字delay_ms(4);lcden=0;}/**********寫數(shù)據(jù)到LCD子函數(shù)************/voidwrite_date(uchardate){lcdrs=1;//寫數(shù)據(jù)信號(hào)lcdrw=0;delay_ms(4);lcden=1;//開(kāi)使能端delay_ms(4);P0=date;//寫數(shù)據(jù)delay_ms(4);lcden=0;}/**********LCD顯示函數(shù)函數(shù)*****************/voidDisplay(){// check_wendu();write_cmd(0*81);//顯示第一行for(num=0;num<6;num++){write_date(table1[num]);delay_ms(4);}write_cmd(0*c2);//顯示第二行write_date(table2[baiwei]);delay_ms(4);write_date(table2[shiwei]);delay_ms(4);write_date('.'); delay_ms(4); write_date(table2[n]); delay_ms(4);write_cmd(0*c7);//顯示第二行write_date('C'); delay_ms(4);}/**********ds18b20初始化函數(shù)****************/voidInit_DS18B20(void) { unsignedchar*=0; DQ=1; Delay_DS18B20(8); DQ=0; Delay_DS18B20(80); DQ=1; Delay_DS18B20(14); *=DQ; Delay_DS18B20(20);}/**************讀取ds18b20溫度函數(shù)************/unsignedcharReadOneChar(void){ unsignedchari=0; unsignedchardat=0; for(i=8;i>0;i--) { DQ=0; dat>>=1; DQ=1; if(DQ) dat|=0*80; Delay_DS18B20(4); } return(dat);}voidWriteOneChar(unsignedchardat){ unsignedchari=0; for(i=8;i>0;i--) { DQ=0; DQ=dat&0*01; Delay_DS18B20(5); DQ=1; dat>>=1; }}unsignedintReadTemperature(void){ unsignedchara=0; unsignedcharb=0; unsignedintt=0; floattt=0; Init_DS18B20(); WriteOneChar(0*cc); WriteOneChar(0*44); Init_DS18B20(); WriteOneChar(0*cc); WriteOneChar(0*BE);a=ReadOneChar(); b=ReadOneChar(); t=b; t<<=8; t=t|a; tt=t*0.0625; t=tt*10+0.5; return(t);}/***************計(jì)算溫度函數(shù)*****************/voidcheck_wendu(void){ uintc;c=ReadTemperature()-5;//獲取溫度值并減去DS18B20的溫漂誤差baiwei=c/100;//計(jì)算得到十位數(shù)字shiwei=c/10-baiwei*10;//計(jì)算得到個(gè)位數(shù)字gewei=c/10;//計(jì)算得到整數(shù)位m=c/10;n=c-baiwei*100-shiwei*10;//計(jì)算得到小數(shù)位if(m<0){m=0;n=0;}//設(shè)置溫度顯示上限if(m>99){m=99;n=9;}//設(shè)置溫度顯示上限}/***************液晶顯示子函數(shù)*****************//**************************PID計(jì)算子函數(shù)*******************************/voidPID(void){floatek,ek1,ek2,ek_sum;uinta; ek=K-temp; //計(jì)算誤差while(1){ //溫控開(kāi)關(guān)開(kāi)i

溫馨提示

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

評(píng)論

0/150

提交評(píng)論