自動加熱控制系統(tǒng)設計畢設論文_第1頁
自動加熱控制系統(tǒng)設計畢設論文_第2頁
自動加熱控制系統(tǒng)設計畢設論文_第3頁
自動加熱控制系統(tǒng)設計畢設論文_第4頁
自動加熱控制系統(tǒng)設計畢設論文_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、題目:自動加熱控制系統(tǒng)設計摘 要目前,很多場合都需要自動加熱控制系統(tǒng),如鍋爐、金屬熱處理等工業(yè)生產(chǎn)中。自動加熱控制系統(tǒng)改善了生產(chǎn)條件差、控制精度低、資源利用率低等問題。本文設計了一個可用于金屬熱處理的自動加熱控制系統(tǒng),系統(tǒng)采用STC89C52單片機作為系統(tǒng)控制處理核心,采用數(shù)字化的溫度傳感器DS18B20采集水箱溫度信息,并與設定值比較,計算出偏差,由固態(tài)繼電器作為電加熱爐的控制開關,控制器其導通時間。實測溫度與給定值由LED顯示。此外,還設置了溫度報警功能,當期望值與實測值溫差較大時進行故障聲光報警。論文著重介紹了系統(tǒng)的硬件及軟件設計。初步試驗表明:該系統(tǒng)達到設計任務要求。該系統(tǒng)的電路結構簡

2、單,具有人工設定、自動調(diào)節(jié)、報警顯示等功能。本系統(tǒng)采用單片機控制,具有成本低、可靠性好、結構簡單、控制能力強等特點。因此,可很多領域都得到應用。關鍵詞:單片機,DS18B20,固態(tài)繼電器ABSTRACT At present, many occasions the need for automatic heating control system, such as the boiler, the heat treatment of metals in industrial production.Automatic heating control system to improve the pr

3、oduction conditions are poor, low control precision, resource utilization rate is low problem. This paper introduces the design of a can be used in metal heat treatment automatic heating control system, the system adopts STC89C52 chip as the system control processor core, the application of digital

4、temperature sensor DS18B20 temperature information collection water tank, and is compared with the set value, calculate the deviation, by solid state relay as the electric heating furnace control switch, controller of the conduction time.The measured temperature and a given value by the LED display.

5、In addition, also set up a temperature alarm function, the desired value and the measured value of large temperature difference when the fault alarm.This paper mainly introduces the system hardware and software design.Preliminary experiments show that: the system reach the design requirements.The sy

6、stem has the advantages of simple circuit structure, with artificial settings, automatic control, alarm display and other functions. This system adopts single-chip microcomputer control, has the advantages of low cost, good reliability, simple structure, strong control ability and other characterist

7、ics.Therefore, many areas have been applied.KEY WORDS:Single chip microcomputer,DS18B20,Solid State Relay第一章 前 言1.1選題的背景意義 隨著我國經(jīng)濟的迅速發(fā)展,能源短缺已成為制約我國工業(yè)發(fā)展的重要阻礙,社會各界都對此積極關注。此外,溫濕度的自動化控制已經(jīng)在工業(yè)生產(chǎn)中得到了廣泛的應用。因此,自動加熱控制系統(tǒng)的出現(xiàn)極大地解決了能源利用率的問題,有效地改善了目前資源浪費和利用率低等問題。自動加熱控制系統(tǒng)極大地方便了以前生產(chǎn)條件差、控制精度低、資源利用率低等問題。溫度控制系統(tǒng)在國內(nèi)各行各業(yè)雖得

8、到了廣泛的應用,但就我國目前生產(chǎn)的溫度控制器來講,總體發(fā)展水平仍然存在很多問題,存在很多弊端。目前,很多場合都需要自動加熱控制系統(tǒng),如鍋爐、石油、化工、冶金、機械、熱處理、建材、電子、材料、輕工業(yè)、制藥、表面處理等工業(yè)生產(chǎn)中。在比如好多都與我們?nèi)粘I罹o密相關的空調(diào)、電熱毯、電飯鍋、電磁爐、電暖氣、打印機、吹風機等也都不同程度的應用了自動加熱控制系統(tǒng)。 現(xiàn)在,我國正主張節(jié)能減排。因此,設計一套完善可行的自動加熱控制系統(tǒng)具有巨大的經(jīng)濟意義和環(huán)保價值。自動加熱控制系統(tǒng)與我們生活緊密聯(lián)系,所以它的需求將會有一個非??捎^的發(fā)展前景,況且,目前我國自動加熱器的發(fā)展還不是很成熟,綜合國力還有待提高,21世

