Hatton_0 2015-04-04 19:43 采纳率: 0%
浏览 4515

51单片机中的串口通信发送10(16进制)以上显示不正确

串口通信中,向单片机发送数据控制LED灯亮实验中
发01,02、04、08 依次是 第1 2 3 4 个灯亮

而发送 10 就成第5 6 个一起亮了,然后发20 、40 是第7 和 第 8 个;
发 80 就全灭了 , 这是啥情况啊。

#include

unsigned char a,flag;
void init();
void main()
{
init();
while(1)
{
if(flag == 1)
{
ES = 0;
P0 = a;
ES = 1;
flag = 0;
}
}
}

void init()
{
TMOD = 0x20;
TH1 = 0xfa;
TL1 = 0xfa;
TR1 = 1; // T1开始工作
REN = 1; //允许串口接收
SM0 = 0;
SM1 = 1; //选择串口的工作方式
EA = 1; //中断总开关
ES = 1; // 开串口中断
}

void ext() interrupt 4
{
RI = 0;
a = SBUF;
flag = 1;
}

今天下午调了一下程序:

发现是波特率的问题:

4800 的 波特率

这样设置就有问题
图片说明

这样设置就没事。
图片说明
不过为啥是这个情况....

  • 写回答

3条回答 默认 最新

  • threenewbee 2015-04-05 00:35
    关注

    用 串口调试助手 看下你发送的数据对不对

    如果对的话,可能是单片机内的程序的问题

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题