版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、溫度監(jiān)控系統(tǒng)的設(shè)計(jì)系統(tǒng)的軟件設(shè)計(jì)指導(dǎo)老師:* 老師摘 要隨著科技的發(fā)展, 相較于很多年以前人們對(duì)于自己生活的需求也發(fā)生了戲劇 性的改變。 而監(jiān)控系統(tǒng)恰恰迎合了人們的這一需要。 在眾多先進(jìn)測量控制技術(shù)中, 由于單片微處理器的性能日益提高、 價(jià)格又不斷降低, 使其性能價(jià)格比的優(yōu)勢(shì)非 常明顯并且我們知道利用 MATLAB 可以方便地進(jìn)行仿真整定 PID 參數(shù)。本文介紹 一個(gè)以單片機(jī)為核心的溫度監(jiān)控系統(tǒng), 主要包括控制算法的仿真分析 (用 MATLAB 和軟件編程 (用 C51 , 它是利用傳感器采集溫度信號(hào) , 溫度信號(hào)經(jīng)放大電路放大、 A /D 轉(zhuǎn)換后送到單片機(jī)中, 并將溫度值顯示在數(shù)碼管上, 單
2、片機(jī)把它同由鍵盤實(shí) 現(xiàn)的給定溫度進(jìn)行比較, 再由單片機(jī)根據(jù)控制策略給出控制量, 然后將控制量送 驅(qū)動(dòng)電路驅(qū)動(dòng)加熱裝置和報(bào)警裝置,從而構(gòu)成了實(shí)時(shí)閉環(huán)系統(tǒng)。本人主要負(fù)責(zé)系統(tǒng)的軟件設(shè)計(jì), 在軟件設(shè)計(jì)過程中, 我們盡可能使其功能化、 模塊化、盡量采用子程序調(diào)用的方法?!娟P(guān)鍵字】 單片機(jī); 溫度監(jiān)控系統(tǒng); PID 控制算法; MATLAB ; 軟件設(shè)計(jì) (C51 。 AbstractWith the increasing pace of science and technology, perhaps no change has characteristic the past decades more d
3、ramatic than that of people s demands of 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
4、 price been obvious and as we know MATLAB 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 tempe
5、rature signal and amplifies it by an amplifier 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 keyboardand give control measure according to the control strategy. In th
6、e end, the MCU sends control measure to 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
7、 as far as possible.KEYWORDS : MCU; temperature monitor system; The control algorithm of PID; MATLAB ; software design(C51 .目 錄引 言 - 4 1 系統(tǒng)概述 - 41.1系統(tǒng)功能描述 - 4 1.2 系統(tǒng)的框圖 - 52 、 PID 控制與 MATLAB 仿真 - 5 2.1 PID控制 - 5 2.1.1 PID控制的優(yōu)點(diǎn) - 5 2.1.2 數(shù)字PID - 6 2.1.3 湊試法確定 PID 參數(shù) - 6 2.1.4 電爐傳遞函數(shù) - 7 2.1.5 PID控制框圖
8、 - 7 2.2 MATLAB仿真 - 7 2.2.1 Simulink模型的建立 - 8 2.2.2 PID 的 MATLAB 編程實(shí)現(xiàn) - 93 、硬件概述 - 10 3.1 硬件電路概述 - 10 3.2 AT89C51端口定義 - 11 3.3 模數(shù)轉(zhuǎn)換模塊 - 12 3.4鍵盤模塊 - 13 3.5顯示模塊 - 144、 軟件設(shè)計(jì) - 15 4.1 單片機(jī)編程語言的選擇 - 15 4.1.1 匯編語言 - 15 4.1.2 C語言 - 15 4.2 軟件總體結(jié)構(gòu)圖 - 16 4.2.1系統(tǒng)初始化 - 16 4.2.2主程序模塊軟件設(shè)計(jì) - 16 4.3 A/D模塊軟件設(shè)計(jì) - 17
9、4.4 鍵盤模塊軟件設(shè)計(jì) - 17 4.5 報(bào)警模塊軟件設(shè)計(jì) - 19 4.6 采樣、 PID 校正及 PWM 輸出模塊軟件設(shè)計(jì) - 20 4.7 顯示模塊軟件設(shè)計(jì) - 215、 系統(tǒng)調(diào)試與總結(jié) - 22 5.1 系統(tǒng)調(diào)試 - 22 5.2程序鏈接 - 23 5.3總結(jié) - 255.4英文及翻譯鏈接 - 25 參考文獻(xiàn) - 26鳴 謝 - 27引 言隨著電子技術(shù)和微電子技術(shù)的發(fā)展 , 微型計(jì)算機(jī)發(fā)展也越來越快。單片機(jī)作 為計(jì)算機(jī)的一個(gè)獨(dú)特分支, 打破了微型計(jì)算機(jī)按邏輯功能劃分芯片結(jié)構(gòu)的傳統(tǒng)概 念,以其體積小、功能強(qiáng)、性價(jià)比高等優(yōu)點(diǎn)被廣泛應(yīng)用于諸多領(lǐng)域。單片機(jī)在一 塊芯片上集成 CPU, ROM
10、, RAM、 I/0接口,定時(shí)器 /計(jì)數(shù)器和中斷系統(tǒng)等功能部 件,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。由于單片機(jī)體積小、重量輕、噪聲低、可靠性 高,具有很強(qiáng)的靈活性,而且價(jià)格便宜,抗干擾能力強(qiáng),開發(fā)效率高,易于產(chǎn)品 化, 它的應(yīng)用已深入到工業(yè)、農(nóng)業(yè)、國防、科研以及日常生活用品(家電、玩 具等各種領(lǐng)域;溫度是工業(yè)生產(chǎn)和科學(xué)實(shí)驗(yàn)中的重要參數(shù)之一 , 它已廣泛應(yīng)用 于化工、冶金、醫(yī)藥、航空等領(lǐng)域里,對(duì)溫度的控制效果直接影響到許多產(chǎn)品的 質(zhì)量及使用壽命, 因此溫度控制成為各個(gè)領(lǐng)域中的一項(xiàng)關(guān)鍵技術(shù); 本系統(tǒng)研究的 即是一個(gè)以單片機(jī)為核心的溫度監(jiān)控系統(tǒng),包括控制算法的仿真分析(用 MATLAB 和軟件編程(用 C5
11、1 ,利用 Keil 和 Protues 軟件進(jìn)行聯(lián)合仿真,并最 終達(dá)到對(duì)溫度信號(hào)進(jìn)行監(jiān)測和控制的目的。1 系統(tǒng)概述1.1系統(tǒng)功能描述本系統(tǒng)即是一個(gè)以單片機(jī)為核心的溫度監(jiān)控系統(tǒng), 利用傳感器采集溫度信號(hào) , 溫度信號(hào)經(jīng)放大電路放大、 A /D 轉(zhuǎn)換后送到單片機(jī)中, 并將其顯示在數(shù)碼管上, 單片機(jī)把它同由鍵盤實(shí)現(xiàn)的給定溫度進(jìn)行比較,再由單片機(jī)根據(jù)控制策略給出 PWM 輸出量,然后將輸出量送驅(qū)動(dòng)電路驅(qū)動(dòng)加熱裝置和報(bào)警裝置,從而構(gòu)成了 實(shí)時(shí)閉環(huán)系統(tǒng)。1.2 系統(tǒng)的框圖 2 、 PID 控制與 MATLAB 仿真2.1 PID控制2.1.1 PID控制的優(yōu)點(diǎn)PID 控制是歷史最悠久、生命力最強(qiáng)的一種控
12、制方法。上世紀(jì) 40年代前, 除了在最極端的情況下可使用開關(guān)控制以外, 他是唯一的控制方式。 隨著科技的 不斷進(jìn)步尤其是計(jì)算機(jī)技術(shù)的迅速發(fā)展, 又涌現(xiàn)出很多新的控制方法。 然而, PID 控制卻沒有因此而略顯遜色。迄今為止,它仍是應(yīng)用最廣泛的基本控制方式。 PID 控制是比例微分和積分控制的簡稱,它具有如下的幾個(gè)優(yōu)點(diǎn):(1 原理簡單,使用方便;圖 1-1 系統(tǒng)框圖(2 適應(yīng)性強(qiáng),可廣泛應(yīng)用于熱工,造紙等各種生產(chǎn)部門;(3 魯棒性強(qiáng)(也即其控制品質(zhì)對(duì)被控對(duì)象特性參數(shù)的變化不敏感 。2.1.2 數(shù)字PID用計(jì)算機(jī)進(jìn)行 PID 控制時(shí), 因計(jì)算機(jī)僅能處理離散信號(hào), 故而必須把 PID 控 制算法變換
13、成計(jì)算機(jī)能實(shí)現(xiàn)的形式,即數(shù)字 PID :2.1.3 湊試法確定 PID 參數(shù)增大比例系數(shù)一般將加快系統(tǒng)的響應(yīng) , 在有靜差的情況下有利于減小靜差。 但 過大的比例系數(shù)會(huì)使系統(tǒng)有較大的超調(diào),并產(chǎn)生振蕩,使穩(wěn)定性變壞。增大積分時(shí)間有利于減小超調(diào),減小振蕩,使系統(tǒng)更加穩(wěn)定,但靜差的消除 將隨之減慢。增大微分時(shí)間有利于加快系統(tǒng)響應(yīng),使超調(diào)量減小,穩(wěn)定性增強(qiáng),但系統(tǒng)對(duì) 擾動(dòng)的抑制能力減弱,對(duì)擾動(dòng)有較敏感的響應(yīng)。在湊試時(shí),可以參考以上參數(shù)對(duì)過程的影響趨勢(shì),對(duì)參數(shù)進(jìn)行先比例、后微 分,再積分的整定步驟。首先,只整定比例部分。即將比例系數(shù)由小到大,并觀察相應(yīng)的系統(tǒng)響應(yīng), 直到得到響應(yīng)快、超調(diào)小的響應(yīng)曲線。如果
14、在比例調(diào)節(jié)的基礎(chǔ)上系統(tǒng)的靜差不能滿足設(shè)計(jì)要求, 則需要加入積分環(huán) 節(jié)。 整定時(shí)首先設(shè)置積分時(shí)間為一較大值, 并將前面整定得到的比例系數(shù)略微減 小, 然后減小積分時(shí)間, 使在保持系統(tǒng)良好的動(dòng)態(tài)性能的情況下, 靜差得到消除。若使用比例積分調(diào)節(jié)器消除了靜差,但動(dòng)態(tài)過程反復(fù)調(diào)整仍不滿意,可加入u(k=Kpe(k+Ki* e(j+Kd e(k-e(k-1e(k-當(dāng)前誤差值。 e(k-1-上次誤差。 T -采樣周期。j=1k微分環(huán)節(jié),構(gòu)成比例積分微分調(diào)節(jié)器,在整定時(shí),可先置微分時(shí)間為零,在第二 步整定的基礎(chǔ)上, 增大微分時(shí)間, 同時(shí)相應(yīng)地改變比例系數(shù)和積分時(shí)間, 逐步湊 試,以得到滿意的調(diào)節(jié)效果和控制參數(shù)
15、。2.1.4 電爐傳遞函數(shù)要實(shí)現(xiàn)對(duì)系統(tǒng)進(jìn)行 MATLAB 仿真,首先要建立電爐數(shù)學(xué)模型。常見的電爐 模型是一階慣性延時(shí)環(huán)節(jié),在本次 MATLAB 仿真中用的就是此環(huán)節(jié),如下示:2.1.5 PID控制框圖 2.2 MATLAB仿真在計(jì)算仿真中,采用 C 語言實(shí)現(xiàn),算法復(fù)雜,編程量大。而 MATLAB 是集K *e-ss+1 延時(shí)時(shí)間 ,60S 。 T 采樣周期。 慣性周期 ,80S 。 K 放大倍數(shù)。數(shù)值計(jì)算、 符號(hào)運(yùn)算及圖形處理等強(qiáng)大功能于一體的科學(xué)計(jì)算語言。 作為強(qiáng)大的 科學(xué)計(jì)算平臺(tái),它幾乎能滿足所有的計(jì)算需要。在科研院所、大型公司、或企業(yè) 的工程計(jì)算部門, MATLAB 也是最為普遍的計(jì)算
16、工具之一。用 MATLAB 實(shí)現(xiàn) PID 參數(shù)控制器的參數(shù)整定,實(shí)現(xiàn)方法容易,程序簡潔,可讀性強(qiáng)加之強(qiáng)大的繪 圖功能使得整個(gè)結(jié)果更加清楚明了有助于讀者的理解。MATLAB 與其它軟件相比具有如下的優(yōu)勢(shì)和特點(diǎn):(1友好的工作平臺(tái)和編程環(huán)境:隨著 MATLAB 的商業(yè)化以及軟件本身的不斷升級(jí), MATLAB 的用戶界面也 越來越精致,更加接近 Windows 的標(biāo)準(zhǔn)界面,人機(jī)交換更強(qiáng)。操作更簡單。 (2強(qiáng)大的科學(xué)計(jì)算及數(shù)據(jù)處理能力MATLAB 擁有 600多個(gè)工程中用到的數(shù)學(xué)運(yùn)算函數(shù) , 可以方便地實(shí)現(xiàn)用戶所 需要的各種計(jì)算功能.(3出色的圖形處理功能MATALB 自產(chǎn)生之日起就具有方便的數(shù)據(jù)可視
17、化功能,同樣表現(xiàn)出強(qiáng)大的 數(shù)據(jù)處理能力,同時(shí)對(duì)一些特殊的可視化要求,例如圖形動(dòng)畫。(4模塊化的設(shè)計(jì)和系統(tǒng)的仿真Simulink 是 MATLAB 的一個(gè)分之產(chǎn)品,主要用來實(shí)現(xiàn)對(duì)工程的模型化和動(dòng) 態(tài)仿真。 由于 Simulink 提供了用方框圖進(jìn)行建模的接口, 使得用 Simulink 建模 就 像用筆在紙上畫圖一樣。它與傳統(tǒng)的軟件包相比具有直觀、方便、靈活的優(yōu)點(diǎn)。2.2.1 Simulink模型的建立U 作為輸出,設(shè)計(jì)反饋回路將 U (即電爐當(dāng)前溫度與設(shè)定溫度值進(jìn)行比較, 然后通過 PID 控制器對(duì)偏差 e 進(jìn)行控制,使電爐溫度接近設(shè)定溫度值。將加 PID 控制器后的電爐溫度值通過示波器輸出,
18、作為仿真結(jié)果,以判斷控制的好壞。 對(duì) PID 參數(shù)按上述湊試法進(jìn)行整定,當(dāng) Kp=0.9; Ki=0.001; Kd=0.1時(shí),得 到最佳控制結(jié)果,仿真結(jié)果如下圖 2-1所示:2.2.2 PID 的 MATLAB 編程實(shí)現(xiàn)整定 PID 的 M 函數(shù)如下示:function u=PID (e, tpersistent e_1 e_IT=1;Kp=0.6;Ki=0.001;Kd=0.1;if (t=0e_1=0; e_I=0;圖 2-1ende_I=e_I+e;e_D= (e-e_1/T;u=Kp*e+Ki*e_I+Kd*e_D;e_1=e;這是數(shù)字 PID 里的位置式 PID 控制算法,常見的數(shù)
19、字 PID 還有:梯形積分式 PID 控制、積分分離式 PID 控制、增量式 PID 控制等。通過以上 Simulink 的仿真,整定出數(shù)字 PID 在采樣周期為 1秒時(shí)的 3個(gè)最 佳參數(shù), Kp=0.9; Ki=0.001; Kd=0.1。以下內(nèi)容即為利用這組參數(shù)而進(jìn)行的基于 單片機(jī)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)。3 、硬件概述3.1 硬件電路概述硬件電路包括:單片機(jī)(AT89C51 、信號(hào)的模數(shù)轉(zhuǎn)換(ADC0808 、鍵盤電 路(中斷方式 、顯示電路(74LS47譯碼兼驅(qū)動(dòng) 、 P 監(jiān)控電路(MAX813 、 報(bào)警電路(NE555和加熱電路等,由于是硬件仿真圖,故后三者省略。整體圖 如下 3-1示:
20、 3.2 AT89C51端口定義本系統(tǒng)的單片機(jī)選用的是 AT89C51芯片, AT89C51芯片是一種低損耗、 高性 能、 CMOS 八位微處理器,片內(nèi)有 8K 字節(jié)在線可重復(fù)編程快擦快寫程序存儲(chǔ)器。 圖 3-2為其 PDIP 封裝的管腳排列圖 下面將概述其部分管腳功能:圖 3-1 系統(tǒng)圖 P0口 (39-32:雙向 I/O口,既可作地址 /數(shù)據(jù)總線口用,也可作普通 I/O口用; 本設(shè)計(jì)中用于傳輸 AD 數(shù)據(jù)。 P1口 (1-8:準(zhǔn)雙向通用 I/O口; 本口用于鍵盤輸入(P1.3 SET , P1.4 ADD , P1.5-SUB ,啟動(dòng) 555(P1.2以及改變 555的頻率 (P1.6。
21、P1.7口喂狗。 P1.0, P1.1沒有用到。 P2口 (21-28:準(zhǔn)雙向口,既可作地址總線口輸出地址高 8 位,也可作普通 I/O用; 此口用于 LED 顯示, P2.5、 P2.6、 P2.7分別用于 LED 個(gè)、十、百位的片選; P2.0 P2.3接 74LS47的 ABCD 用于譯碼。 P2.4口沒用。 P3口 (10-17:多用途端口,既可作普通 I/O口用,也可按每位定義的第二功能操作; P3.0接 PWM 輸出驅(qū)動(dòng)電路; ADC0808的模數(shù)轉(zhuǎn)換結(jié)束 后 EOC 經(jīng)過一反相器將轉(zhuǎn)換結(jié)束信號(hào)送入 P3.2口, 89C51產(chǎn)生中斷, 進(jìn)而通過 P0口開始讀數(shù)據(jù); P3.3外部中斷
22、 1,接鍵盤中斷; P3.5定時(shí)器 1為 ADC0808提供時(shí)鐘; P3.6寫信號(hào), 送出一個(gè)下降 沿,經(jīng)反相器后啟動(dòng) AD ; P3.7讀信號(hào),經(jīng)反相 器后接 ADC0808的讀允許; P3.1, P3.4不接。 RST :復(fù)位信號(hào)輸入端 , 高電平有效; 看門狗 復(fù)位。 EA/Vpp:內(nèi)部和外部程序存儲(chǔ)器選擇線。 3.3 模數(shù)轉(zhuǎn)換模塊輸入電路通過溫度傳感器采集溫度信號(hào),經(jīng)濾波、隔離、放大處理后,得到 是一個(gè)模擬電壓信號(hào)。 這一模擬信號(hào)通過 A/D轉(zhuǎn)換器把它轉(zhuǎn)化為數(shù)字信號(hào), 進(jìn)而 讓 CPU 對(duì)其進(jìn)行處理和控制。我們選用了以下器件:模數(shù)轉(zhuǎn)換器(ADC0808 、或 非門 2個(gè)(74LS02
23、、非門 1個(gè)。ADC0809是逐次逼近型的 A/D轉(zhuǎn)換芯片,它具有較高的轉(zhuǎn)換速度和精度,受 溫度影響較小, 能較長時(shí)間保證精度, 重現(xiàn)性好, 功耗低, 具有 8通道模擬開關(guān), 而且具有 TTL 三態(tài)輸出易于單片機(jī)接口,所以它是用于過程控制比較理想的器 件。因此,我們選用了 ADC0808。.圖 3-2 AT89C51管 腳圖硬件電路設(shè)計(jì)如圖 3-3所示:ADDC 、 ADDB 、 ADDA 接高電平,這樣只要 ALE 端 有 高電 平 出現(xiàn), 就會(huì)把 IN7選中。 啟動(dòng)信 號(hào)START 由P2.0結(jié)合 /WR提供, 地址鎖 存 信號(hào) ALE 與START 連接, 所以, 在單片機(jī)執(zhí)行寫操作同時(shí)
24、 P2.0為低電平,便可啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換結(jié)束信號(hào) EOC 經(jīng)過非 門與單片機(jī)的 IN7連接,當(dāng)轉(zhuǎn)換結(jié)束時(shí), EOC 上的高電平經(jīng)非門取反后,便可向 單片機(jī)請(qǐng)求中斷; 輸出允許信號(hào) OE 由 P2.0結(jié)合 /RD產(chǎn)生, 在執(zhí)行讀操作同時(shí) P2.0為低電平時(shí), 便可讀取轉(zhuǎn)換后的數(shù)字量。 由此可見, 啟動(dòng)轉(zhuǎn)換和讀取數(shù)字量占用 同一地址,我們將這個(gè)地址設(shè)為 0000H 。ADC0808的時(shí)鐘頻率范圍為 101280KHZ ,我們的 CPU 使用的是 12MHZ 的晶 振, 那么 CPU 執(zhí)行一條指令的頻率為 12MHZ/12=1MHZ, 所以, 其指令周期為 10-6s , 又知定時(shí)器 1為 AD 提供
25、 CLK ,其初值為 0FEH ,到 100H 須執(zhí)行兩條指令,所以, 取反一次就是四條指令, 即 410-6s 。 而 ADC0808把模擬量轉(zhuǎn)化為數(shù)字量需要 64個(gè)時(shí)鐘周期, 所以 ADC0808的時(shí)鐘頻率為 250KHZ/641HZ(CPU1秒鐘取 1次數(shù) , 完全滿足要求。3.4鍵盤模塊按照鍵盤與 CPU 與鍵盤的連接方式可以分為獨(dú)立式和矩陣式鍵盤。 獨(dú)立式鍵 盤是各個(gè)按鍵相互獨(dú)立, 每個(gè)鍵盤占用一個(gè) I/O口, 各個(gè) I/O口上的按鍵不會(huì)相 互影響。在使用較多鍵盤時(shí),占用的 I/O口過多,這樣會(huì)浪費(fèi) I/O口線,而且電 路結(jié)構(gòu)也顯得復(fù)雜; 矩陣式鍵盤有行線和列線組成, 按鍵設(shè)置在行列
26、結(jié)構(gòu)的交叉 點(diǎn), 行列線分別連在按鍵開關(guān)的兩端。 列線通過上拉電阻接至正電源, 以使無鍵 按下時(shí)列線處于高電平狀態(tài)。圖 3-3 ADC0809硬件電路設(shè)計(jì)如 圖 3-4所示: 單片機(jī)的P1.3,P1.4,P1.5口分別 與 “ SET ” 鍵, “ +” 鍵, “ -”鍵三個(gè)鍵相連接, 鍵的左端均接地, 右端 通過上拉電阻接至 5V 電壓, 通過一個(gè)三輸入 的與門接至單片機(jī)的 INT1。 這樣在沒有鍵按 下時(shí),三個(gè) I/O口都是高電平,當(dāng)有鍵按下時(shí),不僅會(huì)使某個(gè) I/O口的輸入為低電平,而且會(huì)通過與門 給 INT7端輸入低電平,從而產(chǎn)生中斷。 3.5顯示模塊 LED 數(shù)碼管是最常用的顯示器件之
27、一。 LED 顯示器是由發(fā)光二極管顯示字段 組成的,它有共陰極和共陽極兩種連接方式。 LED 顯示方法有兩種:動(dòng)態(tài)顯示和 靜態(tài)顯示。 動(dòng)態(tài)顯示是 CPU 對(duì)顯示器件進(jìn)行動(dòng)態(tài)地掃描, 顯示器件分時(shí)工作, 每 次只能有一個(gè)顯示。但由于人視覺的占留現(xiàn)象,所以,仍覺得器件都在顯示;動(dòng) 態(tài)顯示是 CPU 只一次輸出顯示數(shù)據(jù)后, 就能保持?jǐn)?shù)據(jù)一直在顯示, 直到下一次刷 新顯示數(shù)據(jù)。比較兩種顯示方式,前者占用機(jī)時(shí)長,一旦 CPU 不執(zhí)行顯示程序, 就立刻停止顯示;后者占 用機(jī)時(shí)少, 并且可靠性好。 通常靜態(tài)顯示電路使用元 件多,線路復(fù)雜,但是現(xiàn) 已出現(xiàn)功能比較強(qiáng)大的顯 示驅(qū)動(dòng)器,使線路顯得也 比較簡單。本系
28、統(tǒng)顯示模塊選用 的器件如下:顯示驅(qū)動(dòng)譯 碼器是 74LS47(動(dòng)態(tài)顯 示 、 共陽極 LED 數(shù)碼管顯 示器。接法見右圖 3-5。圖 3-5 顯示電路圖 3-4 鍵盤電路4、 軟件設(shè)計(jì)一個(gè)成熟的單片機(jī)應(yīng)用系統(tǒng)是由軟硬件結(jié)合而成的, 二者相輔相成, 缺一不 可??梢赃@樣形容軟件和硬件之間的關(guān)系,硬件是系統(tǒng)的“載體” ,而軟件是使 “載體” 產(chǎn)生動(dòng)力的發(fā)電機(jī)。 所以硬件要在軟件的配合下才能完成預(yù)先確定要實(shí) 現(xiàn)的各種功能,本章主要闡述系統(tǒng)的軟件設(shè)計(jì)。4.1 單片機(jī)編程語言的選擇對(duì)于單片機(jī),特別是 8位 51系列單片機(jī),有兩類編程語言支持:即低級(jí)語 言和高級(jí)語言。低級(jí)語言即指匯編語言,高級(jí)語言有 C
29、和 PL/M。4.1.1 匯編語言匯編語言是面向硬件的低級(jí)語言,它有著面向硬件的低級(jí)語言的一般優(yōu)點(diǎn) 占用內(nèi)存單元少,占用 CPU 資源少; 代碼效率高,程序執(zhí)行速度快; 可直接對(duì)硬件進(jìn)行操作; 能精確掌握指令的執(zhí)行時(shí)間,適合實(shí)時(shí)控制場合及對(duì)時(shí)間精度要求高的 場合。但也有它的缺點(diǎn): 不是結(jié)構(gòu)化程序設(shè)計(jì)語言; 編寫較難,編寫效率低,不適合開發(fā)復(fù)雜的大型項(xiàng)目; 調(diào)試較難; 由于完全面向硬件,故可移植性很差。4.1.2 C語言C 語言是一種編譯型程序設(shè)計(jì)語言 ,它有如下特點(diǎn): 具有完善的模塊程序結(jié)構(gòu),可以進(jìn)行模塊化程序設(shè)計(jì) ; 兼顧了多種高級(jí)語言的特點(diǎn),并具備匯編語言的功能, 可以直接面向單 片機(jī)的硬
30、件編程 可讀性好,可靠性高,代碼轉(zhuǎn)換質(zhì)量較高; 程序編制效率高、周期短。對(duì)于本系統(tǒng),由于 C 語言優(yōu)于匯編語言, 所以我們選擇 C 語言中 C51作為 編制系統(tǒng)軟件的編程語言。4.2 軟件總體結(jié)構(gòu)圖本系統(tǒng)的軟件設(shè)計(jì)過程中, 我們盡可能使其功能化、 模塊化、 盡量采用子程 序調(diào)用的方法。 其軟件設(shè)計(jì)包括系統(tǒng)初始化、 主程序模塊、 A/D模塊、 鍵盤模塊、 圖 4-1軟件總體結(jié)構(gòu)圖4.2.1系統(tǒng)初始化本系統(tǒng)的初始化包括定義頭文件和各個(gè)輸入管腳以及初始化全局變量和各標(biāo) 志位。4.2.2主程序模塊軟件設(shè)計(jì)本系統(tǒng)的主程序模塊包括初始化、 A/D轉(zhuǎn)換模塊、 PID 校正值計(jì)算、鍵盤模 塊、顯示模塊、加熱模
31、塊、報(bào)警模塊。初始化 定時(shí)器 T1為自動(dòng)重裝載的模式并 讓其無限工作下去,從而為 AD 提供時(shí)鐘信號(hào)。 定時(shí)器 0每 1/127秒中斷一次, 定時(shí)器每中斷 127次 (1秒 為一個(gè)采 樣周期;首先判斷有沒有到采樣時(shí)間; 到的話再判斷溫度是否越限; 然后判斷 是否需要 PID 校正值計(jì)算。主程序流程圖如圖 4-2所示: 4.3 A/D模塊軟件設(shè)計(jì)AD 轉(zhuǎn)換的軟件設(shè)計(jì)主要負(fù)責(zé):AD 地址的初始化、 啟動(dòng)轉(zhuǎn)換和轉(zhuǎn)換結(jié) 束時(shí)的數(shù)據(jù)讀取。為了提高系統(tǒng)的效率, 本系統(tǒng)采用 中斷方式采集溫度。在 A/D轉(zhuǎn)換結(jié)束 后, EOC 引腳自動(dòng)變?yōu)楦唠娖?通過 一個(gè)反向器使得外部中斷 0受到下降 沿觸發(fā), 從而進(jìn)入外
32、部中斷 0服務(wù)子程 序, 在中斷結(jié)束返回主程序前, 再次啟 動(dòng) A/D轉(zhuǎn)換,進(jìn)行下一次轉(zhuǎn)換,即可 采集到當(dāng)前比較可靠的溫度值。 A/D轉(zhuǎn)換流程圖如圖 4-3所示:4.4 鍵盤模塊軟件設(shè)計(jì) 鍵盤防抖動(dòng)措施鍵盤實(shí)際上是一組按鍵開關(guān)的組合。 一般情況下, 鍵盤采用機(jī)械彈性開關(guān) 來反映一個(gè)電壓信號(hào)的開、 斷。 由于機(jī)械觸點(diǎn)的彈性作用, 在閉合和斷開瞬間會(huì) 有抖動(dòng)發(fā)生,抖動(dòng)時(shí)間長短由按鍵的機(jī)械特性決定,一般為 510ms 。為了確保圖 4-3 A/D轉(zhuǎn)換(外部中斷 0流程圖序圖 4-2主程序流程按鍵不產(chǎn)生誤動(dòng)作, 必須消除抖動(dòng)的影響。 否則, 一次按鍵的動(dòng)作會(huì)當(dāng)作幾次按 鍵動(dòng)作。 對(duì)于本系統(tǒng),我們使用的
33、是 軟件消抖 的方法。 鍵盤處理控制方式CPU 對(duì)鍵盤控制主要有三種:程序控制掃描方式,定時(shí)掃描控制方式和 中斷控制方式 。第一種方式是在 CPU 工作空余,調(diào)用鍵盤掃描子程序,響應(yīng)鍵 輸入信號(hào)要求;第二種方式是利用定時(shí)器 /計(jì)數(shù)器每隔一段時(shí)間產(chǎn)生定時(shí)中斷, CPU 響應(yīng)中斷后對(duì)鍵盤進(jìn)行掃描并在有鍵閉合時(shí)轉(zhuǎn)入該鍵的功能子程序;中斷 控制方式是利用外部中斷源,響應(yīng)鍵輸入信號(hào),當(dāng)無鍵按下時(shí), CPU 執(zhí)行正常 工作程序。當(dāng)有鍵按下時(shí), CPU 立即中斷,在中斷服務(wù)子程序中掃描鍵盤,判 斷是哪個(gè)鍵被按下, 然后執(zhí)行該鍵的功能子程序。 從這三種控制方式來看, 第一 種方式占用了太多時(shí)間,第二種方式也可
34、能產(chǎn)生空掃描和不能及時(shí)響應(yīng)鍵輸入, 同時(shí)占用了一個(gè)定時(shí)器,而第三種方式 既能及時(shí)的處理鍵輸入,又提高了 CPU 的運(yùn)行效率 。 為了提高 CPU 的運(yùn)行效率,我們采用了中斷方式。 鍵盤模塊程序設(shè)計(jì)鍵盤模塊主要包括三個(gè)模塊:中斷模塊、鍵值處理模塊、設(shè)置模塊(調(diào)節(jié)設(shè) 定溫度值子模塊、調(diào)節(jié)溫度上限子模塊、調(diào)節(jié)溫度下限子模塊 。 中斷模塊 :當(dāng)有鍵按下時(shí), 進(jìn)入中斷服務(wù)子程序。 此程序中還包括鍵盤的 防抖動(dòng)處理和判斷鍵值。 鍵值處理模塊 :當(dāng)“ Set ”鍵按下時(shí),即進(jìn)入設(shè)置狀態(tài);當(dāng)“ +”鍵按下 時(shí),即顯示最大值;當(dāng)“ -”鍵按下時(shí),即顯示最小值。鍵盤模塊流程圖分別如圖 4-4所示: 設(shè)置模塊(如上
35、圖 4-5示 :調(diào)節(jié)設(shè)定溫度子模塊:當(dāng)“ +”鍵按下時(shí),設(shè)定值 Set_data加 1;當(dāng)“ -”鍵 按下時(shí),設(shè)定值 Set_data減 1; 當(dāng)“ Set ”鍵按下時(shí),表示此狀態(tài)設(shè)定完畢,進(jìn) 入設(shè)置最大值子模塊。調(diào)節(jié)溫度上限子模塊:當(dāng)“ +”鍵按下時(shí),設(shè)定值 Max_data加 1;當(dāng)“ -” 鍵按下時(shí),設(shè)定值 Max_data減 1; 當(dāng)“ Set ”鍵按下時(shí),表示此狀態(tài)設(shè)定完畢, 進(jìn)入設(shè)置最大值子模塊。調(diào)節(jié)溫度下限子模塊:當(dāng)“ +”鍵按下時(shí),設(shè)定值 Min_data加 1;當(dāng)“ -” 鍵按下時(shí),設(shè)定值 Min_data減 1; 當(dāng)“ Set ”鍵按下時(shí),表示此狀態(tài)設(shè)定完畢, 退出設(shè)置函數(shù)
36、。4.5 報(bào)警模塊軟件設(shè)計(jì)當(dāng)采集的當(dāng)前溫度值大于溫度上限值時(shí), 555定時(shí)器控制端置 0并使 P1.6口即 F_Chng(改變 555頻率的口置 1,即發(fā)出上限報(bào)警聲音;當(dāng)采集的當(dāng)前溫度值小于溫度下限值時(shí), 555定時(shí)器控制端置 0并并使 P1.6圖 4-4 鍵盤中斷服務(wù) 流程圖圖 4-5 設(shè)置 流程圖 口即 F_Chng(改變 555頻率 的口置 0,即發(fā)出下限報(bào) 警聲音;當(dāng)采集的溫度值介于溫 度上限值和溫度下限值時(shí)之 間, 555定時(shí)器控制端置 1, 不發(fā)出任何聲音。報(bào)警模塊 程序流程圖如圖 4-6所示:4.6 采樣、 PID 校正及輸出模塊軟件設(shè)計(jì) 在實(shí)際應(yīng)用中,可選用 的控制算法很多,
37、但最常用 的仍然是數(shù)字 PID 算法。最 優(yōu)控制理論已證明:PID 控 制能滿足大多數(shù)工業(yè)對(duì)象的 控制要求。 PID 算法蘊(yùn)含了 動(dòng)態(tài)控制過程中過去、 現(xiàn)在、 將來的主要信息,而且其配 置幾乎最優(yōu)。其中比例(P 代表當(dāng)前的信息,起糾正偏 差的作用, 使過程反應(yīng)迅速; 微分(D 代表了將來的信 息,在信號(hào)變化時(shí)有超前控 制作用,有利于克服振蕩, 提高系統(tǒng)穩(wěn)定性,加快系統(tǒng) 的過渡過程;積分(I 代表了過去積累的信息,它能消除靜差,改善系統(tǒng)靜差特性。這三種作用配合得當(dāng), 可使動(dòng)態(tài)過程快速、平穩(wěn)、準(zhǔn)確,并收到良好的控制效果。因此本系統(tǒng)采用 PID 控制。定時(shí)器 T0設(shè)為 1/127S中斷一次, T0_
38、count=127,當(dāng)進(jìn)入中斷程序時(shí),首先圖 4-6 報(bào)警和 PWM 輸出流程圖 T0_count自減 1,判斷 T0_count=0?若是則調(diào)用 PID 函數(shù),計(jì)算出 PWM 的寬度 (即加熱時(shí)間 , 然后打開加熱器。 再次啟動(dòng) AD 轉(zhuǎn) 換。 PWM_count自減 1,判斷 PWM_count=0?,若 PWM_count=0, 表示加熱結(jié)束, 關(guān)閉加熱器。 定時(shí) 器 T0重賦初值, T0中斷返回。綜上所述, 此模塊包括周期為 1S 的數(shù)據(jù)采樣、 PID 校正值的計(jì)算和 PWM 加熱輸出。 此模塊程序流程 圖如圖 4-6、 4-7所示: 4.7 顯示模塊軟件設(shè)計(jì) 顯示模塊有兩個(gè)子程序配合
39、完 成:判斷顯示子程序:該程序首 先判斷是否需要報(bào)警,若需要?jiǎng)t按 照一定頻率(1S 左右 調(diào)用正常顯示子程序和延時(shí)程序。正常顯示子程序:將傳入的形參除以 100,得到百位,選通數(shù)碼 管 1顯示百位。將傳入的形參除 以 100取余,再除以 10得到十位, 選通數(shù)碼管2顯示十位。將傳入的形參除以 10取余, 得到個(gè)位, 選 通數(shù)碼管 3顯示個(gè)位。 如圖 4-9 示:圖 4-9 顯示流程圖圖 4-7PID 校正流程圖5、 系統(tǒng)調(diào)試與總結(jié)5.1 系統(tǒng)調(diào)試系統(tǒng)調(diào)試要求系統(tǒng)能完成預(yù)先確定要實(shí)現(xiàn)的各種功能。 硬件調(diào)試元器件是組成系統(tǒng)的基本單元, 其性能好壞與穩(wěn)定性直接影響整個(gè)系統(tǒng)性能 與可靠性。因此,我們精
40、選元器件,使其穩(wěn)定性和精度等方面滿足要求。 軟件調(diào)試軟件調(diào)試的是整個(gè)系統(tǒng)設(shè)計(jì)很重要的步驟,要求所編寫的程序不僅要在理論 上適合功能要求, 而且要在實(shí)際的電路板上可靠執(zhí)行。 本系統(tǒng)的軟件調(diào)試用 Keil 仿真軟件和 Proteus 仿真軟件進(jìn)行軟硬件聯(lián)合仿真:編譯通過只是說明程序沒有語法錯(cuò)誤。是否達(dá)到設(shè)計(jì)目的,還需將軟硬件結(jié) 合進(jìn)行排錯(cuò)、 調(diào)試和檢查即通常所說的仿真。 仿真有兩種方式:一是采用仿真器 的實(shí)時(shí)在線仿真。二是通過 PC 機(jī)由軟件完成的模擬仿真。實(shí)時(shí)在線仿真可以完 全模擬樣機(jī)或?qū)嶒?yàn)板的工作狀態(tài), 用起來比較直觀、 方便。 軟件模擬仿真不需要 仿真器,僅僅通過安裝在微機(jī)上的單片機(jī)模擬軟件
41、便可以進(jìn)行單片機(jī)系統(tǒng)的仿 真。我們使用 Keil 仿真軟件和 Proteus 仿真軟件進(jìn)行軟硬件聯(lián)合仿真。首先用 Keil 進(jìn)行軟件仿真,主要包括 C 文件的編譯、連接、并生成 Hex 文件提供給 Proteus ,仿真界面如圖 5.1所示。其次用 Proteus 進(jìn)行硬件仿真,在 Proteus 中 選擇相應(yīng)的元器件再結(jié)合 Keil 生成的 Hex 文件可以對(duì)系統(tǒng)整體性能進(jìn)行仿真, 仿真界面如圖 5.2所示。在仿真過程中我們把系統(tǒng)分成若干個(gè)模塊,包括顯示模 塊、鍵盤模塊、 A/D轉(zhuǎn)換模塊、 PM 控制量隔離輸出模塊 (如圖 5.3所示 ,對(duì)各模 塊一一進(jìn)行調(diào)試。 5.2程序 鏈接圖 5-1 Ke
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年工業(yè)地產(chǎn)租賃合同示范文本(二零二五年度)6篇
- 2024長期合作運(yùn)輸合同
- 2024物聯(lián)網(wǎng)農(nóng)業(yè)技術(shù)研發(fā)合同
- 2024虛擬現(xiàn)實(shí)游戲內(nèi)容制作與授權(quán)合同
- 2024年全民科學(xué)素質(zhì)知識(shí)競賽題庫及答案(共60題)
- 2024裝修合同注意事項(xiàng)及細(xì)節(jié)
- 動(dòng)植物檢驗(yàn)檢疫學(xué)知到智慧樹章節(jié)測試課后答案2024年秋北京工商大學(xué)
- 電子競技專家聘用協(xié)議
- 汽車按揭購買合同樣本
- 2024預(yù)算單位公務(wù)卡個(gè)性化定制服務(wù)協(xié)議3篇
- 承諾函(支付寶)
- FZ/T 81024-2022機(jī)織披風(fēng)
- GB/T 24123-2009電容器用金屬化薄膜
- 艾滋病梅毒乙肝實(shí)驗(yàn)室檢測
- 國鐵橋梁人行道支架制作及安裝施工要點(diǎn)課件
- 領(lǐng)導(dǎo)科學(xué)全套精講課件
- 粵教版地理七年級(jí)下冊(cè)全冊(cè)課件
- 小學(xué)科學(xué)蘇教版六年級(jí)上冊(cè)全冊(cè)精華知識(shí)點(diǎn)(2022新版)
- 萎縮性胃炎共識(shí)解讀
- 2022版義務(wù)教育語文課程標(biāo)準(zhǔn)(2022版含新增和修訂部分)
- 精品金屬線管布線施工工程施工方法
評(píng)論
0/150
提交評(píng)論