9、紀賦予我們更多的機遇,同時也給了我們更大的挑戰(zhàn),只有提高我國的綜合國力,大力加強科技教育投資力度,讓我國的科技更加提高,這樣才能立足世界不敗之林!加熱溫度控制系統(tǒng)的設計有很多不同的方案,有的是采用手動控制,繼電器控制,可控硅晶閘管控制等。1.2國內(nèi)外研究方案目前國內(nèi)的主要控制方法:手動控制、溫度儀表顯示;順序控制器;全PLC控制;專用電腦控制加熱形式有:1.電阻加熱式 這也正是國內(nèi)絕大多數(shù)廠家采用的方式,其特點是鍋水不帶電2.電磁感應加熱式 其原理是當電流通過加熱線圈時,就會形成電磁場,把金屬鋁殼至于電磁場中就會使爐殼產(chǎn)生渦流并導致其發(fā)熱,從而完成對鍋水加熱的目的。傳統(tǒng)的自動控制加熱系統(tǒng)普遍采

10、用繼電器控制技術,根據(jù)繼電器的導通與關斷來控制加熱設備的加熱。由于傳統(tǒng)繼電器采用固定接線的硬件實現(xiàn)邏輯控制,使控制系統(tǒng)的體積增大,耗電多,效率不高并且因為接線繁多容易出現(xiàn)故障,不能保證產(chǎn)品的質(zhì)量以及正常的工業(yè)生產(chǎn)。國外的主要形式有:PID控制、模糊控制、神經(jīng)網(wǎng)絡和遺傳算法等。1.3我的可選方案經(jīng)分析國內(nèi)外的現(xiàn)狀及我們完成的可行性,經(jīng)討論決定我們的思路是:方案一:自動加熱控制系統(tǒng)采用單片機為核心進行控制。期望溫度值由電位器電路經(jīng)過A/D轉換后得到,然后與數(shù)字溫度傳感器DS18B20的測量結果進行比較,這樣可能會存在偏差,如果偏差存在,則再經(jīng)PID調(diào)節(jié),再進行D/A轉換、運算放大器放大,然后再和5

11、55定時器產(chǎn)生的三角波進行比較得到脈沖信號,該脈沖信號的高電平使IGBT導通以控制電阻絲加熱,再用數(shù)字溫度傳感器測溫,構成閉環(huán)。直至測量的溫度與期望值相等,最后經(jīng)LED顯示實測值。設計的主要內(nèi)容包括52最小系統(tǒng)、電位器電路、A/D轉換模塊、D/A轉換模塊、555定時器模塊、運算放大器和比較器、加熱和測量模塊、顯示模塊。方案二:利用單片機作為最小系統(tǒng)進行控制,期望溫度值由電位器電路經(jīng)過A/D轉換后得到,實測溫度值通過DS18B20測得,然后將期望值與實測值的進行比較,但這樣可能會存在偏差,如果偏差為正,則固態(tài)繼電器吸合,電爐開始加熱,如果偏差為負,則固態(tài)繼電器不吸合,直至測量的溫度與期望值相等,

12、最后經(jīng)LED顯示。此外,本設計還設置了溫度報警功能,當期望值與實測值溫差較大時進行報警警示,溫差較小時則不報警。這樣有利于提示工作人員更好的進行溫度控制,而且,我們采用了燈光和蜂鳴器雙報警,這樣就避免了一個報警出現(xiàn)問題,導致不能正常報警,使其出現(xiàn)誤差。同時,對于有的噪聲干擾大的工作環(huán)境中,采用聲源報警可能無法正確識別;而對于有的能見度低的工作環(huán)境中,采用燈光報警也不利于識別。因此,采用雙報警有效地避免了報警誤差。設計的主要內(nèi)容包括52最小系統(tǒng)、電位器電路、A/D轉換模塊、加熱和測量模塊、顯示模塊、報警模塊。最后,我們以方案一為主,方案二作為預備方案,實現(xiàn)對水溫的檢測控制。 第二章 總體設計方案

13、2.1 設計指標1.控制加熱爐中水溫的恒定;2.采用位式調(diào)節(jié)規(guī)律;3.運行開始后,可顯示瞬時溫度和設定溫度值;4.具有上下限報警功能;5.可以實時設置期望溫度值;2.2 系統(tǒng)概述本課題所設計的自動加熱控制系統(tǒng)主要包括兩部分:硬件電路及軟件程序。硬件電路采用ATMEL公司的AT89C52作為主處理器,系統(tǒng)主要由信號采集、A/D轉換、數(shù)據(jù)處理輸出、LED顯示等模塊組成。各部分電路的設計及原理將會在硬件電路設計部分詳細介紹;程序的設計使用C語言編程,利用Keil 軟件對其編譯和仿真,詳細的設計算法將會在程序設計部分詳細介紹。系統(tǒng)控制原理框圖如下:測量值被控變量偏差給定值測溫傳感器控制器執(zhí)行器被控對象

14、圖2-1 控制原理框圖 首先給定一個溫度期望值然后與測量值進行比較,將得到后的偏差通過控制器再經(jīng)過調(diào)節(jié)控制執(zhí)行器對加熱設備進行加熱,然后經(jīng)測溫傳感器進行測溫,將實測值再與期望值進行比較,直至實測值與期望值相符合。2.3系統(tǒng)總體方案2.3.1方案一的系統(tǒng)總體方案框圖比較器電位器A/D控制器D/ANE555IGBT加熱杯測溫元件圖2-2 方案一系統(tǒng)總體方案方案二的系統(tǒng)總體方案框圖溫度值電位器A/D控制器繼電器加熱杯測溫元件圖2-3 方案二的系統(tǒng)總體方案2.4控制方案選擇 在實際的溫度測量系統(tǒng)中,常用的控制方法有開關控制和PID控制等。開關控制的輸出規(guī)律是根據(jù)輸入的偏差的正負,控制器的輸出為最大或最

15、小。這種控制方法比較簡單,易于實現(xiàn)。但其存在一定的滯后,使得溫度在設定值附近有一定的波動,不適合高精度的溫度控制中。PID控制具有較強的適用范圍,可適用于控制對象慣性較大且控制精度要求較高的場合。這種控制既能快速控制,又能消除余差,具有較好的控制技能。開關控制介紹 開關控制又稱雙位控制,其控制器只有最大或最小兩個輸出值,相應的執(zhí)行器只有開和關兩個極限位置。理想的雙位控制器其輸出y與輸入偏差error之間的關系為: 理想的雙位控制特性如圖:圖2-4 雙位控制特性2.4.2 PID控制介紹在過程控制中,按偏差的比例(P)、積分(I)和微分(D)進行控制的PID控制是應用最為廣泛的一種自動控制器。它

16、具有原理簡單,易于實現(xiàn),適用面廣,控制參數(shù)相互獨立,參數(shù)的選定比較簡單等優(yōu)點;因此PID控制器是一種最優(yōu)控制。參數(shù)的選擇: 比例系數(shù)P對系統(tǒng)性能的影響:在連續(xù)控制方式中,最基本的控制規(guī)律就是比例控制。比例系數(shù)越大,放大倍數(shù)就越大,將偏差放大的能力越強,控制力度也就越強,反之亦然。比例控制的優(yōu)點是控制及時、反應靈敏,偏差越大,控制力度越強,但其缺點是控制結果存在余差。積分控制I對系統(tǒng)性能的影響:為了消除比例控制器中的余差,在比例的基礎上加入積分調(diào)節(jié)器,就可以輕松的解決,從而提高系統(tǒng)的控制精度。但積分的作用是隨著時間的積累才逐漸增強的,控制動作緩慢,控制不及時。微分控制D對系統(tǒng)性能的影響:對于慣性

17、較大的對象,受到干擾作用的初始時刻偏差很小。如果用比例控制,偏差值很小時,控制作用也很小,因此,比例控制對于慣性較大的對象控制過程緩慢,控制品質(zhì)不佳。微分的特點是能起到超前控制的作用。能在偏差很小時,提前增大控制作用。對于慣性大的對象用比例微分,可以改善控制品質(zhì),減小最大偏差,縮短控制時間。但當偏差存在但不變化時,控制作用為零?;谝陨咸攸c,將比例(P)、積分(I)、微分(D)結合起來組成PID控制器可以有效地改善控制性能。數(shù)字PID算法的增量表達式為:u(k)=Pe(k)-e(k-1)+Ie(k)+De(k)-2e(k-1)+e(k-2)變形為:u(k)=(P+I+D)e(k)-(P+2D)

