第七章 89C51串行口及串行通信技术精选.ppt

第七章 89C51串行口及串行通信技术精选.ppt

  1. 1、本文档共136页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 89C51串行口及串行通信技术精选

7.3.2波特率设置 除非波特率很低,一般都采用T1模式2。因为当T1溢出后,参数自动装入,可避免不必要的中断请求。 在第二节中,表7-2给出了晶振fosc=6MHz或12MHz时,常用波特率和定时器的初装值。但要注意,表中的初装值和波特率之间是有一定误差的 7.3.2波特率设置 若晶指fosc=11.095MHz,设置波特率为9600b/s,则定时器T1的初装值为0FDH。设定时器操作于模式2,SMOD=0。 若要求比较准确的波特率,只能靠调整单片机的时钟频率fosc来得到。 7.3.3通信程序举例 例7-12: 设甲机发送,乙机接收。串行接口工作于方式3(每帧数据为11位,第9位用于奇偶校验),两机均选用 6.0000MHz的振荡频率,波特率为 24O0 b/s。通信的功能为: 甲机:将片外数据存储器4000H—407FH单元的内容向乙机发送,每发送一帧信息,乙机对接收的信息进行奇偶校验。此例对发送的数据作偶校验,将P位值放在TB8中。若校验正确,则乙机向甲机回发“数据发送正确”的信号(例中以00H作为应答信号)。甲机收到乙机“正确”的应答信号后再发送下一个字节。若奇偶校验有错,则乙机发出“数据发送不正确”的信号(例中以FFH作为应答信号)。甲机接收到“不正确”应答信号后,重新发送原数据,直至发送正确。甲机将该数据块发送完毕后停止发送。 乙机:接收甲机发送的数据,并写入以4000H为首址的片外数据存储器中。每接收一帧数据,乙机对所接收的数据进行奇、偶校验,并发出相应的应答信号,直至接收完所有数据。 7.3.3通信程序举例 解: (1)计算定时器计数初值X 将已知数据fosc=6MHZ,波特率=2400b/s代入,得 7.3.3通信程序举例 取SMOD=0时,X=249.49。因取整数误差过大,故设SMOD=1,则X=242.98≈243=F3H。 因此,实际波特率=2403.85 b/S。 (2)能实现上述通信要求的甲、乙机的流程图如图7-28,图7-29所示。 图7-28 甲机发送流程 图7-29 乙机发送流程 双机发送流程图 7.4.3通信程序举例 (3)源程序 ①甲机 主程序 ORG 0000H LJMP MAIN ;上电,转向主程序 ORG 0023H ;串行口的中断入口地址 LJMP SERVE1 ;转向甲机中断服务程序 ORG 2000H ;主程序 MAIN: MOV TMOD ,#20H ;设T1工作与模式2 MOV TH1 ,#0F3H ;赋计数初值 MOV TL1 ,#0F3H ;赋计数值 SETB TR1 ;启动定时器T1 MOV PCON ,#80H ;设SMOD=1 MOV SCON ,#0D0H ;置串行口方式3,允许接收 MOV DPTR ,#4000H ;置数据块首址 MOV R0 ,#80H ;置发送字节数初值 SETB ES ;允许串行口中断 SETB EA ;CPU开中断 MOVX A ,@DPTR ;取第一个数据发送 MOV C ,P MOV TB8 ,C ;奇偶标志送TB8 MOV SBUF ,A ;发送数据 SJMP $ ;等待中断 中断服务程序 中断服务程序 SERVE1: JBC RI ,LOOP ;是接收中断,清除RI,转入接收乙机的应答 信息 CLR TI ;是发送中断,清除此中断标志 SJMP ENDT LOOP: MOV A ,SBUF ;取乙机的应答信息 CLR C SUBB A ,#01H ;判应答信号

文档评论(0)

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

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

1亿VIP精品文档

相关文档