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

下載本文檔

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

文檔簡介

1、恒溫箱自動控制系統(tǒng)設(shè)計 學科代碼:080601 學 號:101401010078 貴 州 師 范 大 學(本 科)畢 業(yè) 論 文題 目:恒溫箱自動控制系統(tǒng) 學 院:機械與電氣工程學院專 業(yè):電氣工程及其自動化年 級:2010級姓 名: 周康指導教師: 吳志堅(講師)完成時間:2014年5月5日 摘要 恒溫箱主要是用來控制溫度,它為農(nóng)業(yè)研究、生物技術(shù)測試提供所需要的各種環(huán)境模擬條件,因此可廣泛適用于藥物、紡織、食品加工等無菌試驗、穩(wěn)定性檢查以及工業(yè)產(chǎn)品的原料性能、產(chǎn)品包裝、產(chǎn)品壽命等測試。恒溫箱供科研機關(guān)及醫(yī)院作細菌培養(yǎng)之用;也可以作育種、發(fā)酵以及大型養(yǎng)殖孵化等用途。 恒溫箱控制系統(tǒng)能夠自動溫度

2、控制、人工干預溫度控制、遠程溫度控制等多功能的高性能裝置。可以形成規(guī)?;彤a(chǎn)業(yè)化,大范圍的應(yīng)用到現(xiàn)代化工業(yè)生產(chǎn)。 本論文結(jié)合工廠中如何實現(xiàn)恒溫箱控制,討論大多數(shù)工業(yè)生產(chǎn)情況下對恒溫箱中的溫度進行有效控制的方法。因此采用以單片機為基礎(chǔ)的恒溫箱控制系統(tǒng),單片機系統(tǒng)包括89C52處理器、擴展存儲器27512及6264,并行接口芯片8255、8253、ADC0809、8279、掉電保護和復位以及看門狗電路等。具體方法是使用鉑鍺-鉑熱電偶進行溫度數(shù)據(jù)采集,經(jīng)過放大和濾波電路進行A/D轉(zhuǎn)換,轉(zhuǎn)換后的值再根據(jù)標準分度表轉(zhuǎn)換成溫度值,同時顯示出來。并且通過CAN總線傳輸控制參數(shù)關(guān)鍵詞: 單片機、恒溫箱、 熱電

3、偶、 CAN總線AbstractThe thermostat is mainly used to control temperature. It can provide many kinds of simulated conditions which are needed for agricultural research and biological technology tests.So the thermostat is widely used for the sterility testing of medicine,textile industry,food processing,

4、and stability check and all tests on industrial product,including the material properties of products,product packaging and product life.The thermostat can supply scientific research institutions and hospitals with germiculture.In addition,the thermostat can be used for breeding,fermentation and lar

5、ge scale breeding incubator.The thermostat is a high performance device with many functions,which can automatically control temperature,conduct manual intervention and remotely control temperature and can form scale and industrialization and be widely brought in the modernization of industrial produ

6、ction.The paper explains how the thermostat realizes temperature control in factories and discusses the ways in which the factories effectively control the temperature of the thermostat in industrial production.The paper takes the thermostat based on single chip microcomputer as an example.Single ch

7、ip microcomputer system consists of the 89C52 processor ,the Extended memory 27512 and 6264 ,Parallel interface chip 8255, 8253, 8279 and ADC0809, Power-fail protection and reset and watchdog circuit.The specific method is using PT ge - Platinum thermocouple to collect data on temperature, then ampl

8、ifying and filtering the circuit to converse A/D,then according to the standard indexing table,converting the conversion value to the temperature value and showing the two values,the conversion value and the temperature value.Finally conveying the controlling parameter by the CAN bus transmission.Ke

9、y words:Single chip microcomputer, Thermostat, Thermocouples, The CAN bus引言 溫度控制是工業(yè)生產(chǎn)過程中經(jīng)常遇到的過程控制,特別是在冶金、化工、建材、食品、機械、石油等工業(yè)中,具有舉足重輕的作用,其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量,因而設(shè)計一種較為理想的溫度控制系統(tǒng)是非常有價值的。對于不同場所、不同工藝、所需溫度高低范圍不同、精度不同,則采用的測溫元件、測溫方法以及對溫度的控制方法也將不同;產(chǎn)品工藝不同、控制溫度的精度不同、時效不同,則對數(shù)據(jù)采集的精度和采用的控制算法也不同。因而,對溫度的測控方法多種多樣。隨著電子技術(shù)和

10、微型計算機的迅速發(fā)展,微機測量和控制技術(shù)也得到了迅速的發(fā)展和廣泛的應(yīng)用。利用微機對溫度進行測控的技術(shù),也便隨之而生,并得到日益發(fā)展和完善,越來越顯示出其優(yōu)越性。然而現(xiàn)有的溫度傳感元件大多為模擬器件(熱電耦)體積大、應(yīng)用復雜、而且不容易實現(xiàn)數(shù)字化等缺點,阻礙了應(yīng)用領(lǐng)域的擴展。本設(shè)計從實際應(yīng)用出發(fā)選取了體積小、精度相對高的數(shù)字式溫度傳感元件DS18B20作為溫度采集器,單片機STC89C52作為主控芯片,液晶顯示屏作為顯示輸出,實現(xiàn)了對溫度的實時測量與恒定控制。目錄:1 系統(tǒng)方案 11.1 恒溫箱控制系統(tǒng)設(shè)計任務(wù)和要求 11.2 恒溫箱控制系統(tǒng)部分 21.3 溫度控制系統(tǒng)算法分析 22 系統(tǒng)硬件設(shè)

11、計 52.1 總體設(shè)計框圖及說明 62.2 各個子模塊設(shè)計 72.2.1 CPU的選擇 72.2.2溫度采集電路 82.2.3溫度控制電路設(shè) 計102.2.4 LCD顯示電路 122.2.5 報警電路 133 系統(tǒng)軟件設(shè)計13 3.1程序框架結(jié)構(gòu) 14 3.2程序流程圖及部分程序 14 3.2.1主程序模塊 14 3.2.2 LCD顯示程序 15 3.2.3 DS18B20采集溫度程序 18 3.2.4 PID計算程序 20 3.2.5 繼電器控制程序 214 結(jié)論與心得體 會235 參考文獻 246 致謝 247 附錄 系統(tǒng)源程序 251 系統(tǒng)方案1.1恒溫箱控制系統(tǒng)設(shè)計任務(wù)和要求 該系統(tǒng)為

12、一實驗系統(tǒng),系統(tǒng)設(shè)計任務(wù)如下: 設(shè)計一個恒溫箱自動控制系統(tǒng),控制對象為一玻璃鋼的一部分。箱內(nèi)溫度可以在一定范圍內(nèi)由人工設(shè)定,并能在環(huán)境溫度降低時實現(xiàn)自動調(diào)整,以保持特定的溫度不變。 系統(tǒng)設(shè)計具體要求: 溫度設(shè)定范圍為30-50攝氏度; 環(huán)境溫度降低是控制恒溫箱溫度誤差小于0.5攝氏度; 采用適當?shù)姆椒?,使得溫度在一定范圍?nèi)才進行控制,大于某一范圍直接加熱或者不加熱,減小系統(tǒng)的調(diào)節(jié)時間; 采用適當方法減少系統(tǒng)的超調(diào)量; 用LCD1602顯示溫度與時間。1.2 恒溫箱控制系統(tǒng)部分溫度控制系統(tǒng)是一個過程控制系統(tǒng),組成框圖如圖1所示,由控制器、執(zhí)行器、被控對象其反饋作用的測量組成。 圖1 計算機控制系

13、統(tǒng)框圖本系統(tǒng)中CPU選擇為單片機,執(zhí)行器為繼電器,控制加熱片通斷,檢測裝置為溫度傳感器采集溫度并反饋給單片機。另外還有顯示部分以及報警部分(硬件的具體選擇與應(yīng)用我會在第二章做具體說明),總體框圖如下(圖2) 圖2 溫控箱控制系統(tǒng)總體框圖1.3 溫度控制系統(tǒng)的算法分析系統(tǒng)算法控制采用工業(yè)上常用的位置型PID數(shù)字控制,并且結(jié)合特定的系統(tǒng)加以算法的改進,形成了開關(guān)量控制積分分離PID控制相結(jié)合的自動識別的控制算法。該方法不僅減小了超調(diào)量,而且有效地克服了積分飽和的影響,使控制精度提高。長期以來國內(nèi)外科技工作者對溫度控制器進行了廣泛深入的研究,產(chǎn)生了大批溫度控制器,如性能成熟應(yīng)用廣泛的PID調(diào)節(jié)器、智

