51单片机MODBUS协议汇编-蚂蚁叼骨头1.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51单片机MODBUS协议汇编-蚂蚁叼骨头1.doc

51单片机汇编—MODBUS协议 (带写入功能) //读数据帧:01设备地址 03功能码 0000起始地址 0001数据长度 840A校验码 //读返回帧:01设备地址 03功能码 02数据个数 12 数据 34数据 B533校验码 //写数据帧:01设备地址 10功能码 0001起始地址 0001数据长度 02数据字节数 12数据 34数据 AAF6校验码 //写返回帧:以写帧相同。 //带此‘-----’标志,且后无任何备注的可以去除或用空指令代替,此些地方时是为了测试时使用的状态显示位。 ORG 0000H LJMP MAIN; ORG 0023H LJMP PCTX; ORG 0100H MAIN: MOV SP,#30H; MOV P0,#00H; MOV 60H,#12H;--------------- MOV 61H,#34H;---------------------- MOV 62H,#56H; -------- MOV 63H,#78H;--- MOV TMOD,#20H; MOV TL1,#0FDH; MOV TH1,#0FDH; MOV SCON,#50H; MOV PCON,#00H; ;/MOV R3,#00H;存入数据个数(未用) MOV P1,#00H; MOV R3,#00H; MOV R2,#08H; MOV R1,#40H;数据首地址(未用) //MOV 0B8H,#10H; 串口优先级 SETB TR1; SETB ES; //MOV DPTR,#0100H; SETB EA; MOV P0,#00H; MOV R4,#00H; LOON:MOV R5,#0FH; LOO:MOV A,R3; JNZ LOP; MOV A,R4; MOV P1,A; INC R4; LCALL DELAY1S; DJNZ R5,LOO; JMP LOON; PCTX: SETB P0.0;------------------ TX: JB RI,LOOP; LCALL DELAY10;延时10ms等待; JNB RI,LOP; SETB P0.1;----------------- LJMP OUT; LOOP: MOV A,SBUF; MOV 3EH,A; CLR RI; MOV A,R1; ADD A,R3; MOV R0,A; MOV @R0,3EH; INC R3;存入数据个数(未用) MOV A,R3;------------- MOV P2,A;------------- LCALL DELAY10; LJMP OUT; //DJNZ R2,OUT; LOP:CLR ES; //LCALL DELAY1S;延时10ms MOV R1,#40H; MOV A,@R1;(数据地址送A比较器) SUBB A,#01H;(地址为01响应) JNZ RESET; SETB P0.2;---------- MOV A,41H; SUBB A,#03;功能码为03,对数据读操作。 JNZ LOOP1;----------------------- 数据写操作入口 LCALL CRC16; MOV R1,#46H; MOV A,@R1; SUBB A,3CH; JNZ RESET; SETB P0.0;---------- INC R1; MOV A,@R1; SUBB A,3BH; JNZ RESET; MOV A,42H; JNZ RESET; MOV A,43H;数据首地址R4 RL A; 字节成以2,以字为单位; CLR C; MOV R4,A; MOV A,44H; JNZ RESET; MOV A,45H;读数据长度R5 SUBB A,#09H;----限制读8个字,缓冲数据存放40-5FH;数据存储在60H-7FH; JNC RESET; MOV A,45H;--------频定义的数据长度。 RL A; CLR C; MOV R5,A; MOV R7,A; 读数据长度R7 MOV A,#60H;数据区转移到发送缓冲区 ADD A,R4; MOV R4,A; MOV R6,#43H; LOOP3: MOV A,R4;数据区转移到发送缓冲区 MOV R0,A; MOV A,@R0; MOV 3EH,A; MOV A,R6; MOV R0,A; MOV @R0,3EH; INC R4; INC R6; DJNZ R5,LOOP3; MOV A,R7;数据校验准备,原数据长度 MO

文档评论(0)

资料 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档