基于PID控制算法的溫度控制系統(tǒng)的設(shè)計與仿真.doc
《基于PID控制算法的溫度控制系統(tǒng)的設(shè)計與仿真.doc》由會員分享,可在線閱讀,更多相關(guān)《基于PID控制算法的溫度控制系統(tǒng)的設(shè)計與仿真.doc(49頁珍藏版)》請在裝配圖網(wǎng)上搜索。
摘 要本設(shè)計是一種溫度控制系統(tǒng),溫度控制在工業(yè)生產(chǎn)和科學(xué)研究中具有重要意義。其控制系統(tǒng)屬于一階純滯后環(huán)節(jié),具有大慣性、純滯后、非線性等特點,導(dǎo)致傳統(tǒng)控制方式超調(diào)大、調(diào)節(jié)時間長、控制精度低。采用單片機進行爐溫控制,具有電路設(shè)計簡單、精度高、控制效果好等優(yōu)點,對提高生產(chǎn)效率、促進科技進步等具有重要的現(xiàn)實意義。PID控制法最為常見,控制輸出采用PWM波觸發(fā)可控硅來控制加熱通斷。使系統(tǒng)具有較高的測量精度和控制精度。單片機控制部分采用AT89S51單片機為核心,采用Keil軟件進行編程,同時采用分塊的模式,對整個系統(tǒng)的硬件設(shè)計進行分析,分別給出了系統(tǒng)的總體框圖、溫度檢測調(diào)理電路、A/D轉(zhuǎn)換接口電路,按鍵輸入電路以及顯示電路,并對相應(yīng)電路進行相關(guān)的闡述軟件采用PID算法進行了建模和編程,在Proteus環(huán)境中進行了仿真。關(guān)鍵詞:PID;單片機;溫度控制;Keil;Proteus Abstract This design is a kind of temperature control system,The temperature control in industrial production and scientific research is of great significance.Belongs to pure first-order lag link, the control system has the characteristics of big inertia, pure lag and nonlinear, the traditional control overshoot and adjustment time is long, low control precision.By single chip microcomputer temperature control, has simple circuit design, high accuracy and good control effect, to improve the production efficiency, promote the progress of science and technology has important practical significance.PID control is the most common, the control output PWM wave triggering thyristor is used to control the heating on and off.Make the system has high accuracy of measurement and control precision.Single-chip microcomputer control part adopts single chip microcomputer AT89S51 as the core,Using Keil software programming,Using block pattern at the same time, analyzes the hardware design of the whole system, respectively, of the overall system block diagram is given, the temperature detection circuit, A/D conversion interface circuit, key input circuit and display circuit, and the corresponding circuit are related in this paper, the software, the PID algorithm is used for modeling and programming in the Proteus simulation environment.Key words:PID;Single chip microcomputer;The temperature control;Keil;Proteus目 錄 1緒論12設(shè)計方案23系統(tǒng)硬件仿真電路33.1 溫度測量調(diào)理電路33.2 A/D轉(zhuǎn)換電路43.3 按鍵輸入電路53.4 數(shù)碼管顯示電路63.5 溫度控制電路74 程序設(shè)計94.1 程序整體設(shè)計94.2 子程序設(shè)計114.3 源程序設(shè)計195 軟件調(diào)試與運行結(jié)果41結(jié)論42致謝43參考文獻(xiàn)44 1緒論 現(xiàn)代工業(yè)生產(chǎn)過程中,用于熱處理的加熱爐,需要消耗大量的電能,而且溫度控制是純滯后的一階大慣性環(huán)節(jié)?,F(xiàn)有企業(yè)多采用常規(guī)儀表加接觸器的斷續(xù)控制,隨著科技進步和生產(chǎn)的發(fā)展,這類設(shè)備對溫度的控制要求越來越高,除控溫精度外,對溫度上升速度及下降速度也提出了可控要求,顯而易見常規(guī)控制難于滿足這些工藝要求。隨著微電子技術(shù)的發(fā)展,采用功能強、體積小、價格低的智能化溫度控制裝置控制加熱爐已成為現(xiàn)實。 采用單片機來對溫度進行控制不僅具有控制方便、簡單靈活性等優(yōu)點,而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量,比過去單純采用電子線路進行PID調(diào)節(jié)的控制效果要好的多。 微機控制系統(tǒng)的快速計算、靈活多樣的邏輯判斷和高效的信息加工能力使自動控制進入了更高一級的領(lǐng)域,提高了生產(chǎn)過程的自動化程度,減少了人工干預(yù),并不斷地完善和滿足工農(nóng)業(yè)生產(chǎn)和國防科技日益增長的需要。微機控制系統(tǒng)由于具有成本低、體積小、功耗小、可靠性高和使用靈活等特點,因而廣泛的應(yīng)用于工農(nóng)業(yè)生產(chǎn)、交通運輸、國防建設(shè)和空間技術(shù)等各個領(lǐng)域。其控制對象已從單一的工廠流程擴展到企業(yè)生產(chǎn)過程的管理和控制。隨著微機和單片機的推廣使用,實現(xiàn)信息自動化與過程控制相結(jié)合的分級分布式計算機控制,使計算機控制技術(shù)的水平發(fā)展到一個嶄新的階段。 現(xiàn)在,許多常規(guī)的控制儀表和調(diào)節(jié)器已經(jīng)為計算機所取代。計算機不斷地監(jiān)視整個生產(chǎn)過程,對生產(chǎn)中的各個參數(shù)進行采樣,迅速進行復(fù)雜的數(shù)據(jù)處理,打印和顯示工藝過程的統(tǒng)計數(shù)字和參數(shù),并發(fā)出各種控制命令。 溫度控制是工業(yè)生產(chǎn)過程中經(jīng)常遇到的過程控制,有些工藝過程對其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量,因而設(shè)計一種較為理想的溫度控制系統(tǒng)是非常有價值的。2設(shè)計方案 在溫度測量控制系統(tǒng)中,實際溫度值由PT100恒流工作調(diào)理電路進行測量。為了克服PT100線性度不好的缺點,在信號調(diào)理電路中加入負(fù)反饋非線性校正網(wǎng)絡(luò);調(diào)理電路的輸出電壓經(jīng)ADC0808轉(zhuǎn)換后送入單片機AT89S51;對采樣數(shù)據(jù)進行濾波及標(biāo)定處理后,由3位7段數(shù)碼管顯示。輸入的設(shè)定值由4位獨立按鍵電路進行設(shè)定,可分別對設(shè)定值的十位和個位進行加1、減1操作。設(shè)定值送入單片機后,由另外一組3位7段數(shù)碼管顯示。數(shù)碼管的段碼由74HC05驅(qū)動,位碼由三極管2N2222A驅(qū)動。為了使兩組數(shù)碼管實時顯示,對兩組數(shù)碼管進行動態(tài)掃描。整體的電路原理框圖如圖1-1所示。圖1-1整體電路原理框圖系統(tǒng)采用PID閉環(huán)控制方案。如圖1-2所示,將預(yù)置初值與溫度傳感器反饋信號比較得到偏差(e)進行PID運算處理得到控制量(u),通過此量來控制加熱器的加熱時間,從而控制加熱功率。由于水本身具有很大的熱慣性,所以必須對水溫的變化趨勢作出預(yù)測,并且根據(jù)需要及時反方向抑制,以防止出現(xiàn)較大的超調(diào)量的波動。在PID控制中,積分環(huán)節(jié)(I)具有很強的滯后效應(yīng),而微分環(huán)節(jié)(D)具有預(yù)見性,所以該方案最終采用PD算法,能夠很好的控制超調(diào),并且穩(wěn)態(tài)誤差也很小。圖1-2 系統(tǒng)控制方案 3系統(tǒng)硬件仿真電路3.1 溫度測量調(diào)理電路圖3-1溫度測量調(diào)理電路本系統(tǒng)采用恒流工作調(diào)理電路,鉑電阻選用標(biāo)稱值為100的PT100作為溫度傳感器。A1、A2、A3采用低漂移運放OP07C,由于有電流經(jīng)PT100傳感器,所以當(dāng)溫度為0時,在PT100傳感器上有電壓降,這個電壓為PT100傳感器的偏置電壓,是運放A1輸出電壓的一部分,使恒流工作調(diào)理電路的輸出實際不為零。所以需要對這個偏置電壓調(diào)零,R3為調(diào)零電阻,其作用為當(dāng)溫度為0時,將恒流工作調(diào)理電路的輸出調(diào)到零。又因為PT100的電阻特性為非線性,PT100在0到100變化范圍內(nèi)非線性誤差為0.4%(0.4),由于本系統(tǒng)無小數(shù)顯示,0.4的誤差本身不會對A/D量化和數(shù)碼管顯示造成影響,但由于軟件編制中,對標(biāo)度變化程序中的變換系數(shù)做了近似處理,使得非線性誤差接近0.79%(0.79),就有可能對A/D量化和數(shù)碼管顯示造成影響,所以加進了線性化電路,運放A3及電阻R1、R4和R6一同構(gòu)成了負(fù)反饋非線性校正網(wǎng)絡(luò)。R5用于調(diào)整運放A2的增益。電路的調(diào)整方法如下(用普通電阻代替PT100進行調(diào)整):(1) 接入相當(dāng)于0的100的電阻,用于R3調(diào)零。(2) 接入相當(dāng)于50的119.70的電阻,用于R5調(diào)整增益。(3) 接入相當(dāng)于100的139.10的電阻,用于R1或R4調(diào)整線性。 反復(fù)調(diào)整多次,在0到100溫度范圍內(nèi)適宜為止。以溫度值為橫坐標(biāo),電壓值為縱坐標(biāo),由表3-1分析非線性誤差可知:在50時,存在最大偏差為0.005,故非線性校正后非線性誤差變?yōu)?.1%(0.1),A/D量化及數(shù)碼管顯示不會產(chǎn)生誤操作。表3-1 顯示對照表理想溫度值0102030405060708090100對應(yīng)電阻值100103.9107.9111.8115.7119.7123.9127.4131.3135.2139.1實際輸出電壓0.0020.5021.0041.5022.0042.5053.0013.5024.0014.4984.996顯示溫度值0102030405060708090100注釋1;溫度單位/;電阻值單位/;電壓單位/V。3.2 A/D轉(zhuǎn)換電路本系統(tǒng)采用5V的電壓源,用PT100電阻傳感器組成的信號調(diào)理電路作為信號的輸入裝置,當(dāng)PT100傳感器置于溫度場時,調(diào)理電路將根據(jù)PT100的阻值輸出相應(yīng)的電壓值。將該輸出電壓送到ADC0808的模擬量輸入通道IN0,經(jīng)ADC0808進行模數(shù)轉(zhuǎn)換,將標(biāo)準(zhǔn)的模擬信號轉(zhuǎn)換為等價的數(shù)字信號。本設(shè)計選用IN0作為模擬量輸入通道,則將ADC0808的A、B、C三條地址線均置為低電平。轉(zhuǎn)換啟動信號START接到AT89S51的P2.0口,轉(zhuǎn)換結(jié)束狀態(tài)信號EOC接P3.7口,輸出允許信號OE接P3.6口,地址鎖存允許信號ALE接P3.3口,由于ADC0808內(nèi)部沒有時鐘電路,所以用AT89S51的ALE經(jīng)二分頻接ADC0808的CLK端,VREF-接地,VREF+接+5V電壓。ADC0808的轉(zhuǎn)換結(jié)果輸出到AT89S51的P0.0到P0.7口,作為AT89S51的輸入信號。A/D轉(zhuǎn)換接口電路如圖3-2所示。 圖3-2 A/D轉(zhuǎn)換接口電路3.3 按鍵輸入電路 本系統(tǒng)采用4個按鍵搭建鍵盤電路,如圖3-3所示。第一個按鍵用來判斷是轉(zhuǎn)入控制處理程序運行,還是轉(zhuǎn)入鍵盤處理子程序運行;若未按下則轉(zhuǎn)入控制處理子程序運行,按下則轉(zhuǎn)入鍵盤處理子程序運行;若第一個按鍵按下,則第二個按鍵開始起作用,用第二個按鍵來判斷是十位進行加減操作。若第二個按鍵未按下,轉(zhuǎn)十位進行加減操作,否則轉(zhuǎn)個位進行加減操作;第三個按鍵為減一操作,第四個按鍵為加一操作。為了方便按鍵操作,將個位和十位的設(shè)定值均設(shè)置為5,如果加一操作結(jié)果等于11,給加一單元重新賦值5,如果減一操作結(jié)果等于0FFH,給減一單元重新賦值5。這樣考慮最壞情況,即用鍵盤設(shè)置離初始設(shè)定值最遠(yuǎn)的值,第三個按鍵最多按5次,第四個按鍵最多按5次。從而大大減少了按鍵次數(shù),且更方便地給出設(shè)定值。第一個鍵和第二個鍵的加入,也充分考慮了總程序的整體調(diào)度。圖3-3 按鍵輸入電路3.4 數(shù)碼管顯示電路顯示電路采用兩個4位LED顯示數(shù)碼管,共陰極接法。第一個數(shù)碼管顯示A/D轉(zhuǎn)換數(shù)據(jù)采集的采樣值,選用3位顯示采樣值,顯示范圍為0到100;第二個數(shù)碼管顯示由鍵盤輸入的設(shè)定值,用于顯示對系統(tǒng)的溫度設(shè)定,也選用3位顯示設(shè)定值,顯示范圍為0到100。由于LED顯示電路較多選用動態(tài)掃描方式,為了實現(xiàn)LED顯示器的動態(tài)掃描,除了要給顯示器提供段的輸入外,還要對顯示器的位進行控制,即段控和位控。所以需要用P1口輸出8條段控線;位控線由挑選的P2.1、P2.2、P2.3、P3.0、P3.1和P3.2輸出,其中P2.1、P2.2和P2.3用于驅(qū)動鍵盤輸入的設(shè)定值和數(shù)碼管位控線,其余用于驅(qū)動顯示A/D轉(zhuǎn)換數(shù)碼管的數(shù)據(jù)碼位控線,位控線的數(shù)目等于數(shù)碼管顯示的位數(shù)。P1接口最多可連接8個LED顯示器。為提高顯示亮度,通常加74HC05進行段控輸出驅(qū)動,與7段數(shù)碼管的段碼驅(qū)動輸入端相連,由于位控的驅(qū)動電流較大,8段全亮需40到60mA,所以用三極管9012提高驅(qū)動能力,其集電極接到7段數(shù)碼管的位碼驅(qū)動輸入端,三極管的發(fā)射極接地,將AT89S51的P3.0、P3.1、P3.2分別與一個2k的電阻連接到三極管的基極,用于驅(qū)動采樣值顯示數(shù)碼管,將AT89S51的P2.0、P2.1和P2.2口分別與一個2k的電阻連接到三極管的基極,用于驅(qū)動設(shè)定值顯示數(shù)碼管。顯示電路如圖3-4所示。圖3-4 顯示電路3.5 溫度控制電路系統(tǒng)的電阻絲和風(fēng)扇均采用如圖3-5所示的電路形式。此電路采用晶體管驅(qū)動固態(tài)繼電器。當(dāng)P3.4為低電平,繼電器RL1吸合;當(dāng)P3.4或P3.5為高電平時,繼電器RL1釋放。采用這種控制邏輯可以使繼電器在上電復(fù)位或單片機復(fù)位時不吸合。繼電器由晶體管2N2222A驅(qū)動,它可以提供所需的驅(qū)動電流。圖3-5 繼電器控制電路 PT100溫度測控系統(tǒng)的完整電路如圖3-6所示。圖3-6 溫度測控系統(tǒng)電路圖4 程序設(shè)計4.1 程序整體設(shè)計程序的控制思想:設(shè)置目標(biāo)溫度后,系統(tǒng)采樣水溫,并通過預(yù)設(shè)溫度、當(dāng)前溫度、歷史偏差等進行PID運算產(chǎn)生fout輸出參數(shù),通過該參數(shù)控制加熱時間,從而調(diào)節(jié)加熱器的平均功率,實現(xiàn)系統(tǒng)的PID控制。整體功能通過主程序和中斷服務(wù)程序配合實現(xiàn)。主程序流程:系統(tǒng)首先初始化I/O、定時器,之后進入主循環(huán),進行溫度采樣和相關(guān)處理。在系統(tǒng)運行過程中通過按鍵重新設(shè)置目標(biāo)溫度值。PT100溫度測控系統(tǒng)的主程序流程圖如圖4-1所示。圖4-1 溫度測控系統(tǒng)主程序4.2 子程序設(shè)計 1.PID控制的實現(xiàn) (1)PID簡介。PID(Proportional Integral Derivative)控制是控制工程中技術(shù)成熟、應(yīng)用廣泛的一種控制策略,經(jīng)過長期的工程實踐,已形成了一套完整的控制算法和典型的結(jié)構(gòu)。它不僅適用于數(shù)學(xué)模型已知的控制系統(tǒng),而且對于大多數(shù)數(shù)學(xué)模型難以確定的工業(yè)過程也可以應(yīng)用,在眾多工業(yè)過程控制中取得了滿意的應(yīng)用效果。 (2)PID工作原理。由于來自外界的各種擾動不斷產(chǎn)生,要想達(dá)到現(xiàn)場控制對象值保持恒定的目的控制作用就必須不斷地進行。若擾動出現(xiàn)使得現(xiàn)場控制對象(以下簡稱被控參數(shù))發(fā)生變化,現(xiàn)場檢測元件就會將這種變化采集后經(jīng)變送器送到PID控制器的輸入端,并與其給定值(以下簡稱SP值)進行比較得到偏差值(以下簡稱e值),調(diào)節(jié)器按此偏差并以預(yù)先設(shè)定的整定參數(shù)控制規(guī)律發(fā)出控制信號,去改變調(diào)節(jié)器的開度,使調(diào)節(jié)器的開度增加或減小,從而使現(xiàn)場控制對象值發(fā)生改變,并趨向于給定值(SP值),以達(dá)到控制的目的,如圖4-2所示。其實PID的實質(zhì)就是對偏差(e)值進行比例、積分、微分運算,根據(jù)運算結(jié)果控制執(zhí)行部件的過程。圖4-2 模擬PID控制系統(tǒng)原理圖 PID控制器的控制規(guī)律可以描述為: (4-1)比例(P)控制能迅速反應(yīng)誤差,從而減小穩(wěn)態(tài)誤差。但是,比例控制不能消除穩(wěn)態(tài)誤差。比例放大系數(shù)的放大,會引起系統(tǒng)的不穩(wěn)定。積分(I)控制的作用是:只要系統(tǒng)有誤差存在,積分控制器就不斷的積累,輸出控制量,以消除誤差。因而,只要有足夠的時間,積分控制就能完全消除誤差,使系統(tǒng)誤差為零,從而消除穩(wěn)態(tài)誤差。積分作用太強會使系統(tǒng)超調(diào)加大,甚至使系統(tǒng)出現(xiàn)震蕩。微分(D)控制可以減小超調(diào)量,克服振蕩,使系統(tǒng)的穩(wěn)定性提高,同時加快系統(tǒng)的動態(tài)響應(yīng)速度,減小調(diào)整時間,從而改善系統(tǒng)的動態(tài)性能。根據(jù)不同被控對象的控制特性,又可以分為P、PI、PD、PID等不同的控制模型。 (3)數(shù)字PID的實現(xiàn)。在連續(xù)時間控制系統(tǒng)(模擬PID控制系統(tǒng))中,PID控制器的應(yīng)用非常廣泛。其設(shè)計技術(shù)成熟,長期以來形成了典型的結(jié)構(gòu),參數(shù)整定方便,結(jié)構(gòu)更改靈活,能滿足一般的控制要求。隨著計算機的快速發(fā)展,人們將計算機引入到PID控制領(lǐng)域,也就出現(xiàn)了數(shù)字式PID控制。由于計算機基于采樣控制理論,計算方法也不能沿襲傳統(tǒng)的模擬PID控制算法,所以必須將控制模型離散化。離散化的方法為:以T為采樣周期,k為采樣序號,用求和的形式代替積分,用增量的形式(求差)代替微分,這樣就可以將連續(xù)的PID計算公式離散: (4-2) 式中(4-1)就可以離散為: (4-3)或者: (4-4) 這樣就可以讓計算機或單片機通過采樣的方式實現(xiàn)PID控制。具體的PID控制又分為位置式PID控制和增量式PID控制,(4-4)給出了控制量的全部大小,所以稱為全量式或位置式控制。如果計算機只對相鄰的兩次做計算,只考慮在前一次基礎(chǔ)上計算機輸出量的大小變化,而不是全部輸出信息的計算,這種控制叫做增量式PID控制算法,其實質(zhì)就是求的大小。而,所示將式(4-4)作自減變換有: (4-5) 式中: 2.溫度控制PID算法設(shè)計 本系統(tǒng)利用上面所介紹的位置式PID算法,將溫度傳感器采樣輸入作為當(dāng)前輸入,與設(shè)定值進行相減得到偏差ek,然后再對其進行PID運算產(chǎn)生輸出結(jié)果fout,最后讓fout控制繼電器的時間進而控制加熱器。為了方便PID運算,首先建立一個PID的結(jié)構(gòu)體數(shù)據(jù)類型。該數(shù)據(jù)類型用于保護PID運算所需要的P、I、D系數(shù),以及設(shè)定值、歷史誤差的累加和等信息。Typedef struct PID float SetPoint; float Proportion; float Integral; float Derivative; int LastError; Int SumError;PID;PIDstPID; 下面是PID運算的算法程序,通過PID運算返回fout,fout的值決定是否加熱、加熱時間是多少。PID運算的實現(xiàn)代碼如下:Float PIDCalc(PID *pp,int NextPoint) Int dError,Error; Error=pp-SetPoint*10-NextPoint; pp-SumError + =Error; dError =Error - pp -LastError; pp-PrevError =pp-LastError; pp-LastError = Error; return(pp-Proportion*Error +pp-Integral*pp-SumError -pp-Derivative*dError);在實際運算時,由于水具有很大的熱慣性,而且PID運算中的1(積分項)具有非常明顯的延遲效應(yīng),不能保留,所以必須把積分項去掉。相反,D(微分項)有很強的預(yù)見性,能夠加快反應(yīng)速度,抑制超調(diào)量,因此微分作用應(yīng)該適當(dāng)加強才能達(dá)到較佳的控制效果,系統(tǒng)最終選擇PD控制方案。下面是PD控制的實現(xiàn)過程:Float PIDCalc(PID*pp,int NextPoint) Int dError,Error; Error=pp-SetPoint*10-NextPoint; dError=Error-pp-LastError; pp-PrevError=pp-LastError; pp-LastError=Error return(pp-Proportion*Error -pp-Derivative*dError );3.溫度控制的實現(xiàn) 通過溫度的PID運算,產(chǎn)生結(jié)果fmin,該參數(shù)決定是否加熱。加熱時間多長。 stPID.Proportion=2; stPID.Integral=0; stPID.Derivative=5; fOut=PIDCalc(&stPID,(int)(fT*10); if(fOut=0) *p_IOA_Buffer&=0ff7f; Else *p_IOA_Buffer=00080;加熱時間由主函數(shù)計算。主程序中通過PIDCalc函數(shù)得到fmin參數(shù)。若該參數(shù)大于零,則開啟加熱器。如果PIDCalc計算結(jié)果比較大說明離目標(biāo)溫度相差較大,則加熱時間比較長;如果計算結(jié)果比較小,說明離目標(biāo)溫度相差較小,加熱時間相對較短。 4.PID參數(shù)的整定 由PID控制原理知:比例(P)控制能迅速反映誤差,減小穩(wěn)態(tài)誤差;比例作用的加大會引起系統(tǒng)的穩(wěn)定。積分(1)控制的作用,只要系統(tǒng)有偏差存在,積分作用就不斷地積累,輸出控制量以消除誤差;積分作用太強會使系統(tǒng)超調(diào)加大,甚至使系統(tǒng)出現(xiàn)震蕩。微分(D)控制可以減小超調(diào)量,克服震蕩,使系統(tǒng)的穩(wěn)定性提高。同時加快系統(tǒng)的動態(tài)響應(yīng)速度,減小調(diào)整時間,從而改善系統(tǒng)的動態(tài)性能??刂频哪繕?biāo)就是:反應(yīng)速度盡可能快,超調(diào)量盡可能小,穩(wěn)態(tài)誤差趨近于零。5.A/D轉(zhuǎn)換子程序 先送地址鎖存允許信號ALE一個上升沿,是A.B.C地址狀態(tài)送入地址鎖存器中,然后送START一個上升沿是內(nèi)部寄存器清0,再給其一個下降沿,開始進行A/D轉(zhuǎn)換。之后判斷轉(zhuǎn)換結(jié)束狀態(tài)信號EOC是否為1,為0則繼續(xù)等待轉(zhuǎn)換,為1則將轉(zhuǎn)換好的數(shù)字量經(jīng)ADC0808的8個數(shù)據(jù)輸出端D0D7送到AT89S51的P0口。轉(zhuǎn)換流程圖如圖4-3所示。 圖4-3 A/D轉(zhuǎn)換子程序流程圖6.鍵盤處理子程序 按鍵處理子程序流程圖如圖4-4所示。7.溫度標(biāo)定轉(zhuǎn)換模塊 控制系統(tǒng)在讀入被測模擬信號并轉(zhuǎn)換成數(shù)字量后,需要轉(zhuǎn)換成人們所熟悉的物理量,這種轉(zhuǎn)換就是標(biāo)度變換。線性標(biāo)度變換公式為: Y=(Ymax-Ymin)(X-Nmin)/(Nmax-Nmin)+Ymin式中,Y為參數(shù)測量值;Ymax為測量范圍最大值;Ymin為測量范圍最小值;Nmin為對應(yīng)的A/D轉(zhuǎn)換值;Nmin為Ymin對應(yīng)的A/D轉(zhuǎn)換值;X為測量值Y對應(yīng)的A/D轉(zhuǎn)換值。 本系統(tǒng)中,Ymin=0,Ymax=100,Nmin=0,Nmax=255,則 Y=(100-0)(X-0)/(255-0)+0=a1X+a0式中,a1=0.39,a0=0。由于x的系數(shù)為小數(shù),在單片機中編制像0.39這樣的小數(shù)的乘法程序很難實現(xiàn),如果將其取近似值0.4,則乘以最大A/D轉(zhuǎn)換值后,會產(chǎn)生0.01255=2.55的誤差。所以設(shè)線性系數(shù)為a1,最終轉(zhuǎn)化的結(jié)果為100,通過a1=100256/255=100.39可確定系數(shù)。是四舍五入取100時,顯示最高只能顯示99,所以選用101。 8.顯示子程序 顯示模塊的功能為:使第1個數(shù)碼管顯示A/D轉(zhuǎn)換數(shù)據(jù)采集的采樣值,而第2個數(shù)碼管顯示由按鍵輸入的設(shè)定值,用于顯示對系統(tǒng)的溫度設(shè)定,在整個系統(tǒng)進行測控的過程中,兩個數(shù)碼管同時顯示,顯示程序中采樣值顯示采用了常規(guī)的顯示程序,不再贅述。這里只談編寫顯示程序中鍵盤顯示時主要注意的一點。由于最后生成的設(shè)定值是有十位或個位的加一和十位或個位的減一鍵輸入,須嚴(yán)格區(qū)分才可以編制其顯示程序,此處采用的方法是將個位的加一、減一鍵輸入的值存放在28H,而十位的加一、減一鍵輸入的值存放在34H,然后驅(qū)動不同的位碼即可正常顯示。流程圖如圖4-5所示。圖4-4 按鍵處理子程序流程圖圖4-5 顯示處理子程序流程圖 4.3 源程序設(shè)計 ORG 0000HJMP STARTORG 0040HSTART:LCALL ZHUANHUAN SETB P3.0 SETB P3.1 SETB P3.2 SETB P2.0 SETB P2.1 SETB P2.2 LCALL DELAY1 MOV 34H,#05 MOV 35H,#05 MOV 28H,#05 MOV 29H,#05LLL:LCALL ZHUANHUAN MOV 31H,A LCALL DELAY4 LCALL ZHUANHUAN MOV 32H,A LCALL DELAY4 LCALL ZHUANHUAN MOV 33H,A LCALL FILTER LCALL CHNTER LCALL SHOW JB P2.4,KONGZHI1KEY0: JB P2.4,LLL LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4KEY1: JB P2.5,KEY51 LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4KEY2: JB P2.7,KEY3 LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW DEC 34H MOV A,34H MOV 35H,34H CJNE A,#0FFH,KEY22 MOV 34H,#05H LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4KEY22: LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW AJMP KEY2KONGZHI1: LJMP KONGZHIKEY51: LJMP KEY5KEY3: JB P2.6,KEY02 LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4 INC 35H MOV A,35H MOV 34H,35H LCALL DELAY4 CJNE A,#0AH,KEY33 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4 MOV 35H,#04 LCALL DELAY4KEY33: LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW AJMP KEY3KEY02: LJMP KEY0KEY5: JB P2.7,KEY6 LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW DEC 28H MOV A,28H MOV 29H,28H CJNE A,#0FFH,KEY55 MOV 28H,#05 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4KEY55: LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW AJMP KEY5KEY6: JB P2.6,KEY01 LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL SHOW LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4 INC 29H MOV A,29H MOV 28H,29H LCALL DELAY4 CJNE A,#9,KEY66 MOV 29H,#04 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4 KEY66: LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW AJMP KEY6 KEY01: LJMP KEY0 KONGZHI: LCALL ZHUANHUAN LCALL CHNTER LCALL WUCHA MOV A,2EH MOV 39H,A LCALL MULT1 LCALL DELAY1 LCALL DELAY1 LCALL SHOW LCALL DELAY1 LCALL DELAY1 LCALL ZHUANHUAN LCALL FILTER LCALL CHNTER LCALL WUCHA MOV 3AH,A MOV A,39H MOV B,3AH CLR C SUBB A,B MOV 3BH,A LCALL MULT2 ZZP:MOV A,37H XRL A,#00H JB ACC.7,ZZP1 LJMP ZZP2ZZP1:MOV A,37H CJNE A,#0FFH,ZZP3 LJMP ZZP4ZZP2:MOV A,37H CJNE A,#03H,ZZP5 LJMP ZZP6ZZP3:JC ZZP7 LJMP ZZP37ZZP4:MOV A,36H XRL A,#00H JB ACC.7,ZZP8LJMP ZZP9ZZP5:JC ZZP10 LJMP ZZPP5ZZPP5:MOV A,36H XRL A,#00H JB ACC.7,ZZPP51 LJMP WU5ZZPP51:MOV A,36H CJNE A,#0FEH,ZZPP52 LJMP WU5ZZPP52:JC ZZPP521LJMP WU5ZZPP521:LJMP WU0ZZP6:MOV A,36HXRL A,#00HJB ACC.7,ZZP11LJMP WU5ZZP7:MOV A,37H CJNE A,#0FEH,ZZP12 LJMP ZZP13ZZP8:MOV A,36H CJNE A,#0FBH,ZZP14 LJMP WU4ZZP9:MOV A,36H CJNE A,#00H,ZZP15 LJMP WU1ZZP10:MOV A,37H CJNE A,#02H,ZZP16 LJMP ZZP17ZZP11:MOV A,36H CJNE A,#0F8H,ZZP18 LJMP WU1ZZP12:JC ZZP19 LJMP ZZP4ZZP13:MOV A,36H XRL A,#00H JB ACC.7,ZZP20LJMP ZZP21ZZP14:JC zzp141 LJMP ZZP22zzp141:LJMP WU4ZZP15:JC ZZP151 LJMP WU0ZZP151:LJMP WU1ZZP16:JC ZZP23 LJMP ZZP17ZZP17:MOV A,36H XRL A,#00H JB ACC.7,ZZP24 LJMP ZZPP17ZZPP17:MOV A,36H CJNE A,#01H,ZZPP171 LJMP WU5ZZPP171:JC ZZPP1711LJMP WU5ZZPP1711:LJMP WU0ZZP18:JC ZZP181 LJMP WU0ZZP181:LJMP WU1ZZP19:MOV A,37H CJNE A,#0FDH,ZZP25 LJMP ZZP26ZZP20:MOV A,36H CJNE A,#0FBH,ZZP27 LJMP WU4ZZP21:MOV A,36H CJNE A,#00H,ZZP28 LJMP WU2ZZP22:MOV A,36H CJNE A,#0FFH,ZZP29 LJMP WU2ZZP23:MOV A,37H CJNE A,#01H,ZZP30 LJMP ZZP31ZZP24:MOV A,36H CJNE A,#0F7H,ZZP32 LJMP WU1ZZP25:JC ZZP33 LJMP ZZP13ZZP26:MOV A,36H XRL A,#00H JB ACC.7,ZZP34LJMP ZZP35ZZP27:JC ZZP271 LJMP WU3ZZP271:LJMP WU4ZZP28:MOV A,36H CJNE A,#03H,ZZP36 LJMP WU0ZZP29:JC ZZP291 LJMP WU1ZZP291:LJMP WU3ZZP30:JNC ZZP301 LJMP ZZP37ZZP301:LJMP ZZP31ZZP31:MOV A,36H XRL A,#00H JB ACC.7,ZZP38LJMP ZZP39ZZP32:JC ZZP321 LJMP ZZP40ZZP321:LJMP WU2ZZP33:MOV A,36H XRL A,#00H JB ACC.7,ZZP331 LJMP ZZP41ZZP331:LJMP WU4ZZP34:MOV A,36H CJNE A,#0FDH,ZZP42 LJMP WU4ZZP35:MOV A,36H CJNE A,#00H,ZZP43 LJMP WU2ZZP36:JC ZZP361 LJMP WU0ZZP361:LJMP WU1ZZP37:MOV A,36H XRL A,#00H JB ACC.7,ZZP44 LJMP ZZP39ZZP38:MOV A,36H CJNE A,#0FBH,ZZP45 LJMP WU3ZZP39:MOV A,36H CJNE A,#03H,ZZPP39 LJMP WU5ZZPP39:JC ZZP391LJMP WU5ZZP391:LJMP WU0ZZP40:MOV A,36H CJNE A,#0FFH,ZZP46 LJMP WU0ZZP41:MOV A,36HCJNE A,#00H,ZZP47 LJMP WU3ZZP42:JC ZZP421 LJMP WU3ZZP421:LJMP WU4ZZP43:MOV A,36H CJNE A,#05H,ZZP48 LJMP WU0ZZP44:MOV A,36H CJNE A,#0FBH,ZZP49 LJMP WU4ZZP45:JC ZZP451 LJMP ZZP50ZZP451:LJMP WU3ZZP46:JC ZZP461 LJMP WU0ZZP461:LJMP WU1ZZP47:MOV A,36H CJNE A,#00H,ZZP51 LJMPWU3ZZP48:JC ZZP481 LJMP WU0ZZP481:LJMP WU1ZZP49:JC ZZP491 LJMP ZZP52ZZP491:LJMP WU4ZZP50:MOV A,36H CJNE A,#0FEH,ZZP53 LJMP WU1ZZP51:MOV A,36H CJNE A,#01H,ZZP54 LJMP WU2ZZP52:MOV A,36H CJNE A,#0FEH,ZZP55 LJMP WU2ZZP53:JC ZZP531 LJMP WU0ZZP531:LJMP WU2ZZP54:JC ZZP541 LJMP ZZP56ZZP541:LJMP WU2ZZP55:JC ZZP551 LCALLWU1ZZP551:LJMP WU3ZZP56:MOV A,36H CJNE A,#05H,ZZP57 LJMP WU0ZZP57:JC ZZP571 LJMP WU0ZZP571:LJMP WU1WU0:MOV T- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 PID 控制 算法 溫度 控制系統(tǒng) 設(shè)計 仿真
鏈接地址:http://m.appdesigncorp.com/p-6682151.html