溫度監(jiān)控系統(tǒng)的設計系統(tǒng)的軟件設計_第1頁
溫度監(jiān)控系統(tǒng)的設計系統(tǒng)的軟件設計_第2頁
溫度監(jiān)控系統(tǒng)的設計系統(tǒng)的軟件設計_第3頁
溫度監(jiān)控系統(tǒng)的設計系統(tǒng)的軟件設計_第4頁
溫度監(jiān)控系統(tǒng)的設計系統(tǒng)的軟件設計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、溫度監(jiān)控系統(tǒng)的設計 系統(tǒng)的軟件設計 指導老師:* 老師摘 要隨著科技的發(fā)展,相較于很多年以前人們對于自己生活的需求也發(fā)生了戲劇性的改變。而監(jiān)控系統(tǒng)恰恰迎合了人們的這一需要。在眾多先進測量控制技術中,由于單片微處理器的性能日益提高、價格又不斷降低,使其性能價格比的優(yōu)勢非常明顯并且我們知道利用MATLAB可以方便地進行仿真整定PID參數(shù)。本文介紹一個以單片機為核心的溫度監(jiān)控系統(tǒng),主要包括控制算法的仿真分析(用MATLAB)和軟件編程(用C51),它是利用傳感器采集溫度信號, 溫度信號經(jīng)放大電路放大、AD轉換后送到單片機中,并將溫度值顯示在數(shù)碼管上,單片機把它同由鍵盤實現(xiàn)的給定溫度進行比較,再由單片

2、機根據(jù)控制策略給出控制量,然后將控制量送驅動電路驅動加熱裝置和報警裝置,從而構成了實時閉環(huán)系統(tǒng)。本人主要負責系統(tǒng)的軟件設計,在軟件設計過程中,我們盡可能使其功能化、模塊化、盡量采用子程序調用的方法?!娟P鍵字】單片機;溫度監(jiān)控系統(tǒng);PID控制算法;MATLAB;軟件設計(C51)。AbstractWith the increasing pace of science and technology, perhaps no change has characteristic the past decades more dramatic than that of peoples demands of

3、their own life. Supervision and monitoring system meet the requirements of them. In these numerous advanced measurement and control technology, because of the enhanced performance and reduced price of MCU, making the advantage that its ratio of performance to price been obvious and as we know MATLAB

4、 is easy to simulate the setting of PID parameter. This text, which comprised by the simulation and analysis of control algorithms (using MATLAB) and the program of software (using C51), introduces a temperature monitor whose core is a MCU. It gathers the temperature signal and amplifies it by an am

5、plifier circuit microcomputer. Simultaneity sends it into the MCU after A/D conversion. Then show it on in the LED. The single chip compares it with the temperature, which realizes by the keyboard and give control measure according to the control strategy. In the end, the MCU sends control measure t

6、o drive circuit in order to drive the heating installation and warning device. And a closed system is formed. I am mainly responsible for the software design of the system .In process of the software design; we make its function, modularization and use subroutine as far as possible. KEYWORDS: MCU; t

7、emperature monitor system; The control algorithm of PID;MATLAB; software design(C51).目 錄引 言31 系統(tǒng)概述41.1系統(tǒng)功能描述41.2 系統(tǒng)的框圖42 、PID控制與MATLAB仿真52.1 PID控制52.1.1 PID控制的優(yōu)點52.1.2 數(shù)字52.1.3 湊試法確定PID參數(shù)52.1.4 電爐傳遞函數(shù)62.1.5 控制框圖72.2 MATLAB仿真72.2.1 Simulink模型的建立82.2.2 PID 的MATLAB編程實現(xiàn)93 、硬件概述103.1 硬件電路概述103.2 AT89C51端

8、口定義113.3 模數(shù)轉換模塊113.4鍵盤模塊123.5顯示模塊134、 軟件設計144.1 單片機編程語言的選擇144.1.1 匯編語言144.1.2 C語言144.2 軟件總體結構圖154.2.1系統(tǒng)初始化154.2.2主程序模塊軟件設計154.3 A/D模塊軟件設計164.4 鍵盤模塊軟件設計164.5 報警模塊軟件設計184.6 采樣、PID校正及PWM 輸出模塊軟件設計194.7 顯示模塊軟件設計205、 系統(tǒng)調試與總結215.1 系統(tǒng)調試215.2程序鏈接225.3總結245.4英文及翻譯鏈接24參考文獻25鳴 謝26引 言隨著電子技術和微電子技術的發(fā)展,微型計算機發(fā)展也越來越快

9、。單片機作為計算機的一個獨特分支,打破了微型計算機按邏輯功能劃分芯片結構的傳統(tǒng)概念,以其體積小、功能強、性價比高等優(yōu)點被廣泛應用于諸多領域。單片機在一塊芯片上集成CPU, ROM, RAM、I/0接口,定時器/計數(shù)器和中斷系統(tǒng)等功能部件,構成一個完整的微型計算機。由于單片機體積小、重量輕、噪聲低、可靠性高,具有很強的靈活性,而且價格便宜,抗干擾能力強,開發(fā)效率高,易于產(chǎn)品化, 它的應用已深入到工業(yè)、農(nóng)業(yè)、國防、科研以及日常生活用品(家電、玩具)等各種領域;溫度是工業(yè)生產(chǎn)和科學實驗中的重要參數(shù)之一,它已廣泛應用于化工、冶金、醫(yī)藥、航空等領域里,對溫度的控制效果直接影響到許多產(chǎn)品的質量及使用壽命,

10、因此溫度控制成為各個領域中的一項關鍵技術;本系統(tǒng)研究的即是一個以單片機為核心的溫度監(jiān)控系統(tǒng),包括控制算法的仿真分析(用MATLAB)和軟件編程(用C51),利用Keil和Protues軟件進行聯(lián)合仿真,并最終達到對溫度信號進行監(jiān)測和控制的目的。 1 系統(tǒng)概述1.1系統(tǒng)功能描述本系統(tǒng)即是一個以單片機為核心的溫度監(jiān)控系統(tǒng),利用傳感器采集溫度信號, 溫度信號經(jīng)放大電路放大、AD轉換后送到單片機中,并將其顯示在數(shù)碼管上,單片機把它同由鍵盤實現(xiàn)的給定溫度進行比較,再由單片機根據(jù)控制策略給出PWM輸出量,然后將輸出量送驅動電路驅動加熱裝置和報警裝置,從而構成了實時閉環(huán)系統(tǒng)。濾波放大A/D轉換隔離驅動鍵盤輸

11、入 單 片 機顯示報警PWM輸出電阻絲圖1-1 系統(tǒng)框圖1.2 系統(tǒng)的框圖 本系統(tǒng)框圖如圖1-1所示:2 、PID控制與MATLAB仿真2.1 PID控制2.1.1 PID控制的優(yōu)點PID控制是歷史最悠久、生命力最強的一種控制方法。上世紀40年代前,除了在最極端的情況下可使用開關控制以外,他是唯一的控制方式。隨著科技的不斷進步尤其是計算機技術的迅速發(fā)展,又涌現(xiàn)出很多新的控制方法。然而,PID控制卻沒有因此而略顯遜色。迄今為止,它仍是應用最廣泛的基本控制方式。PID控制是比例微分和積分控制的簡稱,它具有如下的幾個優(yōu)點:(1) 原理簡單,使用方便;(2) 適應性強,可廣泛應用于熱工,造紙等各種生產(chǎn)

12、部門;(3) 魯棒性強(也即其控制品質對被控對象特性參數(shù)的變化不敏感)。2.1.2 數(shù)字u(k)=Kpe(k)+Ki*e(j)+Kde(k)-e(k-1)Te(k)當前誤差值。e(k-1)上次誤差。采樣周期。j=1k用計算機進行PID控制時,因計算機僅能處理離散信號,故而必須把PID控制算法變換成計算機能實現(xiàn)的形式,即數(shù)字PID:2.1.3 湊試法確定PID參數(shù)增大比例系數(shù)一般將加快系統(tǒng)的響應,在有靜差的情況下有利于減小靜差。但過大的比例系數(shù)會使系統(tǒng)有較大的超調,并產(chǎn)生振蕩,使穩(wěn)定性變壞。增大積分時間有利于減小超調,減小振蕩,使系統(tǒng)更加穩(wěn)定,但靜差的消除將隨之減慢。增大微分時間有利于加快系統(tǒng)響

13、應,使超調量減小,穩(wěn)定性增強,但系統(tǒng)對擾動的抑制能力減弱,對擾動有較敏感的響應。在湊試時,可以參考以上參數(shù)對過程的影響趨勢,對參數(shù)進行先比例、后微分,再積分的整定步驟。首先,只整定比例部分。即將比例系數(shù)由小到大,并觀察相應的系統(tǒng)響應,直到得到響應快、超調小的響應曲線。如果在比例調節(jié)的基礎上系統(tǒng)的靜差不能滿足設計要求,則需要加入積分環(huán)節(jié)。整定時首先設置積分時間為一較大值,并將前面整定得到的比例系數(shù)略微減小,然后減小積分時間,使在保持系統(tǒng)良好的動態(tài)性能的情況下,靜差得到消除。若使用比例積分調節(jié)器消除了靜差,但動態(tài)過程反復調整仍不滿意,可加入微分環(huán)節(jié),構成比例積分微分調節(jié)器,在整定時,可先置微分時間

14、為零,在第二步整定的基礎上,增大微分時間,同時相應地改變比例系數(shù)和積分時間,逐步湊試,以得到滿意的調節(jié)效果和控制參數(shù)。2.1.4 電爐傳遞函數(shù)要實現(xiàn)對系統(tǒng)進行MATLAB仿真,首先要建立電爐數(shù)學模型。常見的電爐模型是一階慣性延時環(huán)節(jié),在本次MATLAB仿真中用的就是此環(huán)節(jié),如下示:G(s)=K*e-sts+1延時時間,60S。 T 采樣周期。 t 慣性周期,80S。 K 放大倍數(shù)。2.1.5 控制框圖110。CPID+INOUTUT1T2G(s) =K*e-sts+12.2 MATLAB仿真在計算仿真中,采用C語言實現(xiàn),算法復雜,編程量大。而MATLAB是集數(shù)值計算、符號運算及圖形處理等強大功

15、能于一體的科學計算語言。作為強大的科學計算平臺,它幾乎能滿足所有的計算需要。在科研院所、大型公司、或企業(yè)的工程計算部門,MATLAB也是最為普遍的計算工具之一。用MATLAB實現(xiàn)PID參數(shù)控制器的參數(shù)整定,實現(xiàn)方法容易,程序簡潔,可讀性強加之強大的繪圖功能使得整個結果更加清楚明了有助于讀者的理解。 MATLAB與其它軟件相比具有如下的優(yōu)勢和特點:(1)友好的工作平臺和編程環(huán)境:隨著MATLAB的商業(yè)化以及軟件本身的不斷升級,MATLAB的用戶界面也越來越精致,更加接近Windows的標準界面,人機交換更強。操作更簡單。(2)強大的科學計算及數(shù)據(jù)處理能力MATLAB擁有600多個工程中用到的數(shù)學

16、運算函數(shù),可以方便地實現(xiàn)用戶所需要的各種計算功能(3)出色的圖形處理功能MATALB自產(chǎn)生之日起就具有方便的數(shù)據(jù)可視化功能,同樣表現(xiàn)出強大的數(shù)據(jù)處理能力,同時對一些特殊的可視化要求,例如圖形動畫。(4)模塊化的設計和系統(tǒng)的仿真Simulink是MATLAB的一個分之產(chǎn)品,主要用來實現(xiàn)對工程的模型化和動態(tài)仿真。由于Simulink提供了用方框圖進行建模的接口,使得用Simulink建模 就像用筆在紙上畫圖一樣。它與傳統(tǒng)的軟件包相比具有直觀、方便、靈活的優(yōu)點。2.2.1 Simulink模型的建立PID(e,t)G(s)=K*e-sts+1+UU作為輸出,設計反饋回路將U(即電爐當前溫度)與設定溫

17、度值進行比較,然后通過PID控制器對偏差e進行控制,使電爐溫度接近設定溫度值。將加PID控制器后的電爐溫度值通過示波器輸出,作為仿真結果,以判斷控制的好壞。 對PID參數(shù)按上述湊試法進行整定,當Kp=0.9;Ki=0.001;Kd=0.1時,得到最佳控制結果,仿真結果如下圖2-1所示:圖2-12.2.2 PID 的MATLAB編程實現(xiàn) 整定PID的M函數(shù)如下示:function u=PID (e, t)persistent e_1 e_IT=1;Kp=0.6;Ki=0.001;Kd=0.1;if (t=0) e_1=0; e_I=0;ende_I=e_I+e;e_D= (e-e_1)/T;u=

18、Kp*e+Ki*e_I+Kd*e_D;e_1=e;這是數(shù)字PID里的位置式PID控制算法,常見的數(shù)字PID還有:梯形積分式PID控制、積分分離式PID控制、增量式PID控制等。通過以上Simulink的仿真,整定出數(shù)字PID在采樣周期為1秒時的3個最佳參數(shù),Kp=0.9;Ki=0.001;Kd=0.1。以下內容即為利用這組參數(shù)而進行的基于單片機的溫度監(jiān)控系統(tǒng)的設計。3 、硬件概述3.1 硬件電路概述圖3-1 系統(tǒng)圖硬件電路包括:單片機(AT89C51)、信號的模數(shù)轉換(ADC0808)、鍵盤電路(中斷方式)、顯示電路(74LS47譯碼兼驅動)、P監(jiān)控電路(MAX813)、報警電路(NE555)

19、和加熱電路等,由于是硬件仿真圖,故后三者省略。整體圖如下3-1示:3.2 AT89C51端口定義本系統(tǒng)的單片機選用的是AT89C51芯片,AT89C51芯片是一種低損耗、高性能、CMOS八位微處理器,片內有8K字節(jié)在線可重復編程快擦快寫程序存儲器。圖 3-2為其PDIP封裝的管腳排列圖 下面將概述其部分管腳功能: P0口(39-32):雙向I/O口,既可作地址/數(shù)據(jù)總線口用,也可作普通I/O口用;本設計中用于傳輸AD數(shù)據(jù)。 P1口(1-8):準雙向通用I/O口;本口用于鍵盤輸入(P1.3SET,P1.4ADD,P1.5-SUB),啟動555(P1.2)以及改變555的頻率(P1.6)。P1.7

20、口喂狗。P1.0,P1.1沒有用到。圖3-2 AT89C51管腳圖 P2口(21-28):準雙向口,既可作地址總線口輸出地址高8 位,也可作普通I/O用;此口用于LED顯示,P2.5、P2.6、P2.7分別用于LED個、十、百位的片選;P2.0P2.3接74LS47的ABCD用于譯碼。P2.4口沒用。4 P3口(10-17):多用途端口,既可作普通I/O口用,也可按每位定義的第二功能操作;P3.0接PWM輸出驅動電路;ADC0808的模數(shù)轉換結束后EOC經(jīng)過一反相器將轉換結束信號送入P3.2口,89C51產(chǎn)生中斷,進而通過P0口開始讀數(shù)據(jù);P3.3外部中斷1,接鍵盤中斷;P3.5定時器1為AD

21、C0808提供時鐘;P3.6寫信號,送出一個下降沿,經(jīng)反相器后啟動AD;P3.7讀信號,經(jīng)反相器后接ADC0808的讀允許;P3.1,P3.4不接。5 RST:復位信號輸入端,高電平有效;看門狗復位。6 EA/Vpp:內部和外部程序存儲器選擇線。3.3 模數(shù)轉換模塊 輸入電路通過溫度傳感器采集溫度信號,經(jīng)濾波、隔離、放大處理后,得到是一個模擬電壓信號。這一模擬信號通過A/D轉換器把它轉化為數(shù)字信號,進而讓CPU對其進行處理和控制。我們選用了以下器件:模數(shù)轉換器(ADC0808)、或非門2個(74LS02)、非門1個。ADC0809是逐次逼近型的A/D轉換芯片,它具有較高的轉換速度和精度,受溫度

22、影響較小,能較長時間保證精度,重現(xiàn)性好,功耗低,具有8通道模擬開關,而且具有TTL三態(tài)輸出易于單片機接口,所以它是用于過程控制比較理想的器件。因此,我們選用了ADC0808。圖3-3 ADC0809硬件電路設計如圖3-3所示:ADDC、ADDB、ADDA接高電平,這樣只要ALE端有高電平出現(xiàn),就會把IN7選中。啟動信號START由P2.0結合/WR提供,地址鎖存信號ALE與START連接, 所以,在單片機執(zhí)行寫操作同時P2.0為低電平,便可啟動轉換。轉換結束信號EOC經(jīng)過非門與單片機的IN7連接,當轉換結束時,EOC上的高電平經(jīng)非門取反后,便可向單片機請求中斷;輸出允許信號OE由P2.0結合/

23、RD產(chǎn)生,在執(zhí)行讀操作同時P2.0為低電平時,便可讀取轉換后的數(shù)字量。由此可見,啟動轉換和讀取數(shù)字量占用同一地址,我們將這個地址設為0000H。ADC0808的時鐘頻率范圍為101280KHZ,我們的CPU使用的是12MHZ的晶振,那么CPU執(zhí)行一條指令的頻率為12MHZ/12=1MHZ,所以,其指令周期為10-6s,又知定時器1為AD提供CLK,其初值為0FEH,到100H須執(zhí)行兩條指令,所以,取反一次就是四條指令,即410-6s。而ADC0808把模擬量轉化為數(shù)字量需要64個時鐘周期,所以ADC0808的時鐘頻率為250KHZ/641HZ(CPU1秒鐘取1次數(shù)),完全滿足要求。3.4鍵盤模

24、塊按照鍵盤與CPU與鍵盤的連接方式可以分為獨立式和矩陣式鍵盤。獨立式鍵盤是各個按鍵相互獨立,每個鍵盤占用一個I/O口,各個I/O口上的按鍵不會相互影響。在使用較多鍵盤時,占用的I/O口過多,這樣會浪費I/O口線,而且電路結構也顯得復雜;矩陣式鍵盤有行線和列線組成,按鍵設置在行列結構的交叉點,行列線分別連在按鍵開關的兩端。列線通過上拉電阻接至正電源,以使無鍵按下時列線處于高電平狀態(tài)。 圖3-4 鍵盤電路硬件電路設計如圖3-4所示:單片機的P1.3,P1.4,P1.5口分別與“SET”鍵,“+”鍵,“-”鍵三個鍵相連接,鍵的左端均接地,右端通過上拉電阻接至5V 電壓,通過一個三輸入的與門接至單片機

25、的INT1。這樣在沒有鍵按下時,三個I/O口都是高電平,當有鍵按下時,不僅會使某個I/O口的輸入為低電平,而且會通過與門給INT7端輸入低電平,從而產(chǎn)生中斷。3.5顯示模塊圖3-5 顯示電路LED數(shù)碼管是最常用的顯示器件之一。LED顯示器是由發(fā)光二極管顯示字段組成的,它有共陰極和共陽極兩種連接方式。LED顯示方法有兩種:動態(tài)顯示和靜態(tài)顯示。動態(tài)顯示是CPU對顯示器件進行動態(tài)地掃描,顯示器件分時工作,每次只能有一個顯示。但由于人視覺的占留現(xiàn)象,所以,仍覺得器件都在顯示;動態(tài)顯示是CPU只一次輸出顯示數(shù)據(jù)后,就能保持數(shù)據(jù)一直在顯示,直到下一次刷新顯示數(shù)據(jù)。比較兩種顯示方式,前者占用機時長,一旦CP

26、U不執(zhí)行顯示程序,就立刻停止顯示;后者占用機時少,并且可靠性好。通常靜態(tài)顯示電路使用元件多,線路復雜,但是現(xiàn)已出現(xiàn)功能比較強大的顯示驅動器,使線路顯得也比較簡單。本系統(tǒng)顯示模塊選用的器件如下:顯示驅動譯碼器是74LS47(動態(tài)顯示)、共陽極LED數(shù)碼管顯示器。接法見右圖3-5。4、 軟件設計一個成熟的單片機應用系統(tǒng)是由軟硬件結合而成的,二者相輔相成,缺一不可。可以這樣形容軟件和硬件之間的關系,硬件是系統(tǒng)的“載體”,而軟件是使“載體”產(chǎn)生動力的發(fā)電機。所以硬件要在軟件的配合下才能完成預先確定要實現(xiàn)的各種功能,本章主要闡述系統(tǒng)的軟件設計。4.1 單片機編程語言的選擇對于單片機,特別是8位51系列單

27、片機,有兩類編程語言支持:即低級語言和高級語言。低級語言即指匯編語言,高級語言有C和PL/M。4.1.1 匯編語言匯編語言是面向硬件的低級語言,它有著面向硬件的低級語言的一般優(yōu)點 占用內存單元少,占用CPU資源少; 代碼效率高,程序執(zhí)行速度快; 可直接對硬件進行操作; 能精確掌握指令的執(zhí)行時間,適合實時控制場合及對時間精度要求高的場合。但也有它的缺點: 不是結構化程序設計語言; 編寫較難,編寫效率低,不適合開發(fā)復雜的大型項目; 調試較難; 由于完全面向硬件,故可移植性很差。4.1.2 C語言C語言是一種編譯型程序設計語言,它有如下特點: 具有完善的模塊程序結構,可以進行模塊化程序設計; 兼顧了

28、多種高級語言的特點,并具備匯編語言的功能,可以直接面向單片機的硬件編程 可讀性好,可靠性高,代碼轉換質量較高; 程序編制效率高、周期短。對于本系統(tǒng),由于C語言優(yōu)于匯編語言,所以我們選擇C語言中C51作為編制系統(tǒng)軟件的編程語言。4.2 軟件總體結構圖報警模塊A/D模塊鍵 盤 模 塊調節(jié)上設定值調節(jié)上限調節(jié)下限主程序模塊系統(tǒng)初始化顯 示 模 塊顯示設定值顯示最大值顯示當前溫度值顯示最小值揚聲器報警加熱模塊計算PID值PWM輸出閃爍顯示報警本系統(tǒng)的軟件設計過程中,我們盡可能使其功能化、模塊化、盡量采用子程序調用的方法。其軟件設計包括系統(tǒng)初始化、主程序模塊、A/D模塊、鍵盤模塊、顯示模塊、報警模塊和加

29、熱模塊。圖4-1軟件總體結構圖4.2.1系統(tǒng)初始化 本系統(tǒng)的初始化包括定義頭文件和各個輸入管腳以及初始化全局變量和各標志位。4.2.2主程序模塊軟件設計本系統(tǒng)的主程序模塊包括初始化、A/D轉換模塊、PID校正值計算、鍵盤模塊、顯示模塊、加熱模塊、報警模塊。初始化定時器T1為自動重裝載的模式并讓其無限工作下去,從而為AD提供時鐘信號。定時器0每1/127秒中斷一次,定時器每中斷127次(1秒)為一個采樣周期;首先判斷有沒有到采樣時間;到的話再判斷溫度是否越限;然后判斷是否需要PID校正值計算。啟動定時器系統(tǒng)初始化啟動AD轉換開中斷顯示函數(shù)調用設置函數(shù)開始設置按下?調用設置函數(shù)圖4-2主程序流程圖

30、主程序流程圖如圖4-2所示:4.3 A/D模塊軟件設計AD轉換的軟件設計主要負責:AD地址的初始化、啟動轉換和轉換結束時的數(shù)據(jù)讀取。為了提高系統(tǒng)的效率,本系統(tǒng)采用中斷方式采集溫度。在A/D轉換結束后,EOC引腳自動變?yōu)楦唠娖?,通過一個反向器使得外部中斷0受到下降沿觸發(fā),從而進入外部中斷0服務子程序,在中斷結束返回主程序前,再次啟動A/D轉換,進行下一次轉換,即可采集到當前比較可靠的溫度值。圖4-3 A/D轉換(外部中斷0)流程圖序 關 中 斷 開 中 斷開 始返 回讀取數(shù)據(jù)A/D轉換流程圖如圖4-3所示:4.4 鍵盤模塊軟件設計 鍵盤防抖動措施鍵盤實際上是一組按鍵開關的組合。一般情況下,鍵盤采

31、用機械彈性開關來反映一個電壓信號的開、斷。由于機械觸點的彈性作用,在閉合和斷開瞬間會有抖動發(fā)生,抖動時間長短由按鍵的機械特性決定,一般為510ms。為了確保按鍵不產(chǎn)生誤動作,必須消除抖動的影響。否則,一次按鍵的動作會當作幾次按鍵動作。 對于本系統(tǒng),我們使用的是軟件消抖的方法。 鍵盤處理控制方式CPU對鍵盤控制主要有三種:程序控制掃描方式,定時掃描控制方式和中斷控制方式。第一種方式是在CPU工作空余,調用鍵盤掃描子程序,響應鍵輸入信號要求;第二種方式是利用定時器/計數(shù)器每隔一段時間產(chǎn)生定時中斷,CPU響應中斷后對鍵盤進行掃描并在有鍵閉合時轉入該鍵的功能子程序;中斷控制方式是利用外部中斷源,響應鍵

32、輸入信號,當無鍵按下時,CPU執(zhí)行正常工作程序。當有鍵按下時,CPU立即中斷,在中斷服務子程序中掃描鍵盤,判斷是哪個鍵被按下,然后執(zhí)行該鍵的功能子程序。從這三種控制方式來看,第一種方式占用了太多時間,第二種方式也可能產(chǎn)生空掃描和不能及時響應鍵輸入,同時占用了一個定時器,而第三種方式既能及時的處理鍵輸入,又提高了CPU的運行效率 。為了提高CPU的運行效率,我們采用了中斷方式。 鍵盤模塊程序設計鍵盤模塊主要包括三個模塊:中斷模塊、鍵值處理模塊、設置模塊(調節(jié)設定溫度值子模塊、調節(jié)溫度上限子模塊、調節(jié)溫度下限子模塊)。中斷模塊:當有鍵按下時,進入中斷服務子程序。此程序中還包括鍵盤的防抖動處理和判斷

33、鍵值。 鍵值處理模塊:當“Set”鍵按下時,即進入設置狀態(tài);當“+”鍵按下時,即顯示最大值;當“-”鍵按下時,即顯示最小值?!癝et”鍵判斷鍵值關 中 斷“-”鍵“+”鍵調用設置函數(shù)顯示最大值鍵按下標志位置1開始開 中 斷圖4-4 鍵盤中斷服務流程圖返 回延時防抖顯示最小值設置鍵按下?設置自控溫度NY設置鍵按下?設置上限溫度NY設置鍵按下?設置下限溫度NY返 回設置函數(shù)圖4-5 設置流程圖鍵盤模塊流程圖分別如圖4-4所示: 設置模塊(如上圖4-5示):調節(jié)設定溫度子模塊:當“+”鍵按下時,設定值Set_data加1;當“-”鍵按下時,設定值Set_data減1; 當“Set”鍵按下時,表示此狀

34、態(tài)設定完畢,進入設置最大值子模塊。調節(jié)溫度上限子模塊:當“+”鍵按下時,設定值Max_data加1;當“-”鍵按下時,設定值Max_data減1; 當“Set”鍵按下時,表示此狀態(tài)設定完畢,進入設置最大值子模塊。 調節(jié)溫度下限子模塊:當“+”鍵按下時,設定值Min_data加1;當“-”鍵按下時,設定值Min_data減1; 當“Set”鍵按下時,表示此狀態(tài)設定完畢,退出設置函數(shù)。4.5 報警模塊軟件設計當采集的當前溫度值大于溫度上限值時,555定時器控制端置0并使P1.6口即F_Chng(改變555頻率的口)置1,即發(fā)出上限報警聲音;當采集的當前溫度值小于溫度下限值時,555定時器控制端置0

35、并并使P1.6口即F_Chng(改變555頻率的口)置0,即發(fā)出下限報警聲音;YY圖4-6 報警和PWM輸出流程圖Max正常T0_count - -判斷所采AD數(shù)據(jù)下限報警上限報警再次啟動AD調用PIDT0內部定時器中斷T0_coun t=0?T0_coun t賦初值定時器賦初值返 回PWM輸出加熱PWM_count=0?PWM_count - -關閉加熱N當采集的溫度值介于溫度上限值和溫度下限值時之間,555定時器控制端置1,不發(fā)出任何聲音。報警模塊程序流程圖如圖4-6所示:4.6 采樣、PID校正及PWM 輸出模塊軟件設計在實際應用中,可選用的控制算法很多,但最常用的仍然是數(shù)字PID算法。

36、最優(yōu)控制理論已證明:PID控制能滿足大多數(shù)工業(yè)對象的控制要求。PID算法蘊含了動態(tài)控制過程中過去、現(xiàn)在、將來的主要信息,而且其配置幾乎最優(yōu)。其中比例(P)代表當前的信息,起糾正偏差的作用,使過程反應迅速;微分(D)代表了將來的信息,在信號變化時有超前控制作用,有利于克服振蕩,提高系統(tǒng)穩(wěn)定性,加快系統(tǒng)的過渡過程;積分(I)代表了過去積累的信息,它能消除靜差,改善系統(tǒng)靜差特性。這三種作用配合得當,可使動態(tài)過程快速、平穩(wěn)、準確,并收到良好的控制效果。因此本系統(tǒng)采用PID控制。定時器T0設為1/127S中斷一次,T0_count=127,當進入中斷程序時,首先T0_count自減1,判斷T0_coun

37、t=0?若是則調用PID函數(shù),計算出PWM的寬度(即加熱時間),然后打開加熱器。再次啟動AD轉換。PWM_count自減1,判斷PWM_count=0?,若PWM_count=0,表示加熱結束,關閉加熱器。定時器T0重賦初值,T0中斷返回。計算e=Set_data-ADC_data計算e_I=e_I+e計算e_D=(e-e_1)/Tu=Kp*e+Ki*e_I+Kd*e_De_1ePID函數(shù)返 回圖4-7PID校正流程圖 綜上所述,此模塊包括周期為1S的數(shù)據(jù)采樣、PID校正值的計算和PWM加熱輸出。此模塊程序流程圖如圖4-6、4-7所示:正常顯示函數(shù)顯示函數(shù)顯示百位顯示個位顯示十位圖4-9 顯示

38、流程圖判斷顯示函數(shù)報警否?T0_count的第6位=1?返回調用正常顯示函數(shù)調用延時YYNN調用正常顯示函數(shù)圖4-8 判斷顯示流程圖4.7 顯示模塊軟件設計顯示模塊有兩個子程序配合完成:判斷顯示子程序:該程序首先判斷是否需要報警,若需要則按照一定頻率(1S左右)調用正常顯示子程序和延時程序。正常顯示子程序:將傳入的形參除以100,得到百位,選通數(shù)碼管1顯示百位。將傳入的形參除以100取余,再除以10得到十位,選通數(shù)碼管2顯示十位。將傳入的形參除以10取余,得到個位,選通數(shù)碼管3顯示個位。如圖4-9 示:5、 系統(tǒng)調試與總結5.1 系統(tǒng)調試 系統(tǒng)調試要求系統(tǒng)能完成預先確定要實現(xiàn)的各種功能。 硬件

39、調試元器件是組成系統(tǒng)的基本單元,其性能好壞與穩(wěn)定性直接影響整個系統(tǒng)性能與可靠性。因此,我們精選元器件,使其穩(wěn)定性和精度等方面滿足要求。 軟件調試軟件調試的是整個系統(tǒng)設計很重要的步驟,要求所編寫的程序不僅要在理論上適合功能要求,而且要在實際的電路板上可靠執(zhí)行。本系統(tǒng)的軟件調試用Keil仿真軟件和Proteus仿真軟件進行軟硬件聯(lián)合仿真:編譯通過只是說明程序沒有語法錯誤。是否達到設計目的,還需將軟硬件結合進行排錯、調試和檢查即通常所說的仿真。仿真有兩種方式:一是采用仿真器的實時在線仿真。二是通過PC機由軟件完成的模擬仿真。實時在線仿真可以完全模擬樣機或實驗板的工作狀態(tài),用起來比較直觀、方便。軟件模擬仿真不需要仿真器,僅僅通過安裝在微機上的單片機模擬軟件便可以進行單片機系統(tǒng)的仿真。我們使用Keil仿真軟件和Proteus仿真軟件進行軟硬件聯(lián)合仿真。首先用Keil進行軟件仿真,主要包括C文件的編譯、連接、并生成Hex文件提供給Proteus,仿真界面如圖5.1所示。其次用Proteus進行硬件仿真,在Proteus中選擇相應的元器件再結合Keil生成的Hex文件可以對系統(tǒng)整體性能進行仿真,仿真界面如圖5.2所示。在仿真過程中我們把系統(tǒng)分

溫馨提示

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

評論

0/150

提交評論