📄 main1.asm
字号:
;@@@@@@@@@@@@@@@@@@@@@___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 + -