void init()
{
TMOD = 0X20;
SM0=0;
SM1=1;
TH1=0XFD;
TL1=0XFD;
TR1=1;
REN=1;
EA=1;
ES=1;
}
void sendonebyte(u8 dat)
{
ES = 0;
SBUF = dat;
while(!TI);
TI=0;
ES = 1;
}
void main()
{
init();
while(1)
{
if(flag == 1)
{
flag=0;
sendonebyte(ser_rec[0]);
}
}
}
void ser() interrupt 4
{
RI = 0;
ser_rec[rec_flag] = SBUF;
rec_flag ++;
if(ser_rec[0] = 0x55 && ser_rec[2]== 0xAA)
{
rec_flag=0;
flag=1;
}
}我51单片的串口程序,在while大循环里面收到串口数据是对的,但是输出ser_rec【0】不是0x55,如果在中断里面做输出的话是正常的数据。是不是我程序哪设置有问题。找了好久也没发现是哪出错了。。在线大神指导
|