📄 testa.asm
字号:
ORG 0000H
AJMP MAIN
ORG 0003H
ACALL AA0
RETI
ORG 0013H
ACALL TEST1
RETI
MAIN: MOV P0,#0FFH
MOV P2,#0FFH
SETB P3.2;外部中断0设置
SETB IT0
SETB EX0
SETB P3.3;外部中断1设置
SETB PX1
SETB IT1
SETB EX1
SETB EA
AJMP CASE2
TEST1: ORL P3,#0FFH
JNB P3.7,CASE1;转停止/启动P1/P2全部输出子程序
JNB P3.6,CASE2;转流水输出子程序
JNB P3.5,CASE3;转双路走马式输出子程序
JNB P3.4,CASE4;转四路走马式输出子程序
RET
TEST: ORL P3,#0FFH
JNB P3.7,CASE1;转停止/启动P1/P2全部输出子程序
JNB P3.6,CASE2;转流水输出子程序
JNB P3.5,CASE3;转双路走马式输出子程序
JNB P3.4,CASE4;转四路走马式输出子程序
CASE1: JNB P3.7,CASE1
MOV A,#00H
MOV P0,A
MOV P2,A
LCALL AA1
JNZ TEST
AJMP CASE1
CASE2: MOV R0,#OK2-TABLE2+1
MOV DPTR,#TABLE2
MOV R1,#00H
LOOP2: MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
INC R1
MOV A,R1
MOVC A,@A+DPTR
MOV P2,A
INC R1
ACALL DELAY
LCALL AA1
JNZ TEST
ACALL DELAY
LCALL AA1
JNZ TEST
ACALL DELAY
LCALL AA1
JNZ TEST
DEC R0
DJNZ R0,LOOP2
MOV R1,#00H
AJMP CASE2
CASE3: MOV R0,#OK3-TABLE3+1
MOV DPTR,#TABLE3
MOV R1,#00H
LOOP3: MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
INC R1
MOV A,R1
MOVC A,@A+DPTR
MOV P2,A
INC R1
ACALL DELAY
LCALL AA1
JNZ TEST
ACALL DELAY
LCALL AA1
JNZ TEST
ACALL DELAY
LCALL AA1
JNZ TEST
DEC R0
DJNZ R0,LOOP3
AJMP CASE3
CASE4: MOV R0,#OK4-TABLE4+1
MOV DPTR,#TABLE4
MOV R1,#00H
LOOP4: MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
INC R1
MOV A,R1
MOVC A,@A+DPTR
MOV P2,A
INC R1
ACALL DELAY
LCALL AA1
JNZ SS
ACALL DELAY
LCALL AA1
JNZ SS
ACALL DELAY
LCALL AA1
JNZ SS
DEC R0
DJNZ R0,LOOP4
AJMP CASE4
SS: LJMP TEST
AA0: ORL P3,#0FFH
JNB P3.1,CACSE5
JNB P3.0,CACSE6
RET
CACSE5: JNB P3.1,CACSE5
INC R4
AJMP AA0
CACSE6: CJNE R4,#01H,C1
C3: AJMP AA0
C1: JC C3
C2: JNB P3.0,C2
DEC R4
AJMP C3
AA1: MOV A,P3
ANL A,#0F0H
XRL A,#0F0H
RET
DELAY: MOV R4,#14H
MOV TMOD,#00000001B
TIMER: MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
WAIT: JB TF0,OK
AJMP WAIT
OK: CLR TF0
DJNZ R4,TIMER
RET
TABLE2: DB 11111110B
DB 11111111B
DB 11111100B
DB 11111111B
DB 11111000B
DB 11111111B
DB 11110000B
DB 11111111B
DB 11100000B
DB 11111111B
DB 11000000B
DB 11111111B
DB 10000000B
DB 11111111B;
DB 00000000B
DB 11111111B;
DB 00000000B
DB 01111111B;
DB 00000000B
DB 00111111B;
DB 00000000B
DB 00011111B;
DB 00000000B
DB 00001111B;
DB 00000000B
DB 00000111B;
DB 00000000B
DB 00000011B;
DB 00000000B
DB 00000001B;
DB 00000000B
DB 00000000B;
DB 00000001B
DB 00000000B;
DB 00000011B
DB 00000000B;
DB 00000111B
DB 00000000B;
DB 00001111B
DB 00000000B;
DB 00011111B
DB 00000000B;
DB 00111111B
DB 00000000B;
DB 01111111B
DB 00000000B;
DB 11111111B
DB 00000000B;
DB 11111111B
DB 10000000B;
DB 11111111B
DB 11000000B;
DB 11111111B
DB 11100000B;
DB 11111111B
DB 11110000B;
DB 11111111B
DB 11111000B;
DB 11111111B
DB 11111100B;
DB 11111111B
DB 11111110B;
DB 11111111B
OK2: DB 11111111B;
TABLE3: DB 11111100B
DB 11111111B;
DB 11110011B
DB 11111111B;
DB 11001111B
DB 11111111B;
DB 00111111B
DB 11111111B;
DB 11111111B
DB 00111111B;
DB 11111111B
DB 11001111B;
DB 11111111B
DB 11110011B;
DB 11111111B
OK3: DB 11111100B;
TABLE4: DB 11110000B
DB 11111111B;
DB 00001111B
DB 11111111B;
DB 11111111B
DB 00001111B;
DB 11111111B
OK4: DB 11110000B;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -