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

TI?=1,表示一帧数据发送结束。TI的状态可供软件查询,也可申请中断。CPU响应中断后,在中断服务程序中向SBUF写入要发送的下一帧数据。TI必须由软件清“0”。 (7)RI——接收中断标志位 方式0时,接收完第8位数据时,RI由硬件置“1”。在其他工作方式中,串行接收到停止位时,该位置“1”。RI?=?1,表示一帧数据接收完毕,并申请中断,要求CPU从接收SBUF取走数据。该位的状态也可供软件查询。RI必须由软件清“0”。 (1)从机接收到的主机发来的第9位数据RB8=1时,前8位数据才装入SBUF,并置中断标志RI?=?1,向CPU发出中断请求。 在中断服务程序中,从机把接收到的SBUF中的数据存入数据缓冲区中。 (2)如果从机接收到的第9位数据RB8=0时,则不产生中断标志RI=1,不引起中断,从机不接收主机发来的数据。 若SM2?=?0,则接收的第9位数据不论是0还是1,从机都将产生RI?=?1中断标志,接收到的数据装入SBUF中。 发来的数据帧。从而保证主机与从机间通信的正确性。此时主机与建立联系的从机已经设置为单机通信模式,即在整个通信中,通信的双方都要保持发送数据的第9位(即TB8位)为0,防止其他的从机误接收数据。 (4)结束数据通信并为下一次的多机通信做好准备。在多机系统,每个从机都被赋予唯一的地址。例如,图7-16三个从机的地址可设为:01H、02H、03H。 还要预留1~2个“广播地址”,它是所有从机共有的地址,例如将“广播地址”设为00H。当主机与从机的数据通信结束后,一定要将从机再设置为多机通信模式,以便进行下一次的多机通信。 通信线路要采用平衡双绞线。平衡双绞线的长度与传输速率成反比,在100kbit/s速率以下,才可能使用规定的最长电缆。 只有在很短的距离下才能获得最大传输速率。一般100m长双绞线最大传输速率仅为1Mbit/s。 图7-19,RS-485以双向、半双工的方式来实现双机通信。在AT89S51单片机系统发送或接收数据前,应先将SN75176的发送门或接收门打开,当P1.0=1时,发送门打开,接收门关闭;当P1.0=0时,接收门打开,发送门关闭。 1.串行口方式1应用编程 【例7-?4】 采用方式1进行双机串行通信,收、发双方均采用6MHz晶振,波特率为2?400bit/s,一帧信息为10位,发送方把以78H、77H单元的内容为首地址,以76H、75H单元内容减1为末地址的数据块通过串口发送给收方。 发送方要发送的数据块的地址为2000H~201FH。先发地址帧,再发数据帧;接收方在接收时使用一个标志位来区分接收的是地址还是数据,然后将其分别存放到指定的单元 中。发送方可采用查询方式或中断方式发送数据,接收方可采用中断或查询方式接收。 (1)甲机发送程序 中断方式的发送程序如下: ORG 0000H ;程序初始入口 LJMP MAIN ORG 0023H ;串行中断入口 LJMP COM_INT ORG 1000H 在图7-23中,单片机的串行口通过75176芯片驱动后就可转换成RS-485标准接口,根据RS-485标准接口的电气特性,从机数量不多于32个。PC机与AT89S51间的通信采用主从方式,PC机为主机,AT89S51为从机,由PC机确定与哪个单片机进行通信。 2. 软件设计思想 串行通信软件的编写,涉及两部分内容:一是单片机的串行口收发程序,可采用汇编语言或C语言编写;二是PC机的串行通信和程序界面的编制,可采用VB、C或VC语言来编写。具体软件设计请参阅有关参考资料。 * 图7-19中的SN75176芯片内集成了一个差分驱动器和一个差分接收器,且兼有TTL电平到RS-485电平、RS-485电平到TTL电平的转换功能。 此外常用的RS-485接口芯片还有MAX485。 7.5.2 串行通信设计需要考虑的问题 单片机的串行通信接口设计时,需考虑如下问题。 (1)首先确定通信双方的数据传输速率。 (2)由数据传输速率确定采用的串行通信接口标准。 * (3)在通信接口标准允许的范围内确定通信的波特率。为减小波特率的误差,通常选用11.0592MHz的晶振频率。 (4)根据任务需要,确定收发双方使用的通信协议。 (5)通信线的选择,这是要考虑的一个很重要的因素。通信线一般选用双绞线较好,并根据传输的距离选择纤芯的直径。如果空间的干扰较多,还要选择带有屏蔽层的双绞线。 (6)通信协议确定后,进行通信软件编程,请见下面介绍。 * 7.5.3 双机串行通信软件编程 串行口的方式1~3是用于串行通信的,下面介绍双机串行通信软件编程。 应当说明的是,下

文档评论(0)

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

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

1亿VIP精品文档

相关文档