18、e(k-1)+De(k-2)其中,k表示第k次采樣,X(k)為設定溫度,Y(k)為實際水溫,u(k)為控制量,誤差為e(k)=X(k)-Y(k)。2.5軟件設計任務軟硬分工后,軟件部分完成的任務:開機后首先進行初始化,然后將給定溫度值經(jīng)A/D轉換后顯示出來,由于我們既要看到給定值又要看到實測值,否則難以判斷當前溫度是否符合給定的溫度值,但我們又不想占用太多的單片機口線,所以我們采用一個四位LED數(shù)碼管顯示,通過一個按鍵的開關兩種狀態(tài)控制顯示哪個溫度值,這樣只需在程序中進行選擇即可。實測值采用DS18B20進行測溫,將這兩個溫度值進行比較,判斷是否符合誤差范圍,如果符合繼續(xù)測溫比較;如果不符合,

19、判斷是需要加熱還是需要降溫,然后進行相應的控制,直到符合誤差范圍,然后在測溫比較,返回繼續(xù)判斷。第三章 硬件系統(tǒng)設計3.1 主控制器的選擇這次設計采用的是Atmel公司生產(chǎn)的AT89C52單片機,目前,單片機產(chǎn)品百花齊放,各具特色,互為互補。單片機有著一般的微處理器芯片所不具有的功能,他可以獨立的完成現(xiàn)代工業(yè)控制場所要求的智能化控制功能,其應用領域也在不斷擴大。AT89C52單片機片內(nèi)含有可編程Flash存儲單元,用戶可以很方便地進行程序的擦寫操作;同時還含有12B的隨機存取數(shù)據(jù)存儲器(RAM)。AT89C52單片機屬于AT89C51單片機的增強型,其主要工作特性是:片內(nèi)程序存儲器內(nèi)含有的8K

20、B的Flash程序存儲器,可擦寫壽命為1000次;片內(nèi)數(shù)據(jù)存儲器內(nèi)含256字節(jié)的RAM;有32根可編程I/O口線;有3個可編程定時器;8個中斷源;串行口是具有一個全雙工的可編程串行通信口;具有一個數(shù)據(jù)指針DPTR;低功耗工作模式有空閑模式和掉電模式;工作電源電壓為+5V;最高工作頻率為24MHz。因為AT89C52的價格比較便宜、編程簡單、支持在線下載程序,適合初學者學習使用,所以我們這次采用AT89C52作為主控制器。單片機引腳圖為:圖3.1 單片機的引腳圖3.2 溫度信號采集部分方案一:采用熱敏電阻。利用半導體電阻值隨溫度呈顯著變化的特性制成的熱敏元件。但熱敏電阻的互換性差,非線性嚴重,溫

21、度和電阻關系是指數(shù)關系。方案二:采用熱電偶。熱電偶是一種發(fā)電型的溫敏元件,它將溫度信號轉換成電動勢信號,配以測量電動勢信號的儀表就可實現(xiàn)溫度的測量。其優(yōu)點為:測量精度高。精度可達0.10.2。具有良好的復現(xiàn)性和穩(wěn)定性。動態(tài)特性好。它的測量端可以制成很小的接點,響應速度快,時間常數(shù)可以達到毫秒級甚至微妙級。構造簡單,制造極其方便。通常是由兩種不同的金屬絲組構成,而且不受大小和開頭的限制,外面設有保護管套,使用用起來非常方便。方案三:采用DS18B20。DS18B20 是DALLAS公司生產(chǎn)的一種單總線系統(tǒng)的數(shù)字溫度傳感器。他能提供9 位溫度讀數(shù),分辨力為0.5,可在-55+125的范圍內(nèi)測量。每

22、一個DS18B20有唯一的系列號 因此同一條單線總線上可以放多個DS18B20,十分方便。DS18B20的主要特點:1) 用戶可自設定報警上下限溫度值2) 不需要外部組件,能在-55+125的范圍內(nèi)進行溫度的測量3) 在-10+85范圍內(nèi)的準確度為0.54) 通過編程可以實現(xiàn)9到12位的數(shù)字讀數(shù),測溫分辨率達0.06255) 單總線接口方式,僅用一條線就可實現(xiàn)與微處理器的雙向通信經(jīng)過比較后我們發(fā)現(xiàn)DS18B20優(yōu)越于其它兩種方案,所以我們采用方案三。采集電路如圖所示:圖3.2 采集電路部分3.3 給定溫度電路通常溫度設定值由按鍵給定,但這樣會使電路復雜;用電位器電路給定會簡化電路,方便調(diào)節(jié)。本

23、設計采用電位器電路給定初始值,需要用到AD轉換電路。給定溫度電路圖如圖所示。圖3.3 給定溫度電路3.4 顯示部分本設計采用四位一體LED作為顯示模塊其圖片為:圖3.4.1 LED顯示屏它與單片機的連接如圖所示:圖3.4.2 LED與單片機的連接圖3.5 報警電路本設計采用發(fā)光二極管報警和蜂鳴器報警,即聲光雙報警,減少了單個報警不正常工作后帶來的弊端,同時雙報警的應用范圍比較廣闊。其報警電路圖為:圖3.5 報警電路部分方案一較方案二相比除了上述部分外,還要D/A轉換電路、三角波電路以及執(zhí)行器電路等模塊。第四章 軟件設計部分這次軟件設計由以下幾部分組成:DS18B20溫度采集部分,數(shù)據(jù)處理部分,

24、AD轉換部分,顯示部分以及聲光報警部分。采用模塊化將各個模塊分別編程,最后采用子程序調(diào)用將程序融為一體,使程序編程簡單,結構清晰,易于改正錯誤。在這里將對各個模塊的流程設計做出說明,并給出了各自的程序流程圖。4.1主程序設計本系統(tǒng)采用DS18B20進行測溫。通過調(diào)整電位器阻值的大小設定給定值,將該給定值經(jīng)過A/D轉換后通過LED顯示。給定值和設定值的偏差通過PID控制算法進行整定計算出控制量,然后和555構成的多諧振蕩器生成的三角波進行比較,得到PWM脈沖對絕緣柵雙極型晶體管(IGBT)進行控制,由于占空比的不同,IGBT的導通時間就不同,這樣就可以控制加熱時間的長短。其主程序流程圖如下所示:

25、否是A/D轉換和測溫開始初始化比較偏差是 否為零PID調(diào)節(jié)D/A轉換返回圖4.1 程序主流程圖主函數(shù)的定義void main() initial(); /調(diào)用初始化函數(shù) while(1) adc0809(); ds18b20(); if(aj=1) Delay_ms(10); b20display(); else if(aj=0) Delay_ms(10); display(); jrbj(); 4.2 ADC0809模塊4.2.1 ADC0809引腳及功能介紹ADC0809為28引腳的雙列直插式封裝,其引腳如下:1) IN0IN7:模擬量輸入通道。2) ADDA、ADDB、ADDC:模擬通道

26、地址線。用于對模擬通道進行選擇,其通道選擇表如下所示:表1 ADC0809通道選擇表C(ADDC)B(ADDB)A(ADDA)選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN73) ALE:地址鎖存信號,對應于ALE上跳沿時,ADDA、ADDB、ADDC地址狀態(tài)送入地址鎖存器中。4) START:轉換啟動信號。在START信號上跳時,所有內(nèi)部寄存器清0;在START信號下跳時,開始進行A/D 轉換。(轉換期間START保持低電平)5) D7D0:數(shù)據(jù)輸出線。6) OE:輸出允許信號。OE=0時,輸出數(shù)據(jù)線呈高阻狀態(tài);OE=1時允許輸出。7

27、) CLK:時鐘信號。需要外部提供,內(nèi)部沒有。8) EOC:轉移結束狀態(tài)信號。當EOC=0時,表示正在進行轉換;當EOC=1時,表示轉換結束。(可作為查詢信號,也可作為中斷請求求信號)9) VCC:+5電源10) VREF:參考電壓(VREF(+)=+5V、VREF(-)=0V)4.2.2 A/D轉換流程圖由于本系統(tǒng)只需要采集一路信號,故可將A/D轉化器的地址信號全部直接接地,這樣在軟件編程時就不需要設置ADC0809的地址信號。 A/D采樣時先對ADC0809進行初始化,然后給ADC0809的START端子一個上升沿和下降沿,啟動A/D;然后單片機讀取ADC0809的EOC端信號,如果此信號

28、為高電平,則說明A/D轉換結束,單片機給ADC0809的OE端子一個高電平,讀取轉換后的采樣值。A/D采樣流程圖如下圖所示:NOYES開 始初始化 A/D啟動A/D判斷A/D轉換是 否結束讀取A/D值返回圖4.2 AD轉換流程圖4.2.3 A/D轉換子程序#include#define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar disp4; /定義數(shù)組變量uchar td=0xf7,0xfb,0xfd,

