为何只接收到一个字符,并多了一个回车符

2019-07-15 14:36发布

/*以9600bps从计算机发送任一字节数据,当单片机收到该数据后,
在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零*/
/***********************************************************************/
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
#define N=20;
void init();
uchar a,flag,j;
uint num;

void main()
{
        init();
        while(1)
        {
         if(flag==1)
         {
                 ES=0;
                flag=0;
                num++;
                if(num==256)
                {
                        num=0;
                }
                ti=1;
                printf(" %d: ",num);
                SBUF=a;
                puts(" ");
                while(!TI);
                TI=0;
                ES=1;
         }
        }
}

void init()
{
        TMOD=0x20;
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        SM0=0;
        SM1=1;
        REN=1;
        EA=1;
        ES=1;
}

void serial() interrupt 4
{
        RI=0;
        a=SBUF;
        flag=1;
}

捕获.PNG
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。