2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩95頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1,第8章 微機(jī)控制系統(tǒng)應(yīng)用程序設(shè)計 應(yīng)用程序就是面對控制系統(tǒng)本身的程序,它是根據(jù)系統(tǒng)的具體要求,由用戶自己設(shè)計的。由于許多控制系統(tǒng)實(shí)時性很強(qiáng),所以目前主要采用匯編語言進(jìn)行程序設(shè)計。本章主要介紹四方面的內(nèi)容:應(yīng)用程序設(shè)計原則與方法,常用程序舉例,微機(jī)控制系統(tǒng)的應(yīng)用程序設(shè)計和軟件抗干擾技術(shù)。,2,8.1 應(yīng)用程序設(shè)計原則與方法  一、應(yīng)用程序軟件設(shè)計的一般目標(biāo) 1. 可靠性

2、 軟件可靠性意味著該軟件在測試運(yùn)行過程中避免可能發(fā)生故障的能力,且一旦發(fā)生故障后,具有解脫和排除故障的能力。軟件可靠性和硬件可靠性本質(zhì)的區(qū)別在于,后者為物理機(jī)理的病變和衰老所致,而前者是由于設(shè)計和實(shí)現(xiàn)的錯誤所致。 2.可修改性 要求以科學(xué)的方法設(shè)計軟件,使之有良好的結(jié)構(gòu)化和完備的文檔。用該軟件所形成的系統(tǒng)性易于調(diào)整。 3.可理解性 軟件的可理解性是其可靠性和可修改性的前提。它要求軟件本身具有簡

3、潔明了的結(jié)構(gòu)。這在很大程度上取決于設(shè)計者的洞察力和創(chuàng)造性,以及對設(shè)計對象掌握的透徹程度,當(dāng)然它還依賴于設(shè)計工具和方法的適當(dāng)運(yùn)用。,3,4.可測試性 可測試性就是設(shè)計一個適當(dāng)?shù)臄?shù)據(jù)集合,用來測試所建立的系統(tǒng),并保證系統(tǒng)得到全面的檢驗(yàn)。 5. 效率性 軟件的效率一般用程序的執(zhí)行時間和所占用的內(nèi)存容量來度量。 二、應(yīng)用程序設(shè)計方法 應(yīng)用程序設(shè)計方法主要有結(jié)構(gòu)化編程和功能模塊編程兩種,

4、這兩種構(gòu)思的結(jié)合就可以得出更佳的程序結(jié)構(gòu)。 (一)、功能模塊編程1. 優(yōu)點(diǎn) 實(shí)際的應(yīng)用程序一般都由一個主程序(包括若干個功能模塊)和多個子程序構(gòu)成。每一個功能程序模塊都能完成某一明確的任務(wù),實(shí)現(xiàn)具體的某個功能。采用這種模塊化的程序設(shè)計方法,有下述優(yōu)點(diǎn):,4,(1)單個模塊結(jié)構(gòu)的程序功能單一,因而易于縮寫、調(diào)試和修改; (2)便于分工,可由多個程序員同時進(jìn)行編寫、調(diào)試,加快軟件研制進(jìn)度; (3)程序可讀性好.便于功能擴(kuò)充和

5、版本升級; (4)程序的修改可局部進(jìn)行.而其它部分則可以相對保持不變; (5)使用頻繁的子程序可以匯編成子程序庫,以便于多個模塊調(diào)用。 2.程序模塊的劃分 模塊化程序設(shè)計是接自上而下的過程進(jìn)行的,主模塊即為總模塊,然后是多層次的子模塊。在進(jìn)行模塊劃分時,應(yīng)弄清楚每個模塊所需完成的功能、數(shù)據(jù)結(jié)構(gòu)以及與其它模塊之間的關(guān)系等。模塊說明應(yīng)包括實(shí)現(xiàn)模塊功能所用的基本算法,模塊入口參數(shù)、出口參散.模塊的數(shù)據(jù)結(jié)構(gòu)及調(diào)用予程序等。,5,

6、3.劃分模塊的原則 模塊的劃分有很大的靈活性,應(yīng)遵循下述原則: (1) 每個模塊應(yīng)具有獨(dú)立的功能,能產(chǎn)生一個明確的結(jié)果,這就是單模塊功能的高內(nèi)聚性; (2) 模塊之間的控制耦合應(yīng)盡量簡單,模塊之間的數(shù)據(jù)耦合應(yīng)盡量少,這就是模塊間的低耦合性??刂岂詈鲜侵改K進(jìn)入和退出的條件及方式,而數(shù)據(jù)耦合則是指模塊間的信息交換方式、交換信息量的多少及信息交換的頻繁程度。 (3) 模塊長度適中,模塊語句的長度通常在20~100條的范圍內(nèi)較

7、合適。(二)結(jié)構(gòu)化程序設(shè)計 結(jié)構(gòu)化程序設(shè)計是指程序的設(shè)計、編寫和調(diào)試都采用一種規(guī)定的組織形式進(jìn)行,任何程序都可以由三種基本結(jié)構(gòu)程序構(gòu)成:,6,1.    順序結(jié)構(gòu). 2.    條件結(jié)構(gòu)(即分支結(jié)構(gòu)) 3.    循環(huán)結(jié)構(gòu) 每個結(jié)構(gòu)只有一個入口和一個出口.三種結(jié)構(gòu)程序的任意組臺和嵌套就

8、構(gòu)成結(jié)構(gòu)化的程序。 子程序和宏指令不能作為一種基本結(jié)構(gòu),但在應(yīng)用系統(tǒng)軟件程序的設(shè)計中,通常把一些常用的功能編寫成子程序或宏指令,構(gòu)成一個或幾個子程序庫,以便于其它功能模塊的隨時調(diào)用。,7,8.2判斷程序設(shè)計 在用微機(jī)進(jìn)行數(shù)據(jù)處理和過程控制的系統(tǒng)中,通常需要對檢測的數(shù)據(jù)或狀態(tài)進(jìn)行分析,然后根據(jù)數(shù)據(jù)的大小及狀態(tài)進(jìn)行判斷,以決定下一步程序運(yùn)行的方向。這些操作和過程都需要判斷程序來處理,判斷程序設(shè)計的基本思想是:

9、 1.   讀人數(shù)據(jù)或邏輯狀態(tài); 2.   進(jìn)行算術(shù)或邏輯運(yùn)算; 3. 根據(jù)運(yùn)算的結(jié)果狀態(tài)進(jìn)行判斷,并轉(zhuǎn)到相應(yīng)的程序入口地址。 在這種程序設(shè)計中,經(jīng)常用到的單片機(jī)算術(shù)運(yùn)算指令有ADD、ADDC、SUBB、CJNE等.常用到的邏輯運(yùn)算指令有ANL、ORL以及XRL等。為了對運(yùn)算結(jié)果進(jìn)行判斷,一般的微機(jī)都設(shè)有狀態(tài)標(biāo)志寄存器,以便根據(jù)運(yùn)算后的狀態(tài)標(biāo)志寄存器的內(nèi)容進(jìn)行轉(zhuǎn)移。,8,如M

10、CS-51系列單片機(jī)有一組標(biāo)志位,設(shè)置在程序狀態(tài)字(PSW)寄存器中,各個標(biāo)志位反映了單片機(jī)在處理數(shù)據(jù)或傳輸數(shù)據(jù)時的某些特性,具體含義是: PSW.7 CY 數(shù)據(jù)運(yùn)算時的進(jìn)位標(biāo)志 PSW.6 AC 輔助進(jìn)行標(biāo)志,用于十進(jìn)制運(yùn)算的調(diào)整 PSW.5 F0 可由用戶設(shè)定的軟標(biāo)志 , PSW.4 RS1 用于寄存器區(qū)的選擇 PSW.3 RS0 用于寄存器區(qū)的選擇 PSW.2 OV 運(yùn)算結(jié)果

11、溢出標(biāo)志 PSW.1 一 不用 PSW.0 P 8位累加器的奇偶校驗(yàn)標(biāo)志,即1的個數(shù) 上面講的幾種標(biāo)志(CY、AC、OV、P)都是在運(yùn)算處理時由CPU自動產(chǎn)生的,其有個別標(biāo)志位可以用軟件干預(yù)。 判斷程序是使用最廣泛的程序,包括算術(shù)判斷程序、邏輯判斷程序和標(biāo)志位判斷程序等三種。,9,一、算術(shù)判斷程序 算術(shù)判斷程序就是根據(jù)算術(shù)運(yùn)算結(jié)果進(jìn)行判斷.它常常用于報警系統(tǒng)、稱重、計數(shù)系統(tǒng)、控

12、制系統(tǒng)以及中斷優(yōu)先權(quán)排隊程序等等。如有M和N兩個數(shù).在進(jìn)行算術(shù)比較后.會出現(xiàn)下列三種情況:MN。它們可以根據(jù)PSW寄存器中的AC、CY、OV等標(biāo)志位進(jìn)行判斷,其程序結(jié)構(gòu)框圖如圖所示。,圖 8.1 算術(shù)判斷程序框圖,10,算術(shù)判斷程序清單: ARITH--CP;MOV A,#M ;取第一個需比較的數(shù)送A MOV R0,#N ;取第=個數(shù)送R0

13、 COMP: CLR C SUBB A,R0 ;比較兩個數(shù)據(jù) JZ MEQUN ;M與N相等,跳轉(zhuǎn)到M=N的處理 JNC MBIGN ;M大于N,跳轉(zhuǎn)M>N的處理

14、MLESSN: …… ;MN的處理 MEQUN: …… ;M=N的處理 二、邏輯判斷程序 在過程控制系統(tǒng)中,經(jīng)常要根據(jù)一些邏輯關(guān)系決定控制過程。邏輯關(guān)系式基本邏輯函數(shù)有三種,即與、或、非。在微機(jī)控制系統(tǒng)中,可以從這三種基本邏輯函數(shù)出發(fā),去模擬任何函數(shù)和模擬數(shù)字電路。,11,模擬邏輯函數(shù)的程序設(shè)計包括以下幾個步驟; 1.

15、60;   從微機(jī)輸入端口讀入數(shù)據(jù)(開關(guān)狀態(tài)); 2.    送屏蔽字,保留的位為1,其余的位則為0; 3.    與所要求的狀態(tài)進(jìn)行比較; 4.    判斷比較結(jié)果,進(jìn)而決定控制程序的走向。 例:模擬邏輯函數(shù)注:假設(shè)A、B、C由P1口輸入,其中A:P1.2、B:P1.3、C:P

