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

📄 main.asm

📁 (1)完成键盘
💻 ASM
📖 第 1 页 / 共 3 页
字号:
                MOV A, #3H
                ACALL L_W_BETY
                MOV A,#L_W_AD
                ACALL L_W_BETY
                ACALL L_R_BETY
                SETB CS
                RET
 ;******************END***************************************
 L_TESTWIP:      CLR  CS
                CLR  SCK
                MOV A,#5H
                ACALL L_W_BETY
                ACALL L_R_BETY
                SETB CS
                JB ACC.0,L_TESTWIP
                RET
 ;*****************ZI-PROGRAM*****************************
 L_W_BETY:
                MOV R7,#8H
L_W_BETY1:      ;CLR SCK
                RLC A
                MOV SI,C
                CLR SCK
                SETB SCK
                DJNZ R7,L_W_BETY1
                RET
          ;*****************************
L_R_BETY:       MOV R7,#8H
L_R_BETY1:      SETB SCK
                CLR  SCK
                MOV C,SO
                RLC  A
                ;CLR  SCK
                DJNZ R7,L_R_BETY1
                RET
                NOP
                   NOP
                   LJMP  L_EEROR
;*******************END********************************
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
L_EXP1:         LCALL L_KEYBEEP
                RET
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
L_EXP2:         LCALL L_KEYBEEP
                RET
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
                                                                                                                              ;***************DELAY PROGRAM***************************
L_DELAY2MS:
                 MOV R7,#06H
L_DELAY2MS1:     MOV R6,#0FFH
L_DELAY2MS2:     DJNZ R6,L_DELAY2MS2
                 DJNZ R7,L_DELAY2MS1
                 RET
 ;******************END************************************
  ;****************PLAY PROGRAM******************************
L_W_PLAY:
                 MOV R5,A
                 ANL A,#0FH
                 MOV DPTR,#L_TAB
                 MOVC A,@A+DPTR
                 MOV LED5,A
                 MOV A,R5
                 ANL A,#0F0H
                 SWAP A
                 MOVC A,@A+DPTR
                 MOV LED4,A
                 ;==============
L_W_PLAY1:       ACALL L_PLAY4
                 ACALL L_DELAY2MS
                 ACALL L_PLAY5
                 ACALL L_DELAY2MS
                 ACALL SEL8
                 MOV  A,P1                 ; IF K4 PRESS THEN RETURN
                 JB ACC.3,L_W_PLAY1  ;  =======================
                 RET
 ;*******************END*****************************************
 ;****************** PLAY ZI PROGRAM***************************
L_PLAY1:          MOV   P0,LED1
                  CALL SEL1
                  RET
L_PLAY2:          MOV   P0,LED2
                  ACALL SEL2
                  RET
L_PLAY3:          MOV   P0,LED3
                  ACALL SEL3
                  RET
L_PLAY4:          MOV   P0,LED4
                  ACALL SEL4
                  RET
L_PLAY5:          MOV   P0,LED5
                  ACALL SEL5
                  RET
 ;******************END********************************
 ;*************SEL PROGRAM***********************
SEL1:              CLR   P2.5
                   CLR   P2.6
                   CLR   P2.7
                   RET
SEL2:              CLR   P2.5
                   CLR   P2.6
                   SETB  P2.7
                   RET
SEL3:              CLR   P2.5
                   SETB  P2.6
                   CLR   P2.7
                   RET
SEL4:              CLR   P2.5
                   SETB  P2.6
                   SETB  P2.7
                   RET
SEL5:              SETB  P2.5
                   CLR   P2.6
                   CLR   P2.7
                   RET
SEL7:              SETB  P2.5
                   SETB  P2.6
                   CLR  P2.7
SEL8:              SETB  P2.5
                   SETB  P2.6
                   SETB  P2.7
                   RET
                   NOP
                   NOP
                   LJMP  L_EEROR
 ;************************END******************************
;HHHHHHHHHHHHHHHHHHH--KEY_TEST---HHHHHHHHHHHHHHHHHHHHHHHHHHH
;************************ KEY_TEST0**********************
KEY_TEST0:        LCALL   L_TESTKEY0
                   ACALL   CHULITESTKEY
                   RET
;************************ KEY_TEST1**********************
KEY_TEST1:        LCALL   L_TESTKEY1
                   ACALL   CHULITESTKEY
                   RET
;************************ KEY_TEST2**********************
KEY_TEST2:        LCALL   L_TESTKEY2
                   ACALL   CHULITESTKEY
                   RET
;************************ KEY_TEST3**********************
KEY_TEST3:        LCALL   L_TESTKEY3
                   ACALL   CHULITESTKEY
                   RET
;************************ KEY_TEST4**********************
KEY_TEST4:         LCALL   L_TESTKEY4
                   ACALL   CHULITESTKEY
                   RET
;************************ KEY_TEST5**********************
KEY_TEST5:         LCALL   L_TESTKEY5
                   ACALL   CHULITESTKEY
                   RET
;***********************KEY TEST***********************
 KEY_TEST:
                   LCALL   L_TESTKEY
CHULITESTKEY:      ANL    A,#0FH
KEY_TEST9:         JNB    ACC.0,KEY_TEST01
                   JNB    ACC.1,KEY_TEST02
                   JNB    ACC.2,KEY_TEST03
                   JNB    ACC.3,KEY_TEST04
                   AJMP   KEY_TEST
KEY_TEST01:         MOV A,#1H
                   RET
KEY_TEST02:         MOV A,#2H
                   RET
KEY_TEST03:         MOV A,#3H
                   RET
KEY_TEST04:         MOV A,#4H
                    RET
                    NOP
                   NOP
                   LJMP  L_EEROR
;************************END***********************************
;************************L_PLAY5__*****************************
L_PLAY5__:
                MOV LED1,#80H
                MOV LED2,#80H
                MOV LED3,#80H
                MOV LED4,#80H
                MOV LED5,#80H
L_PLAY5LED:     ACALL L_PLAY1
                ACALL L_DELAY2MS
                ACALL L_PLAY2
                ACALL L_DELAY2MS
                ACALL L_PLAY3
                ACALL L_DELAY2MS
                ACALL L_PLAY4
                ACALL L_DELAY2MS
                ACALL L_PLAY5
                ACALL L_DELAY2MS
                LCALL L_FEEDDOG
                RET
;OOOOOOOOOOOOOOOOOOOOOOOOOL_TESTKEY00000000000000000000000000
;************************L_TESTKEY  PLAY ---**************888
L_TESTKEY:         LCALL  SEL8
                   MOV    A,P1
                   LCALL   L_PLAY5__
                   CJNE   A,#0FFH,LKEY_TEST0
                   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:        LCALL NOKEY5A
                   MOV B,@R0
L_TESTKEYD:        MOV @R0,B
                   SETB RS1
                   SETB RS0
                   MOV R1,#10H
L_TESTKEYC:
                   LCALL  SEL8
                   MOV    A,P1
                   LCALL   L_PLAY5LED
                   CJNE   A,#0FFH,LKEY_TEST00
                   DJNZ   R1,L_TESTKEYC
                   CLR RS1
                   CLR RS0
                   MOV @R0,#0H
                   SETB RS1
                   SETB RS0
                   MOV R1,#10H
L_TESTKEYC1:
                   LCALL  SEL8
                   MOV    A,P1
                   LCALL   L_PLAY5LED
                   CJNE   A,#0FFH,LKEY_TEST00
                   DJNZ   R1,L_TESTKEYC1
                   CLR RS1
                   CLR RS0
                   AJMP    L_TESTKEYD
LKEY_TEST00:       CLR RS1
                   CLR RS0
                   MOV     R5,#2H
                   MOV     @R0,B
                   MOV    35H,A
LKEY_TEST01:       LCALL   L_DELAY2MS
                   DJNZ    R5,LKEY_TEST01
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,35H,L_TESTKEYD
                   RET
;***********************L_TESTKEY0 END**************88
;************************L_TESTKEY1  PLAY INPUT**************888
L_TESTKEY1:        LCALL NOKEY5A
L_TESTKEY1A:       LCALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,LKEY_TEST10
                   LCALL   L_PLAYINPUT
                   AJMP    L_TESTKEY1A
LKEY_TEST10:       MOV     R5,#2H
                   MOV    35H,A
LKEY_TEST11:       LCALL   L_DELAY2MS
                   DJNZ    R5,LKEY_TEST11
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,35H,L_TESTKEY1A
                  RET
;***********************L_TESTKEY1   END************************
;************************L_TESTKEY2 PLAY USER *****************
L_TESTKEY2:         LCALL NOKEY5A
L_TESTKEY2A:         LCALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,LKEY_TEST20
                   LCALL   L_PLAYUSER
                   LJMP    L_TESTKEY2A
LKEY_TEST20:        MOV     R5,#2H
                    MOV    35H,A
LKEY_TEST21:        LCALL   L_DELAY2MS
                   DJNZ    R5,LKEY_TEST21
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,35H,L_TESTKEY2A
   RET
;***********************L_TESTKEY2   END***********************
;************************L_TESTKEY3 PLAY STOR *****************
L_TESTKEY3:         LCALL NOKEY5A
L_TESTKEY3A:        LCALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,LKEY_TEST30
                   LCALL   L_PLAYSTOR
                   LJMP    L_TESTKEY3A
LKEY_TEST30:        MOV     R5,#2H
                    MOV    35H,A
LKEY_TEST31:        LCALL   L_DELAY2MS
                   DJNZ    R5,LKEY_TEST31
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,35H,L_TESTKEY3A
                 RET
;***********************L_TESTKEY3   END***********************
;************************L_TESTKEY4 PLAY FIND *****************
L_TESTKEY4:        LCALL NOKEY5A
L_TESTKEY4A:       LCALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,LKEY_TEST40
                   LCALL   L_PLAYFIND
                   LJMP    L_TESTKEY4A
LKEY_TEST40:        MOV     R5,#2H
                    MOV    35H,A
LKEY_TEST41:        LCALL   L_DELAY2MS
                   DJNZ    R5,LKEY_TEST41
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,35H,L_TESTKEY4A
                   RET
;***********************L_TESTKEY4   END***********************
 ;************************L_TESTKEY5 PLAY SET *****************
L_TESTKEY5:        LCALL NOKEY5A
L_TESTKEY5A:       LCALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,LKEY_TEST50
                   LCALL   L_PLAYSET
                   LJMP    L_TESTKEY5A
LKEY_TEST50:        MOV     R5,#2H
                    MOV    35H,A
LKEY_TEST51:        LCALL   L_DELAY2MS
                   DJNZ    R5,LKEY_TEST51
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,35H,L_TESTKEY5A
                   RET
NOKEY5A:           LCALL   SEL8
NOKEY5:            MOV     A,P1
                   LCALL   L_PLAY5LED
                   CJNE    A,#0FFH,NOKEY5A
                   MOV     R5,#2H
NOKEY5B:           LCALL   L_DELAY2MS
                   DJNZ    R5,NOKEY5B
                   LCALL   SEL8
                   MOV     A,P1
                   CJNE    A,#0FFH,NOKEY5A
                    RET
                    NOP
                   NOP
                   LJMP  L_EEROR
;***********************L_TESTKEY5  END***********************
;***************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*****************************
;******************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 ********************************
;******************L_PLAYSTOR********************************
L_PLAYSTOR:    MOV LED1, #00H
                MOV LED2,#0DAH
                MOV LED3,#0EH
                MOV LED4,#07EH
                MOV LED5,#062H
                LCALL L_PLAY5LED
                RET
;************ L_PLAYSTORE END ********************************
;******************L_PLAYFIND********************************
L_PLAYFIND:    MOV LED1,#0H
                MOV LED2,#0E2H
                MOV LED3,#0CH
                MOV LED4,#06EH
                MOV LED5,#0BCH
                LCALL L_PLAY5LED
                RET
;************ L_PLAYFIND END ********************************
;******************L_PLAYSET********************************
L_PLAYSET:      MOV LED1,#0H
                MOV LED2,#0DAH
                MOV LED3,#0F2H
                MOV LED4,#0EH
                MOV LED5,#0H
                LCALL L_PLAY5LED
                RET
                NOP
                NOP
                LJMP  L_EEROR
;************ L_PLAYSET END ********************************
;000000000000000000000000000000000000000000000000000000000000
;***********************END***********************************
L_TAB:
        DB 7EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH,0EH
        DB 0FEH,0DEH,0EEH,0F8H,72H,0BCH,0F2H,0E2H
;*********************************************************                          ***

 END

⌨️ 快捷键说明

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