NEXT:MOV TH0,#3CH MDV TL0,#0B0H RETI
;INI_MT subprogram
INI_MT: MOV DPTR,#0100H ;lnitial MT8888 MOVX MOV A,#00H MOVX @DPTR,A MOVX @DPTR,A MOV A,#08H MOVX @DPTR,A MOV A,#00H MOVX @DPTR,A MOVX RET
;JUDGE subprogram JUDGE:MOV RO,20B MOV R1,21H
MOV R2,#07H MOV R3,#0D0H ACALL MINUS JC NEXT1 SETB 7CH RET
NEXT1:MOV R2,#03H ;07D0H is 2000. ;0384H is 900.
MOV R3,#84H ACALL MINUS JC NEXT2 SETB 7BH RET
NEXT2:MOV R2,#O1H MOV R3,#2CH ACALL MINUS JC NEXT3 SETB 7AH NEXT3:RET ;MINUS subprogram MINUS:MOV A,R1 CLR C SUBB A,R3 MOV A,RO SUBB A,R2 RET
;Dial subprogram DIAL:ACALL INI_MT MOV DPTR,#O1OOH MOV A,#09H MOVX @DPTR,A MOV A,#00H MOVX @DPTR,A
;012CH is 300. ;Set MT8888 to Burst mode
JB 7EH,STEP3 AJMP STEP4 STEP3:MOV R0,#30H MOV R1,#04H REDIAL1:MOV MOV DPTR,#0000H MOVX @DPTR,A ACALL DELAY
MOV DPTR,#0100H MOVX A, @DPTR CJNE A,#OFH,REDIAL1 INC R0 ACALL DELAY ACALL DELAY DJNZ R1, REDIALI RET
STEP4:MOV R0,#38H MOV R1,#04H REDIAL2:M0V MOV DPTR,#0000H MOVX @DPTR,A ACALL DELAY
MOV DPTR,#0100H MOVX
CJNE A,#0FH, REDIAL2
;Read dial result ;Read dial result
INC R0 ACALL DELAY ACALL DELAY DJNZ R1, REDIAL2 RET
;VOICE subprogram VOICE:JB 7EH,STEP5 AJMP STEP6 STEP5:MOV R5,#03H ANL Pl,#7FH MOV R5,#03H LP2:ANL P2,0FDH
MOV R4,#22O DY1:ACALL DELAY DJNZ R4, DY1 ORL P2,#O2H ACALL DELAY DJNZ R5, LP2 CLR 7EH ORL Pl,#8OH RET
STEP6:MOV R3,#03H ANL P1,#7FH LP3:ANL P2,#0FDH
MOV R2,#22O
;Delay 22s ;Delay 22s
相关推荐: