对于固定的数据冲喊,可以通过顺序判断来识别用if或switch语句来判决即可
通过串口中断,每次进入把SBUF的值赋给T,通过判决、累加NUM的值最终取得冒号后面的数值(不知楼主是否是要最后的数值)
void UART_Int(void) interrupt 4
{
static uchar NUM = 0;
uchar T;
if(RI == 1)
{
RI = 0;
T = SBUF;//接收串口数据
switch(T)//如果是按 value":0的顺序读进的话会最终触发NUN=7的条件
{
case 'v'散辩野灶激:
NUM = 1;
break;
case 'a':
if(NUM == 1)
{
NUM = 2;
}
else
{
NUM = 0;
}
break;
case 'l':
if(NUM == 2)
{
NUM = 3;
}
else
{
NUM = 0;
}
break;
case 'u':
if(NUM == 3)
{
NUM = 4;
}
else
{
NUM = 0;
}
break;
case 'e':
if(NUM == 4)
{
NUM = 5;
}
else
{
NUM = 0;
}
break;
case '"':
if(NUM == 5)
{
NUM = 6;
}
else
{
NUM = 0;
}
break;
case ':':
if(NUM == 6)
{
NUM = 7;
}
else
{
NUM = 0;
}
break;
default:
if(NUM == 7)
{
LED = T; //LED 为全局变量
} //把最后的数据传给LED
NUM = 0;
break;
}
}
}