測(cè)控系統(tǒng)原理與設(shè)計(jì)6-監(jiān)控程序設(shè)計(jì)_第1頁(yè)
測(cè)控系統(tǒng)原理與設(shè)計(jì)6-監(jiān)控程序設(shè)計(jì)_第2頁(yè)
測(cè)控系統(tǒng)原理與設(shè)計(jì)6-監(jiān)控程序設(shè)計(jì)_第3頁(yè)
測(cè)控系統(tǒng)原理與設(shè)計(jì)6-監(jiān)控程序設(shè)計(jì)_第4頁(yè)
測(cè)控系統(tǒng)原理與設(shè)計(jì)6-監(jiān)控程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

監(jiān)控程序設(shè)計(jì)本章主要內(nèi)容:監(jiān)控程序的功能和組成監(jiān)控主程序和初始化管理鍵盤管理顯示、中斷與時(shí)鐘管理硬件故障的自檢6.1監(jiān)控程序的功能和組成

監(jiān)控程序設(shè)計(jì)是指以空白的微處理器/控制器為基礎(chǔ),完成全部的軟件設(shè)計(jì),沒有將系統(tǒng)軟件和應(yīng)用軟件分開處理,其實(shí)時(shí)性和可靠性與設(shè)計(jì)人員的水平密切相關(guān),適用于功能較為簡(jiǎn)單的中小型應(yīng)用系統(tǒng)。測(cè)控系統(tǒng)(儀器)中軟件的主要功能采集信息與外界對(duì)話(鍵盤和顯示管理)記憶信息處理信息控制功能自我測(cè)試自補(bǔ)償自適應(yīng)/自校正自學(xué)習(xí)圖6-1-1監(jiān)控程序的基本組成監(jiān)控主程序調(diào)用各模塊,并將它們聯(lián)系起來,形成一個(gè)有機(jī)整體,從而實(shí)現(xiàn)對(duì)系統(tǒng)的全部管理功能。測(cè)控算法程序主要實(shí)現(xiàn)測(cè)量與控制功能,它由描述一種或幾種測(cè)控算法(如數(shù)字濾波,PID算法等)的功能模塊構(gòu)成,通常為實(shí)時(shí)中斷程序或監(jiān)控程序所調(diào)用。各功能模塊又由各種下層模塊(子程序)所支持。6.2監(jiān)控主程序和初始化管理6.2.1監(jiān)控主程序

監(jiān)控主程序通常包括可編程器件、輸入、輸出端口和參數(shù)的初始化,自診斷管理模塊,鍵盤顯示管理模塊,以及實(shí)時(shí)中斷管理和處理模塊等。除了初始化和自診斷外,監(jiān)控主程序一般總是把其余部分聯(lián)接起來,構(gòu)成一個(gè)無限循環(huán),測(cè)控系統(tǒng)的所有功能都在這一循環(huán)中周而復(fù)始地、或有選擇地執(zhí)行,除非掉電或按復(fù)位(RESET)鍵,測(cè)控系統(tǒng)不會(huì)跳出這一循環(huán)。由于各微機(jī)化測(cè)控系統(tǒng)的功能不同,硬件結(jié)構(gòu)不同,程序編制方法不同,因而監(jiān)控主程序沒有統(tǒng)一的模式。圖6-2-1監(jiān)控主程序流程示例

6.2.2初始化管理

一、可編程器件初始化――對(duì)可編程硬件接口電路的工作模式的初始化微機(jī)化測(cè)控系統(tǒng)中常用的可編程器件有:鍵盤顯示管理接口8279、I/O和RAM擴(kuò)展接口8155,并行輸入輸出接口8255、定時(shí)計(jì)數(shù)器接口8253等。二、堆棧初始化――復(fù)位后首先在用戶RAM中確定一個(gè)堆棧區(qū)域,由堆棧指示器SP來管理三、參數(shù)初始化指對(duì)測(cè)控系統(tǒng)的整定參數(shù)(如PID算法的Kp、Ti、Td三個(gè)參數(shù)的初值)、報(bào)警值以及過程輸入通道的數(shù)據(jù)與過程輸出通道的數(shù)據(jù)初始化。6.3鍵盤管理

6.3.1一鍵一義的鍵盤管理

一鍵一義,即一個(gè)按鍵代表一個(gè)確切的命令或一個(gè)數(shù)字,編程時(shí)只要根據(jù)當(dāng)前按鍵的編碼把程序直接分支到相應(yīng)的處理模塊的入口,而無需知道在此以前的按鍵情況。鍵盤信號(hào)的獲得有三種方法:一、單純查詢法圖6-3-1查詢法程序流程(了解)功能:按下不同的按鍵會(huì)使SOUNDER發(fā)出不同頻率的聲音#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitBEEP=P3^7;sbitK1=P1^4;sbitK2=P1^5;sbitK3=P1^6;sbitK4=P1^7;…..voidPlay(uchart){…..}voidmain(){P1=0xff;BEEP=0;while(1){if(K1==0)Play(1);if(K2==0)Play(2);if(K3==0)Play(3);if(K4==0)Play(4);二、鍵盤中斷法

按下鍵盤任何鍵都引起一個(gè)中斷請(qǐng)求,鍵碼分析過程放在中斷子程序中,這種方法需獨(dú)自占用一個(gè)外部中斷源,其監(jiān)控程序結(jié)構(gòu)如圖6-3-2(a)所示。

圖6-3-2中斷法和定時(shí)法程序框圖三、定時(shí)查詢法

每隔一定時(shí)間查詢一次鍵盤,由于時(shí)間間隔通常很短,對(duì)于操作者來說鍵盤的響應(yīng)是實(shí)時(shí)的,鍵盤的查詢過程安排在定時(shí)中斷程序中完成,其監(jiān)控程序的結(jié)構(gòu)框圖如圖6-3-2(b)所示。

6.3.2一鍵多義的按鍵管理

一、一鍵多義:一個(gè)按鍵有多種功能,既可作多種命令鍵,又可作數(shù)字鍵。在一鍵多義的情況下,一個(gè)命令不是由一次按鍵,而是由一個(gè)按鍵序列所組成。換句話說,對(duì)一個(gè)按鍵含義的解釋,除了取決于本次按鍵外,還取決于以前按了些什么鍵。因此對(duì)于一鍵多義的監(jiān)控程序,首先要判斷一個(gè)按鍵序列(而不是一次按鍵)是否已構(gòu)成一個(gè)合法命令。若已構(gòu)成合法命令,則執(zhí)行命令,否則等待新按鍵輸入。

二、一鍵多義的監(jiān)控程序

一鍵多義的監(jiān)控程序:要用多張轉(zhuǎn)移表,組成一個(gè)命令的前幾個(gè)按鍵起著引導(dǎo)的作用,把控制引向某張合適的轉(zhuǎn)移表,根據(jù)最后一個(gè)按鍵編碼查閱該轉(zhuǎn)移表,就找到要求的子程序入口。按鍵的管理,可以用查詢法也可以用中斷法。

三、一鍵多義鍵服務(wù)程序流程實(shí)例

8回路微機(jī)溫控儀鍵盤有6個(gè)按鍵:C鍵(回路號(hào)1~8,第8回路為環(huán)境溫度補(bǔ)償,其余為控溫點(diǎn))P鍵(參數(shù)號(hào),有設(shè)定值,實(shí)測(cè)值,共8個(gè)參數(shù))△

鍵(加1)▽鍵(減1)只用于設(shè)定值的修改R鍵(運(yùn)行)S鍵(停止運(yùn)行)第8回路(環(huán)境溫度補(bǔ)償回路)只有溫度實(shí)測(cè)值一個(gè)參數(shù),沒有其它參數(shù)第1~7個(gè)回路有設(shè)定值(P、I、D參數(shù),上、下限報(bào)警值)、溫度實(shí)測(cè)值8個(gè)參數(shù)1、

程序流程――圖6-3-32、

程序清單:參見教材。設(shè)鍵編碼R:00H;S:01H;△:02H;▽:03H;C:04H和P:05H。內(nèi)存RAM20H中高4位為通道(回路)號(hào)標(biāo)記,低4位為參數(shù)號(hào)標(biāo)記。假設(shè)8279命令口地址為7FFFH,數(shù)據(jù)口地址為7FFEH。7個(gè)回路(1~7),每個(gè)回路8個(gè)參數(shù),共有56個(gè)轉(zhuǎn)移入口,分別由56個(gè)鍵服務(wù)功能模塊所支持。第8回路無參數(shù),由其獨(dú)立子程序C8單獨(dú)處理。圖6-3-3一鍵多義鍵服務(wù)程序流程6.3.3自動(dòng)/手動(dòng)切換

一、微機(jī)化控制系統(tǒng)的兩種工作方式自動(dòng)方式――微機(jī)化控制系統(tǒng)的基本工作方式。手動(dòng)方式――在系統(tǒng)調(diào)試、測(cè)試時(shí),用來調(diào)整輸出控制值。二、自動(dòng)/手動(dòng)切換控制的基本功能是:①在手動(dòng)方式時(shí),能通過一定的手動(dòng)操作來方便、準(zhǔn)確地調(diào)整輸出值;②能實(shí)現(xiàn)手動(dòng)-自動(dòng)的無擾動(dòng)切換。三、實(shí)現(xiàn)手動(dòng)操作的方法實(shí)現(xiàn)手動(dòng)操作,有硬件方法和軟件方法兩種。目前大多數(shù)微機(jī)化系統(tǒng)采用軟件方法,由操作面板上的幾個(gè)按鍵來實(shí)現(xiàn)。監(jiān)控程序通過判斷手動(dòng)-自動(dòng)切換鍵的狀態(tài)來判斷是否進(jìn)入手操方式。在手操方式時(shí),系統(tǒng)的自動(dòng)控制功能暫停,改由面板上的輸出加、減兩鍵來調(diào)整輸出值。四、無擾動(dòng)切換的實(shí)現(xiàn)在用戶RAM區(qū)中開辟一個(gè)輸出控制值單元,作為當(dāng)前輸出控制量的映象,無論是手操還是自動(dòng)控制,都是對(duì)這一輸出值的映象單元進(jìn)行加或減,在輸出模塊程序作用下,輸出通道把此值送到執(zhí)行機(jī)構(gòu)上去。6.4顯示、中斷與時(shí)鐘管理

6.4.1顯示管理一、微機(jī)化系統(tǒng)的主要顯示方式模擬指示――用模擬表頭作為顯示手段,無需軟件管理。數(shù)字顯示――硬件方案的不同,軟件顯示管理方法也不同二、顯示管理軟件的基本任務(wù)1、顯示更新的數(shù)據(jù)2、多參數(shù)的巡測(cè)和定點(diǎn)顯示管理

巡回顯示方式――每隔一定時(shí)間)改換一個(gè)新的顯示參數(shù)

定點(diǎn)顯示方式――只跟蹤顯示某一參數(shù),不改換通道或參數(shù)3、指示燈顯示管理通??捎膳c某一指示燈有關(guān)的功能模塊直接管理。P0=DSY_CODE[DSY_Buffer[0]];P1=DSY_CODE[DSY_Buffer[1]];P2=DSY_CODE[DSY_Buffer[2]];DSY_Buffer[2]=Count/100;DSY_Buffer[1]=Count%100/10;DSY_Buffer[0]=Count%10;voidmain(){LED=1;EA=1;EX0=1;IT0=1;while(1);}//INT0中斷函數(shù)voidEX_INT0()interrupt0{LED=~LED;//控制LED亮滅#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitLED=P0^0;//主程序測(cè)控系統(tǒng)的中斷源:過程通道實(shí)時(shí)時(shí)鐘面板按鍵通信接口系統(tǒng)故障6.4.2中斷管理一、一個(gè)中斷源的中斷過程:①暫時(shí)保護(hù)程序計(jì)數(shù)器的內(nèi)容。②將中斷服務(wù)程序的入口地址送入程序計(jì)數(shù)器。③在服務(wù)程序開始時(shí),必須將服務(wù)程序需要使用的CPU寄存器(例如累加器、進(jìn)位位、專用的暫存寄存器等)的內(nèi)容暫時(shí)地保護(hù)起來,并在服務(wù)程序結(jié)束時(shí)再恢復(fù)其內(nèi)容。④對(duì)于引起中斷而將INT變?yōu)榈碗娖降脑O(shè)備,系統(tǒng)必須進(jìn)行適當(dāng)?shù)牟僮魇笽NT再次變?yōu)楦唠娖?。⑤如果允許發(fā)生中斷,則必須將允許中斷觸發(fā)器再次置位。⑥最后,恢復(fù)程序計(jì)數(shù)器原先被保存的內(nèi)容,以便返回到被中斷的程序。二、多個(gè)中斷源的處理確定多個(gè)中斷源的優(yōu)先級(jí),在軟件上作出相應(yīng)處理。當(dāng)CPU在處理中斷時(shí),還要能響應(yīng)更高級(jí)的中斷請(qǐng)求,而屏蔽掉同級(jí)或較低級(jí)的中斷請(qǐng)求。三、中斷程序模塊中斷模塊分中斷管理模塊和中斷服務(wù)模塊兩部分。1、中斷服務(wù)模塊――具體服務(wù)內(nèi)容,由各測(cè)控系統(tǒng)的功能所決定。2、中斷管理模塊中斷管理軟件模塊,通常應(yīng)包括以下功能:斷點(diǎn)現(xiàn)場(chǎng)保護(hù);識(shí)別中斷源;判斷優(yōu)先級(jí);如果允許中斷嵌套,則再次開放中斷(單片機(jī)除外);中斷服務(wù)結(jié)束后恢復(fù)現(xiàn)場(chǎng),如圖6-4-1所示。圖6-4-1中斷流程四、多中斷源識(shí)別通常,系統(tǒng)掉電總是作為最高級(jí)中斷源。其它中斷源的優(yōu)先級(jí),則由設(shè)計(jì)人員根據(jù)系統(tǒng)的功能特點(diǎn)來確定。當(dāng)有兩個(gè)以上中斷源時(shí),可以采用如下兩種方法:①利用定時(shí)器/計(jì)數(shù)器的外部事件計(jì)數(shù)輸入端(T0或T1),作為邊沿觸發(fā)的外部中斷輸入端,這時(shí)定時(shí)器/計(jì)數(shù)器應(yīng)工作于計(jì)數(shù)器方式,計(jì)數(shù)寄存器應(yīng)預(yù)置滿度數(shù)。②每個(gè)中斷源都接在同一個(gè)外部中斷輸入端(INT0或INT1)上,同時(shí)利用輸入口來識(shí)別某裝置的中斷請(qǐng)求。圖6-4-2多中斷源識(shí)別電路6.4.3時(shí)鐘管理

一、時(shí)鐘作為定時(shí)器的用途①過程輸入通道的數(shù)據(jù)采樣周期定時(shí);②過程輸出通道控制周期的定時(shí);③參數(shù)修改按鍵數(shù)字增減速度的定時(shí);④多參數(shù)巡回顯示時(shí)的顯示周期定時(shí);⑤動(dòng)態(tài)保持方式輸出過程通道的動(dòng)態(tài)刷新周期定時(shí);⑥電壓-頻率型A/D轉(zhuǎn)換器定時(shí)電路;⑦故障監(jiān)視電路(Watchdog)的定時(shí)信號(hào)。二、實(shí)現(xiàn)定時(shí)的方法1、硬件方法采用可編程定時(shí)/計(jì)數(shù)器接口電路(如CTC8253)以及單片機(jī)內(nèi)的定時(shí)電路。這種定時(shí)方法的定時(shí)間隔不可能做得太長(zhǎng)。采用實(shí)時(shí)時(shí)鐘芯片。

2、軟件方法。采用軟件延時(shí)方案,無需硬件成本,但要占用大量CPU時(shí)間,且實(shí)時(shí)性差,定時(shí)精度低。3、軟件與硬件相結(jié)合定時(shí)的方法這種方案幾乎不影響測(cè)控系統(tǒng)的實(shí)時(shí)響應(yīng),而且能實(shí)現(xiàn)多種時(shí)間間隔的定時(shí)。首先由定時(shí)電路產(chǎn)生一個(gè)基本的脈沖。硬件定時(shí)時(shí)間到,產(chǎn)生一中斷。監(jiān)控主程序隨即轉(zhuǎn)入時(shí)鐘中斷管理模塊。在設(shè)計(jì)軟件結(jié)構(gòu)時(shí),可串行地或并行地設(shè)置幾個(gè)軟件定時(shí)器(在用戶RAM區(qū))。當(dāng)硬件定時(shí)中斷一到,這些軟件時(shí)鐘分別用累加或遞減方法計(jì)時(shí),并由軟件來判斷是否定時(shí)時(shí)間到。6.5硬件故障的自檢

