#include <regx51.h>
unsigned char buf[10]={0,0,0,0,0,0,0,0,0};
unsigned char len=0,msg=0;
unsigned char order[10]={0,0,0,0,0,0,0,0,0};
unsigned int time=0;
unsigned char m=0;
main()
{
unsigned char i=0;
tmod = 0x20; //buand 9600
tl1=0xfd; th1 = 0xfd;
scon = 0xd8;
pcon = 0x00;
tr1 = 1;
et1 = 1;
ea = 1;
es = 1;
ps = 1;
tr1 = 1;
ea = 1;
for(;;)
{
if(msg==1)
{
msg=0;
p0_1=0;
}
}
}
void time1(void) interrupt 3
{
tl1=0xfd;
th1 = 0xfd;
}
void comm(void) interrupt 4 using 3
{
unsigned char i=0;
i=sbuf;
if(ri==1)
{
if(len> 20) { len=0; i=0;}
buf[len]=sbuf;
ri=0;
if(len)=0x0d;
msg=1;
len++;
}
}
如果我使用串口调试助手,发送出来10通常情况下收到80或者90,发送20会收到80,90,b3等数~各位老大帮帮忙啊!