基于PID控制算法的溫度控制系統(tǒng)的設計與仿真.doc
《基于PID控制算法的溫度控制系統(tǒng)的設計與仿真.doc》由會員分享,可在線閱讀,更多相關《基于PID控制算法的溫度控制系統(tǒng)的設計與仿真.doc(49頁珍藏版)》請在裝配圖網(wǎng)上搜索。
摘 要 本設計是一種溫度控制系統(tǒng),溫度控制在工業(yè)生產(chǎn)和科學研究中具有重要意義。其控制系統(tǒng)屬于一階純滯后環(huán)節(jié),具有大慣性、純滯后、非線性等特點,導致傳統(tǒng)控制方式超調(diào)大、調(diào)節(jié)時間長、控制精度低。采用單片機進行爐溫控制,具有電路設計簡單、精度高、控制效果好等優(yōu)點,對提高生產(chǎn)效率、促進科技進步等具有重要的現(xiàn)實意義。PID控制法最為常見,控制輸出采用PWM波觸發(fā)可控硅來控制加熱通斷。使系統(tǒng)具有較高的測量精度和控制精度。單片機控制部分采用AT89S51單片機為核心,采用Keil軟件進行編程,同時采用分塊的模式,對整個系統(tǒng)的硬件設計進行分析,分別給出了系統(tǒng)的總體框圖、溫度檢測調(diào)理電路、A/D轉換接口電路,按鍵輸入電路以及顯示電路,并對相應電路進行相關的闡述軟件采用PID算法進行了建模和編程,在Proteus環(huá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緒論 1 2設計方案 2 3系統(tǒng)硬件仿真電路 3 3.1 溫度測量調(diào)理電路 3 3.2 A/D轉換電路 4 3.3 按鍵輸入電路 5 3.4 數(shù)碼管顯示電路 6 3.5 溫度控制電路 7 4 程序設計 9 4.1 程序整體設計 9 4.2 子程序設計 11 4.3 源程序設計 19 5 軟件調(diào)試與運行結果 41 結論 42 致謝 43 參考文獻 44 1緒論 現(xiàn)代工業(yè)生產(chǎn)過程中,用于熱處理的加熱爐,需要消耗大量的電能,而且溫度控制是純滯后的一階大慣性環(huán)節(jié)。現(xiàn)有企業(yè)多采用常規(guī)儀表加接觸器的斷續(xù)控制,隨著科技進步和生產(chǎn)的發(fā)展,這類設備對溫度的控制要求越來越高,除控溫精度外,對溫度上升速度及下降速度也提出了可控要求,顯而易見常規(guī)控制難于滿足這些工藝要求。隨著微電子技術的發(fā)展,采用功能強、體積小、價格低的智能化溫度控制裝置控制加熱爐已成為現(xiàn)實。 采用單片機來對溫度進行控制不僅具有控制方便、簡單靈活性等優(yōu)點,而且可以大幅度提高被控溫度的技術指標,從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量,比過去單純采用電子線路進行PID調(diào)節(jié)的控制效果要好的多。 微機控制系統(tǒng)的快速計算、靈活多樣的邏輯判斷和高效的信息加工能力使自動控制進入了更高一級的領域,提高了生產(chǎn)過程的自動化程度,減少了人工干預,并不斷地完善和滿足工農(nóng)業(yè)生產(chǎn)和國防科技日益增長的需要。微機控制系統(tǒng)由于具有成本低、體積小、功耗小、可靠性高和使用靈活等特點,因而廣泛的應用于工農(nóng)業(yè)生產(chǎn)、交通運輸、國防建設和空間技術等各個領域。其控制對象已從單一的工廠流程擴展到企業(yè)生產(chǎn)過程的管理和控制。隨著微機和單片機的推廣使用,實現(xiàn)信息自動化與過程控制相結合的分級分布式計算機控制,使計算機控制技術的水平發(fā)展到一個嶄新的階段。 現(xiàn)在,許多常規(guī)的控制儀表和調(diào)節(jié)器已經(jīng)為計算機所取代。計算機不斷地監(jiān)視整個生產(chǎn)過程,對生產(chǎn)中的各個參數(shù)進行采樣,迅速進行復雜的數(shù)據(jù)處理,打印和顯示工藝過程的統(tǒng)計數(shù)字和參數(shù),并發(fā)出各種控制命令。 溫度控制是工業(yè)生產(chǎn)過程中經(jīng)常遇到的過程控制,有些工藝過程對其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量,因而設計一種較為理想的溫度控制系統(tǒng)是非常有價值的。 2設計方案 在溫度測量控制系統(tǒng)中,實際溫度值由PT100恒流工作調(diào)理電路進行測量。為了克服PT100線性度不好的缺點,在信號調(diào)理電路中加入負反饋非線性校正網(wǎng)絡;調(diào)理電路的輸出電壓經(jīng)ADC0808轉換后送入單片機AT89S51;對采樣數(shù)據(jù)進行濾波及標定處理后,由3位7段數(shù)碼管顯示。輸入的設定值由4位獨立按鍵電路進行設定,可分別對設定值的十位和個位進行加1、減1操作。設定值送入單片機后,由另外一組3位7段數(shù)碼管顯示。數(shù)碼管的段碼由74HC05驅(qū)動,位碼由三極管2N2222A驅(qū)動。為了使兩組數(shù)碼管實時顯示,對兩組數(shù)碼管進行動態(tài)掃描。整體的電路原理框圖如圖1-1所示。 圖1-1整體電路原理框圖 系統(tǒng)采用PID閉環(huán)控制方案。如圖1-2所示,將預置初值與溫度傳感器反饋信號比較得到偏差(e)進行PID運算處理得到控制量(u),通過此量來控制加熱器的加熱時間,從而控制加熱功率。由于水本身具有很大的熱慣性,所以必須對水溫的變化趨勢作出預測,并且根據(jù)需要及時反方向抑制,以防止出現(xiàn)較大的超調(diào)量的波動。在PID控制中,積分環(huán)節(jié)(I)具有很強的滯后效應,而微分環(huán)節(jié)(D)具有預見性,所以該方案最終采用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)理電路,鉑電阻選用標稱值為100Ω的PT100作為溫度傳感器。A1、A2、A3采用低漂移運放OP07C,由于有電流經(jīng)PT100傳感器,所以當溫度為0℃時,在PT100傳感器上有電壓降,這個電壓為PT100傳感器的偏置電壓,是運放A1輸出電壓的一部分,使恒流工作調(diào)理電路的輸出實際不為零。所以需要對這個偏置電壓調(diào)零,R3為調(diào)零電阻,其作用為當溫度為0℃時,將恒流工作調(diào)理電路的輸出調(diào)到零。又因為PT100的電阻特性為非線性,PT100在0到100℃變化范圍內(nèi)非線性誤差為0.4%(0.4℃),由于本系統(tǒng)無小數(shù)顯示,0.4℃的誤差本身不會對A/D量化和數(shù)碼管顯示造成影響,但由于軟件編制中,對標度變化程序中的變換系數(shù)做了近似處理,使得非線性誤差接近0.79%(0.79℃),就有可能對A/D量化和數(shù)碼管顯示造成影響,所以加進了線性化電路,運放A3及電阻R1、R4和R6一同構成了負反饋非線性校正網(wǎng)絡。R5用于調(diào)整運放A2的增益。 電路的調(diào)整方法如下(用普通電阻代替PT100進行調(diào)整): (1) 接入相當于0℃的100Ω的電阻,用于R3調(diào)零。 (2) 接入相當于50℃的119.70Ω的電阻,用于R5調(diào)整增益。 (3) 接入相當于100℃的139.10Ω的電阻,用于R1或R4調(diào)整線性。 反復調(diào)整多次,在0到100℃溫度范圍內(nèi)適宜為止。 以溫度值為橫坐標,電壓值為縱坐標,由表3-1分析非線性誤差可知:在50℃時,存在最大偏差為0.005℃,故非線性校正后非線性誤差變?yōu)?.1%(0.1℃),A/D量化及數(shù)碼管顯示不會產(chǎn)生誤操作。 表3-1 顯示對照表 理想溫度值 0 10 20 30 40 50 60 70 80 90 100 對應電阻值 100 103.9 107.9 111.8 115.7 119.7 123.9 127.4 131.3 135.2 139.1 實際輸出電壓 0.002 0.502 1.004 1.502 2.004 2.505 3.001 3.502 4.001 4.498 4.996 顯示溫度值 0 10 20 30 40 50 60 70 80 90 100 注釋1;溫度單位/℃;電阻值單位/Ω;電壓單位/V。 3.2 A/D轉換電路 本系統(tǒng)采用5V的電壓源,用PT100電阻傳感器組成的信號調(diào)理電路作為信號的輸入裝置,當PT100傳感器置于溫度場時,調(diào)理電路將根據(jù)PT100的阻值輸出相應的電壓值。將該輸出電壓送到ADC0808的模擬量輸入通道IN0,經(jīng)ADC0808進行模數(shù)轉換,將標準的模擬信號轉換為等價的數(shù)字信號。本設計選用IN0作為模擬量輸入通道,則將ADC0808的A、B、C三條地址線均置為低電平。轉換啟動信號START接到AT89S51的P2.0口,轉換結束狀態(tài)信號EOC接P3.7口,輸出允許信號OE接P3.6口,地址鎖存允許信號ALE接P3.3口,由于ADC0808內(nèi)部沒有時鐘電路,所以用AT89S51的ALE經(jīng)二分頻接ADC0808的CLK端,VREF-接地,VREF+接+5V電壓。ADC0808的轉換結果輸出到AT89S51的P0.0到P0.7口,作為AT89S51的輸入信號。A/D轉換接口電路如圖3-2所示。 圖3-2 A/D轉換接口電路 3.3 按鍵輸入電路 本系統(tǒng)采用4個按鍵搭建鍵盤電路,如圖3-3所示。第一個按鍵用來判斷是轉入控制處理程序運行,還是轉入鍵盤處理子程序運行;若未按下則轉入控制處理子程序運行,按下則轉入鍵盤處理子程序運行;若第一個按鍵按下,則第二個按鍵開始起作用,用第二個按鍵來判斷是十位進行加減操作。若第二個按鍵未按下,轉十位進行加減操作,否則轉個位進行加減操作;第三個按鍵為減一操作,第四個按鍵為加一操作。為了方便按鍵操作,將個位和十位的設定值均設置為5,如果加一操作結果等于11,給加一單元重新賦值5,如果減一操作結果等于0FFH,給減一單元重新賦值5。這樣考慮最壞情況,即用鍵盤設置離初始設定值最遠的值,第三個按鍵最多按5次,第四個按鍵最多按5次。從而大大減少了按鍵次數(shù),且更方便地給出設定值。第一個鍵和第二個鍵的加入,也充分考慮了總程序的整體調(diào)度。 圖3-3 按鍵輸入電路 3.4 數(shù)碼管顯示電路 顯示電路采用兩個4位LED顯示數(shù)碼管,共陰極接法。第一個數(shù)碼管顯示A/D轉換數(shù)據(jù)采集的采樣值,選用3位顯示采樣值,顯示范圍為0到100;第二個數(shù)碼管顯示由鍵盤輸入的設定值,用于顯示對系統(tǒng)的溫度設定,也選用3位顯示設定值,顯示范圍為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ù)碼管位控線,其余用于驅(qū)動顯示A/D轉換數(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ù)碼管。顯示電路如圖3-4所示。 圖3-4 顯示電路 3.5 溫度控制電路 系統(tǒng)的電阻絲和風扇均采用如圖3-5所示的電路形式。此電路采用晶體管驅(qū)動固態(tài)繼電器。當P3.4為低電平,繼電器RL1吸合;當P3.4或P3.5為高電平時,繼電器RL1釋放。采用這種控制邏輯可以使繼電器在上電復位或單片機復位時不吸合。繼電器由晶體管2N2222A驅(qū)動,它可以提供所需的驅(qū)動電流。 圖3-5 繼電器控制電路 PT100溫度測控系統(tǒng)的完整電路如圖3-6所示。 圖3-6 溫度測控系統(tǒng)電路圖 4 程序設計 4.1 程序整體設計 程序的控制思想:設置目標溫度后,系統(tǒng)采樣水溫,并通過預設溫度、當前溫度、歷史偏差等進行PID運算產(chǎn)生fout輸出參數(shù),通過該參數(shù)控制加熱時間,從而調(diào)節(jié)加熱器的平均功率,實現(xiàn)系統(tǒng)的PID控制。整體功能通過主程序和中斷服務程序配合實現(xiàn)。 主程序流程:系統(tǒng)首先初始化I/O、定時器,之后進入主循環(huán),進行溫度采樣和相關處理。在系統(tǒng)運行過程中通過按鍵重新設置目標溫度值。 \ PT100溫度測控系統(tǒng)的主程序流程圖如圖4-1所示。 圖4-1 溫度測控系統(tǒng)主程序 4.2 子程序設計 1.PID控制的實現(xiàn) (1)PID簡介。PID(Proportional Integral Derivative)控制是控制工程中技術成熟、應用廣泛的一種控制策略,經(jīng)過長期的工程實踐,已形成了一套完整的控制算法和典型的結構。它不僅適用于數(shù)學模型已知的控制系統(tǒng),而且對于大多數(shù)數(shù)學模型難以確定的工業(yè)過程也可以應用,在眾多工業(yè)過程控制中取得了滿意的應用效果。 (2)PID工作原理。由于來自外界的各種擾動不斷產(chǎn)生,要想達到現(xiàn)場控制對象值保持恒定的目的控制作用就必須不斷地進行。若擾動出現(xiàn)使得現(xiàn)場控制對象(以下簡稱被控參數(shù))發(fā)生變化,現(xiàn)場檢測元件就會將這種變化采集后經(jīng)變送器送到PID控制器的輸入端,并與其給定值(以下簡稱SP值)進行比較得到偏差值(以下簡稱e值),調(diào)節(jié)器按此偏差并以預先設定的整定參數(shù)控制規(guī)律發(fā)出控制信號,去改變調(diào)節(jié)器的開度,使調(diào)節(jié)器的開度增加或減小,從而使現(xiàn)場控制對象值發(fā)生改變,并趨向于給定值(SP值),以達到控制的目的,如圖4-2所示。其實PID的實質(zhì)就是對偏差(e)值進行比例、積分、微分運算,根據(jù)運算結果控制執(zhí)行部件的過程。 圖4-2 模擬PID控制系統(tǒng)原理圖 PID控制器的控制規(guī)律可以描述為: (4-1) 比例(P)控制能迅速反應誤差,從而減小穩(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)響應速度,減小調(diào)整時間,從而改善系統(tǒng)的動態(tài)性能。根據(jù)不同被控對象的控制特性,又可以分為P、PI、PD、PID等不同的控制模型。 (3)數(shù)字PID的實現(xiàn)。在連續(xù)時間控制系統(tǒng)(模擬PID控制系統(tǒng))中,PID控制器的應用非常廣泛。其設計技術成熟,長期以來形成了典型的結構,參數(shù)整定方便,結構更改靈活,能滿足一般的控制要求。隨著計算機的快速發(fā)展,人們將計算機引入到PID控制領域,也就出現(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)給出了控制量的全部大小,所以稱為全量式或位置式控制。如果計算機只對相鄰的兩次做計算,只考慮在前一次基礎上計算機輸出量的大小變化,而不是全部輸出信息的計算,這種控制叫做增量式PID控制算法,其實質(zhì)就是求的大小。而,所示將式(4-4)作自減變換有: (4-5) 式中: 2.溫度控制PID算法設計 本系統(tǒng)利用上面所介紹的位置式PID算法,將溫度傳感器采樣輸入作為當前輸入,與設定值進行相減得到偏差ek,然后再對其進行PID運算產(chǎn)生輸出結果fout,最后讓fout控制繼電器的時間進而控制加熱器。為了方便PID運算,首先建立一個PID的結構體數(shù)據(jù)類型。該數(shù)據(jù)類型用于保護PID運算所需要的P、I、D系數(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(積分項)具有非常明顯的延遲效應,不能保留,所以必須把積分項去掉。相反,D(微分項)有很強的預見性,能夠加快反應速度,抑制超調(diào)量,因此微分作用應該適當加強才能達到較佳的控制效果,系統(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)生結果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計算結果比較大說明離目標溫度相差較大,則加熱時間比較長;如果計算結果比較小,說明離目標溫度相差較小,加熱時間相對較短。 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)響應速度,減小調(diào)整時間,從而改善系統(tǒng)的動態(tài)性能??刂频哪繕司褪牵悍磻俣缺M可能快,超調(diào)量盡可能小,穩(wěn)態(tài)誤差趨近于零。 5.A/D轉換子程序 先送地址鎖存允許信號ALE一個上升沿,是A.B.C地址狀態(tài)送入地址鎖存器中,然后送START一個上升沿是內(nèi)部寄存器清0,再給其一個下降沿,開始進行A/D轉換。之后判斷轉換結束狀態(tài)信號EOC是否為1,為0則繼續(xù)等待轉換,為1則將轉換好的數(shù)字量經(jīng)ADC0808的8個數(shù)據(jù)輸出端D0~D7送到AT89S51的P0口。轉換流程圖如圖4-3所示。 圖4-3 A/D轉換子程序流程圖 6.鍵盤處理子程序 按鍵處理子程序流程圖如圖4-4所示。 7.溫度標定轉換模塊 控制系統(tǒng)在讀入被測模擬信號并轉換成數(shù)字量后,需要轉換成人們所熟悉的物理量,這種轉換就是標度變換。線性標度變換公式為: Y=(Ymax-Ymin)(X-Nmin)/(Nmax-Nmin)+Ymin 式中,Y為參數(shù)測量值;Ymax為測量范圍最大值;Ymin為測量范圍最小值;Nmin為對應的A/D轉換值;Nmin為Ymin對應的A/D轉換值;X為測量值Y對應的A/D轉換值。 本系統(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轉換值后,會產(chǎn)生0.01255=2.55的誤差。所以設線性系數(shù)為a1,最終轉化的結果為100,通過a1=100256/255=100.39可確定系數(shù)。是四舍五入取100時,顯示最高只能顯示99,所以選用101。 8.顯示子程序 顯示模塊的功能為:使第1個數(shù)碼管顯示A/D轉換數(shù)據(jù)采集的采樣值,而第2個數(shù)碼管顯示由按鍵輸入的設定值,用于顯示對系統(tǒng)的溫度設定,在整個系統(tǒng)進行測控的過程中,兩個數(shù)碼管同時顯示,顯示程序中采樣值顯示采用了常規(guī)的顯示程序,不再贅述。這里只談編寫顯示程序中鍵盤顯示時主要注意的一點。由于最后生成的設定值是有十位或個位的加一和十位或個位的減一鍵輸入,須嚴格區(qū)分才可以編制其顯示程序,此處采用的方法是將個位的加一、減一鍵輸入的值存放在28H,而十位的加一、減一鍵輸入的值存放在34H,然后驅(qū)動不同的位碼即可正常顯示。流程圖如圖4-5所示。 圖4-4 按鍵處理子程序流程圖 圖4-5 顯示處理子程序流程圖 4.3 源程序設計 ORG 0000H JMP START ORG 0040H START: 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,#05 LLL: 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,KONGZHI1 KEY0: JB P2.4,LLL LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4 KEY1: JB P2.5,KEY51 LCALL DELAY4 LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW LCALL DELAY4 KEY2: 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 DELAY4 KEY22: LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW AJMP KEY2 KONGZHI1: LJMP KONGZHI KEY51: LJMP KEY5 KEY3: 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 DELAY4 KEY33: LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW AJMP KEY3 KEY02: LJMP KEY0 KEY5: 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 DELAY4 KEY55: LCALL ZHUANHUAN LCALL CHNTER LCALL SHOW AJMP KEY5 KEY6: 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 ZZP2 ZZP1: MOV A,37H CJNE A,#0FFH,ZZP3 LJMP ZZP4 ZZP2: MOV A,37H CJNE A,#03H,ZZP5 LJMP ZZP6 ZZP3: JC ZZP7 LJMP ZZP37 ZZP4: MOV A,36H XRL A,#00H JB ACC.7,ZZP8 LJMP ZZP9 ZZP5: JC ZZP10 LJMP ZZPP5 ZZPP5: MOV A,36H XRL A,#00H JB ACC.7,ZZPP51 LJMP WU5 ZZPP51: MOV A,36H CJNE A,#0FEH,ZZPP52 LJMP WU5 ZZPP52: JC ZZPP521 LJMP WU5 ZZPP521: LJMP WU0 ZZP6: MOV A,36H XRL A,#00H JB ACC.7,ZZP11 LJMP WU5 ZZP7: MOV A,37H CJNE A,#0FEH,ZZP12 LJMP ZZP13 ZZP8: MOV A,36H CJNE A,#0FBH,ZZP14 LJMP WU4 ZZP9: MOV A,36H CJNE A,#00H,ZZP15 LJMP WU1 ZZP10: MOV A,37H CJNE A,#02H,ZZP16 LJMP ZZP17 ZZP11: MOV A,36H CJNE A,#0F8H,ZZP18 LJMP WU1 ZZP12: JC ZZP19 LJMP ZZP4 ZZP13: MOV A,36H XRL A,#00H JB ACC.7,ZZP20 LJMP ZZP21 ZZP14: JC zzp141 LJMP ZZP22 zzp141: LJMP WU4 ZZP15: JC ZZP151 LJMP WU0 ZZP151: LJMP WU1 ZZP16: JC ZZP23 LJMP ZZP17 ZZP17: MOV A,36H XRL A,#00H JB ACC.7,ZZP24 LJMP ZZPP17 ZZPP17: MOV A,36H CJNE A,#01H,ZZPP171 LJMP WU5 ZZPP171: JC ZZPP1711 LJMP WU5 ZZPP1711: LJMP WU0 ZZP18: JC ZZP181 LJMP WU0 ZZP181: LJMP WU1 ZZP19: MOV A,37H CJNE A,#0FDH,ZZP25 LJMP ZZP26 ZZP20: MOV A,36H CJNE A,#0FBH,ZZP27 LJMP WU4 ZZP21: MOV A,36H CJNE A,#00H,ZZP28 LJMP WU2 ZZP22: MOV A,36H CJNE A,#0FFH,ZZP29 LJMP WU2 ZZP23: MOV A,37H CJNE A,#01H,ZZP30 LJMP ZZP31 ZZP24: MOV A,36H CJNE A,#0F7H,ZZP32 LJMP WU1 ZZP25: JC ZZP33 LJMP ZZP13 ZZP26: MOV A,36H XRL A,#00H JB ACC.7,ZZP34 LJMP ZZP35 ZZP27: JC ZZP271 LJMP WU3 ZZP271: LJMP WU4 ZZP28: MOV A,36H CJNE A,#03H,ZZP36 LJMP WU0 ZZP29: JC ZZP291 LJMP WU1 ZZP291: LJMP WU3 ZZP30: JNC ZZP301 LJMP ZZP37 ZZP301: LJMP ZZP31 ZZP31: MOV A,36H XRL A,#00H JB ACC.7,ZZP38 LJMP ZZP39 ZZP32: JC ZZP321 LJMP ZZP40 ZZP321: LJMP WU2 ZZP33: MOV A,36H XRL A,#00H JB ACC.7,ZZP331 LJMP ZZP41 ZZP331: LJMP WU4 ZZP34: MOV A,36H CJNE A,#0FDH,ZZP42 LJMP WU4 ZZP35: MOV A,36H CJNE A,#00H,ZZP43 LJMP WU2 ZZP36: JC ZZP361 LJMP WU0 ZZP361: LJMP WU1 ZZP37: MOV A,36H XRL A,#00H JB ACC.7,ZZP44 LJMP ZZP39 ZZP38: MOV A,36H CJNE A,#0FBH,ZZP45 LJMP WU3 ZZP39: MOV A,36H CJNE A,#03H,ZZPP39 LJMP WU5 ZZPP39: JC ZZP391 LJMP WU5 ZZP391: LJMP WU0 ZZP40: MOV A,36H CJNE A,#0FFH,ZZP46 LJMP WU0 ZZP41: MOV A,36H CJNE A,#00H,ZZP47 LJMP WU3 ZZP42: JC ZZP421 LJMP WU3 ZZP421: LJMP WU4 ZZP43: MOV A,36H CJNE A,#05H,ZZP48 LJMP WU0 ZZP44: MOV A,36H CJNE A,#0FBH,ZZP49 LJMP WU4 ZZP45: JC ZZP451 LJMP ZZP50 ZZP451: LJMP WU3 ZZP46: JC ZZP461 LJMP WU0 ZZP461: LJMP WU1 ZZP47: MOV A,36H CJNE A,#00H,ZZP51 LJMP WU3 ZZP48: JC ZZP481 LJMP WU0 ZZP481: LJMP WU1 ZZP49: JC ZZP491 LJMP ZZP52 ZZP491: LJMP WU4 ZZP50: MOV A,36H CJNE A,#0FEH,ZZP53 LJMP WU1 ZZP51: MOV A,36H CJNE A,#01H,ZZP54 LJMP WU2 ZZP52: MOV A,36H CJNE A,#0FEH,ZZP55 LJMP WU2 ZZP53: JC ZZP531 LJMP WU0 ZZP531: LJMP WU2 ZZP54: JC ZZP541 LJMP ZZP56 ZZP541: LJMP WU2 ZZP55: JC ZZP551 LCALL WU1 ZZP551: LJMP WU3 ZZP56: MOV A,36H CJNE A,#05H,ZZP57 LJMP WU0 ZZP57: JC ZZP571 LJMP WU0 ZZP571: LJMP WU1 WU0: MOV T- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 基于 PID 控制 算法 溫度 控制系統(tǒng) 設計 仿真
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://ioszen.com/p-6682151.html