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

📄 main1.asm

📁 (1)完成键盘
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;@@@@@@@@@@@@@@@@@@@@@___MAIN____@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MAIN:
;*******************PASSWORD NUMBER*************************
                   NUM1 EQU  1
                   NUM2 EQU  2
                   NUM3 EQU  1
                   NUM4 EQU  2
                   NUM5 EQU  1
                   NUM6 EQU  2
                   LED1 EQU 30H
                   LED2 EQU 31H
                   LED3 EQU 32H
                   LED4 EQU 33H
                   LED5 EQU 34H
                   KEYTEST EQU 35H
;**********************************************************
START:             LCALL   L_TESTKEY
                   MOV     R4,A
                   ANL     A,#0FH
                   CJNE    A,#0FH,USER
;*******************ZJ  CALL PROGRAM***********************
                   MOV     A,R4
                   ANL     A,#0F0H
                   CPL     A
                   JNB      ACC.3,ZJ0
                   AJMP    START
 ZJ0:              CJNE   A,#01H,ZJ1
                   LCALL  L_LEDTEST
                   AJMP   START
 ZJ1:              CJNE   A,#02H,ZJ2
                   LCALL  L_BEEPTEST
                   AJMP   START
 ZJ2:              CJNE   A,#03H,ZJ3
                   LCALL  L_KEYTEST
                   AJMP   START
 ZJ3:              CJNE   A,#04H,ZJ4
                   LCALL  L_ADTEST
                   AJMP   START
 ZJ4:              CJNE   A,#05H,ZJ5
                   LCALL  L_WDOGTEST
                   AJMP   START
 ZJ5:              MOV  R5,#0FFH
                   LCALL  L_PLAYERRO
                   DJNZ  R5,ZJ5
                   AJMP START
;*******************ZJ  CALL PROGRAM  END***********************


;*******************USER PROGRAM***********************
USER:
;********************INPUT PASSWORD************************
USER1:
                   LCALL  KEY_TEST1
                   CJNE  A,#NUM1,INPUTERROR
                   LCALL  KEY_TEST1
                   CJNE  A,#NUM2,INPUTERROR
                   LCALL  KEY_TEST1
                   CJNE  A,#NUM3,INPUTERROR
                   LCALL  KEY_TEST1
                   CJNE  A,#NUM4,INPUTERROR
                   LCALL  KEY_TEST1
                   CJNE  A,#NUM5,INPUTERROR
                   LCALL  KEY_TEST1
                   CJNE  A,#NUM6,INPUTERROR
                   AJMP  USER2
INPUTERROR:        MOV R4,#0FFH
                   LCALL   L_PLAYERRO
                   DJNZ R4, INPUTERROR
                   AJMP  USER1
;********************INPUT PASSWORD************************
USER2:             LCALL  KEY_TEST2
                   CJNE  A,#1H,USER2
STORE:            LCALL  KEY_TEST
                   CJNE  A,#2H,TAKE
UPKEY:             LCALL  KEY_TEST1
                   CJNE  A,#4H,LEFTKEY
                   MOV  LED1,#0
                   MOV  LED2,#07EH
                   MOV  LED3,#07EH
                   MOV  LED4,#07EH
                   MOV  LED5,#07EH
                   MOV  @R0,LED5
                   MOV  R4,#0
UPKEY3:            MOV  R7,#0AH
                   PUSH 0H
UPKEY1:            LCALL KEY_TEST0
                   CJNE A,#2H,UPKEY4
                   INC  @R0
                   AJMP  UPKEY1
UPKEY4:            CJNE A,#4H,UPKEY2
                   INC  R4
                   MOV  A,R4
                   MOV  DPTR,#L_TAB
                   MOVC A,@A+DPTR
                   MOV   @R0,A
                   POP  0H
                   DJNZ R7,UPKEY1
                   AJMP  UPKEY3
UPKEY2:            CJNE A,#1,LEFTKEY
GROUP:















LEFTKEY:           CJNE  A,#3H,TAKE
TAKE:              CJNE  A,#3H,SETKEY
SETKEY:            CJNE  A,#4H,STORE



;************************L_TESTKEY  PLAY ---**************888
L_TESTKEY:         LCALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,LKEY_TEST0
                   LCALL   L_PLAY5__
                   AJMP    L_TESTKEY
LKEY_TEST0:        MOV     R5,#5H
                   MOV     35H,A
LKEY_TEST1:        LCALL   L_DELAY2MS
                   DJNZ    R5,LKEY_TEST1
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,35H,L_TESTKEY
                   RET
;***********************L_TESTKEY   END**************88
 ;************************L_TESTKEY0  PLAY **************888
L_TESTKEY0:        MOV B,@R0
L_TESTKEYD:        MOV @R0,B
                   MOV R1,#5H
L_TESTKEYC:        MOV R2,#0FFH
L_TESTKEYB:        MOV R3,#0FFH
L_TESTKEYA:        LCALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,LKEY_TEST00
                   LCALL   L_PLAY5LED
                   DJNZ   R3,L_TESTKEYA
                   DJNZ   R2,L_TESTKEYB
                   DJNZ   R1,L_TESTKEYC

                   MOV @R0,#0H
                   MOV R1,#5H
L_TESTKEYC1:       MOV R2,#0FFH
L_TESTKEYB1:       MOV R3,#0FFH
L_TESTKEYA1:       LCALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,LKEY_TEST00
                   LCALL   L_PLAY5LED
                   DJNZ   R3,L_TESTKEYA1
                   DJNZ   R2,L_TESTKEYB1
                   DJNZ   R1,L_TESTKEYC1
                   AJMP    L_TESTKEYD
LKEY_TEST00:        MOV     R5,#5H
                    MOV    35H,A
LKEY_TEST01:        LCALL   L_DELAY2MS
                   DJNZ    R5,LKEY_TEST01
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,35H,L_TESTKEYD
                    RET
;***********************L_TESTKEY1   END**************88
;************************L_TESTKEY1  PLAY INPUT**************888
L_TESTKEY1:         LCALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,LKEY_TEST10
                   LCALL   L_PLAYINPUT
                   AJMP    L_TESTKEY1
LKEY_TEST10:        MOV     R5,#5H
                    MOV    35H,A
LKEY_TEST11:        LCALL   L_DELAY2MS
                   DJNZ    R5,LKEY_TEST11
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,#35H,L_TESTKEY1
                     RET
;***********************L_TESTKEY1   END**************88
 ;************************L_TESTKEY2 PLAY USER **************888
L_TESTKEY2:         LCALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,LKEY_TEST20
                   LCALL   L_PLAYUSER
                   AJMP    L_TESTKEY2
LKEY_TEST20:        MOV     R5,#5H
                    MOV    35H,A
LKEY_TEST21:        LCALL   L_DELAY2MS
                   DJNZ    R5,LKEY_TEST21
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,#35H,L_TESTKEY2
                     RET
;***********************L_TESTKEY2   END**************88

;***************L_PLAYERRO**********************
L_PLAYERRO:     MOV LED1,#0H
                MOV LED2,#0F2H
                MOV LED3,#62H
                MOV LED4,#62H
                MOV LED5,#7EH
                LCALL L_PLAY5LED
                RET

;*****************L_PLAYERRO END***************8888888
;******************L_PLAYUSER********************************
L_PLAYUSER:     MOV LED1,#0H
                MOV LED2,#7CH
                MOV LED3,#0DAH
                MOV LED4,#0F2H
                MOV LED5,#62H
                LCALL L_PLAY5LED
                RET
;************ L_PLAYUSER END ********************************
;******************L_PLAYINPUT********************************
L_PLAYINPUT:    MOV LED1,#0CH
                MOV LED2,#6EH
                MOV LED3,#0E6H
                MOV LED4,#07CH
                MOV LED5,#0EH
                LCALL L_PLAY5LED
                RET
;************ L_PLAYINPUT END ********************************



 ;***********************ZJKEY TEST***********************
 ZJKEY_TEST:       ACALL  SEL8
                   MOV    A,P1
                   ANL    A,#0F0H
                   CJNE   A,#0F0H,ZJKEY_TEST0
                   ACALL   L_PLAY5__
                   AJMP    ZJKEY_TEST
ZJKEY_TEST0:       ACALL   L_DELAY2MS
                   CJNE   A,#0F0H,ZJKEY_TEST9
                   AJMP    ZJKEY_TEST
ZJKEY_TEST9:       JNB    ACC.4,ZJKEY_TEST1
                   JNB    ACC.5,ZJKEY_TEST2
                   JNB    ACC.6,ZJKEY_TEST3
                   JNB    ACC.7,ZJKEY_TEST4
                   AJMP   ZJKEY_TEST
ZJKEY_TEST1:         MOV A,#1H
                   RET
ZJKEY_TEST2:         MOV A,#2H
                   RET
ZJKEY_TEST3:         MOV A,#3H
                   RET
ZJKEY_TEST4:         MOV A,#4H
                   RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -