數(shù)據(jù)采集與處理技術(shù)第9章_第1頁(yè)
數(shù)據(jù)采集與處理技術(shù)第9章_第2頁(yè)
數(shù)據(jù)采集與處理技術(shù)第9章_第3頁(yè)
數(shù)據(jù)采集與處理技術(shù)第9章_第4頁(yè)
數(shù)據(jù)采集與處理技術(shù)第9章_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1YSU 2YSU傳送方式傳送方式并行并行串行串行數(shù)字信號(hào)的采集與其傳送方式有關(guān)。數(shù)字信號(hào)的采集與其傳送方式有關(guān)。采集方法采集方法用用8255芯片采集并行數(shù)據(jù)芯片采集并行數(shù)據(jù)用用RS-232口采集串行數(shù)據(jù)口采集串行數(shù)據(jù)3YSU1. 用途和結(jié)構(gòu)用途和結(jié)構(gòu) 用途用途 : :用于接收并行傳輸?shù)臄?shù)字信號(hào)、用于接收并行傳輸?shù)臄?shù)字信號(hào)、脈沖信號(hào)和開關(guān)信號(hào)。脈沖信號(hào)和開關(guān)信號(hào)。結(jié)構(gòu)結(jié)構(gòu)其引腳和內(nèi)部結(jié)構(gòu)如圖其引腳和內(nèi)部結(jié)構(gòu)如圖9.1所示所示。 4YSU8255A-5PB22122232425262728293031323334353637383940PA4PA5PA6PA7RESETD0D1D2D3D4D5D

2、6D7UccPB7PB6PB5PB4PB3WR1234567891011121314151617181920PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1(a)圖圖9.1 8255A-5引腳和內(nèi)部結(jié)構(gòu)框圖引腳和內(nèi)部結(jié)構(gòu)框圖 端口端口A端口端口C (高高)端口端口C (低低)端口端口BPA7PA0PC7PC4PC3PC0PB7PB0A組組控制控制 器器數(shù)據(jù)總數(shù)據(jù)總線緩沖線緩沖B組組控制控制 器器D7D0計(jì)算機(jī)計(jì)算機(jī)外界外界RDWRA1A0RESETCS讀讀/寫寫邏輯邏輯(b)5YSU由此圖可知:由此圖可知: 8255有有3個(gè)端口個(gè)端口

3、端口端口A 是一個(gè)是一個(gè)8位數(shù)據(jù)輸出輸入鎖存器位數(shù)據(jù)輸出輸入鎖存器。 端口端口B 是一個(gè)是一個(gè)8位數(shù)據(jù)輸入輸出鎖存器。位數(shù)據(jù)輸入輸出鎖存器。 端口端口C 是一個(gè)是一個(gè)8位數(shù)據(jù)輸出輸入緩沖器。位數(shù)據(jù)輸出輸入緩沖器。端口端口C 還可以分成兩個(gè)還可以分成兩個(gè) 4 位的端口位的端口。 6YSU有有2組控制器組控制器 A組:組: 控制端口控制端口A和端口和端口C的高的高4位位B組:組: 控制端口控制端口B和端口和端口C的低的低4位位有數(shù)據(jù)總線緩沖、讀寫邏輯芯片有數(shù)據(jù)總線緩沖、讀寫邏輯芯片 2. 工作方式工作方式 8255A芯片有三種工作方式。芯片有三種工作方式。 7YSU方式方式0 基本的輸入輸出方式,

4、基本的輸入輸出方式,特點(diǎn)特點(diǎn) 任何端口都可用做輸入任何端口都可用做輸入/輸出輸出 輸出可被鎖存,輸入不能鎖存輸出可被鎖存,輸入不能鎖存 有有16種輸入輸出組態(tài)種輸入輸出組態(tài)方式方式1 選通的輸入輸出方式。選通的輸入輸出方式。 8YSU特點(diǎn)特點(diǎn) A、B組各有一個(gè)組各有一個(gè)8位數(shù)據(jù)口和一位數(shù)據(jù)口和一 4位控制數(shù)據(jù)口位控制數(shù)據(jù)口 8位數(shù)據(jù)口的輸入輸出均可鎖存位數(shù)據(jù)口的輸入輸出均可鎖存 端口端口C的的4 位傳送位傳送8 位數(shù)據(jù)口控制位數(shù)據(jù)口控制 狀態(tài)信息狀態(tài)信息它與方式它與方式0的不同之處在于的不同之處在于: 借助選通或應(yīng)答式聯(lián)絡(luò)信號(hào),把借助選通或應(yīng)答式聯(lián)絡(luò)信號(hào),把IO數(shù)據(jù)與指定的端口進(jìn)行發(fā)送或接收。

5、數(shù)據(jù)與指定的端口進(jìn)行發(fā)送或接收。 9YSU方式方式2 帶聯(lián)絡(luò)雙向總線帶聯(lián)絡(luò)雙向總線IO方式方式。 注意:注意:此方式僅用于此方式僅用于A口口。特點(diǎn)特點(diǎn) 有一個(gè)有一個(gè)8位雙向數(shù)據(jù)口和一個(gè)位雙向數(shù)據(jù)口和一個(gè)5位位 控制端口控制端口C 輸入輸出均可鎖存輸入輸出均可鎖存 4位控制口用于位控制口用于8位數(shù)據(jù)端口的控位數(shù)據(jù)端口的控 制狀態(tài)信息制狀態(tài)信息10YSU需要說(shuō)明:需要說(shuō)明:在方式在方式1和方式和方式2中中,并未將端并未將端口口C的所有位都用于傳送控制的所有位都用于傳送控制狀態(tài)信息狀態(tài)信息,剩余的各位仍然可剩余的各位仍然可以通過(guò)編程設(shè)定為輸入輸出以通過(guò)編程設(shè)定為輸入輸出用。用。 以上介紹的各種工作方

6、式及組態(tài),都以上介紹的各種工作方式及組態(tài),都可以通過(guò)對(duì)可以通過(guò)對(duì)8255A的初始化來(lái)實(shí)現(xiàn)的初始化來(lái)實(shí)現(xiàn)。 11YSU3. 初始化初始化 8255A的初始化的初始化 將一個(gè)將一個(gè)8位控制碼寫位控制碼寫入入8255A的控制寄存的控制寄存器。器。 基本要求:基本要求:為了能正確地寫入控制字,先為了能正確地寫入控制字,先要了解要了解8255A控制寄存器中各控制寄存器中各位的情況位的情況。 8255A控制寄存器如圖控制寄存器如圖9.2 所示所示。12YSUD7D6D5D4D3D2D1D0置方式標(biāo)志:置方式標(biāo)志:方式選擇:方式選擇:端口端口A:端口端口C高端高端:方式選擇:方式選擇:端口端口B:端口端口C

7、低端:低端:圖圖9.2 8255A控制寄存器控制寄存器00=方式方式0;01=方式方式11X=方式方式21=有效有效1輸入輸入,0輸出輸出1輸入輸入,0輸出輸出0=方式方式0,1=方式方式11輸入輸入,0輸出輸出1輸入輸入;0輸出輸出13YSU 8255初始化初始化 對(duì)對(duì)8255控制寄存器的控制寄存器的各位賦值。各位賦值。 【例【例9.1】設(shè)設(shè)8255A的控制寄存器的地址為的控制寄存器的地址為63H, 初始化初始化A、C口為輸入口口為輸入口,B口為輸出口為輸出 口口。編寫對(duì)編寫對(duì)8255A初始化的匯編程序。初始化的匯編程序。解:解: 確定控制碼確定控制碼:10011001 8088匯編程序如下

8、匯編程序如下: 14YSUMOV AL,63H MOV DI, ALMOV AL,10011001B ;置置A、C口為輸入口口為輸入口,B口為輸出口口為輸出口OUT DI,AL ;把把10011001B寫入寫入8255A控制寄存器控制寄存器15YSU1. 概述概述 主要性能主要性能 為為PCISA 總線型接口板,廣泛用于總線型接口板,廣泛用于PC微機(jī)微機(jī)。 板上有三片板上有三片8255A芯片及若干個(gè)邏輯器芯片及若干個(gè)邏輯器件組成,通過(guò)編程自由設(shè)定輸入輸出。件組成,通過(guò)編程自由設(shè)定輸入輸出。16YSU2. 主要技術(shù)指標(biāo)主要技術(shù)指標(biāo)輸入輸出路數(shù)輸入輸出路數(shù):輸入輸出電平輸入輸出電平:控制方式:控制

9、方式:電源要求電源要求:72路路TTL程序查詢或中斷服務(wù)程序查詢或中斷服務(wù) DC+5V,耗電流耗電流500 mA環(huán)境溫度環(huán)境溫度:-105017YSU2. 使用使用 地址開關(guān)的設(shè)定地址開關(guān)的設(shè)定 PS-2304板卡上有一個(gè)地址開關(guān)板卡上有一個(gè)地址開關(guān)K,如如圖圖9.3 所示的所示的。 圖圖9.3 地址開關(guān)地址開關(guān)KON1A52A63A74A85A96A10718YSU 設(shè)定其各位,就可以確定板卡端口及設(shè)定其各位,就可以確定板卡端口及控制寄存器的地址??刂萍拇嫫鞯牡刂贰?由圖由圖9.3可以知道,地址開關(guān)可以知道,地址開關(guān)K 為為6 位位有效有效。 ONOFF 狀態(tài)與計(jì)算機(jī)地址線位內(nèi)狀態(tài)與計(jì)算機(jī)地

10、址線位內(nèi)容對(duì)應(yīng)關(guān)系是容對(duì)應(yīng)關(guān)系是:ON An = 1 OFF An = 019YSU 地址開關(guān)位與計(jì)算機(jī)地址線位的對(duì)地址開關(guān)位與計(jì)算機(jī)地址線位的對(duì)應(yīng)關(guān)系如下:應(yīng)關(guān)系如下: K1 A5K2 A6K3 A7K4 A8K5 A9K6 A10 K 的地址范圍為的地址范圍為0300031F,共共32個(gè)個(gè)連續(xù)地址連續(xù)地址。 20YSU 表表9.1 PS-2304板地址分配板地址分配 芯片芯片 A口口 B口口 C口口 控制寄存器控制寄存器 JC90300H0301H0302H 0303HJC100304H0305H0306H 0307H JC110308H0309H030AH030BH0318H031BH

11、寫入:開中斷寫入:開中斷031CH031FH 寫入:關(guān)中斷寫入:關(guān)中斷21YSU板上接口插座板上接口插座 1 21 21 2 JC8255A JC8255A JC8255A33 3433 34Z33 34ZON123456KIRQIRQPCPC2Z491011PC75PCPC0PC1PC3Z1231 3.0 7 5. .7圖圖9 9. .4 4 P PS S- -2 23 30 04 4板板結(jié)結(jié)構(gòu)構(gòu)22YSU1 233 3433 34PA1PA3PA5PA7PC7PC5PC3PC1PB7PB5PB3PB11 2PA0PA2PA4PA6PC6PC4GND5VPC2PC0PB0PB2PB4PB6G

12、NDPA0PA2PA4PA6PC6PC4GND5VPC2PC0PB0PB2PB4PB6GNDPA1PA3PA5PA7PC7PC5PC3PC1PB7PB5PB3PB1圖圖9 9. .5 5 插插座座與與8 82 25 55 5A A端端口口的的對(duì)對(duì)應(yīng)應(yīng)關(guān)關(guān)系系(a) (b) Z1 , Z2 插座各腳插座各腳號(hào)與號(hào)與8255A的三個(gè)端口的三個(gè)端口對(duì)應(yīng)關(guān)系如圖對(duì)應(yīng)關(guān)系如圖9.5(a)所所示示。 Z3 插座各腳與插座各腳與8255A的三個(gè)端口的對(duì)應(yīng)關(guān)的三個(gè)端口的對(duì)應(yīng)關(guān)系如圖系如圖9.5(b)所示所示。23YSU接口板初始化接口板初始化【例例9.2】 將將8255A芯片設(shè)置成芯片設(shè)置成24路輸入路輸入

13、狀態(tài)狀態(tài)。 解:解: 其控制命令字為其控制命令字為 10011011B, 即十六即十六BASIC語(yǔ)句為語(yǔ)句為: OUT &H303,&H9B 進(jìn)制的進(jìn)制的9BH。24YSU匯編程序?yàn)椋簠R編程序?yàn)椋?MOV AL,303H ;確定確定JC9的控制寄存的控制寄存 器地址器地址MOV DI,AL MOV AL,9BH OUT DI,AL ;把控制字把控制字9BH寫入寫入 JC9 的控制寄存器的控制寄存器 25YSU8088寄存器結(jié)構(gòu)寄存器結(jié)構(gòu): 通用寄存器通用寄存器 數(shù)據(jù)寄存器數(shù)據(jù)寄存器AX AH :AL :字節(jié)乘字節(jié)乘字節(jié)乘、字節(jié)除、字節(jié)字節(jié)乘、字節(jié)除、字節(jié)I/O、轉(zhuǎn)移、十進(jìn)制算術(shù)運(yùn)算轉(zhuǎn)移、十進(jìn)制

14、算術(shù)運(yùn)算26YSUBX BH : BL :CX CH : CL :CX:串操作、循環(huán)次數(shù)串操作、循環(huán)次數(shù)轉(zhuǎn)移轉(zhuǎn)移變量移位、循環(huán)控制變量移位、循環(huán)控制27YSUDX DH : DL :字乘、字除法、間接字乘、字除法、間接IO 地址指針寄存器地址指針寄存器 SPBP 變址寄存器變址寄存器 SIDI堆棧指針寄存器堆棧指針寄存器基址指針寄存器基址指針寄存器 源變址寄存器源變址寄存器目的變址寄存器目的變址寄存器28YSU段寄存器段寄存器 CS SS DS ES 控制寄存器控制寄存器 IP F 代碼段寄存器代碼段寄存器堆棧段寄存器堆棧段寄存器數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器附加數(shù)據(jù)段寄存器附加數(shù)據(jù)段寄存器指令指針

15、寄存器指令指針寄存器標(biāo)志寄存器標(biāo)志寄存器29YSU 以以BCD碼碼傳送并行數(shù)字信號(hào),在工程傳送并行數(shù)字信號(hào),在工程中是一種常見方法,例如三坐標(biāo)測(cè)量機(jī)坐中是一種常見方法,例如三坐標(biāo)測(cè)量機(jī)坐標(biāo)位移信號(hào)的傳送標(biāo)位移信號(hào)的傳送。 三坐標(biāo)測(cè)量機(jī)是一種測(cè)量設(shè)備,用來(lái)三坐標(biāo)測(cè)量機(jī)是一種測(cè)量設(shè)備,用來(lái)測(cè)量工件上任意點(diǎn)的測(cè)量工件上任意點(diǎn)的X、Y、Z 三個(gè)坐標(biāo)值三個(gè)坐標(biāo)值。30YSU三三坐坐標(biāo)標(biāo)測(cè)測(cè)量量機(jī)機(jī)xyz31YSU三三坐坐標(biāo)標(biāo)測(cè)測(cè)量量機(jī)機(jī)測(cè)測(cè)量量零零件件32YSU三三坐坐標(biāo)標(biāo)測(cè)測(cè)量量機(jī)機(jī)測(cè)測(cè)量量汽汽車車外外輪輪廓廓 33YSU三三坐坐標(biāo)標(biāo)測(cè)測(cè)量量機(jī)機(jī)測(cè)測(cè)量量曲曲面面 34YSU三三坐坐標(biāo)標(biāo)測(cè)測(cè)量量機(jī)機(jī)測(cè)測(cè)

16、量量發(fā)發(fā)動(dòng)動(dòng)機(jī)機(jī)氣氣缸缸 35YSU三三坐坐標(biāo)標(biāo)測(cè)測(cè)量量機(jī)機(jī)對(duì)對(duì)測(cè)測(cè)量量數(shù)數(shù)據(jù)據(jù)的的處處理理 36YSU 為此,在三坐標(biāo)測(cè)量機(jī)的每個(gè)坐標(biāo)方為此,在三坐標(biāo)測(cè)量機(jī)的每個(gè)坐標(biāo)方向上安裝了一根光柵尺來(lái)檢測(cè)機(jī)器該方向向上安裝了一根光柵尺來(lái)檢測(cè)機(jī)器該方向坐標(biāo)位置的變化。坐標(biāo)位置的變化。 光柵尺輸出的信號(hào)傳送到與之相配套光柵尺輸出的信號(hào)傳送到與之相配套的數(shù)顯儀。的數(shù)顯儀。數(shù)顯儀數(shù)顯儀處理后處理后 用數(shù)碼管以用數(shù)碼管以6位十進(jìn)制實(shí)數(shù)位十進(jìn)制實(shí)數(shù)+1 符號(hào)的形式,顯示坐標(biāo)值。符號(hào)的形式,顯示坐標(biāo)值。 以以BCD碼并行輸出坐標(biāo)位移碼并行輸出坐標(biāo)位移 信號(hào)。信號(hào)。37YSU光柵尺與數(shù)顯儀光柵尺與數(shù)顯儀38YSU問(wèn)題

17、:?jiǎn)栴}:如何用如何用PC機(jī)和機(jī)和PS -2304接口板采集接口板采集X坐坐標(biāo)的坐標(biāo)位移值?標(biāo)的坐標(biāo)位移值?如何將采集到的如何將采集到的BCD 數(shù)字信號(hào)存入內(nèi)數(shù)字信號(hào)存入內(nèi)存和還原成十進(jìn)制實(shí)數(shù)?存和還原成十進(jìn)制實(shí)數(shù)? 為了簡(jiǎn)化問(wèn)題的討論,這里只涉及無(wú)為了簡(jiǎn)化問(wèn)題的討論,這里只涉及無(wú)符號(hào)坐標(biāo)值的采集。符號(hào)坐標(biāo)值的采集。 39YSU由第由第2章編碼一節(jié)可以知道章編碼一節(jié)可以知道: 在用在用BCD碼表示十進(jìn)制數(shù)時(shí)碼表示十進(jìn)制數(shù)時(shí),1 位十位十進(jìn)制數(shù)用進(jìn)制數(shù)用4位二進(jìn)制碼表示,所以位二進(jìn)制碼表示,所以6位十進(jìn)位十進(jìn)制數(shù)須用制數(shù)須用24(64)位二進(jìn)制碼表示。位二進(jìn)制碼表示。 8255A的的A、B、C端口

18、均為端口均為8 位,即位,即每個(gè)端口一次只能采集每個(gè)端口一次只能采集8 位二進(jìn)制碼位二進(jìn)制碼(2位位十進(jìn)制數(shù)十進(jìn)制數(shù))。)。 40YSU 對(duì)于對(duì)于6 位十進(jìn)制數(shù)位十進(jìn)制數(shù),須按圖須按圖9.6 所示所示,A口采集十進(jìn)制數(shù)的最高兩位口采集十進(jìn)制數(shù)的最高兩位、B口采集口采集中間兩位中間兩位、C口采集最低兩位??诓杉畹蛢晌?。41YSU數(shù)顯儀插座與數(shù)顯儀插座與PS -2304板連接板連接: 圖圖9.6 8255A端口采集數(shù)據(jù)的分配端口采集數(shù)據(jù)的分配A口口B口口C口口12345642YSUDGND33 341 2PA0PA2PA4PA6PC6PC4GND5VPC2PC0PB0PB2PB4PB6GNDPA

19、1PA3PA5PA7PC7PC5PC3PC1PB7PB5PB3PB1A口口123PA722PA621PA520PA4222PA221PA120PA023PA3B口口323PB722PB621PB520PB4422PB221PB120PB023PB3C口口523PC722PC621PC520PC4622PC221PC120PC023PC312345643YSU 選擇選擇 JC9 芯片的芯片的 PC0 位輸入電測(cè)頭發(fā)位輸入電測(cè)頭發(fā)出的采樣脈沖信號(hào)。出的采樣脈沖信號(hào)。 由于由于B口采集的口采集的8位位BCD碼中,高碼中,高4位位對(duì)應(yīng)十進(jìn)制整數(shù),低對(duì)應(yīng)十進(jìn)制整數(shù),低4位對(duì)應(yīng)十進(jìn)制小數(shù),位對(duì)應(yīng)十進(jìn)制小數(shù)

20、,因此需要把因此需要把 8位位 BCD 碼分開。碼分開。如何把如何把 8 位位BCD 碼分開碼分開? 注意:注意: 在在09的范圍內(nèi)的范圍內(nèi),二進(jìn)制碼與二進(jìn)制碼與BCD碼是相同的碼是相同的。 44YSU 用用8255芯片采集芯片采集BCD碼數(shù)據(jù)并在屏幕碼數(shù)據(jù)并在屏幕上顯示還原的十進(jìn)制實(shí)數(shù)的過(guò)程如下:上顯示還原的十進(jìn)制實(shí)數(shù)的過(guò)程如下: 把采集到的把采集到的3組組BCD碼拆分成碼拆分成6個(gè)個(gè)4位二位二進(jìn)制碼進(jìn)制碼; 分別存入內(nèi)存中的分別存入內(nèi)存中的6個(gè)存儲(chǔ)單元個(gè)存儲(chǔ)單元; 用用Quick BASIC語(yǔ)言的語(yǔ)言的PEEK語(yǔ)句從內(nèi)語(yǔ)句從內(nèi)存中把數(shù)據(jù)讀入到程序中的變量;存中把數(shù)據(jù)讀入到程序中的變量;作字

21、符串操作,將采集到的作字符串操作,將采集到的BCD并行并行數(shù)字信號(hào)還原成十進(jìn)制實(shí)數(shù)。數(shù)字信號(hào)還原成十進(jìn)制實(shí)數(shù)。45YSUMODEL MEDIUMSTACK 256 ;堆??臻g為堆??臻g為256; DATA BCD1 DB ? BCD2 DB ? BCD3 DB ? 46YSU BIN11 DB ? BIN12 DB ? BIN21 DB ? BIN22 DB ? BIN31 DB ? BIN32 DB ?;CODE PUBLIC PORT ;說(shuō)明成公共塊說(shuō)明成公共塊 ;以便以便Quick BASIC程序調(diào)用程序調(diào)用47YSUPORT PROC FAR PUSH BP ;保存原基址寄存器指針保存

22、原基址寄存器指針 MOV BP , SP ;把堆棧指針?lè)湃牖芳拇嫫靼讯褩V羔樂(lè)湃牖芳拇嫫?PUSH DS ;保存原數(shù)據(jù)段地址保存原數(shù)據(jù)段地址 PUSH SI PUSH DI SUB AX , AX ;把把0放入放入AX PUSH AX MOV AX , _DATA ;數(shù)據(jù)段的地址放入數(shù)據(jù)段的地址放入DS MOV DS , AX48YSU MOV AX , 7000H ;設(shè)置段地址為設(shè)置段地址為7000H MOV ES , AX MOV DI , 1 ;設(shè)置內(nèi)存起始單元設(shè)置內(nèi)存起始單元 MOVDX,302H ;設(shè)置狀態(tài)口地址設(shè)置狀態(tài)口地址WAIT1:IN AL,DX ;讀入狀態(tài)信息讀入狀態(tài)信

23、息 TESTAL,01H ;檢查狀態(tài)信息是否為檢查狀態(tài)信息是否為1 JNZWAIT1 ;若為若為1,循環(huán)等待測(cè)頭離循環(huán)等待測(cè)頭離 ;開前一個(gè)采樣點(diǎn)開前一個(gè)采樣點(diǎn)WAIT2:IN AL,DX ;從狀態(tài)口讀入狀態(tài)信息從狀態(tài)口讀入狀態(tài)信息 TESTAL,01H ;檢查狀態(tài)信息是否為檢查狀態(tài)信息是否為049YSU JZWAIT2 ;若為若為0,循環(huán)等待測(cè)頭接觸工循環(huán)等待測(cè)頭接觸工 ;件的另一個(gè)采樣點(diǎn)件的另一個(gè)采樣點(diǎn) CALL ACQUDATA ;調(diào)用數(shù)據(jù)采集子程序調(diào)用數(shù)據(jù)采集子程序 CALL HCONVT ;調(diào)用數(shù)據(jù)拆分子程序調(diào)用數(shù)據(jù)拆分子程序 CALL STORE ;調(diào)用數(shù)據(jù)存儲(chǔ)子程序調(diào)用數(shù)據(jù)存儲(chǔ)子

24、程序POP AXPOP DIPOP SIPOP DS ;恢復(fù)原數(shù)據(jù)段地址恢復(fù)原數(shù)據(jù)段地址POP BP ;恢復(fù)原基址寄存器指針恢復(fù)原基址寄存器指針50YSURET ;退出匯編程序退出匯編程序PORTENDP;采集數(shù)據(jù)采集數(shù)據(jù)ACQUDATA PROCNEAR PUSHDX PUSH SI PUSH DI PUSHAX PUSH CX MOVAL , 10011011B ;設(shè)置控制字設(shè)置控制字51YSU MOV DX , 307H ;初始化初始化8255三口為輸入口三口為輸入口 OUT DX , AL MOV DX , 304H IN AL , DX ;A口口采集第一組采集第一組BCD碼碼 MOV

25、 DI , OFFSET BCD1 MOV DI , AL ;存入存入BCD1中保存中保存 MOV DX , 305H IN AL , DX ;從從B口采集第二組口采集第二組BCD碼碼 MOV DI , OFFSET BCD2 MOV DI , AL ;存入存入BCD2中保存中保存52YSU MOV DX , 306H IN AL , DX ;從從C口采集第三組口采集第三組BCD碼碼 MOV DI , OFFSET BCD3 MOV DI , AL ;存入存入BCD3中保存中保存 POP CX POP AX POP DI POP SI POP DX RETACQUDATAENDP53YSU;把

26、一組把一組BCD碼拆分成二個(gè)碼拆分成二個(gè)4位二進(jìn)制碼位二進(jìn)制碼HCONVTPROC NEARPUSHBXPUSHSIPUSHDI MOV BX,OFFSET BCD1 ;BCD1的地址送入的地址送入BX寄存器寄存器MOV SI, OFFSET BIN11 ;BIN11的地址送入的地址送入SI寄存器寄存器MOV DI,OFFSET BIN12 ;BIN12的地址送入的地址送入DI寄存器寄存器54YSUCALL HCONVTSUB ;對(duì)第一組對(duì)第一組BCD碼進(jìn)行拆分碼進(jìn)行拆分MOV BX,OFFSET BCD2 ;BCD2的地址送入的地址送入BX寄存器寄存器MOV SI,OFFSET BIN21

27、;BIN21的地址送入的地址送入SI寄存器寄存器MOV DI,OFFSET BIN22 ;BIN22的地址送入的地址送入DI寄存器寄存器CALL HCONVTSUB ;對(duì)第二組對(duì)第二組BCD碼進(jìn)行拆分碼進(jìn)行拆分55YSU MOV BX,OFFSET BCD3 ;BCD3的地址送入的地址送入BX寄存器寄存器 MOV SI,OFFSET BIN31 ;BIN31的地址送入的地址送入SI寄存器寄存器 MOV DI,OFFSET BIN32 ;BIN32的地址送入的地址送入DI寄存器寄存器 CALL HCONVTSUB ;對(duì)第三組對(duì)第三組BCD碼進(jìn)行拆分碼進(jìn)行拆分 POP DI POP SI POP

28、BX56YSU RETHCONVTENDP;拆分拆分BCD碼碼HCONVTSUBPROC NEAR PUSH CX MOV AL,BX ;將將BX寄存器中的內(nèi)容傳送到寄存器中的內(nèi)容傳送到AL寄存器寄存器 MOV CL,4 ;確定移位次數(shù)確定移位次數(shù)(4次次) SHR AL,CL ;將將AL邏輯右移邏輯右移4次次MOV SI,AL ;將將AL中的內(nèi)容傳送到中的內(nèi)容傳送到SI57YSUMOV AL,BX;將將BX中的內(nèi)容傳送到中的內(nèi)容傳送到ALAND AL,0FH;屏蔽高屏蔽高4位位MOV DI,AL ;將將AL中低中低4位的內(nèi)容傳送到位的內(nèi)容傳送到DIPOP CXRETHCONVTSUBENDP

29、;把數(shù)據(jù)存入內(nèi)存把數(shù)據(jù)存入內(nèi)存STORE PROC NEARPUSH ES58YSU PUSH SIMOV SI , OFFSET BIN11MOV AL , SIMOV BYTE PTR ES : DI , AL ;把把BIN11中的內(nèi)容送入內(nèi)存單元中的內(nèi)容送入內(nèi)存單元1INC DI ;內(nèi)存單元地址內(nèi)存單元地址+1MOV SI , OFFSET BIN12MOV AL , SIMOV BYTE PTR ES : DI , AL ;把把BIN12中的內(nèi)容送到內(nèi)存單元中的內(nèi)容送到內(nèi)存單元259YSU INC DI ;內(nèi)存單元地址內(nèi)存單元地址+1MOV SI , OFFSET BIN21MOV A

30、L , SIMOV BYTE PTR ES : DI , AL ;把把BIN21中的內(nèi)容送到內(nèi)存單元中的內(nèi)容送到內(nèi)存單元3 INC DI ;內(nèi)存單元地址內(nèi)存單元地址+1MOV SI , OFFSET BIN22MOV AL , SI MOV BYTE PTR ES : DI , AL ;把把BIN22中的內(nèi)容送到內(nèi)存單元中的內(nèi)容送到內(nèi)存單元460YSUINC DI ;內(nèi)存單元地址內(nèi)存單元地址+1MOV SI , OFFSET BIN31MOV AL , SIMOV BYTE PTR ES : DI , AL ;把把BIN31中的內(nèi)容送到內(nèi)存單元中的內(nèi)容送到內(nèi)存單元5INC DI ;內(nèi)存單元地址

31、內(nèi)存單元地址+1 MOV SI , OFFSET BIN32MOV AL , SIMOV BYTE PTR ES : DI , AL ;把把BIN32中的內(nèi)容送到內(nèi)存單元中的內(nèi)容送到內(nèi)存單元661YSUPOP SIPOP ESRETSTORE ENDP END 以上程序在計(jì)算機(jī)內(nèi)存中段地址為以上程序在計(jì)算機(jī)內(nèi)存中段地址為7000,起始單元為起始單元為1的連續(xù)的連續(xù)6個(gè)內(nèi)存單元中存放采集個(gè)內(nèi)存單元中存放采集到的到的X坐標(biāo)位移值坐標(biāo)位移值。62YSU 對(duì)于對(duì)于Y、Z坐標(biāo)值,同樣可參照以上坐標(biāo)值,同樣可參照以上介紹的方法介紹的方法,完成坐標(biāo)位移值的采集、完成坐標(biāo)位移值的采集、拆分和存儲(chǔ)等操作拆分和存

32、儲(chǔ)等操作。下面的程序完成還原十進(jìn)制實(shí)數(shù)的操作。下面的程序完成還原十進(jìn)制實(shí)數(shù)的操作。DECLARE SUB PORT ( ) CALL PORT DEF SEG = &H7000 設(shè)定內(nèi)存段地址為設(shè)定內(nèi)存段地址為7000HDCLZ源程序如下源程序如下:63YSU A11 = PEEK(1) : A12 = PEEK(2) 從內(nèi)存單元從內(nèi)存單元1、2中讀數(shù)據(jù)并賦予中讀數(shù)據(jù)并賦予A11、A12 B11 = PEEK(3) : B12 = PEEK(4) 從內(nèi)存單元從內(nèi)存單元3、4中讀數(shù)據(jù)并賦予中讀數(shù)據(jù)并賦予B11、B12 C11 = PEEK(5) : C12 = PEEK(6) 從內(nèi)存單元從內(nèi)存單

33、元5、6中讀數(shù)據(jù)并賦予中讀數(shù)據(jù)并賦予C11、C12 DEF SEG 取消設(shè)定的內(nèi)存段地址取消設(shè)定的內(nèi)存段地址 A11$ = STR$(A11) : A12$ = STR$(A12) 數(shù)值型數(shù)據(jù)轉(zhuǎn)換成字符型數(shù)據(jù)數(shù)值型數(shù)據(jù)轉(zhuǎn)換成字符型數(shù)據(jù) B11$ = STR$(B11) : B12$ = STR$(B12) 數(shù)值型數(shù)據(jù)轉(zhuǎn)換成字符型數(shù)據(jù)數(shù)值型數(shù)據(jù)轉(zhuǎn)換成字符型數(shù)據(jù)64YSU C11$ = STR$(C11) : C12$ = STR$(C12) 數(shù)值型數(shù)據(jù)轉(zhuǎn)換成字符型數(shù)據(jù)數(shù)值型數(shù)據(jù)轉(zhuǎn)換成字符型數(shù)據(jù) X$ = A11$ + A12$ + B11$ + . + B12$ + C11$ + C12$ X

34、= VAL(X$) 將字符串還原成十進(jìn)制實(shí)數(shù)將字符串還原成十進(jìn)制實(shí)數(shù)(X坐標(biāo)位移值坐標(biāo)位移值) X = INT(X 1000 +0.5) / 1000 LOCATE 4, 52 : PRINT SPACE$(10) LOCATE 4, 52 : PRINT X END65YSU 將以上匯編程序編譯成一個(gè)目標(biāo)文件,將以上匯編程序編譯成一個(gè)目標(biāo)文件,并與并與DCLZ 程序的目標(biāo)文件連接成一個(gè)數(shù)程序的目標(biāo)文件連接成一個(gè)數(shù)據(jù)采集程序據(jù)采集程序CAIZI。 運(yùn)行運(yùn)行CAIZI程序,即可將程序,即可將X X坐標(biāo)位移坐標(biāo)位移值從值從8255板卡經(jīng)內(nèi)存單元傳送到相應(yīng)的板卡經(jīng)內(nèi)存單元傳送到相應(yīng)的Quick BA

35、SIC 程序中去程序中去。66YSU1. 車速脈沖信號(hào)的變換車速脈沖信號(hào)的變換 問(wèn)題提出:?jiǎn)栴}提出: 在對(duì)車輛的車速進(jìn)行路面測(cè)試時(shí),如在對(duì)車輛的車速進(jìn)行路面測(cè)試時(shí),如何得到車輛的直線行駛速度?何得到車輛的直線行駛速度?67YSU解決方法:解決方法: 一般在車輛的后部增加一個(gè)測(cè)量輪。一般在車輛的后部增加一個(gè)測(cè)量輪。測(cè)量輪的旋轉(zhuǎn)軸上套裝一個(gè)有測(cè)量輪的旋轉(zhuǎn)軸上套裝一個(gè)有60個(gè)齒的個(gè)齒的齒盤齒盤。68YSU在齒盤上在齒盤上 在側(cè)面裝反射式光電傳感器在側(cè)面裝反射式光電傳感器 面對(duì)圓周裝磁阻式傳感器面對(duì)圓周裝磁阻式傳感器1231 1- - - 拖拖拉拉機(jī)機(jī) 2 2- - - 測(cè)測(cè)試試機(jī)機(jī)架架 3 3- -

36、 - 光光電電傳傳感感器器 4 4- - - 齒齒形形編編碼碼盤盤 5 5- - - 測(cè)測(cè)量量輪輪 圖圖1 1 車車輛輛工工作作速速度度測(cè)測(cè)試試裝裝置置4569YSU1231 1- - -測(cè)測(cè)量量輪輪 2 2- - -齒齒形形編編碼碼盤盤 3 3- - -反反射射式式光光電電傳傳感感器器 4 4- - -安安裝裝機(jī)機(jī)架架4圖圖2 2 位位移移測(cè)測(cè)試試裝裝置置70YSU工作原理:工作原理: 當(dāng)齒盤旋轉(zhuǎn)一個(gè)節(jié)距時(shí),傳感器轉(zhuǎn)換當(dāng)齒盤旋轉(zhuǎn)一個(gè)節(jié)距時(shí),傳感器轉(zhuǎn)換輸出一個(gè)近似于正弦波的信號(hào),該信號(hào)經(jīng)輸出一個(gè)近似于正弦波的信號(hào),該信號(hào)經(jīng)濾波、放大和整形后,變成一個(gè)脈沖信號(hào),濾波、放大和整形后,變成一個(gè)脈沖信

37、號(hào),齒盤旋轉(zhuǎn)一周,傳感器轉(zhuǎn)換輸出齒盤旋轉(zhuǎn)一周,傳感器轉(zhuǎn)換輸出60個(gè)脈沖個(gè)脈沖。 由于測(cè)量輪是一個(gè)從動(dòng)輪,即車輛前由于測(cè)量輪是一個(gè)從動(dòng)輪,即車輛前進(jìn)時(shí)帶動(dòng)該輪旋轉(zhuǎn)。測(cè)量輪的圓周速度就進(jìn)時(shí)帶動(dòng)該輪旋轉(zhuǎn)。測(cè)量輪的圓周速度就是車輛的車速,因此有如下關(guān)系:是車輛的車速,因此有如下關(guān)系:71YSU) 19 ( NDv式中式中 D 測(cè)量輪直徑測(cè)量輪直徑(mm) N 測(cè)量輪轉(zhuǎn)速測(cè)量輪轉(zhuǎn)速(rmin) 由式由式(9-1)可知,只要測(cè)量出測(cè)量輪可知,只要測(cè)量出測(cè)量輪的轉(zhuǎn)速,就可以得到車輛的車速。的轉(zhuǎn)速,就可以得到車輛的車速。 那么,如何得知測(cè)量輪轉(zhuǎn)速那么,如何得知測(cè)量輪轉(zhuǎn)速 N 呢呢? 72YSU 由于測(cè)量輪每轉(zhuǎn)

38、一周輸出由于測(cè)量輪每轉(zhuǎn)一周輸出60個(gè)脈沖,個(gè)脈沖,只需用計(jì)數(shù)器對(duì)脈沖信號(hào)在一秒鐘內(nèi)計(jì)只需用計(jì)數(shù)器對(duì)脈沖信號(hào)在一秒鐘內(nèi)計(jì)數(shù),然后按一定關(guān)系式可算出轉(zhuǎn)速。數(shù),然后按一定關(guān)系式可算出轉(zhuǎn)速。2. 脈沖信號(hào)的處理脈沖信號(hào)的處理 設(shè)計(jì)數(shù)器的計(jì)數(shù)值為設(shè)計(jì)數(shù)器的計(jì)數(shù)值為C,測(cè)量輪每轉(zhuǎn)測(cè)量輪每轉(zhuǎn)一周傳感器輸出的脈沖數(shù)為一周傳感器輸出的脈沖數(shù)為P,計(jì)數(shù)時(shí)間計(jì)數(shù)時(shí)間為為t,測(cè)量輪轉(zhuǎn)速為測(cè)量輪轉(zhuǎn)速為N(r / min),),則有如則有如下關(guān)系式成立下關(guān)系式成立:73YSU)29(60NtPC 整理式整理式(9-2),),可得到測(cè)量輪轉(zhuǎn)速可得到測(cè)量輪轉(zhuǎn)速的公式的公式: )39(60tPCN74YSU 用式用式(9-3

39、)計(jì)算出測(cè)量輪的轉(zhuǎn)速計(jì)算出測(cè)量輪的轉(zhuǎn)速N,然后將然后將N代入式代入式(9-1 ),即可得到車輛的即可得到車輛的車速車速。 由此可知,關(guān)鍵是知道由此可知,關(guān)鍵是知道 t 秒內(nèi)的脈沖秒內(nèi)的脈沖計(jì)數(shù)值計(jì)數(shù)值。75YSU3. 脈沖信號(hào)的采集計(jì)數(shù)脈沖信號(hào)的采集計(jì)數(shù)采集計(jì)數(shù)方法采集計(jì)數(shù)方法 硬件采集計(jì)數(shù)硬件采集計(jì)數(shù) 軟件采集計(jì)數(shù)軟件采集計(jì)數(shù)脈沖信號(hào)硬件采集計(jì)數(shù)脈沖信號(hào)硬件采集計(jì)數(shù)自習(xí)。自習(xí)。76YSU軟件采集計(jì)數(shù)軟件采集計(jì)數(shù) 該方法只需要很簡(jiǎn)單的接口電路,再該方法只需要很簡(jiǎn)單的接口電路,再配以相應(yīng)的程序,就能完成脈沖信號(hào)的采配以相應(yīng)的程序,就能完成脈沖信號(hào)的采集計(jì)數(shù)。集計(jì)數(shù)。 脈沖信號(hào)采集接口脈沖信號(hào)采集接口接口電路如圖接口電路如圖9.8所示所

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論