哪出错了??

2019-07-16 04:25发布

大家看看哪出错了,麻烦帮下忙,谢谢!!!
#include <reg52.h>
unsigned char a,b,c,d;
void InitUART(void)
{
    TMOD = 0x20;
    SCON = 0x50;
    TH1 = 0xFD;
    TL1 = TH1;
    PCON = 0x00;
    EA = 1;
    ES = 1;
    TR1 = 1;
}
void SendOneByte(unsigned char c)
{
    SBUF = c;
    while(!ti);
    TI = 0;
}
void delay10ms(void)   //误差 -0.000000000002us
{
    unsigned int a,b;
    for(b=249;b>0;b--)
        for(a=17;a>0;a--);
}
void main()
{
    InitUART();
while(1)
{
if(a==1)
  {
  a=0;
  for(b=0;b<200;b++)//b=0;等于其他数就死机,for循环没走完时有中断也死机
  {
  SBUF=c;
  while(!TI);
  TI=0;
  delay10ms();
  }
/*for(b=0;b<200;b++)//多加这个for循环就死机
  {
  SBUF=c;
  while(!TI);
  TI=0;
  delay10ms();
  }*/

  }
}
}
void UARTInterrupt(void) interrupt 4
{
    if(RI)
    {
        RI = 0;
  c=SBUF;
  a=1;
        //add your code here!
    }
    else
        TI = 0;
}

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