- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2)方式2接收 SM0、SM1=10,且REN=1。数据由RXD端输入,接收11位信息。当位检测逻辑采样到RXD引脚从1到0的负跳变,并判断起始位有效后,便开始接收一帧信息。在接收器完第9位数据后,需满足以下两个条件,才能将接收到的数据送入SBUF。 (1)RI=0,意味着接收缓冲器为空。 (2)SM2=0或接收到的第9位数据位RB8=1时。 当上述两个条件满足时,接收到的数据送入SBUF(接收缓冲器),第9位数据送入RB8,并置“1”RI。若不满足这两个条件,接收的信息将被丢弃。 串行口方式2接收数据的时序波形如图所示。 补充例X1 方式2接收在双机通讯中的应用。 本例与上例相对应。若附加的第9位数据为校验位,在接收程序中应作偶校验处理,设1组寄存器区的R0为数据缓冲器指针。 PIRI: PUSH PSW PUSH Acc SETB RS0 ;选择1组寄存器区 CLR RS1 CLR RI MOV A,SBUF ;收到数据送A MOV C,P JNC L1 JNB RB8,ERP ;ERP为出错处理程序 AJMP L2 L1: JB RB8,ERP L2: MOV @R0,A INC R0 POP Acc POP PSW ERP: ……… ;出错处理程序段 ……… RETI 4 方式3 当SM0、SM1=11,串行口工作在方式3。方式3为波特率可变的9位异步通讯方式,除波特率外,方式3和方式2相同。方式3发送和接收数据的时序波形见方式2的图。 方式3的波特率由下式确定: 方式3波特率=(2SMOD/32)×定时器T1的溢出率 5.2.5 多机通讯与波特率定制 1、多机通讯 多个MCS-51单片机可利用串行口可进行多机通讯。要保证主机与所选择的从机实现可靠地通讯,必须保证串行口具有识别功能。 串行口控制寄存器SCON中的SM2位就是满足这一条件而设置的多机通讯控制位。原理是在串行口以方式2(或方式3)接收时,若SM2=1,表示置多机通讯功能位,这时出现两种可能情况: (1)接收到的第9位数据为1时,数据才装入SBUF,并置中断标志RI=1向CPU发出中断请求; (2)接收到的第9位数据为0时,则不产生中断标志,信息将抛弃。 若SM2=0,则接收的第9位数据不论是0还是1,都产生RI=1中断标志,接收到的数据装入SBUF中。 应用上述特性,便可实现MCS-51的多机通讯。 设多机系统中有一主机和3个8031从机,如下图。 主机的RXD与所有从机的TXD端相连,TXD与所有从机的RXD端相连。从机的地址分别为00H、01H和02H。 多机通讯工作过程: (1)从机串行口编程为方式2或方式3接收,且置“1”SM2和REN位,使从机只处于多机通讯且接收地址帧的状态。 (2)在主机先将从机地址(即准备接收数据的从机)发送给各从机,接着才传送数据或命令,主机发出的地址信息的第9位为1,数据(包括命令)信息的第9位为0。当主机向各从机发送地址时,各从机的串行口接收到的第9位信息RB8为1,且由于SM2=1,则置“1”中断标志位RI,各从机8031响应中断,执行中断服务程序。在中断服务子程序中,判主机送来的地址是否和本机地址相符合,若为本机地址,则该从机清“0”SM2位,准备接收主机的数据或命令;若地址不相符,则保持SM2=1状态。 (3)接着主机发送数据帧,此时各从机串行口接收到 的RB8=0,只有与前面地址相符合的从机系统(即 已清“0”SM2位的从机)才能激活中断标志位RI, 从而进入中断服务程序,在中断服务程序中接收 主机的数据(或命令); 其它的从机因SM2保持为1,又RB8=0不激活中断标志RI,不能进入中断,所接收的数据丢失不作处理,从而保证主机和从机间通讯的正确性。 前图所示的多机系统是主从式,由主机控制多机之间 的通讯,从机和从机的通讯只能经主机才能实现。 2、波特率的制定方法 方式0和方式2的波特率是固定的;方式1和方式3波特率可由定时器T1的溢出率来确定。 定时器T1产生波特率的计算 (1)方式0,波特率固定为时钟频率fosc的1/12,且不受SMOD位的值的影响。若fosc=12MHz,波特率为fosc/12即1Mb/s。 (2)方式2,波特率
原创力文档


文档评论(0)