汇编语言 51单片机,外部中断控制流水灯?
ORG 0000H ; 试试这个 流水灯的编码随便改
LJMP MAIN
ORG 0003H
LJMP LINT0
ORG 000BH
LJMP LT0ZD
ORG 0030H
MAIN: MOV SP, #60H
MOV TMOD, #00H
MOV IE, #81H
MOV TL0, #(8192-2500)MOD 32
MOV TH0, #(8192-2500)/32
SETB TR0
MOV R5, #20
LOOP: MOV R3, #48
CJNE R3, #0, $
LJMP LOOP
LINT0: CPL ET0
RETI
LT0ZD: PUSH PSW ; T0 中断
PUSH ACC
MOV TL0, #(8192-2500)MOD 32
MOV TH0, #(8192-2500)/32
DJNZ R5, LT0Z2
MOV R5, #30 ; 可以调整速度
MOV A, R3
LCALL LSDIN
MOV P1, A
DEC R3
LT0Z2: POP ACC
POP PSW
RETI
LSDIN: MOVC A,@A+PC
RET
LSDBM: DB 11111110B,11111101B,11111011B,11110111B ; 流水灯的编码1
DB 11101111B,11011111B,10111111B,01111111B
DB 01111111B,10111111B,11011111B,11101111B
DB 11110111B,11111011B,11111101B,11111110B
DB 11111100B,11111001B,11110011B,11100111B ; 流水灯的编码2
DB 11001111B,10011111B,00111111B,01111110B
DB 01111110B,00111111B,10011111B,11001111B
DB 11100111B,11110011B,11111001B,11111100B
DB 11111000B,11110001B,11100011B,11000111B ; 流水灯的编码3
DB 10001111B,00011111B,00111110B,01111100B
DB 01111100B,00111110B,00011111B,10001111B
DB 11000111B,11100011B,11110001B,11111000B
END