
看你这程序编的,ha
查询RI
不是等于
1,而是0
只有当数据传送过来的时候,RI才会由1变为0,所以需要查询的状态是
0,不是1
当接收完数据后,再进行对RI的清零
还是不多说了,上程序,若满意请记得采纳一下,谢谢!
这是一个由串口助手发送十六进制码来控制单片机的8个LED亮灭的简单小程序
//
#include
<REG52h>//通用89C52头文件
//
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;
//清空标识
}
}
}
//
以上就是关于单片机串口通信,实现接收到数据后,灯亮。全部的内容,包括:单片机串口通信,实现接收到数据后,灯亮。、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)