6.5.1自檢方式一、自檢的基本原理自檢就是利用事先編制的程序?qū)y(cè)控系統(tǒng)的主要部件進(jìn)行自動(dòng)檢測(cè),以確定是否有故障以及故障的內(nèi)容和位置。故障診斷的基本原理是對(duì)被測(cè)部件輸入一串?dāng)?shù)據(jù)——試驗(yàn)數(shù)據(jù),然后觀察相應(yīng)的輸出數(shù)據(jù),并對(duì)觀察結(jié)果進(jìn)行分析,確定故障的內(nèi)容和位置。試驗(yàn)數(shù)據(jù)、觀察到的結(jié)果數(shù)據(jù)和故障的對(duì)應(yīng)關(guān)系應(yīng)在故障診斷前準(zhǔn)備好。二、自檢方式的三種類型:一、開機(jī)自檢在電源接通或系統(tǒng)復(fù)位之后進(jìn)行。自檢中如果沒發(fā)現(xiàn)問題,就進(jìn)入測(cè)量程序,如果發(fā)現(xiàn)問題,則及時(shí)報(bào)警。2、周期性自檢在測(cè)控系統(tǒng)運(yùn)行過程中,間斷插入的自檢操作,這種操作可以保證測(cè)控系統(tǒng)在使用過程中一直處于正常狀態(tài)。周期性自檢不影響測(cè)控系統(tǒng)的正常工作,因而只有當(dāng)出現(xiàn)故障給予報(bào)警時(shí),用戶才會(huì)覺察。鍵盤自檢具有鍵盤自檢功能的測(cè)控系統(tǒng)面板上應(yīng)設(shè)有“自檢”按鍵,當(dāng)用戶對(duì)系統(tǒng)的可信度發(fā)出懷疑時(shí),便通過該鍵來啟動(dòng)一次自檢過程。三、自檢結(jié)果的提示――“出錯(cuò)代碼”自檢過程中,微機(jī)化測(cè)控系統(tǒng)一般都借用本身的顯示器,以文字或數(shù)字的形式顯示“出錯(cuò)代碼”,出錯(cuò)代碼通常以“ErrorX”字樣表示,其中“X”為故障代號(hào),操作人員根據(jù)“出錯(cuò)代碼”,查閱操作手冊(cè)便可確定故障內(nèi)容。除了給出故障代號(hào)之外,往往還給出指示燈的閃爍或者音響報(bào)警信號(hào),以提醒操作人員注意。6.5.2自檢算法一、ROM或EPROM的檢測(cè)ROM故障的檢測(cè)常用“校驗(yàn)和”方法,具體作法是:在將程序機(jī)器碼寫入ROM的時(shí)候,保留一個(gè)單元(一般是最后一個(gè)單元),此單元不寫程序機(jī)器碼而是寫“校驗(yàn)字”,“校驗(yàn)字”應(yīng)能滿足ROM中所有單元的每一列都具有奇數(shù)個(gè)1。自檢程序的內(nèi)容是:對(duì)每一列數(shù)進(jìn)行異或運(yùn)算,如果ROM無故障,各列的運(yùn)算結(jié)果應(yīng)都為“1”,即校驗(yàn)和等于FFH。二、RAM的檢測(cè)常用的方法是“異或法”,即把RAM單元的內(nèi)容求反并與原碼進(jìn)行“異或”運(yùn)算,如果結(jié)果為FFH,則表明該RAM單元讀寫功能正常,否則,說明該單元有故障。最后再恢復(fù)原單元內(nèi)容。RAM的自檢流程如圖6-5-1所示。圖6-5-1RAM自檢流程圖三、總線的自檢總線的自檢是指對(duì)經(jīng)過緩沖器的總線進(jìn)行檢測(cè)。設(shè)置兩組鎖存觸發(fā)器,分別用于記憶地址總線和數(shù)據(jù)總線上的信息。這樣,只要執(zhí)行一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論