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

📄 main7.asm

📁 (1)完成键盘
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;@@@@@@@@@@@@@@@@@@@@@___MAIN____@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MAIN:              ;AJMP L_ADTEST
;*******************PASSWORD NUMBER*************************
                   NUM1 EQU  20H
                   NUM2 EQU  21H
                   NUM3 EQU  22H
                   NUM4 EQU  23H
                   NUM5 EQU  24H
                   NUM6 EQU  25H
                   LINSHI1   EQU    26H
                   LINSHI2   EQU    27H
                   LINSHI3   EQU    28H
                   LINSHI4   EQU    29H
                   LINSHI5   EQU    2AH
                   LINSHI6   EQU    2BH
                   LED1 EQU 30H
                   LED2 EQU 31H
                   LED3 EQU 32H
                   LED4 EQU 33H
                   LED5 EQU 34H
                   KEYTEST EQU 35H
                   GROUPLINSHI  EQU 36H
                   BAOYUANZHI   EQU 37H
                   ADH   EQU    38H
                   ADL   EQU    39H
                  ;STOREDATA:40H~~~ 70H
                   MOV SP,#71H
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
                ;SHI FU GAI GUO PASSWORD
TESTCSN:           CLR CS
                   MOV A, #0BH
                   LCALL L_W_BETY
                   MOV A,#0F6H
                   LCALL L_W_BETY
TESTCSN1:          LCALL L_R_BETY
                   CJNE A,#12H,TESTCSN3
                   LCALL L_R_BETY
                   CJNE A,#34H,TESTCSN3
                   AJMP   READSN
TESTCSN3:          MOV   R0,#20H
                   MOV   R1,#6H
TESTCSN2:          MOV   @R0,#1H
                   INC   R0
                   DJNZ  R1,TESTCSN2
                   AJMP   START
                  ;PASSWORD ARE IN "#0FH" OF WATCHDOG
READSN:            MOV R0,#20H
                   MOV R1,#6H
                   CLR CS
                   MOV A, #0BH
                   LCALL L_W_BETY
                   MOV A,#0F0H
                   LCALL L_W_BETY
READSN1:           LCALL L_R_BETY
                   MOV   @R0,A
                   INC   R0
                   DJNZ  R1,READSN1
                   SETB CS
;----------------------MAIN-----------------------------------------
START:
                   LCALL   L_TESTKEY
                   MOV     R4,A
                   ANL     A,#0FH
                   CJNE    A,#0FH,USER
;*******************ZJ  CALL PROGRAM***********************
                   MOV     A,R4
                   CPL     A
                   ANL     A,#0F0H
                   SWAP    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,#030H
 ZJ6:              LCALL  L_PLAYERRO
                   DJNZ  R5,ZJ6
                   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,#030H
INPUTERRORC:       LCALL   L_PLAYERRO
                   DJNZ R4, INPUTERRORC
                   AJMP  START
;********************INPUT SET KEK MODE***********************
ZZSETKEY:          AJMP    SETKEY
USER2:             LCALL  KEY_TEST2
                   CJNE  A,#1H,ZZSETKEY    ;SET MODE
;************************STORE DATA****************************
STORE:             LCALL  KEY_TEST2     ;CHARGE LED
                   CJNE  A,#3H,ZHONGZHUAN_TAKE
UPKEY:             LCALL  KEY_TEST1
                   CJNE  A,#4H,STORE   ;KEY4 TOCONTINUE
                   MOV  LED1,#0
                   MOV  LED2,#07EH
                   MOV  LED3,#07EH
                   MOV  LED4,#07EH
                   MOV  LED5,#07EH
                   MOV  R0,#LED5
UPKEY3:            MOV  R4,#0
                   MOV  R3,#0AH
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
                   DJNZ R3,UPKEY1
                   AJMP  UPKEY3
ZHONGZHUAN_TAKE:   AJMP  TAKE
UPKEY2:            CJNE A,#2H,UPUP
                   AJMP  UPKEY
UPUP:              CJNE A,#1,UPKEY1    ;CAN INSTAND OF LEFT KEY
;------------------STORE GROUP AND DATA----------------------------
GROUP:             MOV  36H,R4
UPKEYA:            LCALL  KEY_TEST1
                   CJNE  A,#4H,UPKEYA
                   MOV  LED1,#0
                   MOV  LED2,#07EH
                   MOV  LED3,#07EH
                   MOV  LED4,#07EH
                   MOV  LED5,#07EH
                   MOV  R0,#LED5

UPKEYA3:           MOV  R3,#0AH
                   MOV  R4,#0
UPKEYA1:           LCALL KEY_TEST0
                   CJNE A,#2H,UPKEYA4
                   INC  @R0
                   AJMP  UPKEYA1
UPKEYA4:           CJNE A,#4H,UPKEYA2
                   MOV R2,#1H
                   AJMP  BAOZHI
GUOSHU:            MOV R4,#0H
                   DJNZ R2,POLI
BAOZHI:            MOV  A,R4          ;
                   SUBB A,#0AH        ;
                   JNC  GUOSHU        ;  YIWEI HOU CAI JUMP
                   MOV  A,R4          ;
                   MOV  DPTR ,#L_TAB   ;
                   MOVC  A,@A+DPTR     ;
                   MOV   37H,@R0       ;
                   INC   R4            ;
                   CJNE  A,37H,BAOZHI
PILIKOU:           MOV  A,R4         ;
                   MOV  DPTR,#L_TAB  ;hai ke yi baoliu yuan zhi
                   MOVC A,@A+DPTR    ;danxuyao zenjian chengxu
                   MOV   @R0,A       ;
                   DJNZ R3,UPKEYA1
                   AJMP  UPKEYA3
POLI:              INC  R4
                   AJMP PILIKOU
UPKEYA2:           CJNE A,#1,LEFTKEY  ;
                   MOV A,36H          ;
                   MOV B,#5H          ;
                   MUL AB             ;
                   ADD A,#40H         ;STORE DATA
                   MOV R1,#30H        ;
                   MOV R0,A           ;
                   MOV R2,#5H         ;
STOREDATA:         MOV A,@R1          ;
                   MOV @R0,A          ;
                   INC R1             ;
                   INC R0             ;
                   DJNZ R2,STOREDATA  ;
                   AJMP UPKEY
;---------------------LEFTKEY---------------------------------
LEFTKEY:           CJNE  A,#3H,UPKEYA1
                   DEC   R0
                   MOV   A,R0
                   SUBB  A,#31H
                   JC    LEFTROL
                   AJMP  UPKEYA1
LEFTROL:           MOV   A,R0
                   SUBB  A,#2FH
                   JNC   CHULILED1
                   MOV   R0, #34H
                   AJMP  UPKEYA1
CHULILED1:
CHULI1:            LCALL KEY_TEST0       ;
                   CJNE A,#2H,CHULI4     ;
                   INC  @R0              ;
                   AJMP  CHULI1          ;
CHULI4:            CJNE A,#4H,UPKEYA2    ;
                   MOV  A,R4             ; LED1 PLAY CHULI
                   SUBB A,#4H            ;
                   JNC   CLRR4            ;
                   INC  R4               ;
CLRR4F:            MOV  A,R4             ;
                   MOV  DPTR,#L_LED1B    ;
                   MOVC A,@A+DPTR        ;
                   MOV  @R0,A            ;
                   AJMP  CHULI1          ;
CLRR4:             MOV R4,#0H            ;
                   AJMP   CLRR4F         ;
;--------------------------------------------------------------
L_LED1B: DB 0H,0CH,8CH,80H
;*************************STORE  DATA END***********************
;*************************TAKEMOVE DATA*************************
ZZSTORE:           AJMP  STORE
RFF:               CJNE  A,#2H,ZZSTORE
                   AJMP  USER2
TAKE:              CJNE  A,#4H,RFF
TAKEA:             LCALL  KEY_TEST1
                   CJNE  A,#4H,ZZSTORE   ;KEY4 TOCONTINUE
                   MOV  LED1,#0
                   MOV  LED2,#07EH
                   MOV  LED3,#07EH
                   MOV  LED4,#07EH
                   MOV  LED5,#07EH
                   MOV  R0,#LED5
TAKE3:             MOV  R4,#0
                   MOV  R3,#0AH
TAKE1:             LCALL KEY_TEST0
                   CJNE A,#4H,TAKE2
                   INC  R4
                   MOV  A,R4
                   MOV  DPTR,#L_TAB
                   MOVC A,@A+DPTR
                   MOV   @R0,A
                   DJNZ R3,TAKE1
                   AJMP  TAKE3
TAKE2:             CJNE A,#2H,TATA
                   AJMP  TAKEA
TATA:              CJNE A,#1,TAKE1
;-------------------------------------------------------------------
                   MOV A,R4           ;
                   MOV B,#5H          ;
                   MUL AB             ;
                   ADD A,#40H         ;TAKE DATA
                   MOV R1,#30H        ;
                   MOV R0,A           ;
                   MOV R2,#5H         ;
TAKEDATA:          MOV A,@R0          ;
                   MOV @R1,A          ;
                   INC R1             ;
                   INC R0             ;
                   DJNZ R2,TAKEDATA   ;
