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

第五章串行通讯.ppt

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

本章到此结束! (1)方式0 工作时波形图如下: (a) (b) 2.其它方式 方式1,2,3为UART方式,原理一样 1)发送过程(数据由TXD 端输出): 奇偶校验位或程控位(TB8) 停止位,一帧完,硬件使TI=1,产生发送中断 在中处中,若还有数据要发送,请求CPU送出新的发送字节MOV SBUF,A,直到全部数据发送完,关串口中断,返回 起始位 数据低位 数据高位 后发 再发 写入SBUF的指令启动发送, 缓冲器 移位寄存器 先发 2)接收过程:(数据均由RXD输入) 串行口以16倍选定波特率采样RXD端状态, 当采到该端电平由”1”到”0”的跳变时 接收一帧代码 拼成并行码 接收缓冲器 方式1:停止位 方式2、3:可程控第九位 RB8完,使RI=1 申请接收中断,在“中处”中执行指令 MOV A,SBUF, 取走该帧字符,否则不产生RI中断、不执行MOV A,SBUF,则下一次接收到的数据将本次冲掉,数据就会无条件丢失 启动接收器 方式1时串行通道工作波形 方式2、3时串行通道工作波形 方式1、2、3的区别 方式1、2、3主要区别在两方面 (1)字符格式 (2)波特率 这是异步通信事先要规定的两个重要约定 方式1、2、3的区别 1)字符格式约定 方式1为8位异步通讯口: 方式2、3为9位异步通讯口: 1 0 1 0 启动位 停止位 启动位 停止位 数据:8位 数据:8位 接收送入SCON的RB8位 发送时用户通过置TB8决定该位为”0”还是”1” 在方式1工作时定时器1是作为波特率发生器 用,其中断应无效,而方式2的波特率为 2)波特率 方式1、3的波特率可变,由定时/计数器产生 因振荡器的频率是固定的,故方式2的波 特率只能取为 由编程PCON的SMOD= 显然,方式2波特率变化范围小于方式1、3 1 加倍 0 不变 3)发送(输出)区别: 方式1、2、3应写入不同的方式控制字 方式2,3可程控TB8 (1)使第九位数据做多机 通讯中地址/数据位 (2)做奇偶校验位 方式1与方式2、3的主要区别 4)接收(输入)区别: 写入不同控制字,均使REN=1,允许接收 但要保存接收到的数据还应使: SM2=0或SM2=1且接收到的第9个数据=1 SM2=0 RI=0 RI=0 方式2、3 方式1 在单机通讯时可利用TB8、RB8作为奇偶校验位 例:设R2为发送数据区地址指针,加入奇偶校验位的发送 程序如下: RIPTI: PUSH PSW PUSH A SETB PSW.4 CLR PSW.3 CLR TI MOV A,@R0 MOV TB8,P MOV SBUF,A INC R0 POP A POP PSW RETI 多处理机通讯 由控制字SM2位规定可知 SM2=1,串行口接收到的 第九位数据存于RB8: RB8=1 产生中断,接收数据 RB8=0 不产生中断,信息丢失 根据这一特性可用于实现多机通讯。 从机 编程方式为方式2或3 9位异步通讯方式 SM2=1,多机通讯控制 REN=1,允许接收 1、置所有从机SM2=1; 2、发地址,且使主机TB8=1; 从机RB8=1 ∴各从机响应中断,对照地址 相符:使SM2=0 不符:维持SM2=1 SM2=1 4、主机发送数据信息,且此时TB8=0(主机) 3、∵ 其过程简述如下: 5、从机接收后RB8=0 从机中 地址相符 地址不符 SM2=0 RB8=0 可接收,数据送被寻址从机 SM2=1 RB8=0 不产生RI中断,数据丢失 ∵ ∵ 否则接收到的数据将丢失 波特率的设定 方式2:波特率固定为振荡频率的1/32或1/64 方式1、3 波特率可变。 ∴波特率的制定主要是对方式1、3而言的。 由于方式1、3波特率可变,无法采用固定的振荡 频率,一般采用定时器1,且让工作于自动装载方 式(方式2,不中断)来产生波特率。 若已知定时器1的溢出率,则工作在方式1,3时的 串行口波特率可由下式求得: 定时器1的溢出率可由下式算出: 将此值代入求波特率的算式,可求得: 例1 若已知fosc=6MHZ,SMOD=0不加倍, (TH1)=D9H,求波特率 反之,若已知波特率=400, SMOD=0,fosc=6MHZ,问TH1(TL1)时间常数应 为多少? FEE4H 1 0 0 12MH

文档评论(0)

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

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

1亿VIP精品文档

相关文档