C51 modbus 通信协议 可以完成功能码.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51 modbus 通信协议 可以完成01 03 05 06 功能码 本帖最后由 kaishandage 于 2012-6-15 15:37 编辑 #include "main.h" sbit SPEAK=P3^4; /**********************************************************************? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 欢迎指正,多多交流,只有不断交流才会不断进步, ? ? ? ? ? ? ? ? 本协议内容是根据网络资源修改,网上的MODbus协议大多不能使用,本协议修改后可以完成01 03 05 06 ? ? ? ? ? ? ? ? 功能码。10功能码大家完成吧, 本程序已经调试好,直接下载就可以使用, ----------------------------------------------------------------------- modbus RTU 的C51程序 ----------------------------------------------------------------------- 单片机AT89C51? ? ? ?? ?11.0592MHZ ----------------------------------------------------------------------- 通信波特率 9600 8位数据 1位停止位 偶校验 485通位接口 ----------------------------------------------------------------------- 单片机控制板地址 localAddr(变量) 通信可设置数据的地址: 字地址 0 - 255 (只取16位的低8位) **********************************************************************/ uint16??idata D _at_ 0x40;? ? ? ???//10进制地址是64, /**********************************************************************? ? ? ??? D0 的10进制地址是 64 D1 的10进制地址是 65 该ModBUS支持的功能 01 读线圈 可以读取单个或多个线圈, 上位机发送数据格式??地址,功能码,线圈地址高位,线圈地址低位,读取线圈个数高位,读取线圈个数低位,CRC低位,CRC 高位, 下位机回应数据格式,地址??功能码,数据个数, 数据,CRC低位,CRC??高位, 03 读寄存器,可以读取单个或者多个寄存器 上位机发送数据格式??地址,功能码,寄存器地址高位,寄存器地址低位,数据个数高位,数据个数低位,CRC低位,CRC 高位, 下位机回应数据格式,地址??功能码,数据个数,数据1高位 数据1低位??数据2高位 数据2低位 。。。。,CRC低位,CRC??高位, 05 写单个线圈 上位机发送数据格式??地址,功能码,线圈地址高位,线圈地址低位,数据高位,数据低位,CRC低位,CRC 高位, 下位机回应数据格式,地址,功能码,线圈地址高位,线圈地址低位,数据高位,数据低位,CRC低位,CRC 高位, 06 写单个寄存器 上位机发送数据格式??地址,功能码,数据地址高位,数据地址低位,数据高位,数据低位,CRC低位,CRC 高位, 下位机回应数据格式 ? ? ? ? 地址,功能码,数据地址高位,数据地址低位,数据高位,数据低位,CRC低位,CRC 高位, 0x10 写多个寄存器 上位机发送数据格式??地址,功能码,线圈地址高位,线圈地址低位,读取线圈个数高位,读取线圈个数低位,CRC低位,CRC 高位, 下位机回应数据格式,地址??功能码,数据个数, 数据,CRC低位,CRC??高位, **********************************************************************/ uint8? ? ? ? xdata sendBuf,receBuf; //发送接收缓冲区 uint8? ? ? ? idata checkoutError;? ? ? ? // ==2 偶校验错?? uint8? ? ? ? idata receTimeOut;? ? ? ? ? ? ? ? //接收超时 bit? ? ? ? ? ? ? ? idata bt1ms;//100ms,bt100ms;? ? ? ? //定时标志位 uint8 xdata M?

文档评论(0)

ranfand + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档