配套課件-微型計(jì)算機(jī)控制技術(shù)_第1頁(yè)
配套課件-微型計(jì)算機(jī)控制技術(shù)_第2頁(yè)
配套課件-微型計(jì)算機(jī)控制技術(shù)_第3頁(yè)
配套課件-微型計(jì)算機(jī)控制技術(shù)_第4頁(yè)
配套課件-微型計(jì)算機(jī)控制技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩421頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一章 緒論 1.1 微型計(jì)算機(jī)控制系統(tǒng)的組成 1.2 微型計(jì)算機(jī)控制系統(tǒng)分類 1.3 微型計(jì)算機(jī)控制系統(tǒng)的發(fā)展趨勢(shì) 微型計(jì)算機(jī)控制系統(tǒng)是由計(jì)算機(jī)(工業(yè)控制計(jì)算機(jī))和工業(yè)對(duì)象兩大部分組成。圖1-1給出了按偏差進(jìn)行控制的閉環(huán)控制系統(tǒng)框圖。圖1-1 閉環(huán)控制系統(tǒng)框圖1.1 微型計(jì)算機(jī)控制系統(tǒng)的組成返回本章首頁(yè)圖1-2中給出了開環(huán)控制系統(tǒng)框圖。它與閉環(huán)控制系統(tǒng)不同,它的控制器直接根據(jù)給定信號(hào)去控制被控對(duì)象工作。被控制量在整個(gè)控制過程中對(duì)控制量不產(chǎn)生影響。與閉環(huán)控制系統(tǒng)相比,它的控制性能較差。圖1-2 開環(huán)控制系統(tǒng)框圖如果把圖1-1中的控制器用微型計(jì)算機(jī)來代替,就可以構(gòu)成微型計(jì)算機(jī)控制系統(tǒng),其基本框圖

2、如圖1-3所示。在微型計(jì)算機(jī)控制系統(tǒng)中,只要運(yùn)用各種指令,就能編出符合某種控制規(guī)律的程序。微處理器執(zhí)行這樣的程序,就能實(shí)現(xiàn)對(duì)被控參數(shù)的控制。 圖1-3 計(jì)算機(jī)控制系統(tǒng)基本框圖1. 硬件組成微型計(jì)算機(jī)控制系統(tǒng)的硬件一般是由微型計(jì)算機(jī)、外部設(shè)備、輸入輸出通道和操作臺(tái)等組成,如下圖1-4所示。圖1-4 微型計(jì)算機(jī)控制系統(tǒng)原理圖硬件組成 (1)微型計(jì)算機(jī) (2)外部設(shè)備 (3)輸入輸出通道 (4)操作臺(tái) 2計(jì)算機(jī)控制系統(tǒng)的軟件軟件是指能完成各種功能的計(jì)算機(jī)程序的總和。它是微型計(jì)算機(jī)控制系統(tǒng)的神經(jīng)中樞,整個(gè)系統(tǒng)的工作都是在程序的指揮下進(jìn)行協(xié)調(diào)工作的。軟件通常分為兩大類:一類是系統(tǒng)軟件,另一類是應(yīng)用軟件。

3、返回本節(jié)1.2 微型計(jì)算機(jī)控制系統(tǒng)分類 1操作指導(dǎo)控制系統(tǒng) 2直接數(shù)字控制系統(tǒng)(DDC) 3計(jì)算機(jī)監(jiān)督系統(tǒng)(SCC) 4分級(jí)計(jì)算機(jī)控制系統(tǒng) 返回本章首頁(yè)1操作指導(dǎo)控制系統(tǒng) 圖1-5 操作指導(dǎo)控制系統(tǒng)組成框圖返回本節(jié)2直接數(shù)字控制系統(tǒng)(DDC) 圖1-6 DDC控制系統(tǒng)原理圖返回本節(jié)3計(jì)算機(jī)監(jiān)督系統(tǒng)(SCC) 計(jì)算機(jī)監(jiān)督系統(tǒng)(Supervisory Computer Control)簡(jiǎn)稱SCC系統(tǒng)。 SCC系統(tǒng)有兩種不同的結(jié)構(gòu)形式。一種是SCC+模擬調(diào)節(jié)器,另一種是SCC+DDC控制系統(tǒng)。(1)SCC+模擬調(diào)節(jié)器控制系統(tǒng)該系統(tǒng)原理圖,如圖1-7所示。(2)SCC+DDC控制系統(tǒng)SCC+DDC控制

4、系統(tǒng)原理圖,如下圖1-8所示。圖1-7 SCC+模擬調(diào)節(jié)器控制系統(tǒng)原理圖 圖1-8 SCC+DCC控制系統(tǒng)原理圖 4分級(jí)計(jì)算機(jī)控制系統(tǒng) 分級(jí)計(jì)算機(jī)控制系統(tǒng)是一個(gè)四級(jí)系統(tǒng),各級(jí)計(jì)算機(jī)的功能如圖1-9所示。裝置控制級(jí)(DDC級(jí)) 車間監(jiān)督級(jí)(SCC級(jí)) 工廠集中控制級(jí)(MIS) 企業(yè)管理級(jí)(MIS) 圖1-9 分級(jí)計(jì)算機(jī)控制系統(tǒng)返回本節(jié)1可編程控制器(PLC) 2采用新型的控制系統(tǒng)(集散控制系統(tǒng)) 3人工智能 4神經(jīng)網(wǎng)絡(luò)控制系統(tǒng) 1.3 微型計(jì)算機(jī)控制系統(tǒng)的發(fā)展趨勢(shì) 返回本章首頁(yè)1可編程控制器(PLC) PLC與傳統(tǒng)的繼電器控制相比,具有如下一些特點(diǎn):(1)抗干擾能力強(qiáng) (2)適應(yīng)性好 (3)編程

5、直觀、簡(jiǎn)單 (4)功能完善,接口功能強(qiáng) 返回本節(jié)2采用新型的控制系統(tǒng)(集散控制系統(tǒng)) 集散控制系統(tǒng)是分散型綜合控制系統(tǒng)(Total Distributed Control Systems)或分散型微處理器控制系統(tǒng)(Distributed Microprocessor Control Systems)的簡(jiǎn)稱。圖1-10是集散控制系統(tǒng)的組成框圖。它以微型計(jì)算機(jī)為核心,把微型機(jī)、工業(yè)控制計(jì)算機(jī)、數(shù)據(jù)通信系統(tǒng)、顯示操作裝置、輸入 /輸出通道、模擬儀表等有機(jī)地結(jié)合起來,采用組合組裝式結(jié)構(gòu)組成系統(tǒng),為實(shí)現(xiàn)工程大系統(tǒng)的綜合自動(dòng)化創(chuàng)造了條件。圖1-10 集散系統(tǒng)組成框圖返回本節(jié)3人工智能 人工智能是用計(jì)算機(jī)模

6、擬人類大腦的邏輯判斷功能,其中具有代表性的兩個(gè)尖端領(lǐng)域是專家系統(tǒng)和機(jī)器人。所謂專家系統(tǒng)即計(jì)算機(jī)專家咨詢系統(tǒng),是一個(gè)存儲(chǔ)了大量專門知識(shí)的計(jì)算機(jī)程序系統(tǒng)。不同的專家系統(tǒng)將不同領(lǐng)域?qū)<业闹R(shí),以適當(dāng)?shù)男问酱娣庞谟?jì)算機(jī)中。根據(jù)這些專家知識(shí),專家系統(tǒng)可以對(duì)用戶提出的問題做出判斷和決策,以回答用戶的咨詢。機(jī)器人是一種能模擬人類智能和肢體動(dòng)作的裝置,從本世紀(jì)70年代微處理機(jī)問世以來,機(jī)器人便逐漸涉足于各工業(yè)生產(chǎn)領(lǐng)域和科學(xué)研究領(lǐng)域。目前已出現(xiàn)的機(jī)器人可以分為兩類,工業(yè)機(jī)器人和智能機(jī)器人。 返回本節(jié)4神經(jīng)網(wǎng)絡(luò)控制系統(tǒng) 國(guó)外在20世紀(jì)80年代掀起了神經(jīng)網(wǎng)絡(luò)(Neural Network)計(jì)算機(jī)的研究和應(yīng)用熱潮,我

7、國(guó)在90年代也開始了這方面的研究。由于神經(jīng)網(wǎng)絡(luò)的特點(diǎn)(大規(guī)模的并行處理和分布式的信息存儲(chǔ),良好的自適應(yīng)性、自組織性和很強(qiáng)的學(xué)習(xí)功能、聯(lián)想功能及容錯(cuò)功能),使它的應(yīng)用越來越廣泛,其中一個(gè)重要的方面是智能控制,包含機(jī)器人控制。返回本節(jié)THANK YOU VERY MUCH !本章到此結(jié)束,謝謝您的光臨!返回本章首頁(yè)結(jié)束放映第二章 微型計(jì)算機(jī)接口技術(shù) 2.1 D/A轉(zhuǎn)換器 2.2 MCS-51和D/A轉(zhuǎn)換器的接口 2.3 A/D轉(zhuǎn)換器 2.4 MCS-51和A/D轉(zhuǎn)換器的接口 2.5 數(shù)據(jù)的采樣及保持 2.6 常用輸出驅(qū)動(dòng)電路 在微機(jī)的各種接口中,完成外設(shè)信號(hào)到微機(jī)所需數(shù)字信號(hào)轉(zhuǎn)換的,稱為模擬數(shù)字轉(zhuǎn)

8、換(A/D轉(zhuǎn)換)器;完成微機(jī)輸出數(shù)字信號(hào)到外設(shè)所需信號(hào)轉(zhuǎn)換的,稱為數(shù)字模擬轉(zhuǎn)換(D/A轉(zhuǎn)換)器。D/A轉(zhuǎn)換器(Digital to Analog Converter)是一種能把數(shù)字量轉(zhuǎn)換成模擬量的電子器件;A/D轉(zhuǎn)換器(Analog to Digital Converter)則相反,它能把模擬量轉(zhuǎn)換成相應(yīng)的數(shù)字量。在微機(jī)控制系統(tǒng)中,經(jīng)常要用到A/D和D/A轉(zhuǎn)換器。它們的功能及在實(shí)時(shí)控制系統(tǒng)中的地位,如圖2-1所示。圖2-1 單片機(jī)和被控實(shí)體間的接口示意返回本章首頁(yè)2.1 D/A轉(zhuǎn)換器 2.1.1 D/A轉(zhuǎn)換器的原理 2.1.2 D/A轉(zhuǎn)換器的性能指標(biāo) 2.1.3 典型的D/A轉(zhuǎn)換器芯片DAC0

9、832 返回本章首頁(yè)2.1.1 D/A轉(zhuǎn)換器的原理 D/A轉(zhuǎn)換器有并行和串行兩種,在工業(yè)控制中,主要使用并行D/A轉(zhuǎn)換器。D/A轉(zhuǎn)換器的原理可以歸納為“按權(quán)展開,然后相加”。因此,D/A轉(zhuǎn)換器內(nèi)部必須要有一個(gè)解碼網(wǎng)絡(luò),以實(shí)現(xiàn)按權(quán)值分別進(jìn)行D/A轉(zhuǎn)換。解碼網(wǎng)絡(luò)通常有兩種:二進(jìn)制加權(quán)電阻網(wǎng)絡(luò)和T型電阻網(wǎng)絡(luò)。 為了說明T型電阻網(wǎng)絡(luò)的工作原理,現(xiàn)以四位D/A轉(zhuǎn)換器為例加以討論,如圖2-2所示。圖2-2 T型電阻網(wǎng)絡(luò)型D/A轉(zhuǎn)換器返回本節(jié)2.1.2 D/A轉(zhuǎn)換器的性能指標(biāo) 1. 分辨率 2. 轉(zhuǎn)換精度 3. 偏移量誤差 4. 建立時(shí)間 返回本節(jié)2.1.3 典型的D/A轉(zhuǎn)換器芯片DAC0832 1. DA

10、C0832內(nèi)部結(jié)構(gòu) 2. 引腳功能 3. DAC0832的技術(shù)指標(biāo) 1. DAC0832內(nèi)部結(jié)構(gòu) DAC0832內(nèi)部由三部分電路組成,如圖2-3所示。 圖2-3 DAC0832原理框圖2. 引腳功能 DAC0832芯片為20引腳,雙列直插式封裝。其引腳排列如圖2-4所示。(1)數(shù)字量輸入線D7D0(8條) (2)控制線(5條) (3)輸出線(3條) (4)電源線(4條) 圖2-4 DAC0832引腳圖3. DAC0832的技術(shù)指標(biāo) DAC0832的主要技術(shù)指標(biāo):(1)分辨率8位(2)電流建立時(shí)間1S(3)線性度(在整個(gè)溫度范圍內(nèi))8、9或10位(4)增益溫度系數(shù)00002 FS/(5)低功耗2

11、0mW(6)單一電源+5 +15V因DAC0832是電流輸出型D/A轉(zhuǎn)換芯片,為了取得電壓輸出,需在電流輸出端接運(yùn)算放大器,Rf為運(yùn)算放大器的反饋電阻端。運(yùn)算放大器的接法如圖2-5所示。圖2-5 運(yùn)算放大器接法返回本節(jié)2.2 MCS-51和D/A轉(zhuǎn)換器的接口 2.2.1 DAC0832的應(yīng)用 2.2.2 MCS-51和8位DAC的接口 2.2.3 MCS-51和12位DAC的接口 返回本章首頁(yè)2.2.1 DAC0832的應(yīng)用 1. 單極性輸出 2. 雙極性輸出 1. 單極性輸出 在需要單極性輸出的情況下,可以采用圖2-6所示接線。圖2-6 單極性DAC的接法2. 雙極性輸出 在需要雙極性輸出的

12、情況下,可以采用圖2-7所示接線。圖2-7 雙極性DAC的接法圖2-7中,運(yùn)算放大器OA2的作用是將運(yùn)算放大器OA的單向輸出轉(zhuǎn)變?yōu)殡p向輸出。表達(dá)式(2-3)的比例關(guān)系可以用圖2-8來表示。返回本節(jié)圖2-8 雙極性輸出線性關(guān)系圖2.2.2 MCS-51和8位DAC的接口 1. 直通方式 2. 單緩沖方式 3. 雙緩沖方式 1. 直通方式 2. 單緩沖方式 所謂的單緩沖方式就是使DAC0832的兩個(gè)輸入寄存器中有一個(gè)處于直通方式,而另一個(gè)處于受控的鎖存方式。在實(shí)際應(yīng)用中,如果只有一路模擬量輸出。單緩沖方式接線如圖2-9所示。 圖2-9 DAC0832單緩沖方式接口例2.1 DAC0832用作波形發(fā)

13、生器。試根據(jù)圖2-9接線,分別寫出產(chǎn)生鋸齒波、三角波和方波的程序,產(chǎn)生的波形如圖2-10所示。圖2-10 例2.1所產(chǎn)生的波形解:由圖2-9可以看出,DAC0832采用的是單緩沖單極性的接線方式,它的選通地址為7FFFH。鋸齒波程序:ORG0000HMOVDPTR,#7FFFH;輸入寄存器地址CLRA;轉(zhuǎn)換初值LOOP:MOVXDPTR,A;D/A轉(zhuǎn)換INCA;轉(zhuǎn)換值增量NOP;延時(shí)NOPNOPSJMPLOOP END三角波程序:ORG0100HCLRAMOVDPTR,#7FFFHDOWN:MOVXDPTR,A;線性下降段INCA JNZDOWN MOVA,#0FEH;置上升階段初值UP:MO