14、能控制PID調(diào)節(jié)器、自適應(yīng)控制等。目前在過程控制中應(yīng)用較多的還是PI控制算法、PD控制算法和PID控制算法。溫度控制系統(tǒng)的控制對象具有熱儲存能力大,慣性也較大的特點,空氣的流動或加熱片熱量傳遞都存在一定的阻力,因而可以歸于具有純滯后的一階大慣性環(huán)節(jié)。對于大慣性系統(tǒng)的過渡過程控制,一般可采用以下幾種控制方案:比例控制(P控制) ty 圖4 比例控制比例控制的輸出與偏差成比例關(guān)系,當負荷變化時,抗干擾能力強,過渡過程時間短,但過程終了存在余差;適用于控制通道滯后較小、負荷變化不大、允許被控量在一定范圍內(nèi)變化的系統(tǒng)。如圖4所示。比例積分控制(PI控制) 控制器的輸出與偏差的積分成比例,積分的作用使過

15、渡過程結(jié)束時無余差,但降低了系統(tǒng)的穩(wěn)定性;PI控制適用于滯后較小,負荷變化不大,被控量不允許有余差的控制系統(tǒng)。如圖5所示。 ty 圖5 PI控制 ty 圖6 PID控制比例積分加微分控制(PID控制) 微分的作用是使控制器的輸出與偏差變化的速度成比例,它對克服對象的容量滯后有顯著的效果;在比例基礎(chǔ)上加入微分作用,使穩(wěn)定性提高,再加上積分作用,可以消除余差;PID控制適用于負荷變化大、容量滯后較大、控制品質(zhì)要求又很高的控制系統(tǒng)。如圖6所示。由圖7可知PID調(diào)節(jié)器是一種線性調(diào)節(jié)器,這種調(diào)節(jié)器是將設(shè)定值w與實際輸出值y進行比較構(gòu)成偏差并將其比例、積分、微分通過線性組合構(gòu)成控制量。其動態(tài)方程為: 其中

16、-為調(diào)節(jié)器的比例放大系數(shù)-為積分時間常數(shù)-為微分時間常數(shù)PID調(diào)節(jié)器的離散化表達式為; 其增量表達形式為: 其中T為采樣周圖7 PID調(diào)節(jié)器可見溫度PID調(diào)節(jié)器有三個可設(shè)定參數(shù),即比例放大系數(shù)、積分時間常數(shù)、微分時間常數(shù)。比例調(diào)節(jié)的作用是使調(diào)節(jié)過程趨于穩(wěn)定,但會產(chǎn)生穩(wěn)態(tài)誤差;積分作用可消除被調(diào)量的穩(wěn)態(tài)誤差,但可能會使系統(tǒng)振蕩甚至使系統(tǒng)不穩(wěn)定;微分作用能有效的減小動態(tài)偏差。 通過以上分析,結(jié)合溫度系統(tǒng)的特性,該系統(tǒng)選擇位置式PID,并用開關(guān)量控制積分分離PID相結(jié)合的改進算法進行系統(tǒng)的調(diào)節(jié)與控制。選擇PID參數(shù)是使得系統(tǒng)滿足精度要求的關(guān)鍵。2 系統(tǒng)硬件設(shè)計2.1 總體設(shè)計框圖及說明本系統(tǒng)是一個簡

17、單的單回路控制系統(tǒng)。為了實現(xiàn)溫度的自動測量和控制,根據(jù)系統(tǒng)總體方案,系統(tǒng)由單片機基本系統(tǒng)、前向通道、反饋通道和人機對話通道等4個主要的功能模塊組成,總體框圖如上面圖2所示。單片機系統(tǒng)是整個控制系統(tǒng)的核心,STC89C52可以提供系統(tǒng)控制所需的I/O口、中斷、定時及存放中間結(jié)果的RAM電路;前向通道是控制執(zhí)行的通道,主要包括光耦、繼電器、加熱管;反饋通道由DS18b20構(gòu)成,采集當前實際的溫度。數(shù)據(jù)采集:運用DS18b20數(shù)字溫度傳感器采集當前溫度并反饋給CPU進行處理,用于控制和顯示。數(shù)據(jù)顯示:運用LCD1602字符型液晶顯示屏顯示設(shè)定溫度、實際溫度以及當前的時間。執(zhí)行機構(gòu):通過三極管控制繼電

18、器來完成對加熱管的控制,為防止強電弱電相互影響,在單片機與繼電器之間加入TLP521-1光電耦合器進行強電弱電的隔離。系統(tǒng)總體仿真圖如圖8 圖8 恒溫箱溫度控制系統(tǒng)圖2.2 各個子模塊設(shè)計2.2.1 CPU的選擇單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能集成到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)。其使用起來十分簡單靈活方便,因此選擇單片機作為CPU。本系統(tǒng)選擇自己較為熟悉的STC89C52單片機作為CPU。如圖9所示。圖9 STC89C52封裝圖STC89C52是

19、一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,STC89C52單片機在電子行業(yè)中有著廣泛的應(yīng)用。主要功能特性:1、兼容MCS51指令系統(tǒng) 2、8k可反復擦寫(大于1000次)Flash ROM; 3、32個雙向I/O口; 4、256x8bit內(nèi)部RAM; 5、3個16位可編程定時/計數(shù)器中斷; 6、時鐘頻率0-24MHz; 7、2個串行中斷,可編程UART串行通

20、道; 8、2個外部中斷源,共8個中斷源; 9、2個讀寫中斷口線,3級加密位; 10、低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能; 11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求。其最小系統(tǒng)連接如圖10圖10 89C52最小系統(tǒng)連接圖(其中晶振連接18、19兩腳)2.2.2 溫度采集電路本系統(tǒng)采用DS18b20數(shù)字溫度傳感器進行當前溫度的采集。DS18b20是一片支持“一線總線”借口的溫度傳感器,體積小,不占單片機過多的IO口,經(jīng)濟靈活,實物如圖11(圖12為實際應(yīng)用的帶探頭的溫度傳感器) 圖11 DS18b20芯片 圖12 實際應(yīng)用的帶探頭的DS18b20

21、技術(shù)性能描述: 、 獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。 、測溫范圍 55+125,固有測溫分辨率0.5。 、支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個,實現(xiàn)多點測溫,如果數(shù)量過多,會使供電電源電壓過低,從而造成信號傳輸?shù)牟环€(wěn)定。 、工作電源: 35V/DC 、在使用中不需要任何外圍元件 、 測量結(jié)果以912位數(shù)字量方式串行傳送 、不銹鋼保護管直徑 6 圖13是DS18b20的仿真部分: 圖13 DS18b20與單片機連接圖可見該數(shù)字傳感器用起來十分方便,僅需要一根口線與單片機相連,數(shù)據(jù)

22、線與電源之間一般接4K7的電阻,保證DQ在空閑時為高電平(DS18B20數(shù)據(jù)線是漏級開路結(jié)構(gòu),在沒有數(shù)據(jù)的時候,總線狀態(tài)不確定.加一個上拉電阻就可以使總線在空閑的時候處于高電平狀態(tài).)2.2.3 溫度控制電路設(shè)計 此部分通過控制繼電器的通斷從而控制加熱片,采用對加在電熱管兩端的電壓進行通斷的方法進行控制,以實現(xiàn)對恒溫箱中空氣加熱功率的調(diào)整,從而達到對溫度控制的目的,即在閉環(huán)控制系統(tǒng)中對被控對象實施控制。繼電器選則松樂SRD-05VDC-SL-C 繼電器。另外,為了防止強電對弱電的影響,我在繼電器與單片機之間加了TLP5211進行隔離。繼電器是一種電控制器件。它具有控制系統(tǒng)(又稱輸入回路)和被控

23、制系統(tǒng)(又稱輸出回路)之間的互動關(guān)系。通常應(yīng)用于自動化的控制電路中,它實際上是用小電流去控制大電流運作的一種“自動開關(guān)”。故在電路中起著自動調(diào)節(jié)、安全保護、轉(zhuǎn)換電路等作用。如圖14所示 圖14 繼電器原理圖 圖15 實際應(yīng)用的繼電器只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)釋放。這樣吸合、釋放,從而達到了在電路中的導通、切斷的目的。 本系統(tǒng)采用松樂5V直

24、流繼電器。該繼電器為無極性電磁繼電器,吸合電壓為5V,最低為3.75V,吸合額定電流為71.2mA,落下電壓為0.5V。 光電耦合器是以光為媒介傳輸電信號的一種電一光一電轉(zhuǎn)換器件。它由發(fā)光源和受光器兩部分組成。把發(fā)光源和受光器組裝在同一密閉的殼體內(nèi),彼此間用透明絕緣體隔離。發(fā)光源的引腳為輸入端,受光器的引腳為輸出端。在光電耦合器輸入端加電信號使發(fā)光源發(fā)光,光的強度取決于激勵電流的大小,此光照射到封裝在一起的受光器上后,因光電效應(yīng)而產(chǎn)生光電流,由受光器輸出端引出,這樣就實現(xiàn)了電一光一電的轉(zhuǎn)換。內(nèi)部電路如圖16本系統(tǒng)采用TLP5211光耦。其封裝如圖16圖 16 TLP5211以下為光耦使用參數(shù)溫

25、度控制電路圖如圖17圖 17 溫度控制電路圖三極管作為繼電器的驅(qū)動電路,二極管的作用是保護驅(qū)動繼電器的三極管,避免三極管由導通變?yōu)榻刂箷r繼電器產(chǎn)生的自感電動勢使得三極管擊穿。2.2.5 LCD顯示電路本系統(tǒng)采用LCD1602顯示溫度值與時間。如圖20所示。 圖20 LCD1602 圖21 LCD 與單片機連接圖1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。1602LCD主要技術(shù)參數(shù):顯示容量:16×2個字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V

26、)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm1602液晶顯示模塊可以和單片機STC89C52直接接口,電路如圖21所示。2.2.6 報警電路本系統(tǒng)采用簡易的報警電路進行報警,仿真圖如圖22所示:圖22 報警電路圖設(shè)計思想為當預設(shè)溫度不在所期望的范圍(3050度)內(nèi),則蜂鳴器發(fā)出警報,若實際溫度大于50度則亮紅燈進行提醒,若實際溫度小于30度則亮黃燈進行提醒。3 系統(tǒng)軟件設(shè)計3.1 程序框架結(jié)構(gòu)一個整體的系統(tǒng)軟件設(shè)計是由各個在系統(tǒng)里起著不同作用的模塊整合在一起,從而實現(xiàn)系統(tǒng)的所要實現(xiàn)的功能。本系統(tǒng)包括主控制程序,鍵盤掃描程序,溫度采集程序,時間顯示與

27、調(diào)整程序,PID算法程序,LCD顯示程序。結(jié)構(gòu)框架圖如圖23所示。圖23 系統(tǒng)程序框架主程序模塊相當于調(diào)度室,對子程序模塊的調(diào)用進行管理,它主要負責初始化IO口;等待鍵盤的被按下,并調(diào)用相應(yīng)的模塊進行處理;顯示溫度控制過程及時間;在適當?shù)臅r候通過DS18b20檢測實際溫度,并與所設(shè)定的值進行比較,判斷報警并通過調(diào)用PID算法處理數(shù)據(jù),處理后來控制繼電器的通斷,從而控制熱電管達到控制溫度的目的。3.2 程序流程圖及部分程序3.2.1 主程序模塊由于模塊化程序的設(shè)計,通過調(diào)用程序即可實現(xiàn)所用功能,主程序流程圖如圖24所示。 圖 24 主程序流程圖 主程序見附件一。由以上程序可以看出,調(diào)用程序前即系

28、統(tǒng)運行首要先對系統(tǒng)進行初始化。然后對按鍵進行掃描,然后讀取當前溫度進行計算并顯示,計算是否報警以及是否進行PID計算,最終控制繼電器的工作。3.2.3 LCD顯示程序程序顯示要根據(jù)芯片的時序圖編寫圖 26 主要接口說明 圖27 基本操作時序圖 圖 28 狀態(tài)字說明 圖29 RAM地址映射圖 圖 30 顯示模式設(shè)置 圖31 顯示開關(guān)及光標設(shè)置 圖32 數(shù)據(jù)指針設(shè)置 圖 33 讀操作時序 圖44 寫操作時序由于LCD1602比較常用,編程序是按照時序?qū)懭爰纯桑@里不再贅述。LCD顯示程序見附件一.3.2.4 DS18b20采集溫度程序 DS18b20數(shù)字溫度傳感器對時序的要求十分嚴格,延時大多是u

