djdnjsjan 2023-05-26 16:56 采纳率: 0%
浏览 14

51测温rs485通信汇编

使用汇编;
甲机:通过51单片机获取DS18B20的温度,并显示在1602液晶屏,再(可使用中断)把DS18B20的温度通过rs485传送到乙机
乙机:通过51单片机获取DS18B20的温度,并显示在1602液晶屏,通过485接受甲机的温度(使用中断)并显示在1602液晶屏

测温模块已经完成,数据传输:
甲机测温后把十位,个位,小数位的bcd码存放在3个存储单元,我把这三位数据直接发给乙机,乙机通过1602显示(已加小数点),问题是传到乙机后1602的温度显示是错误的,显示1x.00,x是一直变换的数字。这里甲机我使用按键扫描方法进入485发送数据,乙机我删除了测温模块专门显示甲机的数据,乙机一直开着中断接受数据。
有人可以帮忙吗?

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-05-26 23:26
    关注

    该回答引用ChatGPT-3.5,仅供参考,不保证完全正确

    当涉及特定的嵌入式系统编程问题时,提供具体的代码和硬件连接细节会更有帮助。在这里,我可以给你一些一般性的指导和建议来解决你的问题。


    首先,确保甲机和乙机的RS485通信设置正确,并且连接正常。确保它们的波特率、数据位、停止位和校验位设置相同,并且连接线路正确。


    对于甲机:

    1. 确保你已经正确地读取了DS18B20温度传感器的数据,并将其转换为BCD码。

    2. 在你的按键扫描方法中,当按键被触发时,执行以下操作:
      a. 将BCD码发送到乙机。
      b. 等待一段时间,以确保数据已成功发送。这是特别重要的,因为RS485是半双工通信,需要一定的时间来切换发送和接收模式。

    对于乙机:

    1. 确保你的RS485接收中断已正确配置,并且在接收到数据时触发中断。

    2. 在接收到数据的中断处理程序中,执行以下操作:
      a. 读取接收到的数据。
      b. 将接收到的BCD码转换为温度值,并在1602液晶屏上显示。

    确保你在转换BCD码为温度值时进行正确的计算和显示。可能需要使用BCD到二进制的转换算法,并考虑小数点的位置。


    如果你能提供更具体的代码和硬件连接信息,我可以给予更详细的帮助。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月26日

悬赏问题

  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?