Intel8255A是一種通用的可編程序并行I/O接口芯片,又稱“可編程外設(shè)接口芯片”PPI(Programmable Peripheral Interface),是為Intel 8080/8085系列微處理器設(shè)計的,也可用于其他系列的微機系統(tǒng)。可由程序來改變其功能,通用性強、使用靈活。通過8255A,CPU可直接同外設(shè)相連接,是應(yīng)用最廣的并行I/O接口芯片。
一、結(jié)構(gòu)和引腳功能
(一)8255A的內(nèi)部結(jié)構(gòu)
8255A由4部分組成,其結(jié)構(gòu)框圖和引腳安排見圖7-7所示。
圖7-7 8255A結(jié)構(gòu)框圖和引腳安排
(a)結(jié)構(gòu)框圖; (b) 引腳安排
1. 數(shù)據(jù)總線緩沖器
數(shù)據(jù)總線緩沖器是一個三態(tài)8位雙向緩沖器,用作8255A同系統(tǒng)數(shù)據(jù)總線相連時的緩沖部件,CPU通過執(zhí)行輸入/輸出指令來實現(xiàn)對緩沖器發(fā)送或接收數(shù)據(jù)。8255A的控制字和狀態(tài)字也是通過該緩沖器傳送的。
2. 三個8位端口PA、PB和PC
8255A有三個8位端口PA、PB和PC,各端口都可由程序設(shè)定為各種不同的工作方式。端口A(PA口)有一個8位數(shù)據(jù)輸入鎖存器和一個8位數(shù)據(jù)輸出鎖存/緩沖器;端口B(PB口)有一個8位數(shù)據(jù)輸入緩沖器和一個8位數(shù)據(jù)輸入/輸出、鎖存/緩沖器;端口C(PC口)有一個8位數(shù)據(jù)輸入緩沖器和一個8位數(shù)據(jù)輸出鎖存/緩沖器。
通常PA口與PB口用作輸入/輸出的數(shù)據(jù)端口,PC口用作控制或狀態(tài)信息的端口。在方式字的控制下,PC口可以分成兩個4位的端口,每個端口包含一個4位鎖存器,可分別同端口A和端口B配合使用,可以用作控制信號輸出,或作為狀態(tài)信號輸入。
3. A組和B組的控制電路
這兩組控制電路根據(jù)CPU發(fā)出的方式選擇控制字來控制8255A的工作方式,每個控制組都接收來自讀/寫控制邏輯的“命令”,接收來自內(nèi)部數(shù)據(jù)總線的“控制字”,并向與其相連的端口發(fā)出適當(dāng)?shù)目刂菩盘枴?br>A組控制部件用來控制PA口和PC口的高4位(PC7~PC4);B組控制部件用來控制PB口和PC口的低4位(PC3~PC0)。
4. 讀/寫控制邏輯
用來管理數(shù)據(jù)信息、控制字和狀態(tài)字的傳送,它接收來自CPU地址總線的A1、A0和控制總線的有關(guān)信號(前一單元fix = v ns = "urn:schemas-microsoft-com:vml" />前一單元ferrelative="t" o:spt="75" coordsize="21600,21600"> 、 、RESET等),向8255A的A、B兩組控制部件發(fā)送命令。
(二)8255A的引腳功能
8255A采用40條引腳的雙列直插式(DIP,Dual Inline package)封裝,其引腳信號有:
:片選信號(輸入)
:讀信號(輸入)
:寫信號(輸入)
A1、A0:片內(nèi)寄存器選擇信號(輸入)
D7~D0:與CPU側(cè)連接的數(shù)據(jù)線(雙向)
PA7~PA0:A口外設(shè)數(shù)據(jù)線(雙向)
PB7~PB0:B口外設(shè)數(shù)據(jù)線(雙向)
PC7~PC0:C口外設(shè)數(shù)據(jù)線(雙向)
RESET:復(fù)位信號(輸入)
控制信號 以及A1、A0的組合可以實現(xiàn)對三個數(shù)據(jù)口(PA、PB、PC)和控制口(控制寄存器)的讀寫操作,如表7-1所示。
表7-18255A端口功能選擇
A1 |
A0 |
|
|
|
輸入操作(讀) |
0 0 1 |
0 1 0 |
0 0 0 |
1 1 1 |
0 0 0 |
端口A→數(shù)據(jù)總線 端口B→數(shù)據(jù)總線 端口C→數(shù)據(jù)總線 |
輸出操作(寫) |
|||||
0 0 1 1 |
0 1 0 1 |
1 1 1 1 |
0 0 0 0 |
0 0 0 0 |
數(shù)據(jù)總線→端口A 數(shù)據(jù)總線→端口B 數(shù)據(jù)總線→端口C 數(shù)據(jù)總線→控制字寄存器 |
斷開功能(禁止) |
|||||
X 1 X |
X 1 X |
X 0 1 |
X 1 1 |
1 0 0 |
數(shù)據(jù)總線為三態(tài)(高阻) 非法狀態(tài) 數(shù)據(jù)總線為三態(tài)(高阻) |
二、工作方式
(一)方式0——基本輸入輸出
方式0下,每一個口都作為基本的輸入輸出口,C口的高4位和低4位以及A口、B口都可以獨立地設(shè)置為輸入口或輸出口。4個口的輸入輸出可以有16種組合方式,且都可以由方式控制字確定。
8255A在方式0工作時,CPU可以采用無條件讀寫方式與8255A交換數(shù)據(jù)。如果把C口的兩個部分用作控制和狀態(tài)口,與外設(shè)的控制和狀態(tài)端相連,CPU也可以通過對C口的讀寫,實現(xiàn)A口與B口的查詢方式工作。
基本輸入輸出下工作時,輸出的數(shù)據(jù)被鎖存,而輸入數(shù)據(jù)是不鎖存的。
(二)方式1——選通輸入輸出(應(yīng)答式輸入輸出)
方式1下將三個端口分成A、B兩組,A、B兩個口仍作為數(shù)據(jù)輸入輸出口,而C口分成兩部分,分別作為A口和B口的聯(lián)絡(luò)信號。在8255A中規(guī)定的聯(lián)絡(luò)信號是三位,兩個數(shù)據(jù)口共用去C口的六位,剩下的兩位仍可以作數(shù)據(jù)位使用。
A、B兩個口的工作狀態(tài)是由CPU寫控制字時設(shè)定的,一旦方式已定,就把所用C口的聯(lián)絡(luò)信號位也確定了。
1. 方式1的輸入
A、B兩個口都設(shè)置為方式1輸入時的情況如圖7-8(a)所示。由圖可見A口所用的三個聯(lián)絡(luò)信號占用C口的PC3、PC4、PC5三引腳,而B口則用了PC0、PC1和PC2三個引腳。聯(lián)絡(luò)信號的作用如下:
(1) :輸入的選通信號,低電平有效。由外設(shè)提供,為低電平時,就把輸入的數(shù)據(jù)信號(PA7~PA0或PB7~PB0)送入A端口(或B端口)的數(shù)據(jù)鎖存器。
(2)IBF:輸入緩沖器滿信號,高電平有效。由8255A輸出,有效時,用以通知外部設(shè)備輸入的數(shù)據(jù)已寫入緩沖器。
(3)INTR:中斷請求信號,高電平有效。當(dāng)外部設(shè)備要向CPU傳送數(shù)據(jù)或請求服務(wù)時,8255A就用INTR端的高電平向CPU提出中斷請求。當(dāng) 、IBF和INTE都為高電平時,表明數(shù)據(jù)鎖存器內(nèi)已寫入了數(shù)據(jù),使INTR成為高電平輸出。CPU響應(yīng)中斷,在 控制下從8255A中讀取數(shù)據(jù)時, 的下降沿使INTR復(fù)位,它的上升沿又使IBF復(fù)位,使外設(shè)知道可以進行下一字節(jié)輸入了,見圖7-8(b)。
圖7-8 方式1輸入
(a)結(jié)構(gòu)圖; (b)波形圖
(4)INTE:中斷允許信號。A端口用PC4位的置/復(fù)位控制,B端口用PC2位的置/復(fù)位控制。只有當(dāng)PC4或PC2置“1”時,才允許對應(yīng)的端口送出中斷請求。
PC7、PC6可以用作數(shù)據(jù)傳輸,用方式控制字的D3位來設(shè)置它的輸入/輸出。
方式1的輸入過程如下(A口):
當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù),在送出數(shù)據(jù)的同時,送出一個選通信號 。8255A的A口數(shù)據(jù)鎖存器在 下降沿控制下將數(shù)據(jù)鎖存。8255A向外設(shè)送出高電平的IBF,表示鎖存數(shù)據(jù)已完成,暫時不要再送數(shù)據(jù)。如果PC4=1(INTEA=1),這時就會使INTR變成高電平輸出,向CPU發(fā)出中斷請求。CPU響應(yīng)中斷,執(zhí)行IN指令時, 信號的下降沿清除中斷請求,而 結(jié)束時的上升沿則使IBF復(fù)位到零。外設(shè)在檢測到IBF為零后,可以開始輸入下一個字節(jié)。
2. 方式1的輸出
A,B口在方式1用作輸出時,兩組的聯(lián)絡(luò)信號如圖7-9(a)所示。其聯(lián)絡(luò)信號的作用如下:
圖7-9 方式1輸出
(a)結(jié)構(gòu)圖; (b)波形圖
(1) :輸出緩沖器滿信號,低電平有效。由8255A輸出,當(dāng)其有效時,表示CPU已經(jīng)將數(shù)據(jù)輸出到指定的端口,通知外設(shè)可以將數(shù)據(jù)取走。
(2) :響應(yīng)信號,低電平有效。由外設(shè)送來,有效時表示8255A數(shù)據(jù)已經(jīng)為外設(shè)所接收。
(3) :中斷請求信號,高電平有效。當(dāng)外設(shè)接收了由CPU送給8255A的數(shù)據(jù)后,8255A就用INTR端向CPU發(fā)出中斷請求,請求CPU再輸出后面的數(shù)據(jù)。INTR是當(dāng) , 和INTE都為高電平時,才能被置成高電平。由 的上升沿清除[見圖7-9(b)]。
(4)INTE:中斷允許信號。A口的INTE由PC6置/復(fù)位,B口的INTE由PC2置/復(fù)位。
PC4、PC5位可以由控制字D3的設(shè)置為輸入或輸出數(shù)據(jù)用。
(三)方式2——雙向選通輸入輸出
通過8位數(shù)據(jù)線與外設(shè)進行雙向通信的方式,即能發(fā)送,又能接收數(shù)據(jù)。工作時可以用中斷方式,也可以用查詢方式與CPU聯(lián)系。
方式2只限于A組使用,它用A口的8位數(shù)據(jù)線,用C口的5位進行聯(lián)絡(luò)。工作時輸入、輸出數(shù)據(jù)都能鎖存。當(dāng)A組在方式2下工作時,B組可以在方式0或方式1工作。方式2的聯(lián)絡(luò)信號如圖7-10(a)所示,其作用如下:
圖7-10 方式2
(a)結(jié)構(gòu)圖; (b)波形圖
(1)INTR:中斷請求信號,高電平有效,輸入輸出都用這個信號向CPU申請中斷。
(2) :輸出緩沖器滿,低電平有效。作為對外設(shè)的一種選通信號,表示CPU已經(jīng)將數(shù)據(jù)送到端口A。
(3) :來自外設(shè)的響應(yīng)信號,低電平有效。有效時啟動口A的三態(tài)輸出緩沖器送出數(shù)據(jù);否則,輸出緩沖器處于高阻態(tài)。
(4)INTE1:與 有關(guān)的中斷允許觸發(fā)器,由PC6置/復(fù)位。
(5) :選通輸入,低電平有效。來自外設(shè)的選通信號,有效時,將輸入數(shù)據(jù)選通送入鎖存器。
(6)IBF:輸入緩沖器滿,高電平有效。有效時,表明數(shù)據(jù)已經(jīng)送入鎖存器。
(7)INTE2:與IBF有關(guān)的中斷允許觸發(fā)器,由PC4置/復(fù)位控制。
各種方式下各端口的功能如表7-2所示。
方式1和方式2時,中斷允許信號INTE的操作位如表7-3所示。
表7-2各種方式下各端口功能
端口 |
方式0輸入 |
方式0輸出 |
方式1輸入 |
方式1輸出 |
方式2(僅A組) |
PA7~PA0 PB7~PB0 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 |
IN IN
IN |
OUT OUT
OUT |
IN IN INTRB IBFB
INTRA
IBFA I/O I/O |
OUT OUT INTRB
INTRA I/O I/O
|
I/O 方式0或1 I/O I/O I/O INTRA
IBFA
|
方式 |
操作位(A口) |
操作位(B口) |
1輸入 |
PC4 |
PC2 |
1輸出 |
PC6 |
PC2 |
2輸入 |
PC4 |
|
2輸出 |
PC6 |
當(dāng)8255A與CPU采用查詢方式工作時,要求CPU讀取C端口的內(nèi)容,根據(jù)上述對PC各位的定義及對中斷屏蔽情況可以很容易地知道讀出的狀態(tài)字中各位的含義,各位的定義如下:
PC7 |
PC6 |
PC5 |
PC4 |
PC3 |
PC2 |
PC1 |
PC0 |
I/O |
I/O |
IBFA |
INTEA |
INTRA |
INTEB |
IBFB |
INTRB |
方式1輸入
|
INTEA |
I/O |
I/O |
INTRA |
INTEB |
|
INTRB |
方式1輸出
|
INTE1 |
IBFA |
INTE2 |
INTRA |
X |
X |
X |
三、初始化
在使用8255A時,首先要由CPU對8255A寫入控制命令字,有2種控制命令字:一個是方式選擇控制字,另一個是C口按位置位/復(fù)位控制字。8255A的各種工作方式都要由控制命令來設(shè)定,這個設(shè)置過程稱為“初始化”。
(一)方式選擇控制字(D7=1)
方式選擇控制字的格式如圖7-11所示。圖中D0~D2三位用來對B組的端口進行工作方式設(shè)定,其中D2設(shè)置B口的工作方式,D2=1為方式1;D2=0為方式0。D1位設(shè)定B口輸入或輸出,D1=1為輸入;D1=0為輸出。D0位設(shè)定C口的低半部,D0=1為輸入;D0=0為輸出。D3~D6四位用來對A組的端口進行設(shè)定。其中D6D5組合起來設(shè)定A口工作方式,D6D5=00為方式0,D6D5=01為方式1,D6D5=10和11都為方式2。D4位用來設(shè)定A口的輸入或輸出,D3位用來設(shè)定C口上半部的輸入或輸出,“1”為輸入;“0”為輸出。
C口低位選擇(方式0時)
1=輸入0=輸出
B口輸入輸出選擇
1=輸入0=輸出
B口工作方式選擇
0=方式01=方式1
后一單元-textbox: #_x0000_s1061" inset=".5mm,.3mm,.5mm,.3mm">
B組
后一單元-textbox: #_x0000_s1062" inset=".5mm,.3mm,.5mm,.3mm">
C口高位輸入輸出選擇
1=輸入0=輸出
后一單元-textbox: #_x0000_s1063" inset=".5mm,.3mm,.5mm,.3mm">
A口輸入輸出選擇
1=輸入0=輸出
后一單元-textbox: #_x0000_s1064" inset=".5mm,.3mm,.5mm,.3mm">
A口工作方式選擇
00=方式001=方式1
1X=方式2
后一單元-textbox: #_x0000_s1065" inset=".5mm,.3mm,.5mm,.3mm">
A組
D7=1為工作方式
(二)C口按位置位/復(fù)位控制字(D7=0)
圖7-12是當(dāng)控制字用作C口置位/復(fù)位控制字時,各位的功能規(guī)定。
D7
D6
D5
D4
D3
D2
D1
D0
無效
后一單元-textbox: #_x0000_s1034" inset=".5mm,.3mm,.5mm,.3mm">
D7=0為
置位/復(fù)位
控制字標(biāo)志
后一單元-textbox: #_x0000_s1038">
D3
D2
D1
位選擇
0
0
0
PC0
0
0
1
PC1
0
1
0
PC2
0
1
1
PC3
1
0
0
PC4
1
0
1
PC5
1
1
0
PC6
1
1
1
PC7
后一單元-textbox: #_x0000_s1041" inset=".5mm,.3mm,.5mm,.3mm">
置位/復(fù)位選擇
1=置位0=復(fù)位
B組
圖7-12 C口按位置位/復(fù)位控制字
因為C口共有8個二進制位,要確定對其中某一位進行操作,就要在控制字中指定該位的編號。圖中用了D3D2D1三位的編碼與PC口的某一位相對應(yīng),對指定位進行的操作則由D-確定,如D0=1時,將指定位置“1”。D0=0則將指定位置“0”。例如:
若D0=0,D3D2D1=101,則C端口的第5位PC5置“0”;
若D0=1,D3D2D1=001,則C端口的第1位PC1置“1”。
例如,用程序?qū)C口的第7位置“1”,第3位置“0”,設(shè)控制字的地址為0EBH。第7位的編碼為D3D2D1=111,使之置1的控制字編碼為:00001111B=0FH;
第3位的編碼為D3D2D1=011,使之置0的控制字編碼為:00000110B=06H。
程序:MOV AL,0FH;設(shè)置PC7為“1”的控制字送AL
OUT 0EBH,AL;將控制字送8255A控制寄存器
MOV AL,06H;設(shè)置PC3為“0”的控制字送AL
OUT 0EBH AL;將控制字送8255A控制寄存器。
在選通方式工作時,利用C口的按位置位/復(fù)位功能可以控制8255A能否提出中斷。
四、應(yīng)用舉例
(一)鍵盤接口
鍵盤是微型計算機系統(tǒng)中最常用的一種輸入設(shè)備。有兩類鍵盤:編碼鍵盤和非編碼鍵盤。
編碼鍵盤能自動提供對應(yīng)于被按鍵的編碼信息,如ASCⅡ碼,并能同時產(chǎn)生一個選通脈沖通知微處理器,還具有處理抖動和多鍵串鍵的保護電路。這種鍵盤的優(yōu)點是使用方便,但需要較多的硬件,價格昂貴。
非編碼鍵盤由一組開關(guān)組成,提供行和列的鍵盤矩陣。其全部工作,包括按鍵的識別、按鍵代碼的產(chǎn)生、防止串鍵和消去抖動等問題,都靠程序來實現(xiàn)。所需要的硬件較少,價格也便宜,一般用作單板機的鍵盤。
鍵盤輸入信息的過程可歸納為三步:
(1)檢測是否有鍵按下;
(2)查出按下的是哪一個鍵。
(3)將該鍵所代表的信息翻譯成計算機能識別的內(nèi)部代碼,如ASCⅡ碼或其它預(yù)先約定的編碼。
在鍵盤輸入過程中,由于按鍵的斷開與閉合都要經(jīng)過幾毫秒的抖動之后才能真正接觸,因而應(yīng)采取措施以保證在按鍵穩(wěn)定后才檢測鍵的信息。
在按鍵時,用戶可能因偶爾同時按下一個以上的鍵而造成編碼出錯,稱之為串鍵。此時需要硬件或軟件來進行處理。
第二、三步可以用硬件也可以用軟件來完成。如用硬件完成,則稱為編碼鍵盤,如用軟件來完成,則稱為非編碼鍵盤。
圖7-13為非編碼鍵盤和微處理器的接口電路。圖中8255A端口A工作在方式0,用作輸出口;端口B也工作在方式0、用作輸入口。在按下一個鍵時,與它對應(yīng)的行和列短接,形成了通路,通過查找閉合鍵所在的行和列的位置,程序就能決定被按下的鍵所代表的代碼(稱為“鍵號”,0~63)。
圖7-13 非編碼鍵盤接口
檢測鍵盤輸入過程如下:端口A送全“0”到8根行線上,CPU再從端口B讀入8根列線上的信息。如果讀入的信息為全“1”(高電平),則表示目前尚無鍵閉合;否則,表示現(xiàn)在已有按下的鍵。為進一步查找閉合鍵所在的行和列的編碼,CPU在端口A的PA0引線上送出低電平信號,其余(PA7~PA1)引線上輸出高電平信號。CPU再次通過B端口讀入列線上的電平信號,并判斷是否為全“1”。如果是全“1”,則表示在第0行上無鍵閉合;否則,表示閉合鍵在第0行上。再進一步找出讀入的字節(jié)數(shù)據(jù)中“0”所在的位。即按下的鍵所在的列的位置。在第0行上無鍵閉合的情況下,則依次對行1,行2,…行7進行上述操作,找出被按下的鍵所在行和列的編號。由此,可以通過軟件的辦法,找到被按下的鍵所代表的編碼。
使用行掃描方式尋找按下鍵的編號(鍵號)的程序如下:
┆
PORTA EQU 0FF8H
PORTB EQU 0FFFAH
PORTCEQU 0FFFCH
PORTCN EQU 0FFFEH
MOV DX,PORTCN;置8255A端口A、B工作在方式0;
MOV AL,10000011B;端口A為輸出口,端口B為輸入口。
OUT DX,AL
WAITK: MOV DX, PORTA;等待鍵閉合
MOV AL,0;行碼送全“0”
OUT DX,AL
MOV DX, PORTB;讀列碼
IN AL,DX
CMP AL,0FFH;
JZ WAITK;無鍵按下,繼續(xù)等待
MOV BL,0;掃描鍵盤矩陣,送鍵號初值
MOV BH,11111110B;置初始掃描模式——行碼送FEH
MOV CX,8
FNDROW: MOV AL BH;送行碼
MOV DX,PORTA
OUT,DX,AL
ROL BH,1;修改行碼
MOV DX,PORTB;讀列碼
IN AL,DX
CMP AL,0FFH
JNZ FNDCOL;有鍵按下,查列號
ADD BL,8;無鍵按下,指向下一行鍵號初值
LOOP FNDROW;8行掃描未完,送下一行掃描碼
JMP DONE;8行掃描完,無鍵按下
FNDCOL: ROR AL,1;查哪一列有鍵按下
JNC RIGHT;查到按下鍵的鍵號
INC BL;鍵號加1,查下一列
JMP FNDCOL
RIGHT: :;按下鍵的編號在BL中
:
DONE: :;無鍵閉合
(二)七段LED顯示器接口
發(fā)光二極管是一種當(dāng)外加電壓(陽極電壓接高電位)超過額定電壓時發(fā)生擊穿,并因此而產(chǎn)生可見光的器件。這種數(shù)碼顯示管通常由多個發(fā)光二極管來組成7段或8段筆劃顯示器,當(dāng)段組合發(fā)亮?xí)r,便可顯示某一數(shù)碼或字符。七段代碼的各位(bit0—bit7)用作a~g和DP的輸入。如圖7-14所示的七段LED實際上包含8個LED(7段字形加上小數(shù)點DP)。圖(b)結(jié)構(gòu)中,左面為共陽極(各個LED管陽極相連),右面為共陰極。
圖7-15為8位7段LED顯示器接口電路,共有8個七段發(fā)光二極管的器件。為了減少所用器件的數(shù)量,這個電路可以和兩個8位并行輸出口連接。8個顯示器共用同一組段代碼輸出線,但通過數(shù)位選擇線,在任何時間內(nèi)只有一個顯示器能夠顯示其代碼。例如,在圖中8個顯示器上顯示8位十六進制數(shù),每個顯示器顯示其中的一位數(shù)。為了實現(xiàn)這一功能,可讓每個顯示器接通2ms,以顯示其對應(yīng)的數(shù),并且保證周而復(fù)始地逐個顯示這8位數(shù)。這樣,人們看上去好像8個顯示器都在同時顯示。
圖7-14 七段LED
(a)外形圖;(b)結(jié)構(gòu)圖
圖7-15 8位數(shù)字顯示器接口
現(xiàn)選用8255A作為8位數(shù)字顯示電路和微處理器的接口芯片,端口A和B都用作方式0的輸出端口,端口A的輸出提供數(shù)位驅(qū)動器的選擇信號——位選碼,端口B的輸出提供段驅(qū)動器的七段代碼信息一段選碼,在8個顯示器上重復(fù)顯示一個雙字的16進制數(shù)碼的程序(8255A各端口地址同上例)為:
:;數(shù)據(jù)段
SSEGCODE DB 0C0H;定義16進制數(shù)字符的七段代碼表
DB 0F9H
DB 0 A4H
DB 0B0H
DB 99H
DB 92H
DB 82H
DB 0F8H
DB 80H
DB 98H
DB 88H
DB 83H
DB 0C6H
DB 0A1H
DB 86H
DB 8EH
FOURBYTE EQU THIS BYTE
DBL WORD DD?
:
:
MOV AL,10000000B;設(shè)置工作方式
MOV DX,0FFFEH
:
:
CLD
AGAIN:MOV CX,4
MOV SI,OFFSET FOURBYTE
MOV AH,11111110B
LOOPDISP: LODSB
MOV DI,AX
AND AL,0FH
MOV BX,OFFSET SSEGCODE
XLAT SSEGCODE;送段選碼
MOV DX,0FFFAH
OUT DX,AL
MOV AL,AH;送位選碼
MOV DX,0FFF8H
OUT DX,AL
PUSH CX
MOV CX,NDELAY;延時2ms,NDELAY——延時常數(shù)
NOP
IDLE:NOP
LOOP IDLE
:
MOV AL,0FFH
OUT DX,AL;禁止顯示
MOV AX,DI
MOV CL,4
SHR AL,4
MOV BX,OFFSET SSEGCODE
XLAT SSEGCODE
MOV DX,0FFFAH
OUT DX,AL
ROL AH,1
MOV AL,AH
MOV DX,0FFF8H
OUT DX,AL
MOV DX,NDELAY;延時2ms
IDLE2:NOP
NOP
LOOP IDIE2
ROL AH,1
MOV AL,0FFH
OUT DX,AL;禁止顯示
POP CX
LOOP LOOPDISP
JMP AGAIN
┆
聲明:
(一)由于考試政策等各方面情況的不斷調(diào)整與變化,本網(wǎng)站所提供的考試信息僅供參考,請以權(quán)威部門公布的正式信息為準(zhǔn)。
(二)本網(wǎng)站在文章內(nèi)容來源出處標(biāo)注為其他平臺的稿件均為轉(zhuǎn)載稿,免費轉(zhuǎn)載出于非商業(yè)性學(xué)習(xí)目的,版權(quán)歸原作者所有。如您對內(nèi)容、版權(quán)等問題存在異議請與本站聯(lián)系,我們會及時進行處理解決。
相關(guān)推薦
2022年浙江自考心理學(xué)復(fù)習(xí)重點(七)
08-062023年10月浙江自考《英語(一)》復(fù)習(xí)筆記(27)
06-292023年10月浙江自考傳播學(xué)概論復(fù)習(xí)資料:反饋
08-292022年浙江自考市政學(xué)復(fù)習(xí)筆記第四章
09-142022年浙江《組織與管理概論》復(fù)習(xí)資料
09-222023年4月浙江自考知識產(chǎn)權(quán)法復(fù)習(xí)資料:馳名商標(biāo)的特別保護
04-142023年4月浙江自考環(huán)境心理學(xué)復(fù)習(xí)重點三
11-182023年4月浙江自考知識產(chǎn)權(quán)法復(fù)習(xí)資料:專利權(quán)的期限
04-152023年浙江自考勞動就業(yè)概論復(fù)習(xí)資料:勞動概述
02-222023年4月浙江自考英美文學(xué)選讀復(fù)習(xí)筆記:Jane Austen
12-09與考生自由互動、并且能直接與專業(yè)老師進行交流解答。
與考生自由互動、并且能直接與專業(yè)老師進行交流解答。