3-5-1串行口教材.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SM2,多机通信控制位。 主要用于方式2和方式3。对于接收机 SM2=0,收到RB8(0或1)既可使收到的数据进入SBUF,并激活RI。 SM2=1,收到的RB8=0时,收到的信息丢弃,不激活RI ;若收到的RB8=1时,收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走。 方式0时,SM2必须是0。 方式1时,SM2=1时,只有接收到有效停止位时,RI才激活。 REN,允许串行接收位。 置REN=1,启动串口接收过程 置REN=0,则禁止串口接收 TB8,在方式2、3中,是发送数据的第9位 数据的奇偶校验位 地址帧/数据帧的标志位 RB8,在方式2、3中,是接收到数据的第9位 奇偶校验位 地址帧/数据帧的标志位。 方式1时,若SM2=0,则RB8是接收到的停止位。 TI,发送中断标志位。 方式0时,串行发送第8位数据结束时 其它方式,串行发送停止位的开始时 硬件使TI置1,发中断申请。必须在中断服务程序中用软件将其清0。 RI,接收中断标志位。 方式0时,串行接收第8位数据结束时 其它方式,串行接收停止位的中间时 硬件使RI置1,发中断申请。必须在中断服务程序中用软件将其清0。 波特率的计算 方式0、2的波特率是固定的,而方式1、3的波特率是可变的,由定时器T1的溢出率来决定。 方式0波特率 = fosc/12 方式2波特率 =(2SMOD/64)· fosc 方式1波特率 =(2SMOD/32)·(T1溢出率) 方式3波特率 =(2SMOD/32)·(T1溢出率) T1 溢出率 = fosc /{12×[256 -(TH1)]} T1方式2,TR1=1(以启动定时器) 8.4 串行口的工作方式 根据串行通信数据格式和波特率的不同, 51系列单片机的串行通信有四种工作方式,通过编程进行选择,各工作方式的特点如下: 1.方式0 RXD为串行数据的发送端或接收端, TXD输出频率为fosc/12的时钟脉冲。 波特率固定为fosc/12 (fosc为单片机晶振频率) 方式0的数据格式为8位,低位在前,高位在后 移位寄位器方式多用于接口的扩展,当用单片机构成系统时,往往感到并行口不够用,此时可通过外接串入并出移位寄存器扩展输出接口;通过外接并入串出移位寄存器扩展输入接口,方式 0 也可应用于短距离的单片机之间的通信。 2.方式1 为10位异步通信方式,即每帧数据由1个起始位 “0”.八个数据位 和1个停止位“1”共10位构成.其 中起始位和停止位在发送时是自动插入的. 以TXD为串行数据的发送端,T1提供移位时钟,RXD 为数据的接收端,由T1提供移位时钟,是波特率可 变方式 波特率=(2SMOD/32)×(TI的溢出率) =(2SMOD/32)×(fosc/12(256-x) ) 根据给定的波特率,可以计算T1的计数初值X。 11位异步发送/接收方式,即每帧数据由一个起 始位“0”,9个数据位和1个停止位“1”组成。发送时 第九个数据位,由SCON寄存器的TB8位 提供,接收 到的第九位数据存放在SCON寄存器的RB8位. 第九位数据可作为检验位,也可用于多机通信中 识别传送的是地址还是数据的特征位。 波特率固定为(2SMOD/64)×fosc. 3. 方式2 4. 方式3 数据格式同方式 2,所不同的是波特率可变,计算方式同方式 1。 串行口初始化具体步骤: 确定T1的工作方式(编程TMOD寄存器); 计算T1的初值,装载TH1、TL1; 启动T1(编程TCON中的TR1位); 确定串行口控制(编程SCON寄存器); 串行口在中断方式工作时,还要进行中断设置(编程IE、IP寄存器)。 8.5 串行口的应用编程 串行口的波特率有两种方式: 固定波特率 可变波特率 注意:使用可变波特率时,先确定TI 的计数初值, 并对TI 进行初始化。 串行通信的编程方式: 查询方式: 查TI或RI 是否为“1”。 中断方式:如果预先开了中断,当TI、RI 为“1”,会自动产生中断。 注意:两种方式中当发送或接受数据后都要注意 清TI 或RI 。 查询方式发送程序: (先发后查) 发送一个数据→查询TI →发送下一个数据 查询方式接收程序:(先查后收) 查询RI→读入一个数据→查询RI→读下一个数据 中断方式发送程序: 发送一个数据→等待中断,在中断中再发送下一个数据。 中断方式接收程序: 等待中断,在中断中再接收一个数据。 8.5.1 查询方式 查询方式发

文档评论(0)

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

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

1亿VIP精品文档

相关文档