51单片机串行通讯.ppt

上传人:p** 文档编号:166391 上传时间:2023-03-10 格式:PPT 页数:40 大小:781.50KB
下载 相关 举报
51单片机串行通讯.ppt_第1页
第1页 / 共40页
51单片机串行通讯.ppt_第2页
第2页 / 共40页
51单片机串行通讯.ppt_第3页
第3页 / 共40页
51单片机串行通讯.ppt_第4页
第4页 / 共40页
51单片机串行通讯.ppt_第5页
第5页 / 共40页
51单片机串行通讯.ppt_第6页
第6页 / 共40页
51单片机串行通讯.ppt_第7页
第7页 / 共40页
51单片机串行通讯.ppt_第8页
第8页 / 共40页
51单片机串行通讯.ppt_第9页
第9页 / 共40页
51单片机串行通讯.ppt_第10页
第10页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《51单片机串行通讯.ppt》由会员分享,可在线阅读,更多相关《51单片机串行通讯.ppt(40页珍藏版)》请在第壹文秘上搜索。

1、1第七讲 串行通讯2本讲课程主要内容(1)串行通讯的基本概念及MCS-51串行口的SFR(2)串行口的工作方式(3)串行口波特率的制定(4)串行口的编程方法(5)多机通讯3串行通讯的基本概念串行通讯的基本概念通讯的基本方式:n串行通讯与并行通讯n串行同步通讯、串行异步通讯 n单工、半双工和全双工串行通讯 4并行通讯、串行通讯并行通讯:数据各位同时传送串行通讯:数据一位一位顺序传送5串行异步通讯、串行同步通讯 异步通讯,每个数据都要用起始位和停止位作为传送数据开始和结束标志。同步通讯,具有数据端和时钟端,双方依靠时钟同步。6单工、半双工、全双工串行通讯单工、半双工、全双工串行通讯n单工:仅能发送

2、或接收n半双工:能发送、接收,但发送与接收不能同时进行n全双工:能够同时进行发送与接受。nMCS-51可以进行全双工的串行通讯7MCS-51串行口的基本结构n发送器:将发送器:将CPUCPU送来的并行数据,通过送来的并行数据,通过发送移位寄存器变为串行数据逐位发发送移位寄存器变为串行数据逐位发送,并自动添加起始位、停止位和第送,并自动添加起始位、停止位和第9 9位数据。位数据。n接收器:将接收到的串行数据,经接接收器:将接收到的串行数据,经接收移位寄存器变为并行数据,去掉起收移位寄存器变为并行数据,去掉起始位、停止位后,将正确数据送到接始位、停止位后,将正确数据送到接收数据缓冲器,供收数据缓冲

3、器,供CPUCPU读取。读取。n控制器:接收控制器:接收CPUCPU送来的编程命令,按送来的编程命令,按选定方式实现对串行接口的控制。主选定方式实现对串行接口的控制。主要控制参数有:传送波特率的选择、要控制参数有:传送波特率的选择、数据格式的选择等。另外还与数据格式的选择等。另外还与CPUCPU交换交换状态信号和中断信号。状态信号和中断信号。 串行接口逻辑部件框图8串行口的基本结构nSCON为串行口控制为串行口控制/状态寄状态寄存器,通过编程写入存器,通过编程写入SCON的的控制位可选择串行口的工作控制位可选择串行口的工作方式,读出方式,读出SCON的状态位可的状态位可查询串行口的工作状态。查

4、询串行口的工作状态。n定时定时/计数器计数器T1可被用做串行可被用做串行口的波特率发生器。口的波特率发生器。n有可控分频电路影响数据传有可控分频电路影响数据传送波特率。送波特率。n串行口信息的发送串行口信息的发送/接收是通接收是通过写过写/读数据缓冲器读数据缓冲器SBUF来来实现的。实现的。9串行口的SFRn串行数据缓冲器串行数据缓冲器SBUF(99H) 串行口有两个串行口有两个8位数据缓冲器,一个是发送数据位数据缓冲器,一个是发送数据缓冲器缓冲器SBUF,一个是接收数据缓冲器,一个是接收数据缓冲器SBUF。它们共。它们共用一个地址用一个地址99H,发送,发送SBUF只能写入,而接收只能写入,

5、而接收SBUF只能读出。只能读出。 通过指令区分:通过指令区分:MOV SBUF,A MOV A,SBUFn控制寄存器控制寄存器SCON (98H)SM0 SM1 SM2 REN TB8 RB8 TI RIn节电控制节电控制寄存器寄存器PCON(87H) SMOD (D7)n复位后状态均为复位后状态均为00H 10串行口控制寄存器SCON SM0、SM1:串行口串行口4种工作方式选择位种工作方式选择位 SM2:方式方式2和方式和方式3中的多机通信控制位。在方式中的多机通信控制位。在方式2和方式和方式3中,如中,如SM2=1,则当接收到的第,则当接收到的第9位数据位数据(RB8)为为0时,不激活

