51单片机串行通信问题

在做一个简单的51单片机串行通信实验时,出现了51单片机发送的数据与串口助手接受的数据不一样的问题,请问是什么原因,咋个解决啊?比如说单片机输出00h,串口助手告诉我是80h,,如果输大于80h的数,也会变成其他数
如果换成串口助手给单片机发送数据,是否会有相同的问题呢?

img

img

比如说单片机输出00h,串口助手告诉我是80h

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7705120
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:两个51单片机,两机的串口交叉连线,双机互发数据
  • 除此之外, 这篇博客: 最简单的51单片机软件定时器的编写中的 为什么要使用软件定时器? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 定时器在我们单片机编程时必不可少,虽然现在已经有很多单片机的定时器数量功能数量十分的丰富。但是在一些环境下(例如一些系统),总不能一个任务调一个硬件定时器中断吧?那如果有几十个任务呢?
    • 所以就有了软件定时器存在的必要。软件定时器的优点在于,数量可以根据用户需求而定,不需要频繁的配置,维护性较高。缺点在于时间误差较大。
      但是,对于一些延时要求不是特别高的任务来说,软件定时器无疑是一个不错的选择。
    • 我最近学习了一下软件定时器的实现原理,自己在51单片机上面实现了,软件定时器的主要功能(已经可以使用)。
    • 初识者,只需阅读本文章,即可知道软件定时器的一个原理,紧接着可以尝试自己去编写一个软件定时器。(希望文章可以帮到你,大佬可以直接划过了,另外大家有什么意见可以在评论区下留言讨论,一个人的思维是有限的)
  • 您还可以看一下 吴刚老师的【吴刚大讲堂】视觉设计快速入门50讲课程中的 设计连续性与用户期待的一致性小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    由于问题并未具体说明单片机串口通信的代码和硬件电路,所以并不能确定具体的原因和解决方案。但是,根据我多年的IT经验和参考资料中的内容,我可以给出以下建议:

    1. 检查单片机和串口助手的波特率设置是否一致,需要保持一致;
    2. 检查单片机发送数据的方式是否正确,比如是否使用了正确的函数或指令;
    3. 可以通过调用串口助手的“回显”功能,检查是否收到单片机发送的数据,以此来判断单片机发送数据的正确性;
    4. 检查单片机和串口助手之间的连接线路是否正确连接;
    5. 如果以上方法仍没有解决问题,可以尝试使用其他串口助手或更换单片机进行测试,确认是否是硬件故障引起的问题。

    如果使用串口助手发送数据给单片机也存在相同的问题,那么说明可能是单片机的串口模块或硬件存在问题,需要进一步检查和排除故障。但是如果使用串口助手发送数据给单片机时没有问题,那么则需要进一步调试单片机发送数据的代码和硬件电路。