uchar a = 0;
把这一行,定义为全局变量,即放在程序的最前面。
否则,无论中断多少次,a 总是 0。
void UartRec() interrupt 4
{
static unsigned char Count;
if (RI)
{
RI = 0;
buf[Count++] = SBUF;
}
mc = buf[0] - '0'; //mc = buf[0] - 0x30;
n = buf[1] - '0'; //n = buf[1] - 0x30;
if (Count >= 1)
{
Count = 0;
}
}