REN=0; //禁止接收
}
else
{
sbuf1&=0x0f; //仅保留低半字节,去掉高半字节
rsbuf1|=sbuf1; //高低半字节合并
*buf1++=rsbuf1; //将接收的数据保存至接收缓冲里,并且数据指针加一
buf1_length++; //接收数据长度加一
state1=10; //将state1置为10,准备接收下个字节的高半字节
}
break;
}
}
}
else{
TI=0; //清除发送中断标志
if(buf2_length) //判断发送长度是否为零
{ //发送长度不为零
if(state2==0) //判断是否发送高半字节
{ //发送高半字节
sbuf2=*buf2; //将要发送的字节送到sbuf2
rsbuf2=~sbuf2; //取反,使高半字节变为反码
sbuf2>>=4; //将高半字节右移到低半字节
rsbuf2&=0xf0; //保留高半字节,去掉低半字节
sbuf2&=0x0f; //保留低半字节,去掉高半字节
rsbuf2|=sbuf2; //合并高低半字节
SBUF=rsbuf2; //发送出去
state2=10; //将state2置为10准备发送下半字节
}
else
{ //发送低半字节
sbuf2=*buf2; //将要发送的字节送到sbuf2
buf2++; //指针加一
buf2_length--; //发送数据长度减一
rsbuf2=~sbuf2; //取反,使低半字节变为反码
rsbuf2<<=4; //将低半字节反码左移到高半字节
上一页 [1] [2] [3] [4] [5] 下一页
本文关键字:程序 遥控器 红外线 软件 51单片机,单片机-工控设备 - 51单片机