第8章单片机行口的应用.ppt

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

第八章 串行口应用 一、串口组成及工作原理 异步接收/发送器URAT (Universal Asynchronous Receiver/Transmitter)用于串行全双工异步通信,也可作同步寄存器使用。TXD端发送数据,RXD端接收数据;两个发送缓冲器SBUF(Serial Buffer), 用各自的时钟源控制发送、接收数据。 工作原理 发送(输出):将数据写入发送SBUF(只写不读), 串口控制器按波特率发生器(定时器T1或T2构成)提供的时钟速率 把发送SBUF中的并行数据一位一位从TXD端输出。一帧数据结束 时,硬件将TI置“1”,必须软件清零。发送为主动,只要SBUF中 有数据,就发送。 接收(输入):REN=1,RI=0,接收SBUF(只读不写)。接收 器按要求的波特率采样RXD ,待接收到一个完整的的字节后,就 装入SBUF。 SBUF具有双缓冲作用,在CPU未读入一个接收数据前就 开始接收下一个数据,CPU要在下一个字节接收完毕前读取SBUF中 的 数据。数据接收完,硬件自动置RI=1,必须软件清零。 二、串行口有关的寄存器 1、串行口控制寄存器SCON SM0SM1=00,方式0,移位寄存器输入/输出方式。 SM0SM1=01,方式1, 10位异步通信方式。 SM0SM1=10、11,方式2、3,11位异步通信方式。 REN串口允许接收位,”1”允许接收,“0”禁止接收,软件控制 TB8方式2、3时发送的第九个数据,可由软件置位或清零。 RB8方式2、3时接收的第九个数据,方式1时接收的停止位。 TI接收中断标志,RI发送中断标志 2、电源控制寄存器PCON 三、串行口工作方式介绍 串行口有四种工作方式: 方式0 移位寄存器方式,波特率为fosc/12,外接串并移位寄存器可将数据通过串/并转换输出。 发送(输出):将数据写入发送SBUF,串口将8位数据以波特率为fosc/12从RXD输出,同时TXD端输出同步脉冲,一帧数据8位结束时,硬件将TI置“1”,必须软件清零。 接收(输入):REN=1,RI=0,接收器以fosc/12的波特率采样RXD端引入的数据,8位数据接收完,硬件自动置RI=1,必须软件清零。 方式0中SCON寄存器中的SM2、TB8、RB8均无意义,设为0。 方式1 : 一帧10位异步通信方式,1位起始位 (0),8位数据位(低位在前),1位停止位(1),起始位、停止位自动加入,TXD发送端,RXD接收端,波特率=(2SMOD/32)*N(定时器溢出率)。 发送:将数据写入SBUF,即起动发送,数据由TXD输出,定发送完一帧信息时,硬件将TI置1,必须软件清零。 接收: REN=1时,串行口采样RXD端,当检测到“1”到“0”的变化时(即起始位),开始接收,9位全部收齐时,此时若RI=0,停止位为“1”,便将接收的8位数据装入SBUF,停止位送入RB8,置位RI,若不满足上述条件,则接收无效。重新接收。 方式2、3: 一帧11位异步通信方式。1位起始位(0),8位数据位(低位在前),1位可编程位0或1,1位停止位(1)。 方式3:波特率=(2SMOD/32)*N(定时器溢出率), 方式2:波特率=fosc/64(32)。 发送:将数据写入SBUF后,即启动发送,发送完一帧信息时,硬件将TI置1,必须软件清零。第九位来自SCON中的TB8(软件置1或清零),作多机通信的标志位或数据的奇偶效验位。 接收:REN=1时,采样RXD端,当检测到“1”到“0”的变化时(即起始位),开始接收,在接收到第9位数据后,此时若RI=0或SM2=0时,第九位送入RB8 ,8位数据装入SBUF,置位RI,若不满足上述条件,则不置位RI,接收无效。接收电路复位,重新检测RXD从“1”到“0”的变化,重新接收数据。 四、波特率计算 波特率即数据传送速率,每秒传送二进制数码的位数bit/s。 串行口四种工作方式决定三种波特率 ⑴方式0,波特率为固定值,单片机时钟频率的1/12,即fosc/12; ⑵方式2有两种波特率,波特率=(2SMOD/64)fosc, ⑶方式1和方式3波特率是可变的, 波特率=(2SMOD/32)*N(定时器溢出率) 定时器溢出率:1秒溢出的次数N,N= (1/2k-Z)*fosc/12 k定时器工作方式,k=13、16、8; 如波特率为1200 b

文档评论(0)

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

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

1亿VIP精品文档

相关文档