PE8255 EQU 206H;8255鐨勬帶鍒跺彛
PA8255 EQU 200H;8255鐨凱A鍙
PB8255 EQU 202H;8255鐨凱B鍙
PC8255 EQU 204H;8255鐨凱C鍙;鍫嗘爤娈
STACK SEGMENT STACK
STA DB 100 DUP(0)
TOP EQU LENGTH STA
STACK ENDS
;浠g爜娈
CODE SEGMENT 'CODE'
ASSUME CS:CODE,SS:STACK
START:
MOV DX,PE8255;璁剧疆8255鐨凱C鍙d负杈撳叆锛孭A鍜孭B鍙h緭鍑
MOV AL,89H
OUT DX,AL
MOV AL,00H
MOV DX,PB8255
OUT DX,AL;鎵€鏈塋ED鐏唲鐏
MOV DX,PB8255
OUT DX,AL;寰楀垎娓呴浂
MAINLOOP:
MOV DX,PC8255
IN AL,DX;璇绘寜閿姸鎬
TEST AL,01H
JNE M1
;鎸宸︿晶鍑绘墦 閿
M04:MOV AL,20H;宸鐏
MOV DX,PB8255
OUT DX,AL
CALL DELAY
M03:MOV AL,10H;宸鐏
MOV DX,PB8255
OUT DX,AL
CALL DELAY
MOV AL,08H;缃
MOV DX,PB8255
OUT DX,AL
CALL DELAY
MOV AL,04H;鍙
MOV DX,PB8255
OUT DX,AL
CALL DELAY
;鑾峰彇鎸夐敭鐘舵€
MOV DX,PC8255
IN AL,DX
TEST AL,02H
JNZ M01
JMP M11;鎸変笅 鍙充晶鎸夐敭 鍒欒鏄庡彸渚у嚮鎵
M01:
MOV AL,02H;鍙
MOV DX,PB8255
OUT DX,AL
CALL DELAY
;鑾峰彇鎸夐敭鐘舵€
MOV DX,PC8255
IN AL,DX
TEST AL,02H
JNZ M02
JMP M10
M02:MOV AL,01H;鍙充晶鍦伴潰锛堟帀钀斤級
MOV DX,PB8255
OUT DX,AL
CALL DELAY
INC BH;宸︿晶鍔鍒
MOV AL,BH
MOV CL,4
SHL AL,CL
OR AL,BL
MOV DX,PA8255
OUT DX,AL
JMP M0
M1: TEST AL,02H
JNZ M0
;鎸鍙充晶鍑绘墦 閿
M10:MOV AL,02H;鍙鐏
MOV DX,PB8255
OUT DX,AL
CALL DELAY
M11:MOV AL,04H;鍙鐏
MOV DX,PB8255
OUT DX,AL
CALL DELAY
MOV AL,08H;缃
MOV DX,PB8255
OUT DX,AL
CALL DELAY
MOV AL,10H;宸鐏
MOV DX,PB8255
OUT DX,AL
CALL DELAY
;鑾峰彇鎸夐敭鐘舵€
MOV DX,PC8255
IN AL,DX
TEST AL,01H;鎸変笅 宸︿晶鍑诲嚭 閿紝鍒欒鏄庡乏渚у嚮鎵
JNZ M12
JMP M03
M12:MOV AL,20H;宸鐏
MOV DX,PB8255
OUT DX,AL
CALL DELAY
;鑾峰彇鎸夐敭鐘舵€
MOV DX,PC8255
IN AL,DX
TEST AL,01H
JNZ M13
JMP M04
M13:MOV AL,40H;宸︿晶鍦伴潰锛堟帀钀斤級
MOV DX,PB8255
OUT DX,AL
CALL DELAY
INC BL;鍙充晶鍔鍒
MOV AL,BH
MOV CL,4
SHL AL,CL
OR AL,BL
MOV DX,PA8255
OUT DX,AL
M0: JMP MAINLOOP
DELAY PROC NEAR;闀垮欢鏃
PUSH CX
PUSH BX
MOV BX,300;寰幆300*500娆
DLY1: MOV CX,500
DLY:NOP
NOP
NOP
LOOP DLY
DLY0:
DEC BX
JNZ DLY1
POP BX
POP CX
RET
DELAY ENDP
CODE ENDS
END START
乒乓球课设
于 2023-12-20 11:47:34 首次发布