6、接收中断标志时,不激活接收中断标志RI(RI=1)。在方。在方式式1中,如中,如SM2=1,则只有当接收到有效停止位时才,则只有当接收到有效停止位时才激活激活RI,若没有接收到有效停止位,则,若没有接收到有效停止位,则RI清清0。在方。在方式式0中,中,SM2必须为必须为0。 REN:允许串行接收位。允许串行接收位。REN=1允许接收;允许接收; REN=0禁止接收,由软件置位或清零。禁止接收,由软件置位或清零。 TB8:是工作在方式是工作在方式2和和3时,要发送的第时,要发送的第9位数据。位数据。可由软件置可由软件置1或清或清0。在许多的通讯协议中该位是奇偶。在许多的通讯协议中该位是奇偶校验

7、位。校验位。在多机通讯中用来表示是地址帧还是数据帧,在多机通讯中用来表示是地址帧还是数据帧,TB8=1为地址帧,为地址帧,TB80为数据帧。为数据帧。11串行口控制寄存器SCONnRB8:当工作在方式当工作在方式2和和3时,为接收到的第时,为接收到的第9位数据。位数据。nTI:发送中断标志位,在方式发送中断标志位,在方式0串行发送第串行发送第8位数据结位数据结束时由硬件置束时由硬件置1,或在其它方式串行发送停止位后置,或在其它方式串行发送停止位后置1,并申请中断。并申请中断。CPU响应中断后,可发送下一帧数据,响应中断后,可发送下一帧数据,TI必须由软件清必须由软件清0。nRI:为接收结束中断

8、标志。在方式为接收结束中断标志。在方式0中,当接收到一中,当接收到一帧数据的第帧数据的第8位结束时,位结束时,RI=1。在其他方式中,接收。在其他方式中,接收到停止位后,到停止位后,RI=1,表示可读取接收,表示可读取接收SBUF中的内容。中的内容。RI必须用软件清必须用软件清0。 n每次发送和接收前,要注意先将每次发送和接收前,要注意先将TI和和RI标志位清标志位清0 。 串行口作为一个中断源,中断入口地址只有一个串行口作为一个中断源,中断入口地址只有一个(0023H),当用中断方式同时进行发送和接收时,可通过查询当用中断方式同时进行发送和接收时,可通过查询TI和和RI状态,状态,确定是发送

9、还是接收结束引起的中断。确定是发送还是接收结束引起的中断。 12节电控制寄存器PCON nPCON主要用于节电运行方式控制, PCON.7用做串行口波特率加倍控制位。当设定SMOD=1时,波特率加倍,当SMOD=0时,波特率不加倍。 13串行口的工作方式nSM0、SM1工作方式选择位14方式 0 :(SM0=0 SM1=0)n串行口方式串行口方式0为为8位位数据同步移位寄存器数据同步移位寄存器方式。方式。RXD引脚为同引脚为同步数据的输入步数据的输入/输出输出端,端,TXD引脚为同步引脚为同步移位脉冲输出端。一移位脉冲输出端。一个数据帧为个数据帧为8位,位,每每一个移位脉冲对应数一个移位脉冲对

10、应数据帧的一个数据位。据帧的一个数据位。方式方式0的的波特率固定波特率固定为为fosc/12。 REN=0 写 SBUF RXD 数据输出 TXD TI D0 D1 D2 D3 D4 D5 D6 D7 REN=1 RI=0 RXD 输入数据 RI 串行口方式 0 工作时序图 (a) 发送时序图 (b) 接收时序图 TXD 15方式0的说明:n写入写入SCON使使REN=0,TI=0;然后执行写入;然后执行写入SBUF的指令,的指令,8位数位数据装入发送据装入发送SBUF,硬件启动串行口发送器进行一次发送。通过发,硬件启动串行口发送器进行一次发送。通过发送移位寄存器将送移位寄存器将8位数据逐位送

11、到位数据逐位送到RXD引脚,每个机器周期内发送引脚,每个机器周期内发送一位数据。对应发送数据的每一位,由一位数据。对应发送数据的每一位,由TXD引脚同步输出一个移位引脚同步输出一个移位脉冲。发送完一帧,自动置位脉冲。发送完一帧,自动置位TI标志,并申请串行口中断。若标志,并申请串行口中断。若CPU响应中断,则将从响应中断,则将从0023H单元开始执行串行口的中断服务程序。单元开始执行串行口的中断服务程序。 n写入写入SCON使使REN = 1、RI = 0,将启动串行口接收器开始接收。,将启动串行口接收器开始接收。由由TXD输出移位脉冲,每对应一个移位脉冲,采样一次输出移位脉冲,每对应一个移位

12、脉冲,采样一次RXD引脚信引脚信号。每个机器周期采样一次号。每个机器周期采样一次RXD引脚,采到的数据位送入接收移位引脚,采到的数据位送入接收移位寄存器后,接收移位寄存器左移一位。接收完一帧,自动置位寄存器后,接收移位寄存器左移一位。接收完一帧,自动置位RI标标志,申请串行口中断,并将接收下来的志,申请串行口中断,并将接收下来的8位数据装入接收位数据装入接收SBUF。若。若CPU响应中断,则从响应中断,则从0023H单元开始执行串行口的中断服务程序。单元开始执行串行口的中断服务程序。n串行口方式串行口方式0常用于扩展单片机的并行常用于扩展单片机的并行I/O口,也可外口,也可外接串行同步接串行同

13、步I/O设备。用方式设备。用方式0输入输入/输出数据皆通过输出数据皆通过RXD端,因此方式端,因此方式0为半双工方式,只能分时进行发送为半双工方式,只能分时进行发送和接收。和接收。 16方式1(SM0=0 SM1=1) 功能说明:串行口方式1为8位数据全双工异步通信方式。TXD为发送数据端,RXD为接收数据端。一个数据帧为10位,包含8位数据位,1个起始位“0”和1个停止位“1”。串行口用方式1工作时,使用定时器T1作为波特率发生器,波特率的设定以T1的溢出率为基准,波特率计算式为:(2SMOD/32)T1溢出率。 17方式1的时序图 采样 (a) 发送时序图 串行口方式1工作时序图 写入 S

14、BUF TXD 数据输出 TI D0 D1 D2 D3 D4 D5 D6 D7 停止位 起始位 RXD 输入数据 (b) 接收时序图 D0 D1 D2 D3 D4 D5 D6 D7 停止位 起始位 RI 检测 负跳变 REN=1, 18方式1功能说明执行写入执行写入SBUF指令,指令,将将8位数据装入发送位数据装入发送SBUF,并启动发送,并启动发送器进行一次发送器进行一次发送:先将起始位先将起始位“0”送到送到TXD引脚,再从低到引脚,再从低到高逐位发送高逐位发送8位数据,最后发送停止位位数据,最后发送停止位“1”。每位发送占用。每位发送占用的时间由设定的波特率决定。发送完一帧数据,置位的时

15、间由设定的波特率决定。发送完一帧数据,置位TI标志,标志,申请串行口中断。申请串行口中断。当当REN=1时时,允许接收器准备接收。开始,以,允许接收器准备接收。开始,以16倍于波特率倍于波特率的速率检测的速率检测RXD引脚的负跳变,当检测到负跳变后,启动一引脚的负跳变,当检测到负跳变后,启动一次接收,接收完一帧信息,判断是否满足条件次接收,接收完一帧信息,判断是否满足条件:RI = 0,而,而且停止位为且停止位为1(或或SM2=0)。若同时满足这两个条件,则置位。若同时满足这两个条件,则置位RI标志,申请串行口中断,并将接收的标志,申请串行口中断,并将接收的8位数据装入接收位数据装入接收SBU

16、F,停止位装入,停止位装入RB8;否则接收无效,丢失所接收的一否则接收无效,丢失所接收的一帧信息,且不影响帧信息,且不影响RI标志。一位时间以后,接收器重新开始标志。一位时间以后,接收器重新开始检测检测RXD端的负跳变,以准备接收下一帧数据。端的负跳变,以准备接收下一帧数据。19方式2、方式3 串行口方式串行口方式2和方式和方式3皆为皆为9位数据全双工异步位数据全双工异步通信方式,比串行口方式通信方式,比串行口方式1增加了第增加了第9位数据位。位数据位。TXD为发送数据端,为发送数据端,RXD为接收数据端。一帧信息有为接收数据端。一帧信息有11位,包括位,包括9位数据位,位数据位,1个起始位个起始位“0”和和1个停止位个停止位“1”。发送数据的第。发送数据的第9位在位在TB8中,接收数据的第中,接收数据的第9位位存入存入RB8中。第中。第9位数据位也称为可编程位,常用做位数据位也称为可编程位,常用做奇偶校检位或多机通信中的地址奇偶校检位或多机通信中的地址/数据识别位。数据识别位。 串行口的方式串行口的方式2与方式与方式3的唯一差别是波特率设的唯一差别是波特率设定方法不同,方式定方法不同

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 通信/电子 > 数据通信与网络

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!