




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、9.1 8255A可編程外圍接口芯片可編程外圍接口芯片9.2 PS2304數(shù)字量數(shù)字量I/O接口板接口板9.3 BCD碼并行數(shù)字信號(hào)采集碼并行數(shù)字信號(hào)采集9.4 數(shù)字信號(hào)的異步串行傳送數(shù)字信號(hào)的異步串行傳送傳送方式傳送方式 并行并行 串行串行數(shù)字信號(hào)的采集與其傳送方式有關(guān)。數(shù)字信號(hào)的采集與其傳送方式有關(guān)。采集方法采集方法 用用8255芯片采集并行數(shù)據(jù)芯片采集并行數(shù)據(jù) 用用RS-232口采集串行數(shù)據(jù)口采集串行數(shù)據(jù)8255A-5PB22122232425262728293031323334353637383940PA4PA5PA6PA7RESETD0D1D2D3D4D5D6D7UccPB7PB6P
2、B5PB4PB3WR1234567891011121314151617181920PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1(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ī)外界外界RDWRA1A0RESETCSCS讀讀/ /寫寫邏輯邏輯(b)1. 1. 用途和結(jié)構(gòu)用途和結(jié)構(gòu) 用途用途 :用于接收并行傳輸?shù)臄?shù)字信號(hào)
3、、脈沖信號(hào)和開關(guān)信號(hào)。用于接收并行傳輸?shù)臄?shù)字信號(hào)、脈沖信號(hào)和開關(guān)信號(hào)。結(jié)構(gòu):其引腳和內(nèi)部結(jié)構(gòu)如圖結(jié)構(gòu):其引腳和內(nèi)部結(jié)構(gòu)如圖9.1所示所示。 端口端口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 位的端口。位的端口。 A組:組:控制端口控制端口A和端口和端口C的高的高4位位 B組:組:控制端口控制端口B和端口和端口C的低的低4位位有數(shù)據(jù)總線緩沖、讀寫邏輯芯片有數(shù)據(jù)總線緩沖、讀寫邏輯芯片方式
4、方式0 基本的輸入基本的輸入/輸出方式輸出方式特點(diǎn):特點(diǎn): 任何端口都可用做輸入任何端口都可用做輸入/輸出輸出 輸出可被鎖存,輸入不能鎖存輸出可被鎖存,輸入不能鎖存 有有16種輸入種輸入/輸出組態(tài)輸出組態(tài)方式方式1選通的輸入選通的輸入/輸出方式輸出方式8255A芯片有三種工作方式。芯片有三種工作方式。特點(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)
5、絡(luò)信號(hào),把借助選通或應(yīng)答式聯(lián)絡(luò)信號(hào),把I/O數(shù)據(jù)與指定的端口進(jìn)行發(fā)送數(shù)據(jù)與指定的端口進(jìn)行發(fā)送或接收?;蚪邮铡7绞椒绞? 帶聯(lián)絡(luò)雙向總線帶聯(lián)絡(luò)雙向總線I/O方式方式注意:注意:此方式僅用于此方式僅用于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)信息需要說(shuō)明:需要說(shuō)明:在方式在方式1和方式和方式2中中,并未將端口并未將端口C的所有位都用于傳送控制的所有位都用于傳送控制狀態(tài)信息狀態(tài)信息,剩余的各位仍然可以通過(guò)編程設(shè)定為輸入剩余的各位仍然可
6、以通過(guò)編程設(shè)定為輸入/輸出用。輸出用。 以上介紹的各種工作方式及組態(tài),都可以通過(guò)對(duì)以上介紹的各種工作方式及組態(tài),都可以通過(guò)對(duì)8255A的初始化來(lái)實(shí)現(xiàn)的初始化來(lái)實(shí)現(xiàn)。 8255A的初始化的初始化 將一個(gè)將一個(gè)8位控制碼寫入位控制碼寫入8255A的控制寄存器。的控制寄存器。 基本要求:基本要求: 為了能正確地寫入控制字,先要了解為了能正確地寫入控制字,先要了解8255A控制寄存器中各位的情況控制寄存器中各位的情況。 8255A控制寄存器如圖控制寄存器如圖9.2 所示所示。置方式標(biāo)志:置方式標(biāo)志:1=有效有效方式選擇:方式選擇:00=方式方式0;01=方式方式1 1X=方式方式2端口端口A: 1輸入
7、輸入;0輸出輸出端口端口C高端高端:1輸入輸入,0輸出輸出方式選擇:方式選擇: 0=方式方式0,1=方式方式1端口端口B: 1輸入輸入,0輸出輸出端口端口C低端:低端:1輸入輸入,0輸出輸出D7D6D5D4D3D2D1D0 8255初始化初始化 對(duì)對(duì)8255控制寄存器的各位賦值??刂萍拇嫫鞯母魑毁x值。設(shè)設(shè)8255A的控制寄存器的地址為的控制寄存器的地址為63H,初始化初始化A、C口為輸入口口為輸入口,B口為輸出口口為輸出口。編寫對(duì)編寫對(duì)8255A初始化的匯編程序。初始化的匯編程序。解:解: 確定控制碼確定控制碼:10011001 8088匯編程序如下匯編程序如下:MOV AL,63H MOV
8、DI, ALMOV AL,10011001B ;置置A、C口為輸入口口為輸入口,B口為輸出口口為輸出口OUT DI,AL ;把把10011001B寫入寫入8255A控制寄存器控制寄存器1. 概述概述 (1) 主要性能主要性能 為為PCISA 總線型接口板,廣泛用于總線型接口板,廣泛用于PC微機(jī)微機(jī)。 板上有三片板上有三片8255A芯片及若干個(gè)邏輯器件組成,通過(guò)編程自由設(shè)定芯片及若干個(gè)邏輯器件組成,通過(guò)編程自由設(shè)定 輸入輸出。輸入輸出。 (2) 主要技術(shù)指標(biāo)主要技術(shù)指標(biāo)輸入輸出路數(shù):輸入輸出路數(shù):72路路輸入輸出電平:輸入輸出電平:TTL控控 制制 方方 式:式:程序查詢或中斷服務(wù)程序查詢或中斷
9、服務(wù)電電 源源 要要 求:求:DC+5V,耗電流,耗電流500 mA環(huán)環(huán) 境境 溫溫 度:度:-1050(1) 地址開關(guān)的設(shè)定地址開關(guān)的設(shè)定PS-2304板卡上有一個(gè)地址開關(guān)板卡上有一個(gè)地址開關(guān)K,如圖所示如圖所示ON1 1A52A63A74A85A96A107設(shè)定其各位,就可以確定板卡端口及控制寄存器的地址。設(shè)定其各位,就可以確定板卡端口及控制寄存器的地址。由圖可知,地址開關(guān)由圖可知,地址開關(guān)K 為為6 位有效位有效。 ON/OFF 狀態(tài)與計(jì)算機(jī)地址線位內(nèi)容對(duì)應(yīng)關(guān)系是狀態(tài)與計(jì)算機(jī)地址線位內(nèi)容對(duì)應(yīng)關(guān)系是:ON An = 1 OFF An = 0地址開關(guān)位與計(jì)算機(jī)地址線位的對(duì)應(yīng)關(guān)系如下:地址開關(guān)
10、位與計(jì)算機(jī)地址線位的對(duì)應(yīng)關(guān)系如下:K1 A5K4 A8K2 A6K5 A9K3 A7K6 A10K 的地址范圍為的地址范圍為0300031F,共共32個(gè)連續(xù)地址個(gè)連續(xù)地址。表表9.1 PS-2304板地址分配板地址分配 芯片A口B口C口控制寄存器 JC90300H0301H0302H0303HJC100304H0305H0306H 0307H JC110308H0309H030AH030BH0318H031BH 寫入:開中斷031CH031FH 寫入:關(guān)中斷1 21 21 2 JC8255A JC8255A JC8255A33 3433 34Z33 34ZON123456KIRQIRQPCPC
11、2Z491011PC75PCPC0PC1PC3Z1231 3.0 7 5. .7圖圖9 9. .4 4 P PS S- -2 23 30 04 4板板結(jié)結(jié)構(gòu)構(gòu)1 233 3433 34PA1PA3PA5PA7PC7PC5PC3PC1PB7PB5PB3PB11 2PA0PA2PA4PA6PC6PC4GND5VPC2PC0PB0PB2PB4PB6GNDPA0PA2PA4PA6PC6PC4GND5VPC2PC0PB0PB2PB4PB6GNDPA1PA3PA5PA7PC7PC5PC3PC1PB7PB5PB3PB1圖圖9 9. .5 5 插插座座與與8 82 25 55 5A A端端口口的的對(duì)對(duì)應(yīng)應(yīng)關(guān)關(guān)
12、系系(a) (b) Z1 , Z2 插座各腳號(hào)與插座各腳號(hào)與8255A的的三個(gè)端口對(duì)應(yīng)關(guān)系如圖三個(gè)端口對(duì)應(yīng)關(guān)系如圖9.5(a)所示所示 Z3 插座各腳與插座各腳與8255A的三個(gè)端的三個(gè)端口的對(duì)應(yīng)關(guān)系如圖口的對(duì)應(yīng)關(guān)系如圖9.5(b)所示。所示。【例例9.2】 將將8255A芯片設(shè)置成芯片設(shè)置成24路輸入狀態(tài)路輸入狀態(tài)。 解:解:其控制命令字為其控制命令字為 10011011B,即十六進(jìn)制的即十六進(jìn)制的9BH。BASIC語(yǔ)句為語(yǔ)句為:OUT &H303,&H9B 匯編程序?yàn)椋簠R編程序?yàn)椋?MOV AL,303H ;確定確定JC9的控制寄存器地址的控制寄存器地址 MOV DI,AL MOV AL,
13、9BH OUT DI,AL ;把控制字把控制字9BH寫入寫入JC9 的控制寄存器的控制寄存器 1、通用寄存器、通用寄存器 數(shù)據(jù)寄存器數(shù)據(jù)寄存器AX AH :字節(jié)乘字節(jié)乘 AL :字節(jié)乘、字節(jié)除、字節(jié)字節(jié)乘、字節(jié)除、字節(jié)I/O、轉(zhuǎn)移、十進(jìn)制算術(shù)運(yùn)算、轉(zhuǎn)移、十進(jìn)制算術(shù)運(yùn)算BX BH : BL :轉(zhuǎn)移轉(zhuǎn)移CX CH : CL :變量移位、循環(huán)控制變量移位、循環(huán)控制CX:串操作、循環(huán)次數(shù)串操作、循環(huán)次數(shù)DX DH : DL :字乘、字除法、間接字乘、字除法、間接I/O 地址指針寄存器地址指針寄存器 SP堆棧指針寄存器堆棧指針寄存器BP基址指針寄存器基址指針寄存器 變址寄存器變址寄存器 SI 源變址寄存
14、器源變址寄存器DI目的變址寄存器目的變址寄存器2、段寄存器、段寄存器 CS 代碼段寄存器代碼段寄存器SS 堆棧段寄存器堆棧段寄存器 DS 數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器ES 附加數(shù)據(jù)段寄存器附加數(shù)據(jù)段寄存器3、控制寄存器、控制寄存器 IP 指令指針寄存器指令指針寄存器 F 標(biāo)志寄存器標(biāo)志寄存器 以以BCD碼碼傳送并行數(shù)字信號(hào),在工程中是一種常見方法,例如三坐標(biāo)測(cè)量傳送并行數(shù)字信號(hào),在工程中是一種常見方法,例如三坐標(biāo)測(cè)量機(jī)坐標(biāo)位移信號(hào)的傳送機(jī)坐標(biāo)位移信號(hào)的傳送。 三坐標(biāo)測(cè)量機(jī)是一種測(cè)量設(shè)備,用來(lái)測(cè)量工件上任意點(diǎn)的三坐標(biāo)測(cè)量機(jī)是一種測(cè)量設(shè)備,用來(lái)測(cè)量工件上任意點(diǎn)的X、Y、Z 三個(gè)坐三個(gè)坐標(biāo)值標(biāo)值。三三坐
15、坐標(biāo)標(biāo)測(cè)測(cè)量量機(jī)機(jī)x xy yz z 為此,在三坐標(biāo)測(cè)量機(jī)的每個(gè)坐標(biāo)方向上安裝了一根光柵尺來(lái)檢測(cè)機(jī)器為此,在三坐標(biāo)測(cè)量機(jī)的每個(gè)坐標(biāo)方向上安裝了一根光柵尺來(lái)檢測(cè)機(jī)器該方向坐標(biāo)位置的變化。該方向坐標(biāo)位置的變化。 光柵尺輸出的信號(hào)傳送到與之相配套的數(shù)顯儀。光柵尺輸出的信號(hào)傳送到與之相配套的數(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)位移信號(hào)。碼并行輸出坐標(biāo)位移信號(hào)。如何用如何用PC機(jī)和機(jī)和PS -2304接口板采集接口板采集X坐標(biāo)的坐標(biāo)位移值?坐標(biāo)的坐標(biāo)位移值?如何將采集到的如何將采集到
16、的BCD 數(shù)字信號(hào)存入內(nèi)存和還原成十進(jìn)制實(shí)數(shù)?數(shù)字信號(hào)存入內(nèi)存和還原成十進(jìn)制實(shí)數(shù)?為了簡(jiǎn)化問(wèn)題的討論,這里只涉及無(wú)符號(hào)坐標(biāo)值的采集。為了簡(jiǎn)化問(wèn)題的討論,這里只涉及無(wú)符號(hào)坐標(biāo)值的采集。 由第由第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)制數(shù)須用位十進(jìn)制數(shù)須用24(64)位二進(jìn)制碼表示。位二進(jìn)制碼表示。 8255A的的A、B、C端口均為端口均為8 位,即每個(gè)端口一次只能采集位,即每個(gè)端口一次只能采集8 位二進(jìn)制碼位二進(jìn)制碼(2位十進(jìn)制數(shù)位十進(jìn)制數(shù))。)。 A口口B口口C口口
17、123456 對(duì)于對(duì)于6 位十進(jìn)制數(shù)位十進(jìn)制數(shù),須按圖須按圖9.6 所示所示,A口采集十進(jìn)制數(shù)的最高兩位口采集十進(jìn)制數(shù)的最高兩位、B口采集中間兩位口采集中間兩位、C口采集最低兩位??诓杉畹蛢晌?。DGND33 341 2PA0PA2PA4PA6PC6PC4GND5VPC2PC0PB0PB2PB4PB6GNDPA1PA3PA5PA7PC7PC5PC3PC1PB7PB5PB3PB1A口口123PA722PA621PA520PA4222PA221PA120PA023PA3B口口323PB722PB621PB520PB4422PB221PB120PB023PB3C口口523PC722PC621PC52
18、0PC4622PC221PC120PC023PC3123456 選擇選擇 JC9 芯片的芯片的 PC0 位輸入電測(cè)頭發(fā)出的采樣脈沖信號(hào)。位輸入電測(cè)頭發(fā)出的采樣脈沖信號(hào)。 由于由于B口采集的口采集的8位位BCD碼中,高碼中,高4位對(duì)應(yīng)十進(jìn)制整數(shù),低位對(duì)應(yīng)十進(jìn)制整數(shù),低4位對(duì)應(yīng)十進(jìn)位對(duì)應(yīng)十進(jìn)制小數(shù),因此需要把制小數(shù),因此需要把 8位位 BCD 碼分開。碼分開。 如何把如何把 8 位位BCD 碼分開碼分開?注意:注意:在在09的范圍內(nèi)的范圍內(nèi),二進(jìn)制碼與二進(jìn)制碼與BCD碼是相同的碼是相同的。 用用8255芯片采集芯片采集BCD碼數(shù)據(jù)并在屏幕上顯示還原的十進(jìn)制實(shí)數(shù)的過(guò)程如下碼數(shù)據(jù)并在屏幕上顯示還原的十
19、進(jìn)制實(shí)數(shù)的過(guò)程如下: (1) 把采集到的把采集到的3組組BCD碼拆分成碼拆分成6個(gè)個(gè)4位二進(jìn)制碼位二進(jìn)制碼; (2) 分別存入內(nèi)存中的分別存入內(nèi)存中的6個(gè)存儲(chǔ)單元個(gè)存儲(chǔ)單元; (3) 用用Quick BASIC語(yǔ)言的語(yǔ)言的PEEK語(yǔ)句從內(nèi)存中把數(shù)據(jù)讀入到程序中的變量;語(yǔ)句從內(nèi)存中把數(shù)據(jù)讀入到程序中的變量; (4) 作字符串操作,將采集到的作字符串操作,將采集到的BCD并行數(shù)字信號(hào)還原成十進(jìn)制實(shí)數(shù)。并行數(shù)字信號(hào)還原成十進(jìn)制實(shí)數(shù)。MODEL MEDIUMSTACK 256 ;堆棧空間為堆??臻g為256; DATA BCD1DB ? BCD2DB ? BCD3DB ? BIN11DB ? BIN12
20、 DB ? BIN21DB ? BIN22 DB ? BIN31 DB ? BIN32 DB ?;CODE PUBLIC PORT;說(shuō)明成公共塊說(shuō)明成公共塊 ;以便以便Quick BASIC程序調(diào)用程序調(diào)用PORTPORT PROC PROC FAR FAR PUSH PUSHBPBP ; ;保存原基址寄存器指針保存原基址寄存器指針 MOVMOVBP , SPBP , SP; ;把堆棧指針?lè)湃牖芳拇嫫靼讯褩V羔樂(lè)湃牖芳拇嫫?PUSHPUSHDSDS ; ;保存原數(shù)據(jù)段地址保存原數(shù)據(jù)段地址 PUSH PUSH SISI PUSHPUSHDIDI SUB SUBAX , AXAX , AX;
21、;把把0 0放入放入AXAX PUSH PUSHAXAX MOV MOVAX , _DATA AX , _DATA ; ;數(shù)據(jù)段的地址放入數(shù)據(jù)段的地址放入DSDS MOV MOVDS , AXDS , AX MOV MOV AX , 7000H AX , 7000H ; ;設(shè)置段地址為設(shè)置段地址為7000H7000H MOV MOV ES , AXES , AX MOV MOV DI , 1DI , 1 ; ;設(shè)置內(nèi)存起始單元設(shè)置內(nèi)存起始單元 MOVMOVDXDX,302H 302H ; ;設(shè)置狀態(tài)口地址設(shè)置狀態(tài)口地址WAIT1WAIT1:IN ALIN AL,DXDX ; ;讀入狀態(tài)信息讀入
22、狀態(tài)信息 TESTTESTALAL,01H 01H ; ;檢查狀態(tài)信息是否為檢查狀態(tài)信息是否為1 1 JNZJNZ WAIT1WAIT1 ; ;若為若為1 1,循環(huán)等待測(cè)頭離開前一個(gè)采樣點(diǎn)循環(huán)等待測(cè)頭離開前一個(gè)采樣點(diǎn)WAIT2WAIT2:IN ALIN AL,DXDX ; ;從狀態(tài)口讀入狀態(tài)信息從狀態(tài)口讀入狀態(tài)信息 TESTTESTALAL,01H 01H ; ;檢查狀態(tài)信息是否為檢查狀態(tài)信息是否為0 0 JZ WAIT2 JZ WAIT2 ; ;若為若為0 0,循環(huán)等待測(cè)頭接觸工循環(huán)等待測(cè)頭接觸工件的另一個(gè)采樣點(diǎn)件的另一個(gè)采樣點(diǎn)CALL ACQUDATA ;調(diào)用數(shù)據(jù)采集子程序調(diào)用數(shù)據(jù)采集子程
23、序 CALL HCONVT;調(diào)用數(shù)據(jù)拆分子程序調(diào)用數(shù)據(jù)拆分子程序 CALL STORE;調(diào)用數(shù)據(jù)存儲(chǔ)子程序調(diào)用數(shù)據(jù)存儲(chǔ)子程序POP AXPOP DIPOP SIPOP DS;恢復(fù)原數(shù)據(jù)段地址恢復(fù)原數(shù)據(jù)段地址POP BP;恢復(fù)原基址寄存器指針恢復(fù)原基址寄存器指針RET;退出匯編程序退出匯編程序PORTENDP;采集數(shù)據(jù)采集數(shù)據(jù)ACQUDATAPROC NEAR PUSHDX PUSH SI PUSH DI PUSHAX PUSHCX MOVAL , 10011011B ;設(shè)置控制字設(shè)置控制字 MOV DX , 307H ;初始化初始化8255三口為輸入口三口為輸入口 OUT DX , AL MO
24、V DX , 304HINAL , DX ;A口口采集第一組采集第一組BCD碼碼MOVDI , OFFSET BCD1MOV DI , AL;存入存入BCD1中保存中保存 MOV DX , 305HINAL , DX ;從從B口采集第二組口采集第二組BCD碼碼 MOV DI , OFFSET BCD2MOVDI , AL ;存入存入BCD2中保存中保存 MOV DX , 306HINAL , DX ;從從C口采集第三組口采集第三組BCD碼碼MOV DI , OFFSET BCD3MOV DI , AL;存入存入BCD3中保存中保存POP CXPOP AXPOP DIPOP SIPOP DX R
25、ETACQUDATAENDPHCONVTPROC NEAR;把一組把一組BCD碼拆分成二個(gè)碼拆分成二個(gè)4位二進(jìn)制碼位二進(jìn)制碼PUSHBXPUSHSIPUSHDIMOV BX,OFFSET BCD1;BCD1的地址送入的地址送入BX寄存器寄存器MOV SI, OFFSET BIN11 ;BIN11的地址送入的地址送入SI寄存器寄存器MOV DI,OFFSET BIN12 ;BIN12的地址送入的地址送入DI寄存器寄存器CALL HCONVTSUB;對(duì)第一組對(duì)第一組BCD碼進(jìn)行拆分碼進(jìn)行拆分MOV BX,OFFSET BCD2 ;BCD2的地址送入的地址送入BX寄存器寄存器MOV SI,OFFSE
26、T BIN21 ;BIN21的地址送入的地址送入SI寄存器寄存器MOV DI,OFFSET BIN22;BIN22的地址送入的地址送入DI寄存器寄存器CALL HCONVTSUB ;對(duì)第二組對(duì)第二組BCD碼進(jìn)行拆分碼進(jìn)行拆分MOV BXMOV BX,OFFSET BCD3OFFSET BCD3 ;BCD3;BCD3的地址送入的地址送入BXBX寄存器寄存器 MOV SIMOV SI,OFFSET BIN31OFFSET BIN31;BIN31;BIN31的地址送入的地址送入SISI寄存器寄存器MOV DIMOV DI,OFFSET BIN32OFFSET BIN32 ;BIN32;BIN32的地
27、址送入的地址送入DIDI寄存器寄存器CALL HCONVTSUBCALL HCONVTSUB; ;對(duì)第三組對(duì)第三組BCDBCD碼進(jìn)行拆分碼進(jìn)行拆分 POP DIPOP DI POP SIPOP SI POP BX POP BX RET RETHCONVTHCONVTENDPENDP;拆分拆分BCDBCD碼碼HCONVTSUBHCONVTSUB PROC NEARPROC NEARPUSH CXPUSH CXMOV ALMOV AL,BXBX; ;將將BXBX寄存器中的內(nèi)容傳送到寄存器中的內(nèi)容傳送到ALAL寄存器寄存器MOV CLMOV CL,4 4; ;確定移位次數(shù)確定移位次數(shù)(4 4次次)S
28、HR ALSHR AL,CLCL; ;將將ALAL邏輯右移邏輯右移4 4次次MOV SIMOV SI,ALAL; ;將將ALAL中的內(nèi)容傳送到中的內(nèi)容傳送到SISIMOV AL,BX;將將BX中的內(nèi)容傳送到中的內(nèi)容傳送到ALAND AL,0FH;屏蔽高屏蔽高4位位MOV DI,AL ;將將AL中低中低4位的內(nèi)容傳送到位的內(nèi)容傳送到DIPOP CXRETHCONVTSUBENDP;把數(shù)據(jù)存入內(nèi)存把數(shù)據(jù)存入內(nèi)存STORE PROC NEARPUSH ESPUSH SIMOV SI , OFFSET BIN11MOV AL , SIMOV BYTE PTR ES : DI , AL ;把把BIN11
29、中的內(nèi)容送入內(nèi)存單元中的內(nèi)容送入內(nèi)存單元1INCDI ;內(nèi)存單元地址內(nèi)存單元地址+1MOV SI , OFFSET BIN12MOV AL , SIMOV BYTE PTR ES : DI , AL ;把把BIN12中的內(nèi)容送到內(nèi)存單元中的內(nèi)容送到內(nèi)存單元2 INCDI;內(nèi)存單元地址內(nèi)存單元地址+1MOV SI , OFFSET BIN21MOV AL , SIMOV BYTE PTR ES : DI , AL ;把把BIN21中的內(nèi)容送到內(nèi)存單元中的內(nèi)容送到內(nèi)存單元3INCDI ;內(nèi)存單元地址內(nèi)存單元地址+1MOV SI , OFFSET BIN22MOV AL , SIMOV BYTE P
30、TR ES : DI , AL ;把把BIN22中的內(nèi)容送到內(nèi)存單元中的內(nèi)容送到內(nèi)存單元4INC 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)存單元地址內(nèi)存單元地址+1MOV SI , OFFSET BIN32MOV AL , SIMOV BYTE PTR ES : DI , AL ;把把BIN32中的內(nèi)容送到內(nèi)存單元中的內(nèi)容送到內(nèi)存單元6POP SIPOP ESRETSTORE ENDP END 以上程序在計(jì)算機(jī)
31、內(nèi)存中段地址為以上程序在計(jì)算機(jī)內(nèi)存中段地址為7000,起始單元為起始單元為1的連續(xù)的連續(xù)6個(gè)內(nèi)存單元個(gè)內(nèi)存單元中存放采集到的中存放采集到的X坐標(biāo)位移值坐標(biāo)位移值。 對(duì)于對(duì)于Y Y、Z Z坐標(biāo)值,同樣可參照以上介紹的方法坐標(biāo)值,同樣可參照以上介紹的方法,完成坐標(biāo)位移值的采集完成坐標(biāo)位移值的采集、拆分和存儲(chǔ)等操作、拆分和存儲(chǔ)等操作。下面的程序完成還原十進(jìn)制實(shí)數(shù)的操作。下面的程序完成還原十進(jìn)制實(shí)數(shù)的操作。DCLZDCLZ源程序如下源程序如下:DECLARE SUB PORT ( ) CALL PORT DEF SEG = &H7000 ;設(shè)定內(nèi)存段地址為設(shè)定內(nèi)存段地址為7000H A11 = PEE
32、K(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)存單元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) :
33、B12$ = STR$(B12) ;數(shù)值型數(shù)據(jù)轉(zhuǎn)換成字符型數(shù)據(jù)數(shù)值型數(shù)據(jù)轉(zhuǎn)換成字符型數(shù)據(jù) 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 = 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 END 將以上匯編
34、程序編譯成一個(gè)目標(biāo)文件,并與將以上匯編程序編譯成一個(gè)目標(biāo)文件,并與DCLZ 程序的目標(biāo)文件連接程序的目標(biāo)文件連接成一個(gè)數(shù)據(jù)采集程序成一個(gè)數(shù)據(jù)采集程序CAIZI。 運(yùn)行運(yùn)行CAIZI程序,即可將程序,即可將X坐標(biāo)位移值從坐標(biāo)位移值從8255板卡經(jīng)內(nèi)存單元傳送到相應(yīng)板卡經(jīng)內(nèi)存單元傳送到相應(yīng)的的Quick BASIC 程序中去程序中去。1. 車速脈沖信號(hào)的變換車速脈沖信號(hào)的變換 問(wèn)題提出:?jiǎn)栴}提出:在對(duì)車輛的車速進(jìn)行路面測(cè)試時(shí),如何得到車輛的直線行駛速度?在對(duì)車輛的車速進(jìn)行路面測(cè)試時(shí),如何得到車輛的直線行駛速度?解決方法:解決方法: 一般在車輛的后部增加一個(gè)測(cè)量輪。測(cè)量輪的旋轉(zhuǎn)軸上套裝一個(gè)有一般在車
35、輛的后部增加一個(gè)測(cè)量輪。測(cè)量輪的旋轉(zhuǎn)軸上套裝一個(gè)有60個(gè)個(gè)齒的齒盤齒的齒盤。在齒盤上在齒盤上 在側(cè)面裝反射式光電傳感器在側(cè)面裝反射式光電傳感器 ; 面對(duì)圓周裝磁阻式傳感器。面對(duì)圓周裝磁阻式傳感器。1231 1- - - 拖拖拉拉機(jī)機(jī) 2 2- - - 測(cè)測(cè)試試機(jī)機(jī)架架 3 3- - - 光光電電傳傳感感器器 4 4- - - 齒齒形形編編碼碼盤盤 5 5- - - 測(cè)測(cè)量量輪輪 圖圖1 1 車車輛輛工工作作速速度度測(cè)測(cè)試試裝裝置置451231 1- - -測(cè)測(cè)量量輪輪 2 2- - -齒齒形形編編碼碼盤盤 3 3- - -反反射射式式光光電電傳傳感感器器 4 4- - -安安裝裝機(jī)機(jī)架架4圖圖
36、2 2 位位移移測(cè)測(cè)試試裝裝置置 當(dāng)齒盤旋轉(zhuǎn)一個(gè)節(jié)距時(shí),傳感器轉(zhuǎn)換輸出一個(gè)近似于正弦波的信號(hào),該當(dāng)齒盤旋轉(zhuǎn)一個(gè)節(jié)距時(shí),傳感器轉(zhuǎn)換輸出一個(gè)近似于正弦波的信號(hào),該信號(hào)經(jīng)濾波、放大和整形后,變成一個(gè)脈沖信號(hào),齒盤旋轉(zhuǎn)一周,傳感器轉(zhuǎn)信號(hào)經(jīng)濾波、放大和整形后,變成一個(gè)脈沖信號(hào),齒盤旋轉(zhuǎn)一周,傳感器轉(zhuǎn)換輸出換輸出60個(gè)脈沖個(gè)脈沖。 由于測(cè)量輪是一個(gè)從動(dòng)輪,即車輛前進(jìn)時(shí)帶動(dòng)該輪旋轉(zhuǎn)。測(cè)量輪的圓周由于測(cè)量輪是一個(gè)從動(dòng)輪,即車輛前進(jìn)時(shí)帶動(dòng)該輪旋轉(zhuǎn)。測(cè)量輪的圓周速度就是車輛的車速,因此有如下關(guān)系:速度就是車輛的車速,因此有如下關(guān)系: )19(NDv式中式中 D 測(cè)量輪直徑測(cè)量輪直徑(mm) N 測(cè)量輪轉(zhuǎn)速測(cè)量輪轉(zhuǎn)
37、速(rmin) 由式由式(9-1)可知,只要測(cè)量出測(cè)量輪的轉(zhuǎn)速,就可以得到車輛的車速??芍?,只要測(cè)量出測(cè)量輪的轉(zhuǎn)速,就可以得到車輛的車速。 那么,如何得知測(cè)量輪轉(zhuǎn)速那么,如何得知測(cè)量輪轉(zhuǎn)速 N 呢呢? 由于測(cè)量輪每轉(zhuǎn)一周輸出由于測(cè)量輪每轉(zhuǎn)一周輸出60個(gè)脈沖,只需用計(jì)數(shù)器對(duì)脈沖信號(hào)在一秒個(gè)脈沖,只需用計(jì)數(shù)器對(duì)脈沖信號(hào)在一秒鐘內(nèi)計(jì)數(shù),然后按一定關(guān)系式可算出轉(zhuǎn)速。鐘內(nèi)計(jì)數(shù),然后按一定關(guān)系式可算出轉(zhuǎn)速。 設(shè)計(jì)數(shù)器的計(jì)數(shù)值為設(shè)計(jì)數(shù)器的計(jì)數(shù)值為C C,測(cè)量輪每轉(zhuǎn)一周傳感器輸出的脈沖數(shù)為測(cè)量輪每轉(zhuǎn)一周傳感器輸出的脈沖數(shù)為P P,計(jì)數(shù)時(shí)間為計(jì)數(shù)時(shí)間為t t,測(cè)量輪轉(zhuǎn)速為測(cè)量輪轉(zhuǎn)速為N N(r / minr / min),),則有如下關(guān)系式成立則有如下關(guān)系式成立:)29(60NtPC 整理式整理式(9-29-2),),可得到測(cè)量輪轉(zhuǎn)速的公式可得到測(cè)量輪轉(zhuǎn)速的公式: )39(60tPCN 用式用式(9-3 9-3 )計(jì)算出測(cè)量輪的轉(zhuǎn)速計(jì)算出測(cè)量輪的轉(zhuǎn)速N N,然后
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)習(xí)動(dòng)力激發(fā)輔導(dǎo)考核試卷
- 舊貨零售店鋪選址與商圈分析考核試卷
- 拉丁語(yǔ)基礎(chǔ)與古羅馬文化考核試卷
- 智能材料設(shè)計(jì)與制造考核試卷
- 小學(xué)生經(jīng)典誦讀愛(ài)國(guó)課件
- 智能餐飲顧客服務(wù)系統(tǒng)考核試卷
- ehs之家安全培訓(xùn)課件
- 施工安全合同范本
- 城管部門采購(gòu)合同范本
- 貨物拉運(yùn)合同范本
- 2024年3、6、9月青少年軟件編程Python等級(jí)考試一級(jí)真題(全3套 含答案)
- T-IMAS 087-2024 托克托縣辣椒地方品種提純復(fù)壯技術(shù)規(guī)程
- 2025年全國(guó)道路運(yùn)輸企業(yè)安全管理人員考試題庫(kù)(含答案)
- 太陽(yáng)能光伏發(fā)電安裝工程監(jiān)理實(shí)施細(xì)則
- 小學(xué)科學(xué)課件《水》
- 全新版大學(xué)高階英語(yǔ):綜合教程 第3冊(cè) Unit 6 China Rejuvenated課件
- 2024年下半年江蘇省鹽城市射陽(yáng)縣人民政府項(xiàng)目辦公室招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 醫(yī)療行業(yè)信息安全等級(jí)保護(hù)
- 新公務(wù)員法培訓(xùn)講稿
- 荊州市國(guó)土空間總體規(guī)劃(2021-2035年)
- 2024年政府辦事-戶口管理考試近5年真題集錦(頻考類試題)帶答案
評(píng)論
0/150
提交評(píng)論