14、VXDPTR,A;線性上升段DECAJNZUPSJMPDOWN END方波程序:ORG0200HMOVDPTR,#7FFFHLOOP: MOVA,#33H;置上限電平MOVXDPTR,A ACALLDELAY;形成方波頂寬MOVA,#0FFH;置下限電平MOVXDPTR,AACALLDELAY;形成方波底寬SJMPLOOPEND3. 雙緩沖方式 所謂雙緩沖方式,就是把DAC0832的兩個(gè)鎖存器都接成受控鎖存方式。雙緩沖方式DAC0832的連接如圖2-11所示。圖2-11 DAC0832的雙緩沖方式接口例2.2 DAC0832用作波形發(fā)生器。試根據(jù)圖2-11接線,分別寫出產(chǎn)生鋸齒波、三角波和方波

15、的程序,產(chǎn)生的波形如圖2-12所示。圖2-12 例2.2所產(chǎn)生的波形ORG0000H LOOP1:MOVA,#80H;轉(zhuǎn)換初值LOOP:MOVR0,#0FEH;輸入寄存器地址MOVXR0, A;轉(zhuǎn)換數(shù)據(jù)送輸入寄存器 INCR0;產(chǎn)生DAC寄存器地址MOVXR0, A;數(shù)據(jù)送入DAC寄存器并進(jìn)行D/A轉(zhuǎn)換DECA;轉(zhuǎn)換值減少NOP;延時(shí)NOPNOPCJNEA,#0FFH,LOOP;-5V是否輸出?未輸出,程序循環(huán)SJMPLOOP1;-5V已輸出,返回轉(zhuǎn)換初值END解:由圖2-11可以看出,DAC0832采用的是雙緩沖雙極性的接線方式,輸入寄存器的地址為FEH,DAC寄存器的地址為FFH。鋸齒波程

16、序:三角波程序:ORG0100HMOVA,#0FFHDOWN:MOVR0,#0FEHMOVXR0,A;線性下降段INCR0 MOVXR0,ADECAJNZDOWN UP:MOVR0,#0FEH;線性上升段MOVXR0,A INCR0 MOVXR0,AINCA JNZUPMOVA,#0FEHSJMPDOWNEND方波程序:ORG0200HLOOP:MOVA,#66HMOVR0,#0FEH;置上限電平MOVXR0,A INCR0 MOVXR0,A ACALLDELAY;形成方波頂寬MOVA,#00H;置下限電平MOVR0,#0FEH MOVXR0,A INCR0 MOVXR0,A ACALLDEL

17、AY;形成方波底寬SJMPLOOPEND例2.3 X-Y繪圖儀與雙片DAC0832接線如圖2-13所示。設(shè)8031內(nèi)部RAM中有兩個(gè)長(zhǎng)度為30H的數(shù)據(jù)塊,其起始地址分別為20H和60H,請(qǐng)根據(jù)圖2-13,編出能把20H和60H中的數(shù)據(jù)分別從1#和2#DAC0832輸出,并根據(jù)所給數(shù)據(jù)繪制出一條曲線。圖2-13 控制X-Y繪圖儀的雙片DAC0832接口解:根據(jù)圖2-13接線,DAC0832各端口的地址為:FDH1#DAC0832數(shù)字量輸入寄存器地址FEH2#DAC0832數(shù)字量輸入寄存器地址FFH1#和2#DAC0832啟動(dòng)D/A轉(zhuǎn)換地址設(shè)R1寄存器指向60H單元;R0指向20H單元,并同時(shí)作為

18、兩個(gè)DAC0832的端口地址指針;R7寄存器存放數(shù)據(jù)塊長(zhǎng)度。ORG0000HMOVR7,#30H;數(shù)據(jù)塊長(zhǎng)度MOVR1,#60H MOVR0,#20HLOOP: MOVA,R0PUSHA;保存20H單元地址MOVA,R0;取20H單元中的數(shù)據(jù)MOVR0,#0FDH;指向1#DAC0832的數(shù)字量輸入寄存器MOVXR0,A;取20H單元中的數(shù)據(jù)送1#DAC0832INCR0MOVA,R1;取60H單元中的數(shù)據(jù)INCR1;修改60H單元地址指針MOVXR0,A;取60H單元中的數(shù)據(jù)送2#DAC0832INCR0MOVXR0,A;啟動(dòng)兩片DAC0832同時(shí)進(jìn)行轉(zhuǎn)換POPA;恢復(fù)20H單元地址INCA

19、;修改20H單元地址指針MOVR0,ADJNZR7,LOOP;數(shù)據(jù)未傳送完,繼續(xù)END返回本節(jié)2.2.3 MCS-51和12位DAC的接口 DAC1208的內(nèi)部結(jié)構(gòu)和引腳結(jié)構(gòu) DAC1208的內(nèi)部結(jié)構(gòu)如下圖2-14所示,引腳結(jié)構(gòu)如圖2-15所示。圖2-14 DAC1208內(nèi)部框圖圖2-15 DAC1208引腳圖8031和DAC1208的接線方式如圖2-16所示。 圖2-16 8031和DAC1208的連接解:D/A轉(zhuǎn)換的程序?yàn)椋篛RG0000HMOVR0,#0FFH;8位輸入寄存器地址MOVR1,#21H MOVA,R1;高8位數(shù)字量送AMOVXR0,A;高8位數(shù)字量送8位輸入寄存器DECR0

20、DECR1MOVA,R1;低4位數(shù)字量送ASWAPA;A中高低4位互換MOVXR0,A;低4位數(shù)字量送4位輸入寄存器DECR0MOVXR0,A;啟動(dòng)D/A轉(zhuǎn)換END例2.4 設(shè)內(nèi)部RAM的20H和21H單元內(nèi)存放一個(gè)12位數(shù)字量(20H單元中為低4位,21H單元中為高8位),試根據(jù)圖2-16編寫出將它們進(jìn)行D/A轉(zhuǎn)換的程序。返回本節(jié)2.3 A/D轉(zhuǎn)換器 2.3.1 逐次逼近式A/D轉(zhuǎn)換器的工作原理 2.3.2 A/D轉(zhuǎn)換器的性能指標(biāo) 2.3.3 典型的A/D轉(zhuǎn)換芯片ADC0809 返回本章首頁(yè)2.3.1 逐次逼近式A/D轉(zhuǎn)換器的工作原理 逐次逼近式A/D轉(zhuǎn)換器是一種采用對(duì)分搜索原理來實(shí)現(xiàn)A/D

21、轉(zhuǎn)換的方法,邏輯框圖如圖2-17所示。圖2-17 逐次逼近式A/D轉(zhuǎn)換器邏輯框圖返回本節(jié)2.3.2 A/D轉(zhuǎn)換器的性能指標(biāo) 1. 轉(zhuǎn)換精度 2. 轉(zhuǎn)換時(shí)間 3. 分辨率 4. 電源靈敏度 返回本節(jié)2.3.3 典型的A/D轉(zhuǎn)換芯片ADC0809 1. ADC0809的內(nèi)部邏輯結(jié)構(gòu)8路A/D轉(zhuǎn)換器8路模擬量開關(guān)ADC0809的內(nèi)部邏輯結(jié)構(gòu)如圖2-18所示。 圖2-18 ADC0809內(nèi)部邏輯結(jié)構(gòu) 2. 引腳結(jié)構(gòu)ADC0809采用雙列直插式封裝,共有28條引腳。其引腳結(jié)構(gòu)如圖2-19所示。 圖2-19 ADC0809引腳圖引腳結(jié)構(gòu) (1)IN7IN0:8條模擬量輸入通道 (2)地址輸入和控制線:4條

22、 (3)數(shù)字量輸出及控制線:11條 (4)電源線及其他:5條 表2-1 被選通道和地址的關(guān)系返回本節(jié)2.4 MCS-51和A/D轉(zhuǎn)換器的接口 2.4.1 MCS-51和ADC0809的接口 2.4.2 MCS-51對(duì)AD574的接口 返回本章首頁(yè)2.4.1 MCS-51和ADC0809的接口 ADC0809和8031的接線如圖2-20所示。圖2-20 ADC0809和8031接線圖例2.5 如圖2-20所示,試用查詢和中斷兩種方式編寫程序,對(duì)IN5通道上的數(shù)據(jù)進(jìn)行采集,并將轉(zhuǎn)換結(jié)果送入內(nèi)部RAM20H單元。解:中斷方式程序清單:ORG0000HMOVDPTR,#7FF5HMOVXDPTR,A;

23、啟動(dòng)A/D轉(zhuǎn)換SETBEASETBEX1;開外中斷1SETBIT1;外中斷請(qǐng)求信號(hào)為下跳沿觸發(fā)方式LOOP:SJMPLOOP;等待中斷END中斷服務(wù)程序:ORG0013H;外中斷1的入口地址LJMP1000H;轉(zhuǎn)中斷服務(wù)程序的入口地址ORG1000HMOVXA,DPTR;讀取A/D轉(zhuǎn)換數(shù)據(jù)MOV20H,A;存儲(chǔ)數(shù)據(jù)RETI;中斷返回查詢方式程序清單:ORG0000HMOVDPTR,#7FF5HMOVXDPTR,A;啟動(dòng)A/D轉(zhuǎn)換LOOP:JBP3.3,LOOP;等待轉(zhuǎn)換結(jié)束MOVXA,DPTR;讀取A/D轉(zhuǎn)換數(shù)據(jù)MOV20H,A;存儲(chǔ)數(shù)據(jù)END例2.6 如圖2-21所示,試編程對(duì)8個(gè)模擬通道上

24、的模擬電壓進(jìn)行一遍數(shù)字采集,并將采集結(jié)果送入內(nèi)部RAM以30H單元為始地址的輸入緩沖區(qū)。圖2-21 8031和ADC0809的接口解:從圖中可以看出,接線方式為中斷方式。ADDA、ADDB和ADDC三端接8031的P0.0 、P0.1 和P0.2,故通道號(hào)是通過數(shù)據(jù)線來選擇。程序清單:ORG0000HMOVR0,#30H;數(shù)據(jù)區(qū)始地址送R0MOVR7,#08H;通道數(shù)送R7MOVR6,#00H;IN0地址送R6MOVIE,#84H;開中斷SETBIT1;外中斷請(qǐng)求信號(hào)為下跳沿觸發(fā)方式MOVR1,#0F0H;送端口地址到R1MOVA,R6;IN0地址送AMOVXR1,A;啟動(dòng)A/D轉(zhuǎn)換LOOP:

25、SJMPLOOP;等待中斷END中斷服務(wù)程序:ORG0013H;外中斷1的入口地址AJMP1000H;轉(zhuǎn)中斷服務(wù)程序的入口地址ORG1000HMOVXA,R1;讀入A/D轉(zhuǎn)換數(shù)據(jù)MOVR0,A;將轉(zhuǎn)換后的數(shù)據(jù)存入數(shù)據(jù)區(qū)INCR0;數(shù)據(jù)區(qū)指針加1INCR6;模擬通道號(hào)加1MOVA,R6;新的模擬通道號(hào)送AMOVXR1,A;啟動(dòng)下一通道的A/D轉(zhuǎn)換DJNZR7,LOOP1;8路采樣未結(jié)束,則轉(zhuǎn)向LOOP1CLREX1;8路采樣結(jié)束,關(guān)中斷LOOP1:RETI;中斷返回返回本節(jié)2.4.2 MCS-51對(duì)AD574的接口 (1)引腳功能 AD574為28腳雙列直插式封裝,引腳排列如圖2-22所示。圖2

26、-22 AD574引腳圖(2)結(jié)構(gòu)特點(diǎn) AD574內(nèi)部集成有轉(zhuǎn)換時(shí)鐘,參考電壓源和三態(tài)輸出鎖存器,因此使用方便,可直接和微機(jī)接口,不需要外接時(shí)鐘電路。 ADC0809的輸入模擬電壓為0+5V,是單極性的。而AD574的輸入模擬電壓既可是單極性也可是雙極性。 AD574的數(shù)字量的位數(shù)可以設(shè)定為8位,也可設(shè)定為12位。2. 8031和AD574的接口圖2-23表示出了AD574與8031單片機(jī)的接口電路。 圖2-23 AD574與8031接口電路圖2-24 單極性輸入電路例2.7 在圖2-23中,試編寫程序,使AD 574進(jìn)行12位A/D轉(zhuǎn)換,并把轉(zhuǎn)換后的12位數(shù)字量存入內(nèi)部20H和21H單元。設(shè)

27、20H單元存放高8位,21H單元存放低4位。解:程序清單如下:ORG0000H MOVR0,#20H;數(shù)據(jù)區(qū)首址MOVDPTR,#0FF7CH MOVXDPTR,A;啟動(dòng)A/D轉(zhuǎn)換LOOP:JBP1.0,LOOP;轉(zhuǎn)換是否結(jié)束,未結(jié)束,等待MOVDPTR,#0FF7DHMOVXA,DPTR;讀高8位數(shù)據(jù)MOVR0,A;存高8位數(shù)據(jù)INCDPTRINCDPTRMOVXA,DPTR;讀低4位數(shù)據(jù)ANLA,#0FH;屏蔽高4位隨機(jī)數(shù)INCR0MOVR0,A;存低4位數(shù)據(jù)END返回本節(jié)2.5 數(shù)據(jù)的采樣及保持 2.5.1 多路轉(zhuǎn)換開關(guān) 2.5.2 數(shù)據(jù)采樣定理 2.5.3 采樣/保持器 返回本章首頁(yè)2

28、.5.1 多路轉(zhuǎn)換開關(guān) 1. CD4051CD4051是單邊8通道多路調(diào)制器/多路解調(diào)器。其引腳結(jié)構(gòu)如圖2-25所示。圖2-25中,C、B、A為二進(jìn)制控制輸入端,改變C、B、A的數(shù)值,可以譯出8種狀態(tài),并選中其中之一,使輸入輸出接通。當(dāng)INH=1時(shí),通道斷開;當(dāng)INH=0時(shí),通道接通。改變圖中 IN/OUT07及OUT/IN的傳遞方向,則可用作多路開關(guān)或反多路開關(guān)。其真值表如表2-3所示。圖2-25 CD4051引腳圖 表2-3 CD4051真值表2. 多路轉(zhuǎn)換開關(guān)的擴(kuò)展當(dāng)采樣的通道比較多,可以將兩個(gè)或兩個(gè)以上的多路開關(guān)并聯(lián)起來,組成82或162的多路開關(guān)。下面以CD4051為例說明多路開關(guān)的

29、擴(kuò)展方法。兩個(gè)8路開關(guān)擴(kuò)展成16路的多路開關(guān)的方法,如圖2-26所示。返回本節(jié)圖2-26 用CD4051多路開關(guān)組成的16路模擬開關(guān)接線圖離散系統(tǒng)的采樣形式有周期采樣、多階采樣和隨機(jī)采樣。周期采樣應(yīng)用最為廣泛。所謂周期采樣就是以相同的時(shí)間間隔進(jìn)行采樣。圖2-27給出了采樣前后波形的變化。X*(t)圖2-27 采樣前后波形的變化2.5.2 數(shù)據(jù)采樣定理 返回本節(jié)采樣/保持器的作用是:在采樣時(shí),其輸出能夠跟隨輸入變化;而在保持狀態(tài)時(shí),能使輸出值不變。其輸入輸出特性如圖2-28所示。圖2-28 采樣/保持器的輸入輸出特性2.5.3 采樣/保持器 1. 采樣/保持器的工作原理最簡(jiǎn)單的采樣/保持器是由開

