⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testa.asm

📁 电子扫描器。主要实现16路扫描输出
💻 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 + -