📄 l_w.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 + -