main: mov sp,#60h
clr red
clr zhaigua ;p1.0=0
mov r2,#20h
lcall delay
setb zhaigua
;start to write sra\srb
mov p0,#00011101b;cs=0;cp=0;r_w=0;rs0=1
acall cpw
mov p0,#00010000b;
acall cpw;tone dtmf irq burst
mov r0,#sdat
s: acall sent
jnb acc.1,s
mov r3,a
setb red ;p1.0=1,delay1s
mov r2,#30h
lcall delay
clr red ;p1.0=0
djnz r0,s
sjmp main
sent: mov a,r0
anl a,#0fh;cs=0,rs0=0,r_w=0,cp=0
mov p0,a
acall cpw
mov p0,#0ffh
mov a,#01011111b;r_w=1,cs=0,rs0=1,cp=0,
acall cpr;read sr
clr r_w
clr rs ;
ret
cpw: setb cp
nop
nop
nop
clr cp
nop
nop
ret
cpr: setb cp
nop
nop
nop
mov p0,a
mov a,p0;
anl a,#0fh
nop
nop
clr cp
ret
delay: push 02h
loop1: push 02h
loop2: push 02h
loop3: djnz r2,loop3
pop 02h
djnz r2,loop2
pop 02h
djnz r2,loop1
pop 02h
djnz r2,delay
ret
end