📄 main.asm
字号:
MOV A, #3H
ACALL L_W_BETY
MOV A,#L_W_AD
ACALL L_W_BETY
ACALL L_R_BETY
SETB CS
RET
;******************END***************************************
L_TESTWIP: CLR CS
CLR SCK
MOV A,#5H
ACALL L_W_BETY
ACALL L_R_BETY
SETB CS
JB ACC.0,L_TESTWIP
RET
;*****************ZI-PROGRAM*****************************
L_W_BETY:
MOV R7,#8H
L_W_BETY1: ;CLR SCK
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
;CLR SCK
DJNZ R7,L_R_BETY1
RET
NOP
NOP
LJMP L_EEROR
;*******************END********************************
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
L_EXP1: LCALL L_KEYBEEP
RET
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
L_EXP2: LCALL L_KEYBEEP
RET
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;***************DELAY PROGRAM***************************
L_DELAY2MS:
MOV R7,#06H
L_DELAY2MS1: MOV R6,#0FFH
L_DELAY2MS2: DJNZ R6,L_DELAY2MS2
DJNZ R7,L_DELAY2MS1
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_DELAY2MS
ACALL L_PLAY5
ACALL L_DELAY2MS
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: SETB P2.5
SETB P2.6
CLR P2.7
SEL8: SETB P2.5
SETB P2.6
SETB P2.7
RET
NOP
NOP
LJMP L_EEROR
;************************END******************************
;HHHHHHHHHHHHHHHHHHH--KEY_TEST---HHHHHHHHHHHHHHHHHHHHHHHHHHH
;************************ KEY_TEST0**********************
KEY_TEST0: LCALL L_TESTKEY0
ACALL CHULITESTKEY
RET
;************************ KEY_TEST1**********************
KEY_TEST1: LCALL L_TESTKEY1
ACALL CHULITESTKEY
RET
;************************ KEY_TEST2**********************
KEY_TEST2: LCALL L_TESTKEY2
ACALL CHULITESTKEY
RET
;************************ KEY_TEST3**********************
KEY_TEST3: LCALL L_TESTKEY3
ACALL CHULITESTKEY
RET
;************************ KEY_TEST4**********************
KEY_TEST4: LCALL L_TESTKEY4
ACALL CHULITESTKEY
RET
;************************ KEY_TEST5**********************
KEY_TEST5: LCALL L_TESTKEY5
ACALL CHULITESTKEY
RET
;***********************KEY TEST***********************
KEY_TEST:
LCALL L_TESTKEY
CHULITESTKEY: ANL A,#0FH
KEY_TEST9: JNB ACC.0,KEY_TEST01
JNB ACC.1,KEY_TEST02
JNB ACC.2,KEY_TEST03
JNB ACC.3,KEY_TEST04
AJMP KEY_TEST
KEY_TEST01: MOV A,#1H
RET
KEY_TEST02: MOV A,#2H
RET
KEY_TEST03: MOV A,#3H
RET
KEY_TEST04: MOV A,#4H
RET
NOP
NOP
LJMP L_EEROR
;************************END***********************************
;************************L_PLAY5__*****************************
L_PLAY5__:
MOV LED1,#80H
MOV LED2,#80H
MOV LED3,#80H
MOV LED4,#80H
MOV LED5,#80H
L_PLAY5LED: ACALL L_PLAY1
ACALL L_DELAY2MS
ACALL L_PLAY2
ACALL L_DELAY2MS
ACALL L_PLAY3
ACALL L_DELAY2MS
ACALL L_PLAY4
ACALL L_DELAY2MS
ACALL L_PLAY5
ACALL L_DELAY2MS
LCALL L_FEEDDOG
RET
;OOOOOOOOOOOOOOOOOOOOOOOOOL_TESTKEY00000000000000000000000000
;************************L_TESTKEY PLAY ---**************888
L_TESTKEY: LCALL SEL8
MOV A,P1
LCALL L_PLAY5__
CJNE A,#0FFH,LKEY_TEST0
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: LCALL NOKEY5A
MOV B,@R0
L_TESTKEYD: MOV @R0,B
SETB RS1
SETB RS0
MOV R1,#10H
L_TESTKEYC:
LCALL SEL8
MOV A,P1
LCALL L_PLAY5LED
CJNE A,#0FFH,LKEY_TEST00
DJNZ R1,L_TESTKEYC
CLR RS1
CLR RS0
MOV @R0,#0H
SETB RS1
SETB RS0
MOV R1,#10H
L_TESTKEYC1:
LCALL SEL8
MOV A,P1
LCALL L_PLAY5LED
CJNE A,#0FFH,LKEY_TEST00
DJNZ R1,L_TESTKEYC1
CLR RS1
CLR RS0
AJMP L_TESTKEYD
LKEY_TEST00: CLR RS1
CLR RS0
MOV R5,#2H
MOV @R0,B
MOV 35H,A
LKEY_TEST01: LCALL L_DELAY2MS
DJNZ R5,LKEY_TEST01
LCALL SEL8
MOV A,P1
CJNE A,35H,L_TESTKEYD
RET
;***********************L_TESTKEY0 END**************88
;************************L_TESTKEY1 PLAY INPUT**************888
L_TESTKEY1: LCALL NOKEY5A
L_TESTKEY1A: LCALL SEL8
MOV A,P1
CJNE A,#0FFH,LKEY_TEST10
LCALL L_PLAYINPUT
AJMP L_TESTKEY1A
LKEY_TEST10: MOV R5,#2H
MOV 35H,A
LKEY_TEST11: LCALL L_DELAY2MS
DJNZ R5,LKEY_TEST11
LCALL SEL8
MOV A,P1
CJNE A,35H,L_TESTKEY1A
RET
;***********************L_TESTKEY1 END************************
;************************L_TESTKEY2 PLAY USER *****************
L_TESTKEY2: LCALL NOKEY5A
L_TESTKEY2A: LCALL SEL8
MOV A,P1
CJNE A,#0FFH,LKEY_TEST20
LCALL L_PLAYUSER
LJMP L_TESTKEY2A
LKEY_TEST20: MOV R5,#2H
MOV 35H,A
LKEY_TEST21: LCALL L_DELAY2MS
DJNZ R5,LKEY_TEST21
LCALL SEL8
MOV A,P1
CJNE A,35H,L_TESTKEY2A
RET
;***********************L_TESTKEY2 END***********************
;************************L_TESTKEY3 PLAY STOR *****************
L_TESTKEY3: LCALL NOKEY5A
L_TESTKEY3A: LCALL SEL8
MOV A,P1
CJNE A,#0FFH,LKEY_TEST30
LCALL L_PLAYSTOR
LJMP L_TESTKEY3A
LKEY_TEST30: MOV R5,#2H
MOV 35H,A
LKEY_TEST31: LCALL L_DELAY2MS
DJNZ R5,LKEY_TEST31
LCALL SEL8
MOV A,P1
CJNE A,35H,L_TESTKEY3A
RET
;***********************L_TESTKEY3 END***********************
;************************L_TESTKEY4 PLAY FIND *****************
L_TESTKEY4: LCALL NOKEY5A
L_TESTKEY4A: LCALL SEL8
MOV A,P1
CJNE A,#0FFH,LKEY_TEST40
LCALL L_PLAYFIND
LJMP L_TESTKEY4A
LKEY_TEST40: MOV R5,#2H
MOV 35H,A
LKEY_TEST41: LCALL L_DELAY2MS
DJNZ R5,LKEY_TEST41
LCALL SEL8
MOV A,P1
CJNE A,35H,L_TESTKEY4A
RET
;***********************L_TESTKEY4 END***********************
;************************L_TESTKEY5 PLAY SET *****************
L_TESTKEY5: LCALL NOKEY5A
L_TESTKEY5A: LCALL SEL8
MOV A,P1
CJNE A,#0FFH,LKEY_TEST50
LCALL L_PLAYSET
LJMP L_TESTKEY5A
LKEY_TEST50: MOV R5,#2H
MOV 35H,A
LKEY_TEST51: LCALL L_DELAY2MS
DJNZ R5,LKEY_TEST51
LCALL SEL8
MOV A,P1
CJNE A,35H,L_TESTKEY5A
RET
NOKEY5A: LCALL SEL8
NOKEY5: MOV A,P1
LCALL L_PLAY5LED
CJNE A,#0FFH,NOKEY5A
MOV R5,#2H
NOKEY5B: LCALL L_DELAY2MS
DJNZ R5,NOKEY5B
LCALL SEL8
MOV A,P1
CJNE A,#0FFH,NOKEY5A
RET
NOP
NOP
LJMP L_EEROR
;***********************L_TESTKEY5 END***********************
;***************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*****************************
;******************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 ********************************
;******************L_PLAYSTOR********************************
L_PLAYSTOR: MOV LED1, #00H
MOV LED2,#0DAH
MOV LED3,#0EH
MOV LED4,#07EH
MOV LED5,#062H
LCALL L_PLAY5LED
RET
;************ L_PLAYSTORE END ********************************
;******************L_PLAYFIND********************************
L_PLAYFIND: MOV LED1,#0H
MOV LED2,#0E2H
MOV LED3,#0CH
MOV LED4,#06EH
MOV LED5,#0BCH
LCALL L_PLAY5LED
RET
;************ L_PLAYFIND END ********************************
;******************L_PLAYSET********************************
L_PLAYSET: MOV LED1,#0H
MOV LED2,#0DAH
MOV LED3,#0F2H
MOV LED4,#0EH
MOV LED5,#0H
LCALL L_PLAY5LED
RET
NOP
NOP
LJMP L_EEROR
;************ L_PLAYSET END ********************************
;000000000000000000000000000000000000000000000000000000000000
;***********************END***********************************
L_TAB:
DB 7EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH,0EH
DB 0FEH,0DEH,0EEH,0F8H,72H,0BCH,0F2H,0E2H
;********************************************************* ***
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -