ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INTR_0
ORG 0030H
MAIN: SETB EA
SETB EX0
SETB IT0
MAIN1:CLR P3.7
MOV 30H,#0FFH
LCALL DISP
DP1: LCALL KEY
LCALL DISP
LJMP DP1
KEY:
LCALL KS
JNZ K1
LCALL DELAY2
RET
K1: LCALL DELAY2
JNZ K2
LJMP KEY
K2: MOV R2,#0FEH
MOV P1,#0FFH
MOV R4,#00H
K3: MOV P2,R2
LOOP0: JB P1.0,LOOP1
MOV A,#00H
LJMP LOOPK
LOOP1:JB P1.1,LOOP2
MOV A,#08H
LJMP LOOPK
LOOP2:JB P1.2,LOOP3
MOV A,#10H
LJMP LOOPK
LOOP3: JB P1.3,LOOP4
MOV A,#18H
LJMP LOOPK
LOOP4:JB P1.4,LOOP5
MOV A,#20H
LJMP LOOPK
LOOP5: JB P1.5,LOOP6
MOV A,#28H
LJMP LOOPK
LOOP6: JB P1.6,LOOP7
MOV A,#30H
LJMP LOOPK
LOOP7: JB P1.7,NEXT
MOV A,#38H
LOOPK:ADD A,R4
PUSH ACC
K4: LCALL KS
JNZ K4
POP ACC
MOV 30H,A
SETB P3.7
LCALL DELAY3
CLR P3.7
RET
NEXT: INC R4
MOV A,R2
JNB ACC.7,RET0
RL A
MOV R2,A
LJMP K3
KS: MOV P2,#0FFH
MOV P1,#00H
MOV A,P2
XRL A,#0FFH
RET0:RET
DELAY2:MOV R5,#08H
D7: MOV R6,#0FAH
D8: DJNZ R6,D8
DJNZ R5,D7
RET
DISP:
LCALL HBCD
PLAY: CLR P3.0
MOV DPTR,#DSEG1
MOV A,31H
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1
SETB P3.0
CLR P3.1
MOV DPTR,#DSEG1
MOV A,32H
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1
SETB P3.1
RET
DL1: MOV R7,#05H
DL: MOV R6,#0FFH
DL6: DJNZ R6,$
DJNZ R7,DL
RET
DSEG1:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
HBCD:
MOV A,30H
INC A
MOV B,#100
DIV AB
MOV R5,A
MOV A,#10
XCH A,B
DIV AB
MOV 31H,A
MOV 32H,B
RET
INTR_0:MOV 30H,#0FFH
CLR P3.7
RETI
DELAY3:
DDL1: MOV 41H,#220
DDL2: MOV 42H,#250
DDL3:
DJNZ 42H,DDL3
LCALL DISP
DJNZ 41H,DDL2
RET
END
|