?? t8255-2.asm
字號:
;T8255-2.asm
;8255流水燈顯示實驗
;****************根據(jù)查看端口資源修改下列符號值*******************
IOY0 EQU 9C00H ;片選IOY0對應(yīng)的端口始地址
;*****************************************************************
MY8255_A EQU IOY0+00H*4 ;8255的A口地址
MY8255_B EQU IOY0+01H*4 ;8255的B口地址
MY8255_C EQU IOY0+02H*4 ;8255的C口地址
MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
LA DB ? ;定義數(shù)據(jù)變量
LB DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,MY8255_MODE ;定義8255工作方式
MOV AL,80H ;工作方式0,A口和B口為輸出
OUT DX,AL
MOV DX,MY8255_A ;寫A口發(fā)出的起始數(shù)據(jù)
MOV AL,80H
OUT DX,AL
MOV LA,AL
MOV DX,MY8255_B ;寫B(tài)口發(fā)出的起始數(shù)據(jù)
MOV AL,01H
OUT DX,AL
MOV LB,AL
LOOP1: CALL DALLY
MOV AL,LA ;將A口起始數(shù)據(jù)右移再寫入A口
ROR AL,1
MOV LA,AL
MOV DX,MY8255_A
OUT DX,AL
MOV AL,LB ;將B口起始數(shù)據(jù)左移再寫入B口
ROL AL,1
MOV LB,AL
MOV DX,MY8255_B
OUT DX,AL
MOV AH,1 ;判斷是否有按鍵按下
INT 16H
JZ LOOP1 ;無按鍵則跳回繼續(xù)循環(huán),有則退出
QUIT: MOV AX,4C00H ;結(jié)束程序退出
INT 21H
DALLY PROC NEAR ;軟件延時子程序
PUSH CX
PUSH AX
MOV CX,3FFH
D1: MOV AX,0FFFFH
D2: DEC AX
JNZ D2
LOOP D1
POP AX
POP CX
RET
DALLY ENDP
CODE ENDS
END START
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -