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

📄 l_w.asm

📁 (1)完成键盘
💻 ASM
字号:
;*****************WATCH DOG TEST****************
L_WDOG:
;*****************DEFINE**************************************
                L_W_AD EQU 0F3H ;WATCH DOG ADDRESS
                L_R_AD  EQU 1H ;RAM ADDRAESS
                CS EQU P3.4
                SCK EQU P3.5
                SI EQU P3.6
                SO EQU P3.7
                LED1 EQU 40H
                LED2 EQU 41H
                LED3 EQU 42H
                LED4 EQU 43H
                LED5 EQU 44H

;***************MAIN*********************************

L_KEY:          ACALL KEY_TEST
                CJNE  A,#1H, L_KEY1
                ACALL  L_READ
                ACALL  L_W_PLAY
                AJMP   L_KEY
L_KEY1:
                CJNE  A,#2H, L_KEY2
                ACALL  L_WRITE

L_KEY2:          AJMP   L_KEY
;***********WATCH DOG  WRITE PROGRAM**************
L_WRITE:           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,#6H
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
                RET
;****************END***********************************
;************ WATCH DOG READ PROGRAM**********************
L_READ:         CLR CS
                MOV R0,#50H
                MOV R2,#21H
                MOV A,#0BH
                ACALL L_W_BETY
                MOV A,#0E0H
                ACALL L_W_BETY
KKK:            ACALL L_R_BETY
                MOV  @R0,A
                INC R0
                DJNZ R2,KKK
                SETB CS
                RET
 ;******************END***************************************
 ;*****************ZI-PROGRAM*****************************
 L_W_BETY:
                MOV R7,#8H
L_W_BETY1:      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
                DJNZ R7,L_R_BETY1
                RET
;*******************END********************************
;***************DELAY PROGRAM***************************
L_DELAY10MS:
                 MOV R7,#08H
L_DELAY10MS1:     MOV R6,#0FFH
L_DELAY10MS2:     DJNZ R6,L_DELAY10MS2
                 DJNZ R7,L_DELAY10MS1
                 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_DELAY10MS
                 ACALL L_PLAY5
                 ACALL L_DELAY10MS
                 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:              clr p2.7
                   setb p2.6
                   setb p2.5
                   ret
sel8:              setb p2.7
                   setb p2.6
                   setb p2.5

                   ret
 ;************************END******************************
 ;***********************KEY TEST***********************
 KEY_TEST:         ACALL  SEL8
                   MOV    A,P1
                   CJNE   A,#0FFH,KEY_TEST0
                   ACALL   L_PLAY5__
                   AJMP    KEY_TEST
KEY_TEST0:         ACALL   L_DELAY10MS
                   CJNE   A,#0FFH,KEY_TEST5
                   AJMP    KEY_TEST
KEY_TEST5:         JNB    ACC.0,KEY_TEST1
                   JNB    ACC.1,KEY_TEST2
                   JNB    ACC.2,KEY_TEST3
                   JNB    ACC.3,KEY_TEST4
                   AJMP   KEY_TEST
KEY_TEST1:         MOV A,#1H
                   RET
KEY_TEST2:         MOV A,#2H
                   RET
KEY_TEST3:         MOV A,#3H
                   RET
KEY_TEST4:         MOV A,#4H
                   RET

;************************END**************************************
;***************************************************************
L_PLAY5__:
                MOV LED1,#80H
                MOV LED2,#80H
                MOV LED3,#80H
                MOV LED4,#80H
                MOV LED5,#80H
                ACALL L_PLAY1
                ACALL L_DELAY10MS
                ACALL L_PLAY2
                ACALL L_DELAY10MS
                ACALL L_PLAY3
                ACALL L_DELAY10MS
                ACALL L_PLAY4
                ACALL L_DELAY10MS
                ACALL L_PLAY5
                ACALL L_DELAY10MS
                RET
;***********************END********************************************
L_TAB:
        DB 7eH,0cH,0B6H,9eH,0CcH,0DaH,0FaH,0eH
        DB 0FeH,0DeH,0EeH,0F8H,72H,0BcH,0F2H,0E2H
 ;**************************************************************

⌨️ 快捷键说明

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