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

秦晓飞系列-单片机原理及应用-第7章89C51、S51串行口及串行通信技术.ppt

秦晓飞系列-单片机原理及应用-第7章89C51、S51串行口及串行通信技术.ppt

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

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 7.3 89C51/S51与89C51/S51点对点异步通信 7.3.2 波特率设置 除非波特率很低,一般都采用T1模式2。因为当T1溢出后,参数自动装入,可避免不必要的中断请求。 表7-2给出了晶振fOSC=6MHz或12MHz时,常用波特率和定时器的初装值。但要注意,表中的初装值和波特率之间是有一定误差的。 比如:晶振fOSC= 11.059MHz,设置波特率为9600 b/s,则定时器T1的初装值为0FDH。设定时器操作于模式2,SMOD=0。 若要求比较准确的波特率,可以通过调整单片机的时钟频率fosc来得到,或通过修改SMOD值减少误差。 7.3 89C51/S51与89C51/S51点对点异步通信 7.3.3 通信程序举例 例7-7 设甲机发送,乙机接收。串行接口工作于方式3(每帧数据为11位,第9位用于奇偶校验),两机均选用6MHz的振荡频率,波特率为2400b/s。通信的功能为: 甲机:将片外数据存储器4000H~407FH单元的内容向乙机发送,每发送一帧信息,乙机对接收的信息进行奇偶校验。此例对发送的数据作偶校验,将P位放在TB8中。若校验正确,则乙机向甲机回发“数据发送正确”的信号(例中以00H作为应答信号)。甲机收到乙机“正确”的应答信号后,再发送下一个字节。若奇偶校验有错,则乙机发出“数据发送不正确”的信号(例中以FFH作为应答信号)。甲机接收到“不正确”应答信号后,重新发送原数据,直至发送正确。甲机将该数据块发送完毕后停止发送。 乙机: 接收甲机发送的数据,并写入以4000H为首址的片外数据存储器中。每接收一帧数据,乙机对所接收的数据进行奇、偶校验,并发出相应的应答信号,直至接收完所有数据。 解:(1)计算定时器处置X 将已知数据fosc=6×106Hz,波特率=2 400 b/s代入,得 取SMOD=0时,X=249.49。因取整数误差过大,故设SMOD=1,则X=242.98≈243=F3H。因此,实际波特率=2403.85 b/s。 7.3 89C51/S51与89C51/S51点对点异步通信 7.3.3 通信程序举例 解:(2)流程图 图7-18 甲机发送流程图 7.3 89C51/S51与89C51/S51点对点异步通信 7.3.3 通信程序举例 解:(2)流程图 图7-19 乙机接收流程图 7.3 89C51/S51与89C51/S51点对点异步通信 7.3.3 通信程序举例 解:(3)源程序 SETB ES;允许串行口中断 ETB 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 ;判断应答信号是#00H吗? JC LOOP1 ;是#00H,发送正确(#00H-#01H),C=1,转LOOP1 MOVX A,@DPTR;否则甲机重发 MOV C,P MOV TB8,C MOV SBUF,A;甲机重发原数据 SJMP ENDT ;转下一页 ①甲机 主程序: 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 ;置发送字节数初值 7.3 89C51/S51与89C51/S51点对点异步通信 7.3.3 通信程序举例 解:(3)源程序 MAI

文档评论(0)

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

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

1亿VIP精品文档

相关文档