网站大量收购独家精品文档,联系QQ:2885784924

第8讲串行通讯重点.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 方式3发送50H~5FH的内容 待发送的16个字节存放在片内RAM中 地址为50H~5FH 串行口波特率为2400 波特率发生器T1工作于方式2, 且SMOD=0 晶振为11.0592MHz 计算得到TL1的初值为F4H。 串行口工作于方式3 第9位发送奇偶校验位 * 例1:?方式3发送50H~5FH中内容-1 ORG 0000H ;复位入口 AJMP MAIN ORG 0023H ;串行口中断入口 AJMP L1 ORG 0100H ;主程序入口 MAIN:MOV SCON,#0C0H ;串行口初始化,用方式3发送,TI=0 MOV PCON,#00H ;SMOD=0 MOV TMOD,#20H ;T1方式2定时 MOV TL1,#0F4H ;写入T1时间常数 MOV TH1,#0F4H SETB TR1 ;启动T1 SETB EA SETB ES ;允许串行口中断 MOV R0,#50H ;设数据指针 MOV R7,#10H ;数据长度 LOOP: MOV A,@R0 ;取一个字符 MOV C,P ;加奇偶校验 MOV TB8,C MOV SBUF,A ;发送一个字符 HERE:SJMP HERE ;CPU原地循环,等待发送结束 * 例1:?方式3发送50H~5FH中内容-2 L1: CLR TI; 中断服务程序,发送结束标志位清0 DJNZ R7,NEXT ;发送完全部字符? CLR ES ;已发送完,关闭串行口中断 SJMP TEND NEXT: INC R0 ;未发送完,修改指针 MOV A,@R0 ;取下一个字符 MOV C,P ;加奇偶校验 MOV TB8,C MOV SBUF,A ;再次发送一个字符 TEND: RETI ;中断返回主程序 END 注意对TI的处理 * 例2:方式3接收 接收到的16个字节存放在片内RAM中 地址为50H~5FH 串行口波特率为2400 波特率发生器T1工作于方式2, 且SMOD=0 晶振为11.0592MHz 计算得到TL1的初值为F4H。 串行口工作于方式3 奇偶校验方式判断接收数据是否出错 设校验出错标志位为F0 * MAIN: MOV SCON,#0D0H ;串行口方式3允许接收,RI=0 MOV PCON,#00H ;SMOD=0 MOV TMOD,#20H ;T1方式2定时 MOV TL1,#0F4H ;写入T1时间常数 MOV TH1,#0F4H SETB TR1 ;启动T1 LCALL AAAA SJMP $ 方式3接收-查询 * 方式3接收-查询 AAAA: MOV R0,#50H ;设数据指针 MOV R7,#10H ;数据长度 WAIT: JBC RI,NEXT ;查询RI标志,等待串行口接收结束 SJMP WAIT NEXT: MOV A,SBUF ;读取一个接收字符 JNB P,COMP ;进行奇偶校验 JNB RB8,ERR ;P≠RB8,数据出错 SJMP RIGHT ;P=RB8,数据正确 COMP:JB RB8,ERR RIGHT:MOV @R0,A ;保存一个字符到片内RAM INC R0 ;修改指针 DJNZ R7,WAIT ;全部字符接收完? CLR F0 ;F0 =0,接收数据全部正确 sjmp TRET ;返回主程序 ERR: SETB F0 ;F0 =1,接收数据出错 TRET: RET ;返回主程序 注意对RI的处理 * 双机通讯小结 物理接线: TXD-RXD、RXD-TXD、共地 必须一致的波特率 必须一致的工作方式 各自的发送和接收程序可以不同 * 多机通讯

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档