30、關(guān)和電容組成,如圖2-29所示。圖2-29 最簡(jiǎn)單的采樣/保持器2. 常用的采樣/保持器隨著大規(guī)模集成電路的發(fā)展,已生產(chǎn)出各種各樣的采樣/保持器。如用于一般目的有AD582、AD583、LF198/398等;用于高速的有THS-0025、THS-0060、THC-0030、THC-1500等;用于高分辨率的有SHA1144、ADC1130等。返回本節(jié)2.6 常用輸出驅(qū)動(dòng)電路 2.6.1 白熾燈驅(qū)動(dòng)接口 2.6.2 光電隔離器 返回本章首頁(yè)2.6.1 白熾燈驅(qū)動(dòng)接口 圖2-30是用CJ0451驅(qū)動(dòng)器對(duì)白熾燈驅(qū)動(dòng)的典型應(yīng)用電路。驅(qū)動(dòng)器輸出驅(qū)動(dòng)電流為300500mA。當(dāng)單片機(jī)的P1.7輸出低電平時(shí),

31、CJ0451驅(qū)動(dòng)器的輸出晶體管導(dǎo)通,燈泡上有電流流過而點(diǎn)亮。圖2-30 CJ0451驅(qū)動(dòng)燈泡的應(yīng)用返回本節(jié)2.6.2 光電隔離器 圖2-31中二極管用于保護(hù)驅(qū)動(dòng)器,當(dāng)驅(qū)動(dòng)器由0變?yōu)?時(shí),繼電器由接通轉(zhuǎn)為關(guān)斷,由于繼電器線圈是感性負(fù)載,會(huì)產(chǎn)生很高的感應(yīng)電動(dòng)勢(shì),二極管提供的泄流回路能保護(hù)隔離器。 繼電器隔離適用于控制對(duì)響應(yīng)速度要求不高的啟停設(shè)備。對(duì)啟停時(shí)間很短的開關(guān)量輸出控制系統(tǒng),應(yīng)采用光電耦合器。光電耦合器所需的驅(qū)動(dòng)電流小,在硬件設(shè)計(jì)時(shí),只需要一般的三態(tài)門即可。圖2-32為快速驅(qū)動(dòng)直流負(fù)載的光電隔離電路。圖2-31 開關(guān)量輸出隔離電路圖2-32 光電耦合控制直流電機(jī)返回本節(jié)THANK YOU V

32、ERY MUCH !本章到此結(jié)束,謝謝您的光臨!結(jié)束放映返回本章首頁(yè)第三章 常用控制程序設(shè)計(jì) 3.1 判斷程序設(shè)計(jì) 3.2 巡回檢測(cè)程序設(shè)計(jì) 3.3 數(shù)字濾波程序設(shè)計(jì) 3.4 標(biāo)度變換程序設(shè)計(jì) 3.5 上下限報(bào)警處理程序設(shè)計(jì) 3.6 LED數(shù)碼管顯示程序設(shè)計(jì) 3.7 定時(shí)程序設(shè)計(jì) 3.8 鍵盤控制程序設(shè)計(jì) 3.9 抗干擾技術(shù) 3.10 電機(jī)控制程序設(shè)計(jì) 3.11 步進(jìn)電機(jī)控制 3.1 判斷程序設(shè)計(jì) 3.1.1 算術(shù)判斷程序 3.1.2 邏輯判斷程序 3.1.3 標(biāo)志判斷程序 返回本章首頁(yè)判斷程序就是分支執(zhí)行程序。程序在執(zhí)行時(shí),首先判定給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)再執(zhí)行相應(yīng)的操作

33、。例如:在轉(zhuǎn)速控制系統(tǒng)中,電機(jī)的恒速運(yùn)轉(zhuǎn)一般是通過控制輸入電壓來實(shí)現(xiàn)的,首先檢測(cè)出電機(jī)的實(shí)際轉(zhuǎn)速,再比較電機(jī)的實(shí)際轉(zhuǎn)速和給定轉(zhuǎn)速,如果電機(jī)的轉(zhuǎn)速低于給定轉(zhuǎn)速,就需要增加輸入電壓;如果電機(jī)的轉(zhuǎn)速高于給定轉(zhuǎn)速,就需要降低輸入電壓。上述功能的執(zhí)行過程如圖3-1所示。圖3-1 判斷程序框圖檢測(cè)電機(jī)轉(zhuǎn)速是否大于給定轉(zhuǎn)速降低輸入電壓提高輸入電壓是否MCS-51系列的程序狀態(tài)字(PSW)是一個(gè)用于存儲(chǔ)程序運(yùn)行狀態(tài)信息的8位寄存器,其位定義如表3-1所示。其中有些位狀態(tài)是根據(jù)程序運(yùn)算結(jié)果由硬件自動(dòng)設(shè)置;而有些位狀態(tài)則是通過軟件設(shè)定的。PSW的位狀態(tài)可通過指令讀出,以實(shí)現(xiàn)程序的轉(zhuǎn)移。返回本節(jié)3.1.1 算術(shù)判斷

34、程序1. 兩個(gè)8位無符號(hào)數(shù)比較 2. 兩個(gè)16位無符號(hào)數(shù)比較 3. 兩個(gè)8位有符號(hào)數(shù)的比較 兩個(gè)8位無符號(hào)數(shù)比較 圖3-2 8位無符號(hào)數(shù)的比較流程框圖 CLRCY;進(jìn)位標(biāo)志清零 MOVA,M;AMSUBBA,N;求MNJZEQU;累加器A=0,則M=N,轉(zhuǎn)EQUJCLESS;CY=1,有借位,則MN處理程序;無借位,則MN,執(zhí)行BIG處理程序EQU:M=N處理程序LESS:MN處理程序8位無符號(hào)數(shù)的比較程序清單:2. 兩個(gè)16位無符號(hào)數(shù)比較 圖3-3 16位無符號(hào)數(shù)的比較流程框圖16位無符號(hào)數(shù)的比較程序清單: CLRCY;標(biāo)志位清零 MOVA,MH;AMHMOVR2,NH;R2NHSUBBA,

35、R2;高8位比較JZHEQU;高8位相等,轉(zhuǎn)低8位比較 JCLESS;有借位,轉(zhuǎn)MN 理程序HEQU:CLRCY;標(biāo)志位清零 MOVA,ML;AMLMOVR2,NL;R2NLSUBBA,R2;低8位比較JZEQU;A=0,則M=N,轉(zhuǎn)EQUJCLESS;有借位,則MN處理程序;無借位,執(zhí)行MN 理程序EUQ:M=N 處理程序 LESS:M0,N0, 即兩數(shù)均為正數(shù)。(2)M0,N0, 即M為正數(shù),N為負(fù)數(shù)。(3)M0, 即M為負(fù)數(shù),N為正數(shù)。(4)M0,N0, 即兩數(shù)均為負(fù)數(shù)。圖3-4 8位有符號(hào)數(shù)的比較流程框圖8位有符號(hào)數(shù)比較程序清單: MOVA,M;AMMOVR2,N;R2NSUBBA,R

36、2;M和N 比較JZEQU;M和N相等,轉(zhuǎn)相等處理程序JBPSW.2,FLOW;判斷是否溢出JBACC.7,LESS;無溢出,且A的最高位為1,則MNFLOW:JBACC.7,BIG;有溢出,且A的最高位為1,則MNLESS:MN處理程序;否則,MN處理程序 EUQ:M=N處理程序 返回本節(jié)3.1.2 邏輯判斷程序 邏輯判斷程序的設(shè)計(jì)步驟:(1)讀入數(shù)據(jù)(開關(guān)狀態(tài)或閥門的位置);(2)屏蔽不需要的狀態(tài)位;(3)與所要求的狀態(tài)比較;(4)判斷比較結(jié)果,選擇程序入口。例3-1圖3-5中A、B、C、D表示4個(gè)開關(guān),當(dāng)四個(gè)開關(guān)均閉合時(shí),順序執(zhí)行相應(yīng)的程序,否則,繼續(xù)檢測(cè)。邏輯判斷程序流程框圖如圖3-6

37、所示。 圖3-5 開關(guān)位置檢測(cè)圖 圖3-6 開關(guān)狀態(tài)檢測(cè)流程圖邏輯判斷程序清單: CHECK:MOVA,P1;讀入開關(guān)狀態(tài) ANLA,#55H;屏蔽無用位XRLA,#00H;判斷A、B、C、D是否全部閉合JNZCHECK;A、B、C、D沒全部閉合,繼續(xù)檢測(cè);否則順序執(zhí)行相應(yīng)程序 返回本節(jié)3.1.3 標(biāo)志判斷程序 標(biāo)志判斷的設(shè)計(jì)思想是:根據(jù)某一設(shè)定的標(biāo)志單元(或標(biāo)志位)的狀態(tài),決定程序的執(zhí)行方向。電機(jī)旋轉(zhuǎn)方向控制程序流程圖如圖3-7所示。圖3-7 電機(jī)旋轉(zhuǎn)方向控制程序流程圖電機(jī)旋轉(zhuǎn)方向控制程序清單: FLAGBIT 00H;設(shè)定00H為電機(jī)旋轉(zhuǎn)方向控制位 JBFLAGRIGHT;FLAG=1,轉(zhuǎn)

38、RIGHTLEFT:;FLAG=0,順時(shí)針旋轉(zhuǎn)控制程序 RIGHT:;逆時(shí)針旋轉(zhuǎn)控制程序 返回本節(jié)3.2 巡回檢測(cè)程序設(shè)計(jì) 3.2.1 概述 3.2.2 巡回檢測(cè)舉例 返回本章首頁(yè)3.2.1 概述 所謂的巡回檢測(cè)就是對(duì)生產(chǎn)過程中的各個(gè)參數(shù)按照一定的周期進(jìn)行檢查和測(cè)量,檢測(cè)的數(shù)據(jù)通過計(jì)算機(jī)處理后可以進(jìn)行顯示、打印和報(bào)警等操作。巡回檢測(cè)程序主要由以下幾個(gè)方面構(gòu)成:1. 采樣周期T的確定 2. 采樣開關(guān)通道號(hào)的控制 3. A/D轉(zhuǎn)換 4. 數(shù)據(jù)處理 返回本節(jié)3.2.2 巡回檢測(cè)舉例 1. 利用8位A/D轉(zhuǎn)換芯片(ADC0809) 2. 采用12位A/D轉(zhuǎn)換芯片(AD574A) 1. 利用8位A/D轉(zhuǎn)

39、換芯片(ADC0809)圖3-8 爐溫巡回檢測(cè)電路原理圖系統(tǒng)的硬件電路介紹: (1)測(cè)量元件和變送器 (2)A/D轉(zhuǎn)換電路 (3)二分頻電路 本程序由系統(tǒng)初始化程序和中斷程序組成。初始化程序完成中斷向量和定時(shí)器初值的設(shè)定;中斷程序完成數(shù)據(jù)采樣工作,實(shí)現(xiàn)對(duì)8個(gè)通道的巡回檢測(cè)。初始化程序功能:設(shè)置定時(shí)器0、外部中斷0和外部中斷1的中斷程序入口;設(shè)置定時(shí)器0的工作方式為方式1,定時(shí)時(shí)間為100ms;設(shè)置計(jì)數(shù)單元(30H)初值。初始化程序流程框圖如圖3-9所示。圖3-9 初始化程序流程圖初始化程序清單: ORG0000H AJMPSTART ORG0003H AJMPSAMPLE;轉(zhuǎn)采樣中斷程序 OR

40、G000BH AJMPTIME0;轉(zhuǎn)8秒定時(shí)中斷程序ORG0013HAJMPEOC;轉(zhuǎn)EOC中斷處理程序START:MOVTMOD,#01H;置定時(shí)器0為工作方式1 MOVTH0,#3CHMOVTL0,#0B0H;定時(shí)器初值設(shè)定 MOV30H,#00H;置計(jì)數(shù)初值SETBIT0;中斷請(qǐng)求信號(hào)為脈沖方式 SETBIT1;中斷請(qǐng)求信號(hào)為脈沖方式 SETBEX0;外部中斷0中斷允許SETBET0;定時(shí)器0中斷允許 SETBEA;開中斷SETBTR0;啟動(dòng)定時(shí)器HERE:AJMPHERE;等待中斷定時(shí)器中斷程序流程框圖如圖3-10所示。圖3-10 定時(shí)器中斷程序流程框圖定時(shí)器中斷程序程序清單: TIM

41、E0:CLREA;關(guān)中斷INC30H MOVA,30H XRLA,#50H;判斷是否到8秒JZS_8;8秒定時(shí)到,轉(zhuǎn)至S_8AJMPRECOUN;未到8秒,繼續(xù)計(jì)時(shí)S_8:SETBP3.2;觸發(fā)外部中斷0NOP CLRP3.2 NOPRECOUN:MOVTH0,#3CH MOVTL0,#0B0H;設(shè)定定時(shí)器初值SETBEA;開中斷RETI;中斷返回?cái)?shù)據(jù)采樣程序流程框圖如圖3-11所示。數(shù)據(jù)采樣程序程序清單: SAMPLE:SETB00H;設(shè)置標(biāo)志位 MOVDPTR,#0F00H;設(shè)置通道初值 MOVR6,#08H;設(shè)置通道數(shù) MOVR7,#05H;設(shè)置采樣次數(shù) MOVR0,#40H;設(shè)置數(shù)據(jù)區(qū)

42、首址 TRAN_S:MOVXDPTR,A;啟動(dòng)A/D轉(zhuǎn)換程序流程圖WAIT:JB00H,WAIT;標(biāo)志位為1等待A/D轉(zhuǎn)換完成中斷 SETB00H;置標(biāo)志位INCDPTR;通道號(hào)加1INCR0INCR0INCR0INCR0INCR0;45H為下一通道采樣數(shù)據(jù)存放首址DJNZR6,#TRAN_S;8個(gè)通道采樣未完,繼續(xù)采樣MOVDPTR,#0F00H;8個(gè)通道采樣結(jié)束,重置通道初值INCR0;修改采樣數(shù)據(jù)存放地址DJNZR7,TRAN_S;未完成5次采樣,繼續(xù);數(shù)據(jù)處理程序.RETI2. 采用12位A/D轉(zhuǎn)換芯片(AD574A) 圖3-14 AD574A和8031的硬件接口電路圖圖3-15 AD

43、574A A/D轉(zhuǎn)換程序流程框圖D574A A/D轉(zhuǎn)換程序清單: ORG0000HAJMPSTARTORG0003HAJMPSAMPLE;轉(zhuǎn)至數(shù)據(jù)采樣程序START:MOVDPTR,#0000H;建立AD574A的地址MOVR0,#40H;設(shè)置數(shù)據(jù)存儲(chǔ)初址SETBEX0;允許外部中斷0SETBIT0;設(shè)置外部中斷0請(qǐng)求信號(hào)方式為脈沖方式SETBEA;中斷允許MOVXDPTR,A;啟動(dòng)A/D轉(zhuǎn)換HERE:AJMPHERE;等待中斷中斷服務(wù)程序清單:SAMPLE:CLREA;關(guān)中斷MOVDPTR,#0002H MOVXA,DPTR;讀A/D轉(zhuǎn)換數(shù)據(jù)的高8位MOVR0,A;保存數(shù)據(jù)INCR0INCD

44、PTR MOVXA,DPTR;讀A/D轉(zhuǎn)換數(shù)據(jù)的低4位SETBEA;開中斷RETI 返回本節(jié)3.3 數(shù)字濾波程序設(shè)計(jì) 3.3.1 概述 3.3.2 數(shù)字濾波的方法返回本章首頁(yè)3.3.1 概述 和模擬濾波裝置相比,數(shù)字濾波有以下幾個(gè)優(yōu)點(diǎn):(1)數(shù)字濾波通過程序?qū)崿F(xiàn),不需硬件設(shè)備,系統(tǒng)的可靠性較高。(2)數(shù)字濾波可實(shí)現(xiàn)多通道共用。(3)可對(duì)低頻信號(hào)(如0.01Hz)實(shí)現(xiàn)濾波。(4)采用不同的算法和參數(shù)就可實(shí)現(xiàn)對(duì)不同信號(hào)的濾波,使用起來靈活、方便。返回本節(jié)3.3.2 數(shù)字濾波的方法 1. 程序判斷濾波 2. 中值濾波 3. 算術(shù)平均濾波 4. 加權(quán)平均濾波 5. 一階滯后濾波 6. 防脈沖干擾平均值

45、法 1. 程序判斷濾波 限幅濾波就是把相鄰的兩次采樣值相減,求出其增量(以絕對(duì)值表示),然后與兩次采樣允許的最大偏差值(由被控對(duì)象的實(shí)際情況決定) y進(jìn)行比較,如果小于等于y,則取本次采樣值;如果大于y,則仍取上次采樣值作為本次采樣值。即:Yn-Yn-1y, 則Yn=Yn , 取本次采樣值Yn-Yn-1 y, 則Yn=Yn-1 ,取上次采樣值 (3-1)限幅濾波程序流程框圖如圖3-16所示。圖3-16 限幅濾波程序流程框圖限幅濾波程序程序清單: PUSHPSW;保護(hù)現(xiàn)場(chǎng)PUSHA CLRC;進(jìn)位標(biāo)志位清零MOVDATA,DATA2 MOVA,DATA1SUBBA,DATA;求Yn-1 -YnJ

46、NCCOMPARE;如果Yn-1 -Yn0,轉(zhuǎn)COMPARECPLA;如果Yn-1 -Yny,DATA1DATAOVER:POPA;恢復(fù)現(xiàn)場(chǎng) POPPSWRET;返回限速濾波的濾波原理如下:設(shè)在順序采樣時(shí)刻T1、T2、T3所采集的數(shù)據(jù)分別為Y1、Y2、Y3,則當(dāng)Y2-Y1y,則Y2作為采樣值;Y2-Y1y, 則保留Y2,但不作為采樣值,繼續(xù)采樣得Y3;如果Y3-Y2y,則Y3作為采樣值;Y3-Y2y, 則取作為采樣值。2. 中值濾波 所謂中值濾波法就是對(duì)某一被測(cè)參數(shù)連續(xù)采樣n次(n一般取奇數(shù)),然后把n次采樣值按順序排列,取其中間值做為本次采樣值。中值濾波程序的流程框圖如圖3-17所示。 圖3

47、-17 中值濾波程序流程框圖 現(xiàn)場(chǎng)保護(hù)設(shè)置數(shù)據(jù)個(gè)數(shù)讀數(shù)據(jù)排序取中值據(jù)現(xiàn)場(chǎng)恢復(fù)排序完成否?是設(shè)置數(shù)據(jù)區(qū)首址 開 始返 回是否中值濾波程序程序清單: PUSHPSWPUSHASORT:MOVR0,DATA;數(shù)據(jù)存儲(chǔ)區(qū)單元首址MOVR7,TIME;讀比較次數(shù)CLRFLAG;清交換標(biāo)志位 LOOP:MOVA,R0;取第一個(gè)數(shù)MOVFIRST,A;保存第一個(gè)數(shù)INCR0MOVSECOND,R0;保存第二個(gè)數(shù)CLRCSUBBA,R0;兩數(shù)比較JCNEXT;第一數(shù)小于第二數(shù),不交換MOVR0,FIRST DECR0MOVR0,SECOND;交換兩數(shù)INCR0SETBFLAG;置交換標(biāo)志位NEXT:DJNZR

48、7,LOOP;進(jìn)行下一次比較JBFLAG,SORT;進(jìn)行下一輪比較DECR0CLRCMOVA,TIME RRCAMOVR7,ACONT:DEC R0DJNZR7,CONTMOVSAMP,R0;取中值POPAPOPPSWRET3. 算術(shù)平均濾波所謂算術(shù)平均濾波就是把n個(gè)采樣值相加,然后取其算術(shù)平均值作為本次有效的采樣信號(hào),即: 圖3-18 算術(shù)平均濾波程序流程圖算術(shù)平均濾波程序清單:(本例中取采樣次數(shù)n=8) PUSHPSW;現(xiàn)場(chǎng)保護(hù) PUSHAMOVFLAG,#00H;進(jìn)位位清零MOVR0,DATA;設(shè)置數(shù)據(jù)存儲(chǔ)區(qū)首址MOVR7,#08H;設(shè)置采樣數(shù)據(jù)個(gè)數(shù)CLRA;清累加器LOOP:ADDA,

49、R0;兩數(shù)相加JNCNEXT;無進(jìn)位,轉(zhuǎn)NEXTINCFLAG;有進(jìn)位,進(jìn)位位加1NEXT:INCR0;數(shù)據(jù)指針加1DJNZR7, LOOP;未加完,繼續(xù)加MOVR7,#03H;設(shè)置循環(huán)次數(shù)DIVIDE:MOVTEMP,A;保存累加器中的內(nèi)容MOVA,FLAG;累加結(jié)果除2CLRC RRCAMOVFLAG,A MOVA,TEMP RRCA DJNZR7,DIVIDE;未結(jié)束,繼續(xù)執(zhí)行 MOVSAMP,A;保存結(jié)果至SAMP中POPA;恢復(fù)現(xiàn)場(chǎng)POPPSW RET 4. 加權(quán)平均濾波 在算術(shù)平均濾波程序中,n次采樣值在最后的結(jié)果中所占的比重是相等的,這樣雖然消除了隨機(jī)干擾,但有用信號(hào)的靈敏度也隨

50、之降低。為了提高濾波效果,將各個(gè)采樣值取不同的比重,然后再相加求平均值,這種方法稱為加權(quán)平均濾波。一個(gè)n項(xiàng)加權(quán)平均式為:圖3-19 加權(quán)平均濾波程序流程圖加權(quán)平均濾波程序清單: PUSHPSW;保護(hù)現(xiàn)場(chǎng)PUSHAMOVR7,TIME;數(shù)據(jù)個(gè)數(shù)設(shè)置MOVR0,DATA;數(shù)據(jù)區(qū)首址設(shè)置MOVR1,COEFF;系數(shù)存儲(chǔ)首址設(shè)置MOVFLAG,#00H;累加結(jié)果存儲(chǔ)區(qū)清零MOVSAMP_L,#00H MOVSAMP_H,#00HLOOP:MOVA,R0;讀采樣值MOVB,AMOVA,R1;讀加權(quán)平均系數(shù)MULABCLRCADDA,SAMP_L;累加和MOVSAMP_L,AMOVA,BADDCA,SAM

51、P_HJNCNEXT INCFLAG NEXT:MOVSAMP_H,A INCR0;數(shù)據(jù)區(qū)地址加1 INCR1;系數(shù)地址加1 DJNZR7,LOOP;未加完,繼續(xù)MOVR7,#07H;設(shè)置循環(huán)次數(shù)DIV128:CLRCMOVA,FLAG;累加結(jié)果除2RRCA MOVFLAG,AMOVA,SAMP_HRRCAMOVSAMP_H,AMOVA,SAMP_LRRCAMOVSAMP_L,ADJNZR7,DIV128;未除完,繼續(xù)MOVSAMP,SAMP_L;保存濾波后采樣值POPA;恢復(fù)現(xiàn)場(chǎng)POPPSWRET5. 一階滯后濾波圖3-20 一階滯后濾波程序流程圖一階滯后濾波程序清單: MOVMUL1_H,

52、COEFF1_HMOVMUL1_L,COEFF1_LMOVMUL2_H,DATA1_HMOVMUL2_H,DATA1_LACALLMULTD; MOVBUFF1,PR_H MOVBUFF2,PR_L MOVMUL1_H,COEFF2_H MOVMUL1_L,COEFF2_LMOVMUL2_H,DATA2_HMOVMUL2_H,DATA2_L ACALLMULTD;CLRCMOVA,PR_H;ADDA,BUFF1 MOVPR_H,AMOVA,PR_LADDCA,BUFF2; MOVPR_L,A 雙字節(jié)無符號(hào)位乘法子程序(MULTD)。 入口條件:乘數(shù)MUL1存于MUL1_H和MUL1_L單元中,

53、被乘數(shù)MUL2存于MUL2_H和MUL2_L單元中。出口條件:乘積按順序存于PR_H、PR_L、MUL1_H、MUL1_L單元中。MULTD:CLR C;清進(jìn)位標(biāo)志位MOVPR_L,#00H;乘積高8位清零 MOVPR_H,#00HMOVR7,#11H;設(shè)置循環(huán)次數(shù)LOOP1:JNCLOOP2;進(jìn)位標(biāo)志位為零,轉(zhuǎn)LOOP2MOVA,PR_L;PR+MUL2ADDA,MUL2_LMOVPR_L,AMOVA,PR_HADDCA,MUL2_HMOVPR_H,ALOOP2:MOVA,PR_H;PR右移一位RRCAMOVPR_H,AMOVA,PR_LRRCAMOVPR_L,AMOVA,MUL1_H;MU

54、L1右移一位RRCAMOVMUL1_H,AMOVA,MUL1_L RRCAMOVMUL1_L,A DJNZR7,LOOP1;循環(huán)未結(jié)束,繼續(xù)6. 防脈沖干擾平均值法 圖3-21 防脈沖干擾平均值法程序流程框圖 防脈沖干擾平均值法程序清單: PUSHA;保護(hù)現(xiàn)場(chǎng)PUSHPSWSORT:MOVR0,DATA;數(shù)據(jù)存儲(chǔ)區(qū)單元首址MOVR7,#10H;讀比較次數(shù)CLRCHANGE;清交換標(biāo)志位 LOOP:MOVA,R0;取第一個(gè)數(shù)MOVFIRST,A;保存第一個(gè)數(shù)INCR0MOVSECOND,R0;保存第二個(gè)數(shù)CLRCSUBBA,R0;兩數(shù)比較JCNEXT;第一數(shù)小于第二數(shù),不交換MOVR0,FIRS

55、T DECR0MOVR0,SECOND;交換兩數(shù)INCR0SETBCHANGE;置交換標(biāo)志位NEXT:DJNZR7,LOOP;進(jìn)行下一次比較JBCHANGE,SORT;進(jìn)行下一輪比較 MOVFLAG,#00H;進(jìn)位位清零 INCDATA;去掉最小值MOVR0,DATA;設(shè)置數(shù)據(jù)存儲(chǔ)區(qū)首址MOVR7, #08H;設(shè)置累加循環(huán)次數(shù),去掉最大值 CLRA;清累加器 LOOP:ADDA,R0;兩數(shù)相加 JNCNEXT;無進(jìn)位,轉(zhuǎn)NEXT INCFLAG;有進(jìn)位,進(jìn)位位加1 NEXT:INCR0;數(shù)據(jù)指針加1 DJNZR7, LOOP;未加完,繼續(xù)加MOVR7,#03H;設(shè)置循環(huán)次數(shù)DIVIDE:MOV

56、TEMP,A;保存累加器中的內(nèi)容MOVA,FLAG;累加結(jié)果除2CLRC RRCAMOVFLAG,AMOVA,TEMPRRCA DJNZR7,DIVIDE;未結(jié)束,繼續(xù)執(zhí)行MOVSAMP,A;保存結(jié)果至SAMP中POPA;恢復(fù)現(xiàn)場(chǎng)POPPSWRET返回本節(jié)3.4 標(biāo)度變換程序設(shè)計(jì) 對(duì)于一般的線性儀表而言,標(biāo)度變換公式為:為了簡(jiǎn)化程序設(shè)計(jì),一般把被測(cè)參數(shù)的起點(diǎn)A0所對(duì)應(yīng)的A/D轉(zhuǎn)換值設(shè)定為0,即N0=0,這樣式(3-6)可以改寫為:返回本章首頁(yè)例3-2某溫度測(cè)量?jī)x表的量程為100900,利用8031和ADC0809進(jìn)行A/D轉(zhuǎn)換。在某一時(shí)刻計(jì)算機(jī)采樣并經(jīng)過數(shù)字濾波后的的數(shù)字量為0CDH求此時(shí)對(duì)應(yīng)

57、的溫度值是多少?(設(shè)儀表的量程是線性的)解:由式(3-7)可知,A0=100,Am=900,Nx=0CDH=(205)D,Nm=0FFH=(255)D,所以此時(shí)對(duì)應(yīng)的溫度為:標(biāo)度變換程序清單: BDCHAN:MOVSUB1_L,AM;INCAM MOVSUB1_H,AMMOVSUB2_L,A0INCA0MOVSUB2_H,A0ACALLSUB2MOVMUL1_H,DIFF_HMOVMUL1_L,DIFF_LMOVSUB1_L,NX; INCNX MOVSUB1_H,NXMOVSUB2_L,N0INCN0MOVSUB2_H,N0ACALLSUB2MOVMUL2_H,DIFF_HMOVMUL2_L

58、,DIFF_LACALLMULTD;求MOVDIV1_H,PR_HMOVDIV1_L,PR_LMOVSUB1_L,NM; INCNMMOVSUB1_H,NMMOVSUB2_L,N0INCN0MOVSUB2_H,N0ACALLSUB2MOVDIV2_H,DIFF_HMOVDIV2_L,DIFF_LACALLDUBDIV;CLRCMOVA,DIV1_LADDCA,A0MOVAX,AINCA0MOVA,DIV1_HADDCA,A0MOVAX,A;RET雙字節(jié)減法子程序(SUB2) 雙字節(jié)減法子程序(SUB2)程序入口:被減數(shù)放在SUB1_H、SUB1_L單元中,減數(shù)放在 SUB2_H、SUB2_L單

59、元中;程序出口:差放在 DIFF_H、DIFF_L單元中。SUB2:CLRCMOVA,SUB1_L;ASUB1_LSUBBA,SUB2_L;低8位相減MOVDIFF_L,A;保存低8位差值MOVA,SUB1_H;ASUB1_HSUBBA,SUB2_H;高8位相減MOVDIFF_H,A;保存高8位差值RET雙字節(jié)無符號(hào)數(shù)除法(DUBDIV) 程序入口:被除數(shù)存放在DIV1_H、DIV1_L單元中, 除數(shù)存放在 DIV2_H、DIV2_L單元中;程序出口:商存放在 DIV1_H、DIV1_L單元中,余數(shù)存放在L_L和L_H單元中。DUBDIV:CLRA;余數(shù)單元清零MOVL_H,AMOVL_L,A

60、MOVR0,#10H;設(shè)置除法移位次數(shù) LOOP:CLRC;移位MOVA,DIV1_LRLCAMOVDIV1_L,AMOVA,DIV1_HRLCAMOVDIV1_H,AMOVA,L_LRLCAMOVL_L,AMOVA,L_HRLCAMOVL_H,AMOVPSW.5,CLP1:MOVA,L_L;余數(shù)單元減除數(shù)SUBBA,DIV2_LMOVR1,AMOVA,L_HSUBBA,DIV2_H JBPSW.5 ADD1JCSMALLADD1:MOVL_H,AMOVA,R1MOVL_L,AINCDIV1_L;商加一 SAMLL:DJNZR0,LOOPMOV20H,L_H;四舍五入 JB07H, ADD_D

溫馨提示

  • 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)論