29、0xfe;sbit EOC=P32; /定義EOC引腳sbit OE=P31; /定義OE引腳sbit ST=P30; /定義START引腳sbit CLK=P33;sbit xsd=P17; /定義數(shù)碼管小數(shù)點int temp,getdata;void delay(uint z);void display();void initial();void main() initial(); /調(diào)用初始化函數(shù) while(1) OE=0; /剛開始禁止將轉換結果輸出 ST=0; ST=1; ST=0; /啟動A/D轉換開始while(EOC=0); /等待轉換結束OE=1; /允許轉換結果輸出get

30、data=P0; /將轉換結果賦值給變量getdataOE=0; /禁止轉換結果輸出 temp=getdata*1.0*5*25*10/255; /將得到的數(shù)據(jù)進行處理 disp0=temp%10; /取得個位數(shù) disp1=temp/10%10; /取得十位數(shù) disp2=temp/100%10; /取得百位數(shù) disp3=temp/1000; /取得千位數(shù) display(); /調(diào)用顯示子程序 void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=115;y0;y-);void initial()TMOD=0x01;TH0=(65536-20

31、)/256;TL0=(65536-20)%256;EA=1;ET0=1;TR0=1;void timer0() interrupt 1 /給AD0809提供25KHz的時鐘脈沖 TH0=(65536-20)/256; TL0=(65536-20)%256; CLK=CLK; void display() /將顯示結果在數(shù)碼管中顯示 uchar i,temperature;for(i=0;i4;i+) P2=tdi; P1=tabledispi; if(i=1)xsd=1; delay(1); 4.3 溫度傳感器DS18B20模塊4.3.1引腳及功能腳介紹 溫度傳感器DS18B20有3個管腳:V

32、CC為電源接口即可由數(shù)據(jù)線提供電源,又可由外部提供電源,范圍3.0V5.5V。GND為接地線。DQ為數(shù)據(jù)輸入輸出接口。DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的電可擦除的EEPROM。當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的0、1字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。DS18B20的工作協(xié)議:初始化ROM操作命令存儲器操作命令處理數(shù)據(jù)。ROM操作命令,如表2所示表2 ROM操作命令指令說明讀ROM(33H)讀DS18B20的序列號匹配ROM(55H)

33、繼續(xù)讀完64位序列號的命令,用于多個DS18B20時定位跳過ROM(CCH)此命令執(zhí)行后的存儲器操作將針對在線所有DS18B20搜ROM(F0H)識別總線上各器件的編碼,為操作各器件做準備報警搜索(ECH)僅溫度越限的器件對此命令做出響應存儲器操作指令,如表3所示表3 DS18B20存儲器控制命令指令說明溫度轉換(44H)啟動在線DS18B20作溫度A/D轉換讀數(shù)據(jù)(BEH)從高速暫存器讀9位溫度值和CRC寫數(shù)據(jù)(4EH)將數(shù)據(jù)寫入高速暫存的第3和第4字節(jié)中復制(48H)將高速暫存器中的第3和第4字節(jié)復制到EERAM讀EERAM(B8H)將EERAM內(nèi)容寫入高速暫存器中的第3和第4字節(jié)讀電源供

34、電方式(B4H)了解DS18B20的供電方式4.3.2 DS18B20程序流程圖 DS18B20溫度傳感器是單總線式芯片,故對其讀寫都應該是一位一位的進行,而且DS18B20的讀寫有著固定的時序。利用DS18B20采集溫度數(shù)據(jù)時,應先對其進行初始化,由單片機發(fā)出一個復位脈沖和從機發(fā)出存在脈沖,存在脈沖讓單片機知道DS18B20在總線上且已經(jīng)準備好了;當知道DS18B20存在時,單片機便向單片機發(fā)出ROM命令,設置DS18B20中ROM的格式;然后便可以對DS18B20采集的數(shù)據(jù)進行讀取,由低位到高位一位一位的讀取溫度值,讀取的溫度值存放在兩個變量中;最后對存在溫度值的兩個變量進行處理,是溫度數(shù)

35、據(jù)轉化成十進制形式,以便進一步顯示。DS18B20為單總線器件,數(shù)據(jù)和命令在一根線上傳輸,先向溫度傳感器寫入轉換命令,延長一段時間,再發(fā)送讀命令,將溫度值讀回單片機,單片機進行數(shù)據(jù)處理,送顯示,其轉換關系為:T=temperature*0.625T為單片機要顯示的溫度,temperature為從DS18B20讀回的數(shù)字量具體溫度采集流程圖如下圖所示:開始初始化讀取溫度值寫溫度值轉化為十進制返回圖4.3 DS18B20程序流程圖4.3.3 DS18B20子程序如下#include #define uchar unsigned char#define uint unsigned intsbit D

36、Q=P25;sbit dot=P17;uchar td=0xfe,0xfd,0xfb,0xf7; uchar data disp4;Uchar code LED12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;uint T;uchar temph,temp1;bit fuhao;Delay_ms(uchar t) uchar i; while(t-)for(i=0;i120;i+); void delay (uchar t) while(t-); void Init_DS18B20(void) uchar x=0; D

37、Q=1; delay(8); DQ=0; delay(90); DQ=1; delay(5); x=DQ; delay(50); uchar ReadByte(void) uchar i,dat; for(i=0;i=1;DQ=1;if(DQ)dat|=0x80;delay(8); return (dat) ; void WriteByte(uchar dat) uchar i; for(i=8;i0;i-) DQ=0; DQ=dat&0x01; delay(8); dat=1; DQ=1; ReadTemperature(void) Init_DS18B20(); WriteByte(0xC

38、C); WriteByte( 0x44); Init_DS18B20(); WriteByte(0xCC); WriteByte( 0xBE); temp1=ReadByte(); temph=ReadByte(); T=temph; T=8; T=T|temp1;b20display() int temperature; uchar i; T=T*0.625; disp0=T/1000; disp1=T/100%10; disp2=T/10%10; disp3=T%10; if(fuhao)disp0=11; if(!disp1) disp1=10; if(!disp0) disp0=10;

39、 if(!disp1) disp1=10; for(i=0;i4;i+) P2=tdi;P1=LEDdispi;if(i=2) dot=1;Delay_ms(3);temperature=disp0*100+disp1*10+disp2; ds18b20() while(1) ReadTemperature();if(temph&0xf0) fuhao=1; T=-T; else fuhao=0;b20display(); main() ds18b20();4.4 PID子模塊4.4.1 PID子模塊程序流程圖開始計算誤差計算比例、積分和微分計算控制量返回圖4.4 PID子模塊程序流程圖4.4

40、.2 PID子模塊的程序如下#include#define uchar unsigned char#define uint unsigned intuint cb3=0,0,0; /差值保存,給定和反饋的差值uint fh3; /符號,1則對應為負數(shù),0為對應的正數(shù)uint KP;uint KI;uint KD;uint ku; /上一時刻的控制電壓uint temp; /設定值uint T; /實際值uint out; /加熱輸出uint error; /*PID=ku+P*E(k)-E(k-1)+I*E(k)+D*E(k)-2E(k-1)+E(k-2);(增量型PID算式) 函數(shù)入口:te

41、mp(設定值),T(實際值)、P、I、D 函數(shù)出口:ku */void PIDoperation(void) /PID運算函數(shù) uint piancha3=0,0,0; /中間臨時變量 uint Postsum; /正數(shù)和 uint Negsum; /負數(shù)和 Postsum=0; Negsum=0; error=temp-T; if(error0) /設定值大于實際值否,即偏差大于0? if(error100)/偏差大于100否? ku=0; /偏差大于100(全速加熱) else piancha0=error; /偏差cb1) /E(k)E(k-1)否? piancha0=cb0-cb1;

42、/E(k)E(k-1) fh0=0; /E(k)-E(k-1)為正數(shù) else piancha0=cb0-cb1; /E(k)piancha2) /E(k-2)+E(k)2E(k-1)否? piancha2=(cb0+cb2)-piancha2; /E(k-2)+E(k)2E(k-1) fh2=0; /E(k-2)+E(k)-2E(k-1)為正數(shù) else piancha2=piancha2-(cb0+cb2); /E(k-2)+E(k)0 /*D*E(k-2)+E(k)-2E(k-1)*/ if(fh2=0) Postsum+=piancha2;/正數(shù)和 else Negsum+=pianc

43、ha2; /負數(shù)和 /*ku*/ Postsum+=(unsigned long int)ku; if(PostsumNegsum) piancha0=Postsum-Negsum; if(piancha0100) ku=piancha0; else ku=0; else /控制量輸出為負數(shù) ku=100; else ku=0;void main() PIDoperation();4.5 D/A子模塊4.5.1 D/A子模塊流程圖 開始初始化D/A轉換輸出結果結束4.5 D/A子模塊流程圖4.5.2 D/A子程序#include#define uchar unsigned char #defi

