串口方式1与上位机通讯

#include <stdio.h>
unsigned char flag,a,i;
unsigned char table[]="I GET ";
int main ()
{
  TMOD=0x20;//设定T1定时器的工作方式2
  TH1=0xfd;//T1定时器装初值
  TL1=0xfd;//T1定时器装初值
  TR1=1;//启动定时器T1
  REN=1;//允许串口接收
  SM0=0;//设定串口工作方式1
  SM1=1;//设定串口工作方式1
  EA=1;//开总中断
  ES=1;//开串口中断
  while(1)
  {
    /*if(RI==1)
    {
    RI=0;
    P0=SBUF;
    }*/
    if(flag==1)
    {
      ES=0;
      for(i=0;i&lt;6;i++)
      {
        SBUF=table[i];
        while(!TI);
        TI=0;
      }

      flag=0;
      SBUF=a;
      while(!TI);
      TI=0;
      ES=1;
    }
  }
}

//中断服务程序
void ser() interrupt 4
{
  RI=0;
  P0=SBUF;//P0口的LED灯
  a=SBUF;
  flag=1;
}