16、1.7, 程序清單如下:LOGIC: MOV A,P1 ;讀入狀態(tài)字送累加器 MOV R0,A ;暫存狀態(tài)宇 ANL A,#0CH ;送屏蔽字0000 XX00B XRL A,#0CH ;檢查AB=1l? JZ OUTF ;AB=11時,轉(zhuǎn)輸出,12,MOV A,R0 ;進(jìn)狀態(tài)字 ANL A,#84H ;送屏

17、蔽字X000 0X00 XRL A,#80H ;檢查 =01? JNZ LOGIC ; ≠01,返回 OUTF:…… ;AB=11或 =01時,則輸出函數(shù)值 使用位處理指令,上述程序可改寫,流程圖如下:,圖 8.2模擬邏輯函數(shù)程序框圖,13,START: MOV A,P1 ;讀入狀態(tài)字送累加器 JB A

18、CC.2 AA ;A=1時轉(zhuǎn)移 JB ACC.7 OUTF ;C=1輸出函數(shù)值 AJMP START ; AA: JB ACC.3 OUTF ;B=1輸出函數(shù)值 AJMP START OUTF:…… ;輸出函數(shù)值 三、標(biāo)志判斷程序 標(biāo)志判斷的基本設(shè)

19、計思想是根據(jù)某一標(biāo)志單元(或標(biāo)志位)的狀態(tài)進(jìn)行判斷,以決定下一步程序的前進(jìn)方向。如在馬達(dá)和步進(jìn)電機(jī)控制程序中,經(jīng)常遇到的一個問題就是馬達(dá)和步進(jìn)電機(jī)的旋轉(zhuǎn)方向。為此可以設(shè)置一個標(biāo)志位(F0),根據(jù)標(biāo)志位(F0)的狀態(tài)來決定馬達(dá)和步進(jìn)電機(jī)的旋轉(zhuǎn)方向,其程序控制框圖如圖所示。,14,圖8.3 馬達(dá)方向標(biāo)志判斷程序,15,步進(jìn)電機(jī)方向判斷程序清單DIREC: MOV A,F(xiàn)0 ;狀態(tài)標(biāo)志位送A

20、 JZ PROTE ;狀態(tài)標(biāo)志為0轉(zhuǎn)FROTE: …… ;狀態(tài)標(biāo)志為l時,執(zhí)行反轉(zhuǎn)程序PROTE: …… ;狀態(tài)標(biāo)志為0時,執(zhí)行正轉(zhuǎn)程序 標(biāo)志判斷程序的設(shè)計是很簡單的,主要采用比較、位檢測或邏輯判斷指令,然后根據(jù)所測得的標(biāo)志狀態(tài)進(jìn)行判斷和轉(zhuǎn)移,其設(shè)計方法與算術(shù)判斷程序和邏輯判斷程序非常相似。 算術(shù)判斷程序、邏輯判斷程序以及

21、標(biāo)志判斷程序的共同特點(diǎn)是首先經(jīng)過一定的運(yùn)算(算術(shù)或邏輯運(yùn)算),然后根據(jù)標(biāo)志狀態(tài)進(jìn)行判斷,從而決定程序的前進(jìn)方向。,16,8.3 巡回檢測程序 所謂巡回檢測就是對生產(chǎn)過程中的各個參數(shù)以一定的周期進(jìn)行循環(huán)檢查和測量,檢測的結(jié)果經(jīng)微機(jī)處理后進(jìn)行顯示、打印和報警,以供操作人員審查或提醒操作人員的注意。 巡回檢測程序主要包括以下幾個部分: (1) 采樣周期T的確定; (2) 采樣開關(guān)

22、通道號的控制; (3) A/D轉(zhuǎn)換; (4) 數(shù)據(jù)處理。 巡回檢測系統(tǒng)原理圖,如圖所示。,17,圖8.4 巡回檢測系統(tǒng)原理圖,18,在巡回檢測程序中,為了充分發(fā)揮單片機(jī)的效率和檢測結(jié)果的實(shí)時性,一般多采用中斷方式,程序框圖如圖所示, 8個模擬通道的采樣結(jié)果依次放在片內(nèi)RAM的30H~37H單元中。 ORG 2000H MAIN:MOV DPTR,#0F7F8H ;指向

23、A/D啟動地址和lN0首地址 MOV R0,#30H ;存數(shù)據(jù)首地址 MOV R2,#08H ;8路計數(shù)初值 SETB ITl ;選脈沖觸發(fā)方式 SETB EXl ;外部中斷I

24、 SETB EA ;開中斷START:MOVX @DPTR,A ;啟動A/D轉(zhuǎn)換 HE:SJMP HE ;等待中斷 DJNZ R2,START ;巡回完?否,繼續(xù)DONE: ……

25、 ;執(zhí)行其它過程,19,中斷服務(wù)程序清單 ORG 0013H INTl: MOVX A,@DPTR ;讀取數(shù)據(jù)至A MOVX @R0,A ;取數(shù)據(jù)至RAM單元 INC R0 ;數(shù)據(jù)地址指針加1 INC DPTR

26、 ;通道號加1 RETI ;中斷返回,20,8.4 數(shù)字濾波程序 一、數(shù)字濾波 所謂數(shù)字濾波,就是通過程序計算或判斷來減少干擾在有用信號中的比重,故實(shí)際上它是一種程序?yàn)V波。 二、優(yōu)點(diǎn) 數(shù)字濾波克服了模擬濾波器的不足,它與模擬濾波器相比,有以下幾個優(yōu)點(diǎn):

27、 1. 數(shù)字濾波是用程序?qū)崿F(xiàn)的,不需要增加硬設(shè)備,所以可靠性高,穩(wěn)定性好; 2. 數(shù)字濾波可以對頻率很低(如0.0l Hz)的信號實(shí)現(xiàn)濾波,克服了模擬濾波器的缺陷; 3. 模擬濾波器通常是每個通道都有,而數(shù)字濾波器則可多個通道共用,從而降低成本; 4. 數(shù)字濾波器可以根據(jù)信號的不同,采用不同的濾波方法或?yàn)V波參數(shù),具有靈活、方便、功能強(qiáng)的特點(diǎn)。,21,三、數(shù)字濾波的

28、幾種方法及程序舉例 (一)算術(shù)平均濾波程序 算術(shù)平均法是按輸入一次采樣N個數(shù)據(jù)xi(i=1,2,…,n),算式為: 算術(shù)平均值法適用于一般的具有隨機(jī)干擾的信號濾波,并特別適合于信號本身在某一數(shù)值范圍附近作上下波動的情況.如流量、液面等信號的測量。算術(shù)平均值法對信號的平滑濾波程序完全取決于N。當(dāng)N較大時,平滑度高,但靈敏度低,外界信號的變化對測量計算結(jié)果的影響小,當(dāng)N較小時,平滑度較低但靈敏度高

29、,因此應(yīng)按具體情況選取N,如對流量的測量,可取N=8~16;對壓力的測量,可取N=4等。,22,算術(shù)平均值法編程時只需注意兩點(diǎn):一是xi的輸入方法。二是選取適當(dāng)?shù)膞、y的數(shù)據(jù)格式,即x、y是定點(diǎn)數(shù)還是浮點(diǎn)效。采用浮點(diǎn)數(shù)計算比較方便,但計算時間較長;采用定點(diǎn)數(shù)可加快計算速度,但是必須考慮累加時是否會產(chǎn)生溢出。,23,(二)滑動平均值濾波程序 滑動平均值法采用隊列作為測量數(shù)據(jù)存儲器,隊列的隊長固定為N,每進(jìn)行一次新的測量,把

30、測得的結(jié)果放入隊尾而扔掉原來隊首的一個數(shù)據(jù),這樣在趴列中始終有N個“最新”的數(shù)據(jù)。計算平均值時,只要把隊列中的N個數(shù)據(jù)進(jìn)行算術(shù)平均,就可得到新的算術(shù)平均值。這樣每進(jìn)行一次測量,就可計算得到一個新的算術(shù)平均值。 (三)中值濾波程序 對某一參數(shù)連續(xù)采樣N次(一般N為奇數(shù)),然后將其由大到小或由小到大排隊,取中間值作為本次采樣值。 (四)加權(quán)平均值濾波程序 上面介紹的這兩種平均值方法,

31、都是采用算術(shù)平均的方法,在這種方法中,對于N次內(nèi)的所有采樣值,在其結(jié)果中的比重是相等的。但有時為了提高L濾波效果,各采樣值取不同的比例,后再相加,此種方法即為加權(quán)平均法。,24,一個N項加權(quán)平均式為: 式中口C0、C1、…、Cn-1均為常數(shù)項,應(yīng)滿足下列關(guān)系: 式中C0、C1、…、Cn-1為各次采樣值的系數(shù),可根據(jù)具體情況決定,一般采樣次數(shù)愈靠后,取的比例愈大,這樣可增加新的采樣值在平均值中的比例。其目的是增加信號

32、的某一部分,抑制信號的另一部分。算法流程圖如圖所示。,25,圖8.6 加權(quán)平均值濾波流程圖,26,(五)程序判斷濾波程序 當(dāng)采樣信號由于隨機(jī)干擾、誤檢測或者轉(zhuǎn)換器不穩(wěn)定而引起嚴(yán)重失真時,可采用程序判斷濾波。程序判斷濾波的方法,是根據(jù)生產(chǎn)經(jīng)驗(yàn),確定出兩次采樣輸入信號可能出現(xiàn)的最大偏差值,若超過此偏差值,則表明本次輸入信號是干擾信號,應(yīng)該去掉,如小于偏差值則表明本次采樣信號有效,可作為本次采樣值。 程序判斷

33、濾波根據(jù)濾波方法不同,可分限幅濾波和限速濾波兩種。   1.    限幅濾渡 限幅濾波就是把兩次相鄰的采樣值進(jìn)行相減,求出其增量(以絕對值表示),然后與兩次采樣允許的最大差值 (由被控對象的實(shí)際情況決定)進(jìn)行比較,如果小于或等于 ,則取本次采樣值;如果大于 ,則仍取上次采樣值作為本次采樣值,即:,27,,則xi=xi ,取本次采樣值

34、 ,則xi=xi-1 ,取上次采樣值式中xi——第n次采樣值;xi-1 ——第n-1次采樣值; ——兩次采樣值所允許的最大偏差,其大小取決于采樣周期T及x值的變化動態(tài)響應(yīng)。 為了加快程序的判斷速度,將經(jīng)驗(yàn)限額值取反(即加1后取補(bǔ))后以立即數(shù)的形式編入程序中,然后用加法運(yùn)算來取代比較(減法)運(yùn)算。例如,相鄰兩次采樣值最大變化范圍不超過#04

35、H,取反后即為#0FBH。當(dāng)變化量為#05H時,與經(jīng)驗(yàn)限額值的反碼0FBH相加后即產(chǎn)生進(jìn)位,從而為判斷指令提供了判斷標(biāo)志位。其程序流程如圖所示。設(shè)當(dāng)前有效采樣值放在31H單元。上次采樣有效值存放在30H單元。最大允許偏差以反碼立即數(shù)方式編入程序中。,28,圖 8.7 限幅濾波程序框圖,29,程序清單如下: FILTl: MOV 30H,31H ;采樣系列迭代 ACALL LOAD ;采

36、樣新值 MOV 31H, A ;暫存新值 CLR C SUBB A,30H ;求與上次采樣值偏差 JNC FILT11 CPL A INC AFILTll:ADD A,#0FBH ;超限否?

37、 JNC FILTl2 ;不超限,本次有效 MOV 31H,30H ;超限,以上次為準(zhǔn) FILTl2:RET,30,2.    限速濾波程序設(shè)順序采樣時刻t1、t2、t3所采集的參數(shù)分別為x1、x2、x3,當(dāng) ,則將x2輸入計算機(jī);

38、 ,則將x2不采用,但仍保留,再繼續(xù)采樣一次, 得x3; ,則將x3輸入計算機(jī); ,則將(x2+x3)/2輸入計算機(jī)。 這是一種折中的方法,既照顧了采樣的實(shí)時性,又照顧了不采樣時的連續(xù)性。程序判斷濾波程序可用于變化比較緩慢的參數(shù),如溫度、液位等。,31,(

39、六)數(shù)字濾波 仿造模擬系統(tǒng)RC低通濾波器的方法,用數(shù)字形式實(shí)現(xiàn)低通濾波。(七)復(fù)合濾波 為了進(jìn)一步提高濾波效果,可以把兩種或兩種以上不同濾波功能的數(shù)字濾波器組合起來,組成復(fù)合數(shù)字濾波器或多級濾波器。例如,算術(shù)平均值濾波只能對周期性的脈動采樣值進(jìn)行平滑加工,中值濾波能消除隨機(jī)的脈沖干擾,二者組合起來形成防脈沖干擾平均值濾波。具體方法:可采取先對平均值法的N個數(shù)據(jù)進(jìn)行比較.并按大小順序排隊后;

40、除掉其中最大值和最小值,然后計算余下的N-2個數(shù)據(jù)的算術(shù)平均值.這種方法既可濾去脈沖干擾,又可濾除小的隨機(jī)干擾。 在實(shí)際應(yīng)用中,N可取任何值,但為了加快數(shù)據(jù)采集和數(shù)據(jù)處理速度,一般N不能太大,通常N取值為,這時即為四取二再取平均值法。它具有計算方便、速度快、需存儲容量小等特點(diǎn),得到了廣泛應(yīng)用。,32,程序清單如下: DAVG: CLR A MOV R2,A

41、 ;最大值初態(tài) MOV R3,A MOV R6,A ;累加和初態(tài) MOV R7,A MOV R4,#3FH ;最小值初態(tài) MOV R5,#0FFH

42、 MOV R0,#04H ;N=4 DAV1: LCALL RDVD ;A/D輸入值送寄存器B,A中 MOV R1,A ;保存輸入值低位 ; ADD A,R7 ;累加輸入值 MOV R7,A

43、 MOV A,B ADDC A,R6 MOV R6,A,33,CLR C ;輸入值與最大值作比較 MOV A,R3 SUBB A,R1 MOV A,R2

44、 SUBB A,B JNC DAV2 ;輸入值小于最大值 MOV A,R1 ;輸入值大于最大值 MOV R3,A MOV R2,BDAV2:CLR C ;輸入值與最小值作比較 MOV A,R1

45、 SUBB A,R5 MOV A,B SUBB A,R4 JNC DAV3,34,MOV A,R1 ;輸入值小于最小值 MOV R5,A MOV R4,B DAV3:DJNZ R0,DAV1

46、 CLR C MOV A,R7 ;累加和中減去最小值 SUBB A,R3 XCH A,R6 SUBB A,R2 XCH A,R6 SUBB A,R5 XCH

47、 A,R6 SUBB A,R4,35,CLR C ;除以2 RRC A XCH A,R6 RRC A MOV R7,A ;R6R7中為平均值 RET說明:該程序調(diào)用A/D轉(zhuǎn)換及數(shù)據(jù)輸入子程序RDAD.該程序輸入一個A/D轉(zhuǎn)換的數(shù)據(jù),并送到寄存器B和累加器A中,輸入數(shù)據(jù)的字長為小

48、于或等于14位的二進(jìn)制數(shù)。程序運(yùn)算過程中,用R0作為計數(shù)器,R2R3存放最大值,R4R5存放最小值,R6R7存放累加值和最后的結(jié)果。四、幾種濾波方法的比較 隨著微機(jī)控制技術(shù)的發(fā)展,數(shù)字濾波方法將越來越完善,每種濾波程序都有其各自的特點(diǎn),可根據(jù)具體的測量參數(shù)進(jìn)行合理的選用。在具體選用濾波方法時,需從以下幾個方面加以考慮。,36,1.濾波效果 一般來說,對于變化比較緩慢的參數(shù)(如溫度),可選用程序判斷濾波以及一階滯后濾

