基于PID控制算法的溫度控制系統(tǒng)的設計與仿真_第1頁
基于PID控制算法的溫度控制系統(tǒng)的設計與仿真_第2頁
基于PID控制算法的溫度控制系統(tǒng)的設計與仿真_第3頁
基于PID控制算法的溫度控制系統(tǒng)的設計與仿真_第4頁
基于PID控制算法的溫度控制系統(tǒng)的設計與仿真_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要本設計是一種溫度控制系統(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轉(zhuǎn)換接口電路,按鍵

2、輸入電路以及顯示電路,并對相應電路進行相關的闡述軟件采用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 sy

3、stem 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 effi

4、ciency, 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 mi

5、crocomputer 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 con

6、version 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;P

7、roteus目 錄 1緒論12設計方案23系統(tǒng)硬件仿真電路33.1 溫度測量調(diào)理電路33.2 A/D轉(zhuǎn)換電路43.3 按鍵輸入電路53.4 數(shù)碼管顯示電路63.5 溫度控制電路74 程序設計94.1 程序整體設計94.2 子程序設計114.3 源程序設計195 軟件調(diào)試與運行結(jié)果41結(jié)論42致謝43參考文獻44 1緒論 現(xiàn)代工業(yè)生產(chǎn)過程中,用于熱處理的加熱爐,需要消耗大量的電能,而且溫度控制是純滯后的一階大慣性環(huán)節(jié)。現(xiàn)有企業(yè)多采用常規(guī)儀表加接觸器的斷續(xù)控制,隨著科技進步和生產(chǎn)的發(fā)展,這類設備對溫度的控制要求越來越高,除控溫精度外,對溫度上升速度及下降速度也提出了可控要求,顯而易見常規(guī)控制難于滿

8、足這些工藝要求。隨著微電子技術的發(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)、交通運輸、

9、國防建設和空間技術等各個領域。其控制對象已從單一的工廠流程擴展到企業(yè)生產(chǎn)過程的管理和控制。隨著微機和單片機的推廣使用,實現(xiàn)信息自動化與過程控制相結(jié)合的分級分布式計算機控制,使計算機控制技術的水平發(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)中,實際溫度值

10、由PT100恒流工作調(diào)理電路進行測量。為了克服PT100線性度不好的缺點,在信號調(diào)理電路中加入負反饋非線性校正網(wǎng)絡;調(diào)理電路的輸出電壓經(jīng)ADC0808轉(zhuǎn)換后送入單片機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所示,將預置初值

11、與溫度傳感器反饋信號比較得到偏差(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

12、,由于有電流經(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ù)碼管顯示造成影響,所

13、以加進了線性化電路,運放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 顯示對照

14、表理想溫度值0102030405060708090100對應電阻值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)理電路作為信號的輸入裝置,當PT100傳感器置于溫度場時,調(diào)理電路將根據(jù)PT100的阻值輸出相應的電壓值。將該輸出電壓送到A

15、DC0808的模擬量輸入通道IN0,經(jīng)ADC0808進行模數(shù)轉(zhuǎn)換,將標準的模擬信號轉(zhuǎn)換為等價的數(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)換接

16、口電路如圖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)個位進行加減操作;第三個按鍵為減一操作,第四個按鍵為加一操作。為了方便按鍵操作,將個位和十位的設定值均設置為5,如果加一操作結(jié)果等于11,給加一單元重新賦值5,如果減一操作結(jié)果等于0FFH,給減一單元重新賦值5。這樣考

17、慮最壞情況,即用鍵盤設置離初始設定值最遠的值,第三個按鍵最多按5次,第四個按鍵最多按5次。從而大大減少了按鍵次數(shù),且更方便地給出設定值。第一個鍵和第二個鍵的加入,也充分考慮了總程序的整體調(diào)度。圖3-3 按鍵輸入電路3.4 數(shù)碼管顯示電路顯示電路采用兩個4位LED顯示數(shù)碼管,共陰極接法。第一個數(shù)碼管顯示A/D轉(zhuǎn)換數(shù)據(jù)采集的采樣值,選用3位顯示采樣值,顯示范圍為0到100;第二個數(shù)碼管顯示由鍵盤輸入的設定值,用于顯示對系統(tǒng)的溫度設定,也選用3位顯示設定值,顯示范圍為0到100。由于LED顯示電路較多選用動態(tài)掃描方式,為了實現(xiàn)LED顯示器的動態(tài)掃描,除了要給顯示器提供段的輸入外,還要對顯示器的位進行

18、控制,即段控和位控。所以需要用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轉(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分別

19、與一個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所示

20、。圖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 Int

21、egral Derivative)控制是控制工程中技術成熟、應用廣泛的一種控制策略,經(jīng)過長期的工程實踐,已形成了一套完整的控制算法和典型的結(jié)構。它不僅適用于數(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é)器按此偏差并以預

22、先設定的整定參數(shù)控制規(guī)律發(fā)出控制信號,去改變調(diào)節(jié)器的開度,使調(diào)節(jié)器的開度增加或減小,從而使現(xiàn)場控制對象值發(fā)生改變,并趨向于給定值(SP值),以達到控制的目的,如圖4-2所示。其實PID的實質(zhì)就是對偏差(e)值進行比例、積分、微分運算,根據(jù)運算結(jié)果控制執(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)有誤差存在,積分控制器就不斷的積累,輸出控制量,以消除誤差。因而,只要有足夠的時間,積分控制就能完全

23、消除誤差,使系統(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控制器的應用非常廣泛。其設計技術成熟,長期以來形成了典型的結(jié)構,參數(shù)整定方便,結(jié)構更改靈活,能滿足一般的控制要求。隨著計算機的快速發(fā)展,人們將計算機引入到PID控制領域,也就出現(xiàn)了數(shù)字式PID控制。由于計算機基于采樣控制理論,

24、計算方法也不能沿襲傳統(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ì)就

25、是求的大小。而,所示將式(4-4)作自減變換有: (4-5) 式中: 2.溫度控制PID算法設計 本系統(tǒng)利用上面所介紹的位置式PID算法,將溫度傳感器采樣輸入作為當前輸入,與設定值進行相減得到偏差ek,然后再對其進行PID運算產(chǎn)生輸出結(jié)果fout,最后讓fout控制繼電器的時間進而控制加熱器。為了方便PID運算,首先建立一個PID的結(jié)構體數(shù)據(jù)類型。該數(shù)據(jù)類型用于保護PID運算所需要的P、I、D系數(shù),以及設定值、歷史誤差的累加和等信息。Typedef struct PID float SetPoint; float Proportion; float Integral; float Deriva

26、tive; 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;

27、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-NextPo

28、int; 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

29、; Else *p_IOA_Buffer=00080;加熱時間由主函數(shù)計算。主程序中通過PIDCalc函數(shù)得到fmin參數(shù)。若該參數(shù)大于零,則開啟加熱器。如果PIDCalc計算結(jié)果比較大說明離目標溫度相差較大,則加熱時間比較長;如果計算結(jié)果比較小,說明離目標溫度相差較小,加熱時間相對較短。 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)定性

30、提高。同時加快系統(tǒng)的動態(tài)響應速度,減小調(diào)整時間,從而改善系統(tǒng)的動態(tài)性能??刂频哪繕司褪牵悍磻俣缺M可能快,超調(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.溫度標定轉(zhuǎn)

31、換模塊 控制系統(tǒng)在讀入被測模擬信號并轉(zhuǎn)換成數(shù)字量后,需要轉(zhuǎn)換成人們所熟悉的物理量,這種轉(zhuǎn)換就是標度變換。線性標度變換公式為: Y=(Ymax-Ymin)(X-Nmin)/(Nmax-Nmin)+Ymin式中,Y為參數(shù)測量值;Ymax為測量范圍最大值;Ymin為測量范圍最小值;Nmin為對應的A/D轉(zhuǎn)換值;Nmin為Ymin對應的A/D轉(zhuǎn)換值;X為測量值Y對應的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這樣的

32、小數(shù)的乘法程序很難實現(xiàn),如果將其取近似值0.4,則乘以最大A/D轉(zhuǎn)換值后,會產(chǎn)生0.01255=2.55的誤差。所以設線性系數(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ù)碼管顯示由按鍵輸入的設定值,用于顯示對系統(tǒng)的溫度設定,在整個系統(tǒng)進行測控的過程中,兩個數(shù)碼管同時顯示,顯示程序中采樣值顯示采用了常規(guī)的顯示程序,不再贅述。這里只談編寫顯示程序中鍵盤顯示時主要注意的一點。由于最后生成的設定值是有十位或個

33、位的加一和十位或個位的減一鍵輸入,須嚴格區(qū)分才可以編制其顯示程序,此處采用的方法是將個位的加一、減一鍵輸入的值存放在28H,而十位的加一、減一鍵輸入的值存放在34H,然后驅(qū)動不同的位碼即可正常顯示。流程圖如圖4-5所示。圖4-4 按鍵處理子程序流程圖圖4-5 顯示處理子程序流程圖 4.3 源程序設計 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

34、 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 LCA

35、LL 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

36、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 LCAL

37、L 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:

38、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 ZHUANH

39、UAN 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 ZHUA

40、NHUAN 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 KONGZH

41、I: 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 L

42、JMP 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 ZZPP521L

43、JMP 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 LJ

44、MP 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

溫馨提示

  • 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

提交評論