TAKETEST:          LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,#0FFH,TAKEOVER
                   LCALL   L_PLAY5LED
                   AJMP    TAKETEST
TAKEOVER:          MOV     R5,#2H
                   MOV     35H,A
TAKEOVER1:         LCALL   L_DELAY2MS
                   DJNZ    R5,TAKEOVER1
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,35H,TAKETEST
NOKEYTA:           LCALL   SEL8
NOKEYT:            MOV     A,P1
                   LCALL   L_PLAY5LED
                   CJNE    A,#0FFH,NOKEYTA
                   MOV     R5,#2H
NOKEYTB:           LCALL   L_DELAY2MS
                   DJNZ    R5,NOKEYTB
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,#0FFH,NOKEYTA
                   MOV  A,35H
                   AJMP     TAKE1
;*************************TAKE DTAT OVER**************************
;**************************SET PASSWORD*************************
ZZRETURN:          AJMP  RETURN
SETKEY:            CJNE   A,#3H,ZZRETURN
SETKEY1:           LCALL  KEY_TEST1
                   CJNE   A,NUM1,INPUTERROR1
                   LCALL  KEY_TEST1
                   CJNE   A,NUM2,INPUTERROR1
                   LCALL  KEY_TEST1
                   CJNE   A,NUM3,INPUTERROR1
                   LCALL  KEY_TEST1
                   CJNE   A,NUM4,INPUTERROR1
                   LCALL  KEY_TEST1
                   CJNE   A,NUM5,INPUTERROR1
                   LCALL  KEY_TEST1
                   CJNE   A,NUM6,INPUTERROR1
                   AJMP  SETKEY2
INPUTERROR1:       MOV R4,#010H
INPUTERRORAA:      LCALL   L_PLAYERRO
                   DJNZ R4, INPUTERRORAA
                   AJMP  SETKEY1
;-------------------------INPUT NEW--------------------------------------
SETKEY2:           MOV    R0,#26H       ;
                   MOV    R1,#6H        ;
SETKEY3:           LCALL  KEY_TEST2     ; INPUT NEW PASSWORD
                   MOV  @R0,A           ;
                   INC  R0              ;
                   DJNZ R1,SETKEY3      ;
;----------------------INPUT AGAIN--------------------------------------------
SETKEYA1:          LCALL  KEY_TEST1
                   CJNE   A,26H,INPUTERRORA1
                   LCALL  KEY_TEST1
                   CJNE   A,27H,INPUTERRORA1
                   LCALL  KEY_TEST1
                   CJNE   A,28H,INPUTERRORA1
                   LCALL  KEY_TEST1
                   CJNE   A,29H,INPUTERRORA1
                   LCALL  KEY_TEST1
                   CJNE   A,2AH,INPUTERRORA1
                   LCALL  KEY_TEST1
                   CJNE   A,2BH,INPUTERRORA1
                   AJMP  SETKEYB
INPUTERRORA1:      MOV R4,#010H
INPUTERRORA11:     LCALL   L_PLAYERRO
                   DJNZ R4, INPUTERRORA11
                   AJMP  SETKEY2
;---------------------STORE PASSWORD-----------------------------------------
SETKEYB:           MOV R1,#20H
                   MOV R0,#26H
WRITESN:           CLR  CS
                   MOV A,#06H
                   ACALL L_W_BETY
                   SETB CS
                   CLR CS
                   MOV A,#0AH
                   ACALL L_W_BETY
                   MOV A,#0F0H
                   ACALL L_W_BETY
                   MOV R2,#4H
WRITESN1:          MOV A,@R0
                   MOV @R1,A
                   ACALL L_W_BETY
                   INC R0
                   INC R1
                   DJNZ R2,WRITESN1
                   SETB CS
WRITESNB:           CLR  CS
                   MOV A,#06H
                   ACALL L_W_BETY
                   SETB CS
                   CLR CS
                   MOV A,#0AH
                   ACALL L_W_BETY
                   MOV A,#0F4H
                   ACALL L_W_BETY
                   MOV R2,#2H
WRITESNB1:         MOV A,@R0
                   MOV @R1,A
                   ACALL L_W_BETY
                   INC R0
                   INC R1
                   DJNZ R2,WRITESNB1
                   MOV  A,#12H
                   ACALL L_W_BETY
                   MOV  A,#34H
                   ACALL L_W_BETY
                   SETB CS
                   AJMP  USER2
;***************************************************************
RETURN:            CJNE  A,#2H,RETURNA
                   AJMP  START
RETURNA:           AJMP USER2
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;************************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,#2H
                   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

⌨️ 快捷键说明

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