29、s級的,因此該子程序中的延時程序需要區(qū)別于LCD顯示的延時程序。DS18B20有六條控制命令:溫度轉(zhuǎn)換 44H 啟動DS18B20進行溫度轉(zhuǎn)換 讀暫存器 BEH 讀暫存器9位二進制數(shù)字 寫暫存器 4EH 將數(shù)據(jù)寫入暫存器的TH、TL字節(jié) 復制暫存器 48H 把暫存器的TH、TL字節(jié)寫到E2RAM中 重新調(diào)E2RAM B8H 把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié) 讀電源供電方式 B4H 啟動DS18B20發(fā)送電源供電方式的信號給主CPUDS18B20的初始化 (1) 先將數(shù)據(jù)線置高電平“1”。 (2) 延時(該時間要求的不是很嚴格,但是盡可能的短一點) (3) 數(shù)據(jù)線拉到低電平

30、“0”。 (4) 延時750微秒(該時間的時間范圍可以從480到960微秒)。 (5) 數(shù)據(jù)線拉到高電平“1”。 (6) 延時等待(如果初始化成功則在15到60微妙時間之內(nèi)產(chǎn)生一個由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來確定它的存在,但是應(yīng)注意不能無限的進行等待,不然會使程序進入死循環(huán),所以要進行超時控制)。 (7) 若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時,其延時的時間從發(fā)出的高電平算起(第(5)步的時間算起)最少要480微秒。 (8) 將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。其時序圖如圖28 圖28 DS18b20初始化時序圖DS18B20的寫操作 (1) 數(shù)據(jù)線先置低

31、電平“0”。 (2) 延時確定的時間為15微秒。 (3) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。 (4) 延時時間為45微秒。 (5) 將數(shù)據(jù)線拉到高電平。 (6) 重復上(1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。 (7) 最后將數(shù)據(jù)線拉高。DS18B20的讀操作 (1)將數(shù)據(jù)線拉高“1”。 (2)延時2微秒。 (3)將數(shù)據(jù)線拉低“0”。 (4)延時3微秒。 (5)將數(shù)據(jù)線拉高“1”。 (6)延時5微秒。 (7)讀數(shù)據(jù)線的狀態(tài)得到1個狀態(tài)位,并進行數(shù)據(jù)處理。 (8)延時60微秒。時序圖如圖29圖29 DS18b20讀寫時序圖只要嚴格按照時序圖寫程序,DS18b20即可運行。D

32、S18b20具體程序見附件。3.2.5 PID計算和繼電器控制程序前面已經(jīng)提到PID是一種線性控制器,因此本系統(tǒng)PID控制的思路是在第一次PID調(diào)節(jié)時記下PID調(diào)節(jié)器的輸出值uk0(該值為以后PID調(diào)節(jié)器輸出地最大值),并以該值為參考,以后的輸出uk與uk0做比值,假設(shè)uk0表示加熱a, 那么輸出uk與uk0比值表示加熱a*uk/uk0時間,以此類推,最后算出每次計算應(yīng)該加熱的時間作用于繼電器,控制加熱管加熱。由于溫度變化緩慢,則設(shè)置為5s計算PID一次。另外本系統(tǒng)的PID采用了開關(guān)量計算積分分離相結(jié)合的改進PID算法,具體思路是當溫差大于等于15度時不用PID直接進行開關(guān)控制。當溫度在0-1

33、5度之間時才采用PID計算。當溫差大于4度是采用PD控制加快響應(yīng)速度并減少超調(diào),當溫差小于4度是采用PID控制保證系統(tǒng)的穩(wěn)態(tài)精度。 具體程序如下:(1)PID計算void PID(void) float ek,ek1,ek2,ek_sum; uint a; ek=K-temp; /計算誤差 while(1) if(ON_OFF=1) /溫控開關(guān)開 if(ek>=15) outflag=1;OUT=0;Time_on=100;break; /溫差大于15度,不用PID調(diào)節(jié) else if(ek<0) ek=0;outflag=0; OUT=1;Time_on=0;break; /溫差

34、小于等于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); /計算PID輸出uk if(start_flag=0) /PID運算標志位 uk0=uk; /uk初值,用于參考以后uk加熱時間 start_flag=1; div=100/uk0; /開始PID計算 else if(start_flag=1) /加熱片加熱時間 Time_on=uk*div; OUT=0; outflag=1; break; elseoutflag=0;OUT=1

35、;break;/不加熱(2)5s調(diào)用一次PID函數(shù)/控制加熱片加熱時間if(TIM>Time_on) /模擬遲滯 OUT=1; outflag=0; if(TIM>=100) /5s進行一次PID計算 PID(); TIM=0; 4.結(jié)論與心得體會 結(jié)論與展望 三個多月的畢業(yè)設(shè)計即將結(jié)束了,我深刻感受到專業(yè)知識的缺乏,同時,在整個設(shè)計過程中我也感受到自身知識的進步,特別是在單片機控制系統(tǒng)方面。 設(shè)計是以80C51單片機為核心進行的,數(shù)據(jù)采樣模塊采用可直接輸出數(shù)字量的數(shù)字溫度傳感器DS18B20,使系統(tǒng)的軟、硬件都簡化了很多;采用繼電器驅(qū)動模塊作為為系統(tǒng)的降溫部分,大大地簡化了系統(tǒng)硬

36、件電路。通過對風機的控制可實現(xiàn)糧庫溫度的自動控制。由于采用數(shù)字溫度傳感器DS18B20采集溫度,所以,詳細介紹了DS18B20的運用;軟件設(shè)計方面采用匯編語言對系統(tǒng)的軟件編程,為了便于編寫、調(diào)試、修改和增刪,系統(tǒng)軟件的編制采用了模塊化的設(shè)計方法。 鑒于溫度控制的發(fā)展趨勢,在以后的實踐中對系統(tǒng)還要做進一步的改進:硬件方面,采用DSP, ARM或者利用第一章提到的片上系統(tǒng)SOC對系統(tǒng)的硬件進行重新設(shè)計,軟件方面,摒棄傳統(tǒng)的前后臺系統(tǒng)軟件編程模式,改用基于實時操作系統(tǒng)的系統(tǒng)軟件開發(fā);控制算法方面,采用了 PID控制。5.參考文獻:1 萬隆.單片機原理與應(yīng)用技術(shù).北京:清華大學出版社.2005.4 2

37、 徐瑋等.AVR單片機快速入門.北京:機械工業(yè)出版社.2011.113 戴勝華單片機原理與應(yīng)用.北京:清華大學出版社.北京交通大學出版社.2005.44 胡壽松.自動控制原理.北京:科學出版社.2007.16.致 謝 本課題是在代廣珍導師的悉心指導下完成的,從論文的選題、系統(tǒng)設(shè)計、到修改定稿都沒有離開代老師的無私幫助,通過本次設(shè)計,本人在代老師的指引下學到了許多知識,這些是在平時的學習中得不到的知識,他嚴謹?shù)闹螌W態(tài)度、淵博的學識和悉心的指導使我受益非淺。在此,向代老師表以崇高的敬意和由衷的感謝!還要感謝各位評閱老師,經(jīng)過你們的認真評閱和指正,將會使我的設(shè)計的系統(tǒng)更加完善。在此,我向你們致以最誠

38、摯的謝意! 貴州師范大學機電學院的老師們,在平時嚴謹?shù)闹螌W和勤懇的教育,讓我在平時打下堅實的基礎(chǔ),才能順利完成本次設(shè)計,可以說沒有你們的教誨和指導,我們也不會取得今天的成績。我想對他們說一聲:感謝你們的教導和關(guān)心,您們辛苦了! 本次課程設(shè)計的完成還離不開我身邊同學和一些老師的幫忙,在系統(tǒng)軟件設(shè)計方面同學給了我很大的幫助,因為期間我一直在外實習工作,許多事都要麻煩在校的老師和同學幫忙,在此,向他們表示感謝! 鑒于本人所學知識有限,經(jīng)驗不足,又是初次研究這種復雜的設(shè)計,在此過程中難免存在一些錯誤和不足之處,懇請各位老師給予批評和指正。7.附件:恒溫箱控制系統(tǒng)源程序/*/ 恒溫箱控制系統(tǒng)源程序 程序

39、實現(xiàn)功能:通過PID調(diào)節(jié)控制恒溫箱中溫度為一定值*/#include"delay.h"#include"1602.h"#include"zhongduan.h"#include"wendu1.h"#include"delay.h"#include"1602.h"bit shanshuo_st; /閃爍間隔標志bit beep_st; /蜂鳴器間隔標志uchar n;signed char m; /溫度值全局變量uchar baiwei,gewei,shiwei;uchar n

40、um;uchar code table1="wendu:"uchar code table2='0','1','2','3','4','5','6','7','8','9'signed char shangxian=50; /上限報警溫度 signed char xiaxian=30; /下限報警溫度sbit DEC = P10; /定義減少鍵 下限sbit DEC1=P11;/ 定義減少鍵 上限sbit ADD1=

41、P13;/ 定義增加鍵 上限sbit ADD = P12; /定義增加鍵 下限sbit BEEP= P37; /定義蜂鳴器sbit OUT=P26; /光耦、繼電器驅(qū)動信號sbit lcdrs=P23; /數(shù)據(jù)、命令選擇端sbit lcdrw=P24; /讀/寫信號選擇斷sbit lcden=P25; /LCD使能信號sbit DQ=P36; /定義ds18b20通信端口 sbit LED1 = P14; /調(diào)整上限加減的燈sbit LED2 = P15; /調(diào)整下限加減的燈unsigned int TIM; /PID計時中斷變量bit start_flag=0; / 開始PID運算標志位fl

42、oat div,kp=1.5,kd=1;/用于PID計算的變量float ki=0.01;float uk,uk0;uint Time_on;/控制加熱片加熱時間void PID(void); /PID計算子程序void Alarm();void Disp_alarm(uchar baojing);void Alarm() /報警程序if(m>=shangxian)|(m<xiaxian)BEEP=0;else BEEP=1; void Disp_alarm(uchar baojing) /顯示調(diào)整溫度值Delay(200);shiwei=baojing%10; /顯示十位baiw

43、ei=baojing/10; /顯示百位n=0;/*延時函數(shù),12.000mhz*/#include"delay.h"void Delay_DS18B20(uint num1) while(num1-);void Delay(uint num1)while( -num1 );void delay_ms(uchar z)/ms級延時 while(z-) delay_us(245); delay_us(245); void delay_us(uchar z)/us級延時 while(-z);/*LCD初始化子函數(shù)*/void lcdinit() write_cmd(0x38);

44、 /設(shè)置16X2顯示,5X7點陣顯示 delay_ms(4); write_cmd(0x38); delay_ms(4); write_cmd(0x0c); /開顯示,不顯光標 delay_ms(4); write_cmd(0x06); /顯示一個字符后,地址指針加1且光標加1 delay_ms(4); write_cmd(0x01); /清屏 delay_ms(4);/*寫指令到LCD子函數(shù)*/void write_cmd(uchar cmd) lcdrs=0; /寫命令信號 lcdrw=0; delay_ms(4); lcden=1; /開使能端 delay_ms(4); P0=cmd;

45、/寫命令字 delay_ms(4); lcden=0; /*寫數(shù)據(jù)到LCD子函數(shù)*/void write_date(uchar date) lcdrs=1; /寫數(shù)據(jù)信號 lcdrw=0; delay_ms(4); lcden=1; /開使能端 delay_ms(4); P0=date; /寫數(shù)據(jù) delay_ms(4); lcden=0;/*LCD顯示函數(shù)函數(shù)*/void Display() /check_wendu(); write_cmd(0x81);/顯示第一行 for(num=0;num<6;num+) write_date(table1num); delay_ms(4); w

46、rite_cmd(0xc2);/顯示第二行 write_date(table2baiwei); delay_ms(4); write_date(table2shiwei); delay_ms(4); write_date('.'); delay_ms(4); write_date(table2n); delay_ms(4); write_cmd(0xc7);/顯示第二行 write_date('C'); delay_ms(4); /*ds18b20初始化函數(shù)*/void Init_DS18B20(void) unsigned char x=0;DQ = 1;De

47、lay_DS18B20(8);DQ=0;Delay_DS18B20(80);DQ=1;Delay_DS18B20(14);x=DQ;Delay_DS18B20(20); /*讀取ds18b20溫度函數(shù)*/unsigned char ReadOneChar(void) unsigned char i=0;unsigned char dat=0;for(i=8;i>0;i-)DQ=0;dat>>=1;DQ=1;if(DQ)dat|=0x80;Delay_DS18B20(4);return(dat); void WriteOneChar(unsigned char dat) unsigned char i=0;for(i=8;i>0;i-)DQ=0;DQ=dat&0x01;Delay_DS18B20(5);DQ=1;dat>>=1; unsigned int ReadTemperature(void) unsigned char a=0;

溫馨提示

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

評論

0/150

提交評論