看你这程序编的,ha
查询RI 不是等于 1,而是0
只有当数据传送过来的时候,RI才会由1变为0,所以需要查询的状态是 0,不是1
当接收完数据后,再进行对RI的清零
还是不多说了,上程序,若满意请记得采纳一下,谢谢!
这是一个由串口助手发送十六进制码来控制单片机的8个LED亮灭的简单小程序
/***************************************************************************/
#include
/***************************************************************************/
void main(void)//主函数
{
TMOD=0x20; //定时器1和2工作方式2(8位定时/计数)
TH1=0xfd; //定时器1设置初值,波特率9600bit/s,
TL1=0xff;
TR1=1; //启动定时器T1
PCON=0x00; //SMOD=0,不加倍
SCON=0x50; //串口工作方式1,允许接收
IE=0x00; //关闭所有中断
while(1)
{
if(RI==0)//如果有数据
{
P2=SBUF; //接收数据并输出至LED上显示
while(!RI); //等待接收完成
RI=0; //清空标识
}
}
}
/***************************************************************************/
不知你io是怎么连的,高亮还是低亮?