44、ne uint unsigned intuint ku,wenbian=20,shuziliang;float fenbian=0.0195,dianya,shuzixiaoshu2,shifenwei;sbit cs=P37;sbit wr=P36;void dacinit(void) cs=0; wr=0;void biaodubianhuan(void) ku=85; dianya=(float)ku/20; shuzixiaoshu0=dianya/fenbian; shuzixiaoshu1=shuzixiaoshu0*10; shifenwei=(int)shuzixiaoshu1

45、%10; if(shifenwei=5) shuziliang=shuzixiaoshu0+1; else shuziliang=shuzixiaoshu0; void dac0832(uchar x) P0=x;void main() dacinit(); while(1) biaodubianhuan(); dac0832(shuziliang); 4.6預備方案主流程圖在主程序中先對系統(tǒng)進行初始化,接著調(diào)用初始值設置子程序和實時溫度采集子程序,設置低溫報警值和高溫報警值;然后分別數(shù)據(jù)進行處理并顯示;再調(diào)用報警子程序,判斷采集到的實時數(shù)據(jù)是否超過報警限,若實時數(shù)據(jù)小于低溫報警值時,則進行燈

46、光報警和蜂鳴器報警提示,這時繼電器導通加熱;如果實時數(shù)據(jù)高于高溫報警值時,則進行燈光報警和蜂鳴器報警提示,這時可以在電熱爐里添加冷水進行冷卻;如果實測溫度值在高溫報警和低溫報警值范圍內(nèi)則保持不變。系統(tǒng)采用ADC0809對溫度信號進行轉換,通過前置放大器進行放大后送給單片機,單片機采集電壓信號并計算出實際溫度值。主程序是一個循環(huán)體,通過對子程序的不斷的調(diào)用進行溫度的采集處理,以達到采集顯示實時溫度的目的。否是否是開始A/D轉換和測溫計算偏差e-4=e4加熱返回圖4.6 預備方案主流程圖第五章 系統(tǒng)調(diào)試 在前期焊接工作和軟件編程已經(jīng)出有成果時,接下來的工作就是調(diào)試工作了,調(diào)試分為硬件調(diào)試和軟件調(diào)試

47、兩部分。下面就分別介紹這兩部分的調(diào)試過程及遇到的問題和解決辦法。5.1 硬件調(diào)試在硬件的焊接工作完成后,要想知道硬件是否合格,能否達到標準,是要經(jīng)過一些檢測工具的檢驗,同時還要配合軟件的測試才能知道。對硬件的測試主要是通過萬用表和示波器進行的,在整個檢測環(huán)節(jié),調(diào)試是非常重要的,它在整個設計中占著舉足輕重的位置。5.1.1 硬件調(diào)試工具簡介硬件的調(diào)試主要通過萬用表來實現(xiàn)。首先,要仔細對照電路原理圖,確保硬件的焊接及連線與原理圖一致。接下來就是檢查各個焊接點有無虛焊,漏焊,短路等問題。具體方法是:把萬用表的兩個表筆接好,即黑表筆接在COM端,紅表筆接在V端。然后把萬用表打到二極管的檔位上,用一只表

48、筆接在焊接點的一端,另一只表筆接在應與這個焊接點短路(開路)的另一端,如果焊接完好,則萬用表就會發(fā)出報警聲(不會發(fā)出報警聲)。另外還應檢測一下使用的電阻、電容等器件是否正確。確定無誤后,進行上電測試,把萬用表打到測電壓檔位,看各處電壓值是否正常。確定好硬件焊接無誤后接下來要通過硬件與軟件聯(lián)機調(diào)試以完成預期目標。5.1.2 硬件調(diào)試問題及解決方法在硬件調(diào)試過程中,我們經(jīng)過檢測發(fā)現(xiàn)雖然各個連接點沒有虛焊和短接,但是顯示部分和A/D轉換部分有一些小問題,再次檢查電路,發(fā)現(xiàn)實際硬件電路圖連接沒有問題,最后檢測發(fā)現(xiàn)單片機最小系統(tǒng)的P2和P3管口的VCC不是+5V,而是0V。最后我們把電源線引接到P0口,再次檢測后,硬件基本已經(jīng)完好。5.1.3 加熱模塊的調(diào)試我們的下限報警時的設計是蜂鳴器響,指示燈亮,同時,繼電器吸合,電熱爐開始工作,但這時我們的繼電器不能有

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論