49、波方法比較好;而對于變化比較快的脈沖參數(shù)(如壓力、流量等),則可選用算術(shù)平均和加權(quán)平均濾波方法,而且加權(quán)平均濾波比算術(shù)平均濾波的效果更好;對于要求比較高的系統(tǒng)可選用復(fù)合濾波方法。 另一方面,在算術(shù)平均濾波和加權(quán)平均濾波方法中,其濾波效果與所選擇的采樣次數(shù)N有關(guān),N越大,則效果越好,但此時花費(fèi)的時間也越長。 2. 濾波時間 在考慮濾波效果的前提下.應(yīng)盡量采用執(zhí)行時聞比較短的程序。如果微機(jī)的時間允許,則可采用效果較好的復(fù)

50、合濾波程序。 需要說明的是,數(shù)字濾波固然是消除微機(jī)控制系統(tǒng)干擾的好方法.但一定要注意.并不是在任何一個系統(tǒng)中都需要進(jìn)行數(shù)字濾波。有時采用數(shù)字濾波反而適得其反,造成不良影響。,37,8.5標(biāo)度變換和漂移誤差的自校準(zhǔn) 一、標(biāo)度變換 微機(jī)控制系統(tǒng)在讀入被測模擬信號并轉(zhuǎn)換成數(shù)字量后,往往還要轉(zhuǎn)換成操作人員所熟悉的工程值。這是因?yàn)楸粶y對象的各種數(shù)據(jù)經(jīng)過變進(jìn)器轉(zhuǎn)換成A/D所能接收的信號0~5 v,又由A/D轉(zhuǎn)換

51、成00H~FFH(8位)的數(shù)字量。這些數(shù)字量并不一定等于原來帶有量綱的參數(shù)值,它僅僅對應(yīng)于參數(shù)值的大小,故必須把它轉(zhuǎn)換成帶有量綱的數(shù)值后才能運(yùn)算、顯示或打印輸出,這種轉(zhuǎn)換就是標(biāo)度變換。二、 方法 標(biāo)度變換有各種類型,它取決于被測參數(shù)的傳感器的類型,應(yīng)根據(jù)實(shí)際要求來選用適當(dāng)?shù)臉?biāo)度變換方法。,38,(一)線性儀表標(biāo)度變換程序 這種標(biāo)度變換的前提是參數(shù)值與A/D轉(zhuǎn)換結(jié)果之間為線性關(guān)系,這是最常用的變換方法。它的變

52、換公式如下:式中:Y表示參數(shù)測量值; , Ymax表示參數(shù)量程最大值; Ymin表示參數(shù)量程最小值; Nmax表示Ymax對應(yīng)的A/D轉(zhuǎn)換后的輸入值; Nmin表示Ymin對應(yīng)的A/D轉(zhuǎn)換后的輸入值 X表示測量值Y對應(yīng)的A/D轉(zhuǎn)換值。,39,例:一個數(shù)字電阻表中,量程為1~1000 ,轉(zhuǎn)換輸出為0~1876,若現(xiàn)在已知某一電阻經(jīng)測量后輸出數(shù)字量為640 ,問測量值實(shí)為多少?解:已知當(dāng)Ym

53、in=1 時,Nmin=0,當(dāng) Ymax=1000 ,Nmax=1876,X=640,則 =341.8 一般在編程序時,Ymin、Nmin、Ymax、Nmax都是已知的,因而可把上式變換成如下形式: Y=SCl×X+SCO 式中:SCl 、SCO為一次多項式的兩個系數(shù),SC0取決于

54、零點(diǎn)值,SC1為擴(kuò)大因子。使用上式進(jìn)行標(biāo)度變換時,只需進(jìn)行一次乘法和一次加法。在編寫程序前,應(yīng)根據(jù)Ymin、Nmin、Ymax、Nmax先算出托SC1和SCO,然后編寫按X計算Y的程序。,40,(二)非線性儀表標(biāo)度變換1.公式轉(zhuǎn)換法 有些傳感器測出的數(shù)據(jù)與實(shí)際的參數(shù)不是線性關(guān)系,它們有著由傳感器和測量方法決定的函數(shù)關(guān)系,并且這些函數(shù)關(guān)系可以用解析式來表示,這時可以直接接解析式來實(shí)現(xiàn)標(biāo)度變換。2.多項式變換 許

55、多傳感器測出的數(shù)據(jù)與實(shí)際的參數(shù)為非線性關(guān)系,而且它們的函數(shù)關(guān)系無法用一個解析式來表示,或者該解析式難以直接計算,這時可采用多項式來進(jìn)行非線性標(biāo)度變換。 進(jìn)行非線性標(biāo)度變按時,應(yīng)先決定多項式的次數(shù)N,然后選取N+1個測量點(diǎn),測出過時實(shí)際的參數(shù)值Yi與傳感器的輸出值(經(jīng)A/D轉(zhuǎn)換后)Xi(i=O~N),再用插值多項式求出各個參數(shù),最后使用多項式計算程序來完成實(shí)際的標(biāo)度變換。 使用插值多項式,可對多種傳感器的傳輸特性進(jìn)行補(bǔ)償,

56、從而大大降低了對傳感器的要求.這樣就可使用廉價的非線性傳感器來代替昂貴的線性傳感器。,41,三、數(shù)字調(diào)零和誤差自動校準(zhǔn) (一) 數(shù)字調(diào)零 在微機(jī)控制系統(tǒng)的測量輸入電路中,一般均存在零點(diǎn)偏差和漂移、放大電路的增益誤差及器件參數(shù)的不穩(wěn)定等現(xiàn)象,它們會影響測量數(shù)據(jù)的準(zhǔn)確性,因而必須對這些偏差進(jìn)行自動校準(zhǔn)。其中零點(diǎn)偏差校準(zhǔn)在實(shí)際中應(yīng)用最多,且常用程序來實(shí)現(xiàn),稱為數(shù)字調(diào)零。 (二)自動校準(zhǔn) 除了數(shù)字調(diào)零外,還可采用

57、零點(diǎn)偏差和增益誤差的自動校準(zhǔn)。自動校準(zhǔn)的基本思想是在系統(tǒng)開機(jī)后或每隔一定時間自動測量基準(zhǔn)參數(shù),如數(shù)字電壓表中的基準(zhǔn)參數(shù)為基準(zhǔn)電壓和零電壓,然后計算誤差模型,獲得并存儲誤差補(bǔ)償因子。在正式測量時,根據(jù)測量結(jié)果和誤差補(bǔ)償因子,計算校準(zhǔn)方程,從而消除誤差。 (三)自動校準(zhǔn)技術(shù)的常用方法 l.全自動校準(zhǔn) 全自動校準(zhǔn)由系統(tǒng)自動完成,不需人的介入,其電路結(jié)構(gòu)如圖所示。,42,圖8.8 全自動校準(zhǔn)電路框圖,該電路的輸入部分加有一個多路

58、開關(guān)。系統(tǒng)在剛加電時或每隔一定時間,自動進(jìn)行一次校準(zhǔn)。這時,先把開關(guān)接地,測出這時的輸入值X0,然后把開關(guān)接VR,測出輸入值X1,并存放X1、X0。在正式測量時,如測出的輸入值為X,則這時的V可用下式計算得到;,,43,2.人工自動校準(zhǔn) 全自動校準(zhǔn)只適于基準(zhǔn)參數(shù)是電信號的場合,并且它不能校正由傳感器引入的誤差。為了克服這些缺點(diǎn),可采用人工自動校準(zhǔn)。 一般人工自動校準(zhǔn)只測一個標(biāo)準(zhǔn)輸入信號YR,零信號的補(bǔ)償由數(shù)字調(diào)零來完成

59、。設(shè)數(shù)字調(diào)零后測出的數(shù)據(jù)分別為XR(接標(biāo)準(zhǔn)輸入YR時)和X(接被測輸入Y時),則可按下式來計算Y: 人工自動校準(zhǔn)特別適合于傳感器特性隨時間發(fā)生變化的場合。,44,8.6上下限報警處理程序 在單片機(jī)控制系統(tǒng)中,一般的工作狀態(tài),可以通過指示燈或數(shù)碼顯示來指示,以供操作人員參考。但對于某些緊急狀態(tài),為了使操作人員不致忽視,以便及時采取措施,往往還需要能引人注意的報警信號。 這種報警信號,通常

60、有三種類型: 一、閃光報警:因?yàn)殚W動的指示燈更能提醒人們注意; 二、鳴音報警:發(fā)出特定的鳴音,易于引起和加強(qiáng)警覺; 三、語音報警:不僅能起到報警作用,還能報警種類的信息。 閃光報警只不過是指示燈顯示軟件功能的擴(kuò)展,只要在指示燈的控制程序中加入定時程序(用軟件或硬件實(shí)現(xiàn)均可),然后按一定的間隔交替點(diǎn)亮與熄滅指示燈即可。下面我們介紹兩種鳴音報警方法。,45,1.單頻音報警接口 實(shí)現(xiàn)單頻音報警的接口電路比較簡單。

61、其發(fā)音元件通常采用壓電式蜂鳴器,這種蜂鳴器只需在其兩引線上加3~1 5 V的直流電壓,就能產(chǎn)生3kHz左右的蜂鳴振蕩音響。比電動式蜂鳴器結(jié)構(gòu)簡單、耗電少,且更適合于在單片機(jī)系統(tǒng)中使用。,圖8.9 使用7406作驅(qū)動的單頻音報警電路,46,壓電式蜂鳴器約需IO mA的驅(qū)動電流。因此,可以使用TTL系列集成電路7406或7407低電平驅(qū)動,也可以用一個晶體三極管驅(qū)動,如圖8.10所示。兩個接口電路的程序可以通用。,圖8.10 使用740

62、6作驅(qū)動的單頻音報警電路,47,下面是一個控制其連續(xù)鳴音30 ms的控制子程序的程序清單: SND: SETB P1.0 ;Pl 0輸出高電平,啟動鳴音 MOV R7,#1EH ;延時30 ms DL: M0V R6,#0F9H DLl: DJNZ R6,DLl ;小循環(huán)延時l ms DJNZ R7,DL CLR

63、P1 0 ;Pl.0輸出低電平,停止鳴音 RET2.音樂聲報警接口 單頻音報管電路,簡單實(shí)用,已能滿足音響報警的一般需要。不足之處在于音調(diào)單一,而且采用壓電鳴音元件,音量也較小,且不可調(diào)整。音樂聲報警電路,與單片機(jī)系統(tǒng)連接,也很方便易行,而且報警的音響又優(yōu)美動聽。該接口電路由兩部分組成:一部分是“樂曲發(fā)生器”電路,使用普通的集成電子音樂芯片組成;另一部分是“放大電路”,也可采用集成放大器

64、組成。,48,8.7 LED數(shù)碼管顯示程序設(shè)計  發(fā)光二極管顯示器,通常用來顯示數(shù)字和狀態(tài)。發(fā)光二極管根據(jù)制造材料的不同,可發(fā)出紅、黃、蘭、紫等各種單色光,發(fā)光二極管可以有多種形式,而應(yīng)用最多的是七段發(fā)光二極管顯示器。一、LED數(shù)碼管的結(jié)構(gòu) LED數(shù)碼管由七段發(fā)光線段組成。每條線段可以是一個(或幾個)發(fā)光二極管。其結(jié)構(gòu)如圖所示。,49,圖8.11 共陰極數(shù)碼管引腳定義圖,50,在圖中,

65、只要使不同段的發(fā)光二極管發(fā)光,即可改變所顯示的數(shù)字和字母。例如,a、b、g、e、d各段的二板管發(fā)光,即可顯示“2”,使圖中的a、f、g、e、d五個發(fā)光二極管亮則可顯示英文大寫字母“E”。LED七段數(shù)碼管根據(jù)其內(nèi)部LED的連接方法不同,有共陰極和共陽極兩種接法,如圖8.12所示。 在共陰極接法中,當(dāng)某一段發(fā)光二極管輸入為高電平時,該發(fā)光二極管亮,反之,則熄滅。而在共陽極接法中,剛好與共陰極接法相反。 由于

66、發(fā)光二極管通常需幾個~幾十個毫安的驅(qū)動電流才能發(fā)光,因此,每個顯示器必須用一個七位的驅(qū)動器才能正常工作。驅(qū)動電路也可以用集成電路驅(qū)動器,現(xiàn)在已經(jīng)生產(chǎn)出帶譯碼器的驅(qū)動器,如74LS47、74LS48等。此外,由于要顯示的數(shù)字為BCD碼,而七段數(shù)碼管的顯示模型為七段代碼,所以在顯示之前,必須把BCD碼轉(zhuǎn)換成七段代碼。,51,(a) 共陰極 (b)共陽極圖8.12 LED數(shù)碼管的兩種接法,52,二、LED顯示器與顯示方式

67、 在單片機(jī)系統(tǒng)中使用LED顯示塊構(gòu)成N位LED顯示器。N位LED顯示器有N根位選線和N*8根段選線。根據(jù)顯示方式的不同,位選線與段選線的接法不同。段選線控制字符選擇,位選線控制顯示位的亮、暗。 LED顯示器有靜態(tài)顯示和動態(tài)顯示兩種方式。 (一)LED靜態(tài)顯示方式 LED顯示器工作在靜態(tài)顯示方式下,共陰極或共陽極連接在一起接地或+5V;每位的段選線(a—dp)與一個8位并行口相連。如

68、圖8.13所示,該圖表示了一個四位靜態(tài)LED顯示器電路。該電路每一位可獨(dú)立顯示,只要在該位的段選線上保持段選碼電平,該位就能保持相應(yīng)的顯示字符。由于每一位由一個8位輸出口控制段選碼,故在同一時間里每一位顯示的字符可以各不相同。,53,N位靜態(tài)顯示器要求有N*8根I/0口線,占用I/0資源較多。故在位數(shù)較多時往往采用動態(tài)顯示方式。,圖8.13 四位靜態(tài)LED顯示器電路,54,(二)LED動態(tài)顯示方式 在多位LED顯示時,

69、為了簡化電路,降低成本,將所有位的段選線并聯(lián)在一起,由一個8位I/O口控制,而共陰極點(diǎn)或共陽極點(diǎn)分別由相應(yīng)的I/O口線控制。,圖8.14 八位動態(tài)LED顯示器電路,55,如圖所示,一個8位LED動態(tài)顯示電路只需要兩個8位I/O口。其中一個控制段選碼,另一個控制位選。由于所有位的段選碼皆由一個I/O控制,因此,在每個瞬間,八位LED只可能顯示相同的字符。要想每位顯示不同的字符,必須采用掃描顯示方式,即在每一瞬間只使某一位顯示相應(yīng)字符。在此

70、瞬間,段選控制I/O口輸出相應(yīng)段選碼,位選控制I/O在該顯示位送入選通電平(共陰極送低電平、共陽極送高電平)以保證該位顯示相應(yīng)字符。如此輪流,使每位顯示該位應(yīng)顯示字符,并保持延時一段時間,以造成視覺暫留效果。不斷循環(huán)送出相應(yīng)的段選碼、位選碼,就可以獲得視覺穩(wěn)定的顯示狀態(tài)。三、LED顯示器接口(一)靜態(tài)LED顯示接口電路 多位靜態(tài)LED顯示接口電路如圖所示,該電路中可直接顯示多位16進(jìn)制數(shù),若要顯示帶小數(shù)點(diǎn)的十進(jìn)制

溫馨提示

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

最新文檔

評論

0/150

提交評論