- 1、本文档共93页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- (苏教版)数学五年级上册寒假“天天练”作业设计,含30份题组,附参考答案.pdf
- 《(电影、美剧超级大包)(英语中字)(BD-MKV HD-MKV 1200G)115 先收着。。。转自deefun》.doc
- 2023年黑龙江省烟草专卖局(公司)真题.docx VIP
- 招标采购代理规范zbtb-t a01-2016.pdf
- 小儿肺脏超声基础课件.ppt
- 华南理工大学《管理统计学》课件-第2章统计数据的描述.pptx
- 2023年黑龙江省烟草专卖局系统考试真题.docx VIP
- 《好妈妈胜过好老师》.doc
- 家长会参考讲义——围棋与孩子的素质教育幻灯片课件.ppt
- 华南理工大学《管理统计学》课件-第6章方差分析与试验设计.pptx
文档评论(0)