求助,51串口接收和回显

2020-02-01 16:32发布

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar flag;
uint a;
void main()
{
        TMOD=0x20;//定时器为方式2
        TH1=0xfd;//波特率为9600
        TL1=0xfd;
        PCON=0;
        TR1=1;
        REN=1;
        SM0=0;
        SM1=1;
        EA=1;
        ES=1;
        while(1)
        {
                if(flag==1)
                {
                        ES=0;
                        flag=0;
                        SBUF=a;
                        while(!TI);
                        TI=0;
                        ES=1;
                }

        }
}


void ser() interrupt 4
{
        RI=0;
        P0=SBUF;
        a=SBUF;
        flag=1;
}
我想从串口调试助手上直接发一个数到串口上点亮led灯,再把发送的数据直接回显到调试助手,但每次发送的数据都不是预期的,例如发aa就显示0x1e或其他的数,而且回显的数据也是时有时无,想得头都快爆了,求各位大侠指教!!!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。