📄 main7.asm
字号:
;@@@@@@@@@@@@@@@@@@@@@___MAIN____@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MAIN: ;AJMP L_ADTEST
;*******************PASSWORD NUMBER*************************
NUM1 EQU 20H
NUM2 EQU 21H
NUM3 EQU 22H
NUM4 EQU 23H
NUM5 EQU 24H
NUM6 EQU 25H
LINSHI1 EQU 26H
LINSHI2 EQU 27H
LINSHI3 EQU 28H
LINSHI4 EQU 29H
LINSHI5 EQU 2AH
LINSHI6 EQU 2BH
LED1 EQU 30H
LED2 EQU 31H
LED3 EQU 32H
LED4 EQU 33H
LED5 EQU 34H
KEYTEST EQU 35H
GROUPLINSHI EQU 36H
BAOYUANZHI EQU 37H
ADH EQU 38H
ADL EQU 39H
;STOREDATA:40H~~~ 70H
MOV SP,#71H
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;SHI FU GAI GUO PASSWORD
TESTCSN: CLR CS
MOV A, #0BH
LCALL L_W_BETY
MOV A,#0F6H
LCALL L_W_BETY
TESTCSN1: LCALL L_R_BETY
CJNE A,#12H,TESTCSN3
LCALL L_R_BETY
CJNE A,#34H,TESTCSN3
AJMP READSN
TESTCSN3: MOV R0,#20H
MOV R1,#6H
TESTCSN2: MOV @R0,#1H
INC R0
DJNZ R1,TESTCSN2
AJMP START
;PASSWORD ARE IN "#0FH" OF WATCHDOG
READSN: MOV R0,#20H
MOV R1,#6H
CLR CS
MOV A, #0BH
LCALL L_W_BETY
MOV A,#0F0H
LCALL L_W_BETY
READSN1: LCALL L_R_BETY
MOV @R0,A
INC R0
DJNZ R1,READSN1
SETB CS
;----------------------MAIN-----------------------------------------
START:
LCALL L_TESTKEY
MOV R4,A
ANL A,#0FH
CJNE A,#0FH,USER
;*******************ZJ CALL PROGRAM***********************
MOV A,R4
CPL A
ANL A,#0F0H
SWAP 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,#030H
ZJ6: LCALL L_PLAYERRO
DJNZ R5,ZJ6
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,#030H
INPUTERRORC: LCALL L_PLAYERRO
DJNZ R4, INPUTERRORC
AJMP START
;********************INPUT SET KEK MODE***********************
ZZSETKEY: AJMP SETKEY
USER2: LCALL KEY_TEST2
CJNE A,#1H,ZZSETKEY ;SET MODE
;************************STORE DATA****************************
STORE: LCALL KEY_TEST2 ;CHARGE LED
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,#2H
MOV 35H,A
TAKEOVER1: LCALL L_DELAY2MS
DJNZ R5,TAKEOVER1
LCALL SEL8
MOV A,P1
CJNE A,35H,TAKETEST
NOKEYTA: LCALL SEL8
NOKEYT: MOV A,P1
LCALL L_PLAY5LED
CJNE A,#0FFH,NOKEYTA
MOV R5,#2H
NOKEYTB: LCALL L_DELAY2MS
DJNZ R5,NOKEYTB
LCALL SEL8
MOV A,P1
CJNE A,#0FFH,NOKEYTA
MOV A,35H
AJMP TAKE1
;*************************TAKE DTAT OVER**************************
;**************************SET PASSWORD*************************
ZZRETURN: AJMP RETURN
SETKEY: CJNE A,#3H,ZZRETURN
SETKEY1: LCALL KEY_TEST1
CJNE A,NUM1,INPUTERROR1
LCALL KEY_TEST1
CJNE A,NUM2,INPUTERROR1
LCALL KEY_TEST1
CJNE A,NUM3,INPUTERROR1
LCALL KEY_TEST1
CJNE A,NUM4,INPUTERROR1
LCALL KEY_TEST1
CJNE A,NUM5,INPUTERROR1
LCALL KEY_TEST1
CJNE A,NUM6,INPUTERROR1
AJMP SETKEY2
INPUTERROR1: MOV R4,#010H
INPUTERRORAA: LCALL L_PLAYERRO
DJNZ R4, INPUTERRORAA
AJMP SETKEY1
;-------------------------INPUT NEW--------------------------------------
SETKEY2: MOV R0,#26H ;
MOV R1,#6H ;
SETKEY3: LCALL KEY_TEST2 ; INPUT NEW PASSWORD
MOV @R0,A ;
INC R0 ;
DJNZ R1,SETKEY3 ;
;----------------------INPUT AGAIN--------------------------------------------
SETKEYA1: LCALL KEY_TEST1
CJNE A,26H,INPUTERRORA1
LCALL KEY_TEST1
CJNE A,27H,INPUTERRORA1
LCALL KEY_TEST1
CJNE A,28H,INPUTERRORA1
LCALL KEY_TEST1
CJNE A,29H,INPUTERRORA1
LCALL KEY_TEST1
CJNE A,2AH,INPUTERRORA1
LCALL KEY_TEST1
CJNE A,2BH,INPUTERRORA1
AJMP SETKEYB
INPUTERRORA1: MOV R4,#010H
INPUTERRORA11: LCALL L_PLAYERRO
DJNZ R4, INPUTERRORA11
AJMP SETKEY2
;---------------------STORE PASSWORD-----------------------------------------
SETKEYB: 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,#4H
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
AJMP USER2
;***************************************************************
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,#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: MOV B,@R0
L_TESTKEYD: MOV @R0,B
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -