// 通讯中断接收程序
void uart_rx(void) interrupt 4 using 3
{
unsigned char i;
unsigned char flag;
unsigned char dat;
if(RI) //是否接收中断
{
RI=0;
dat=SBUF;
if(dat==':'&&(i==0)) //接收数据第一帧
{
buff=dat;
flag=1; //开始接收数据
}
else
if(flag==1)
{
i++;
buff[i-1]=dat;
if(i>=2)
{
i=0;
flag=0;
flag_REC=1 ;
switch (buff[0])
{
case 'C':
switch (buff[1])
{
case '1': LED_3_S=1;break;
case '3': LED_3_S=0;break;
} break;
case 'D':
switch (buff[1])
{
case '1': LED_4_S=1;break;
case '3': LED_4_S=0;break;
} break;
}
} // 停止接收
}
}
}
一周热门 更多>