📄 main2.asm
字号:
;@@@@@@@@@@@@@@@@@@@@@___MAIN____@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MAIN:
;*******************PASSWORD NUMBER*************************
NUM1 EQU 1
NUM2 EQU 1
NUM3 EQU 1
NUM4 EQU 1
NUM5 EQU 1
NUM6 EQU 1
LED1 EQU 30H
LED2 EQU 31H
LED3 EQU 32H
LED4 EQU 33H
LED5 EQU 34H
KEYTEST EQU 35H
GROUPLINSHI EQU 36H
BAOYUANZHI EQU 37H
;STOREDATA:40H~~~ 70H
MOV SP,#71H
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
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 START
;********************INPUT SET KEK MODE***********************
ZZSETKEY: AJMP SETKEY
USER2: LCALL KEY_TEST2
CJNE A,#1H,ZZSETKEY ;SET MODE
;************************STORE DATA****************************
STORE: LCALL KEY_TEST
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,#5H
MOV 35H,A
TAKEOVER1: LCALL L_DELAY2MS
DJNZ R5,TAKEOVER1
MOV A,P1
CJNE A,35H,TAKETEST
AJMP TAKE1
;*************************TAKE DTAT OVER**************************
;**************************SET PASSWORD*************************
SETKEY: CJNE A,#3H,RETURN
;***************************************************************
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,#5H
MOV 35H,A
LKEY_TEST1: LCALL L_DELAY2MS
DJNZ R5,LKEY_TEST1
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
SETB RS1
SETB RS0
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
CLR RS1
CLR RS0
MOV @R0,#0H
SETB RS1
SETB RS0
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
CLR RS1
CLR RS0
AJMP L_TESTKEYD
LKEY_TEST00: CLR RS1
CLR RS0
MOV R5,#5H
MOV @R0,B
MOV 35H,A
LKEY_TEST01: LCALL L_DELAY2MS
DJNZ R5,LKEY_TEST01
MOV A,P1
CJNE A,35H,L_TESTKEYD
RET
;***********************L_TESTKEY1 END**************88
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -