• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

51的串行输出。。求破。。

a6140c107262bae6 2019-02-28 浏览量:545
一个51的POP1口通过串行输出到另一个51的P0P1。。求破。。。

用第一片8051拾取外部16个信号,通过串行口输出传送,再还原这16个有顺序的信号。小弟的方式是:
发送部分:将8个信号送第一片P0口,另8个接P1口,把P0口的信号先送至串行输出,再送P1口的信号。
接收部分:将第一接收的送到第二片的P0口,第二次送到P1口。
如果同时送电,复位。正常工作。
如果把一片单独复位,第一片的P0口会送到第二片的P1口。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这种直接用串口通信就行,不用那么麻烦,你这个实现需要较好的时序,数据很容易乱掉
    • 发布于 2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 你好好屡一下逻辑,你这用那么多的口肯定是不符合司机的
    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 复位又不是关机   波特率什么的对了就总要发过去的时间问题   接收到就有一个信号的   又不是第一个单片机发送完了就没有了  要接收到另一个单片机的信号才会发送下一位的
    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这是不可能的 肯定是你程序有问题


    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 你可以写出来试试,写的过程中你就会发现,寄存器使用是有限制的!你这样编逻辑很难写的!
    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 你这样写代码好麻烦,不如只用I2C SPI UART之类的串口来传输更高效方便。

    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 因为你没有校验,或者通过帧头和帧尾判断,
    • 发布于2019-03-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 你这个是时序处理不对,而且又没有相应的通信异常处理机制来恢复。
    • 发布于2019-03-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 好好弄一下逻辑     你没有中断   信号接受和获取有没有标志?

    建议自己弄一个开始信号  时间大于你的主循环时间

    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 串口就可以了,而且方便,不会出错 ,你的这个逻辑不小心就会乱掉的
    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51的串行输出。。求破。。