sbit RE_DE=P1^4;
char buf[4]={1,2,3,4};
uchar point=1;
uchar add;
void serial() interrupt 4 using 1
{
if(RI)
{RI=0;
add=SBUF;
}
if(add==SLAVE1)
{ SM2=0; //设置为点对点通信状态
RE_DE=1; //设置MAX483进入发送状态
SBUF=''s''; //发起始符s
while(TI==0);TI=0;
for(point=1;point <=3;point++) //连续发送3位数据
{
SBUF=buf[point];
while(TI==0);TI=0;
}
SBUF=''o''; //发送结束符o
while(TI==0);TI=0;
RE_DE=0; }
}
main()
{
TMOD=0x21; //T/C0方式1,T/C1方式2
TL1=0xfd; //9600 bit/s
TH1=0xfd;
SCON=0x70; //选择串口工作方式为1,打开接收允许
PCON=0x00;
TR1=1;
REN=1;
RI=0;
ES=1;
PS=1;
EA=1;
SM2=1; //处于地址检测状态
RE_DE=0;
while(1);
}