按键1 控制流水灯放下,按一下改变一下
按键2 控制流水灯速度,, 随便设置了三级速度
DATA SEGMENT
FX DB 0
S1 DB 0
SD DW 300
POT_A EQU 30H
POT_B EQU 32H
POT_C EQU 34H
POT_K EQU 36H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MAIN PROC FAR
CLI
MOV AX,DATA
MOV DS,AX
MOV AL,82H ;8255
OUT POT_K,AL
PUSH DS
XOR AX,AX
MOV DX,AX
MOV SI,60H*4
MOV AX,OFFSET ZD
MOV [SI],AX
MOV AX,SEG ZD
MOV [SI+2],AX
PUSH DX
MOV AL,1
HERE:
STI
LED:
MOV AH,FX
TEST AH,1
OUT POT_A,AL
JZ NIXIANG
ROL AL,1
JMP LED1
NIXIANG:ROR AL,1
LED1:
MOV BL,100
DELA:
MOV CX,SD
DEL: LOOP DEL
DEC BL
JNZ DELA
JMP HERE
MAIN endp
ZD PROC
PUSH AX
IN AL,POT_B
TEST AL,1
JZ WAY
TEST AL,2
JNZ EXIT
NEX0:
MOV AL,S1
INC AL
MOV S1,AL
CMP AL,1
JNZ NEX1
MOV DX,3000
MOV SD,DX
JMP EXIT
NEX1:
CMP AL,2
JNZ NEX2
MOV DX,1000
MOV SD,DX
JMP EXIT
NEX2:
CMP AL,3
JNZ NEXT3
MOV DX,300
MOV SD,DX
JMP EXIT
NEXT3:
MOV AL,0
MOV S1,AL
JMP NEX0
WAY: MOV AH,FX
INC AH
MOV FX,AH
EXIT:
POP AX
Iret
ZD endp
CODE ENDS
END START