MCS-51_第07章 MCS-51的串行口

上传人:woxinch****an2018 文档编号:44747774 上传时间:2018-06-14 格式:PPT 页数:65 大小:1.21MB
返回 下载 相关 举报
MCS-51_第07章 MCS-51的串行口_第1页
第1页 / 共65页
MCS-51_第07章 MCS-51的串行口_第2页
第2页 / 共65页
MCS-51_第07章 MCS-51的串行口_第3页
第3页 / 共65页
MCS-51_第07章 MCS-51的串行口_第4页
第4页 / 共65页
MCS-51_第07章 MCS-51的串行口_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《MCS-51_第07章 MCS-51的串行口》由会员分享,可在线阅读,更多相关《MCS-51_第07章 MCS-51的串行口(65页珍藏版)》请在金锄头文库上搜索。

1、第7章 MCS-51的串行口内容概要 串行口的基本工作原理 与串行口有关的特殊功能寄存器 串行口的4种工作方式 串行口多机通信的工作原理 双机串行通信的软件编程。串行口为全双工的通用异步收发(UART)。全双工就是两个单片机之间串行数据可同时双向传输。异步通信,就是收、发双方使用各自的时钟控制发送和接收过程,这样可省去收、发双方的一条同步时钟信号线,连接简单且易实现。7.1 串行口的结构内部结构如图7-1所示。有两个物理上独立的接收、发送缓冲器SBUF(属于特殊功能寄存器),可同时发送、接收数据。发送缓冲器只能写入不能读出接收缓冲器只能读出不能写入两个缓冲器共用一个特殊功能寄存器字节地址(99

2、H)。控制寄存器共有两个:特殊功能寄存器SCON和PCON。图7-1 串行口的内部结构图7.1.1 串行口控制寄存器SCON字节地址98H,可位寻址,位地址为98H9FH。格式如图7-2所示。图7-2 串行口控制寄存器SCON的格式介绍SCON中各位的功能。(1)SM0、SM1串行口4种工作方式选择位SM0、SM1两位编码所对应的4种工作方式见表7-1。(2)SM2多机通信控制位多机通信是在方式2和方式3下进行。当串口以方式2或方式3接收时,如果SM2 = 1,则只有当接收到的第9位数据(RB8)为“1”时,才使RI置“1”,产生中断请求,并将接收到的前8位数据送入SBUF。当接收到的第9位数

3、据(RB8)为“0”时,则将接收到 的前8位数据丢弃。当SM2 = 0时,则不论第9位数据是1还是0,都将前8位数据送入SBUF中,并使RI置1,产生中断请求。在方式1时,如果SM2 = 1,则只有收到有效的停止位时才会激活RI。在方式0时,SM2必须为0。(3)REN允许串行接收位。由软件置“1”或清“0”。REN=1,允许串行口接收数据。REN=0,禁止串行口接收数据。(4)TB8发送的第9位数据方式2和方式3,TB8是要发送的第9位数据,其值由软件置“1”或清“0”。在双机串行通信时,一般作为奇偶校验位使用;在多机串行通信中用来表示主机发送的是地址帧还是数据帧 ,TB8=1为地址帧,TB

4、8=0为数据帧。(5)RB8接收的第9位数据方式2和方式3,RB8存放接收到的第9位数据。在方式1,如SM2 = 0,RB8是接收到的停止位。在方式0,不使用RB8。(6)TI发送中断标志位方式0,串行发送的第8位数据结束时TI由硬件置“1”,在其他方式中,串行口发送停止位的开始时置TI 为“1”。TI =1,表示一帧数据发送结束。TI的状态可供软件查询,也可申请中断。CPU响应中断后,在中断服务程序中向SBUF写入要发送的下一帧数据。TI必须由软件清“0”。(7)RI接收中断标志位方式0时,接收完第8位数据时,RI由硬件置“1”。在其他工作方式中,串行接收到停止位时,该位置“1”。RI =

5、1,表示一帧数据接收完毕,并申请中断,要求CPU从接收SBUF取走数据。该位的状态也可供软件查询。RI必须由软件清“0”。SCON的所有位都可进行位操作清“0”或置“1”。7.1.2 特殊功能寄存器PCON字节地址为87H,不能位寻址。格式如图7-3所示。图7-3 特殊功能寄存器PCON的格式下面介绍PCON中各位功能。仅最高位SMOD与串口有关。SMOD:波特率选择位。例如,方式1的波特率计算公式为方式1波特率 = 定时器T1的溢出率当SMOD = 1时,要比SMOD = 0时的波特率加倍,所以也称SMOD位为波特率倍增位。7.2 串行口的4种工作方式4种工作方式由特殊功能寄存器SCON中S

6、M0、SM1位定义,编码见表7-1。7.2.1 方式0方式0为同步移位寄存器输入/输出方式。该方式并不用于两个单片机之间的异步串行通信,而是用于串行口外接 移位寄存器,扩展并行I/O口。8位数据为一帧,无起始位和停止位,先发送或接收最低位。波特率固定,为fosc/12。帧格式如图7-4所示。图7-4 方式0的帧格式1方式0发送(1)方式0发送过程当CPU执行一条将数据写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始把SBUF中的8位数据以fosc/12的固定波特率从RXD引脚串行输出,低位在先,TXD引脚输出同步移位脉冲,发送完8位数据,中断标志位TI置“1”。 发送时序如图7-5所

7、示。图7-5 方式0发送时序(2)方式0发送应用举例图7-6所示为方式0发送的一个具体应用,通过串行口外接8位串行输入并行输出移位寄存器74LS164,扩展两个8位并行输出口的具体电路。方式0发送时,串行数据由P3.0(RXD端)送出,移位脉冲由P3.1(TXD端)送出。在移位脉冲的作用下,串行口发送缓冲器的数据逐位地 从P3.0串行移入74LS164中。图7-6 外接串入并出移位寄存器74LS164扩展的并行输出口2方式0接收(1)方式0接收过程方式0接收,REN为串行口允许接收控制位,REN=0,禁止接收;REN = 1,允许接收。当向SCON寄存器写入控制字(设置为方式0,并使REN位置

8、1,同时RI = 0)时,产生一个正脉冲,串行口开始接收数据。引脚RXD为数据输入端,TXD为移位脉冲信号输出端,接收器以fosc/12的固定波特率采样RXD引脚的数据信息,当接收完8位数据时,中断标志RI置1,表示一帧数据接收完毕,可进行下一帧数据的接收,时序如图7-7所示。图7-7 方式0接收时序(2)方式0接收应用举例图7-8为串行口外接两片8位并行输入串行输出的寄存器74LS165扩展两个8位并行输入口的电路。当74LS165的S/ 端由高到低跳变时,并行输入端的数据被置入寄存器;当S/ = 1,且时钟禁止端(第15脚)为低电平时,允许TXD(P3.1)串行移位脉冲输入,这时在移位脉冲

9、作用下,数据由右向左方向移动,以串行方式进入串行口的接收缓冲器中。图7-8 扩展74LS165作为并行输入口在图7-8中:TXD(P3.1)作为移位脉冲输出与所有75LS165的移位脉冲输入端CP相连;RXD(P3.0)作为串行数据输入端与74LS165的串行输出端QH相连;P1.0与S/ 相连,用来控制74LS165的串行移位或并行输入;74LS165的时钟禁止端(第15脚)接地,表示允许时钟输入。当扩展多个8位输入口时,相邻两芯片的首尾(QH与SIN)相连。在方式0,SCON中的TB8、RB8位没有用到,发送或接收完8位数据由硬件使TI或RI中断标志位置“1”,CPU响应TI或RI中断,在

10、中断服务程序中向发送SBUF中送入下一个要发送的数据或从接收SBUF中把接收到的1B存入内部RAM中。注意,TI或RI标志位必须由软件清“0”,采用如下指令:CLRTI;TI位清“0”CLRRI ;RI位清“0”方式0时,SM2位(多机通信控制位)必须为0。7.2.2 方式1方式1为双机串行通信方式,如图7-9所示。当SM0、SM1=01时,串行口设为方式1的双机串行通信。TXD脚和RXD脚分别用于发送和接收数据。图7-9 方式1双机串行通信的连接电路方式1一帧数据为10位,1个起始位(0),8个数据位,1个停止位(1),先发送或接收最低位。帧格式如图7-10所示。图7-10 方式1的帧格式方

11、式1为波特率可变的8位异步通信接口。波特率由下式确定:方式1波特率 = 定时器T1的溢出率式中,SMOD为PCON寄存器的最高位的值(0或1)。1方式1发送方式1输出时,数据位由TXD端输出,发送一帧信息为10位:1位起始位0,8位数据位(先低位)和1位停止位1。当CPU执行一条数据写SBUF的指令,就启动发送。发送时序见图7-11。图7-11中TX时钟的频率就是发送的波特率。发送开始时,内部发送控制信号 变为有效,将起始位向TXD脚(P3.0)输出,此后每经过一个TX时钟周期,便产生一个移位脉冲,并由TXD引脚输出一个数据位。8位数据位全部发送完毕后,中断标志位TI置1。图7-11 方式1发

12、送时序2方式1接收方式1接收时(REN = 1),数据从RXD(P3.1)引脚输入。当检测到起始位的负跳变,则开始接收。接收时序见图7-12。接收时,定时控制信号有两种,一种是接收移位时钟(RX时钟),它的频率和传送的波特率相同,另一种是位检测器采样脉冲,频率是RX时钟的16倍。以波特率的16倍速率采样RXD脚状态。当采样到RXD端从1到0的负跳变时就启动检测器,接收的值是3次连续采样(第7、8、9个脉冲时采样)取两次相同的值,以确认起始位(负跳变)的开始,较好地消除干扰引起的影响。图7-12 方式1接收时序当确认起始位有效时,开始接收一帧信息。每一位数据,也都进行3次连续采样(第7、8、9个

13、脉冲采样),接收的值是3次采样中至少两次相同的值。当一帧数据接收完毕后,同时满足以下两个条件,接收才有效。(1)RI = 0,即上一帧数据接收完成时,RI = 1发出的中断请求已被响应,SBUF中的数据已被取走,说明“接收SBUF”已空。(2)SM2 = 0或收到的停止位 = 1(方式1时,停止位已进入RB8),则将接收到的数据装入SBUF和RB8(装入的是停止位),且中断标志RI置“1”。若不同时满足两个条件,收的数据不能装入SBUF,该帧数据将丢弃。7.2.3 方式2方式2和方式3,为9位异步通信接口。每帧数据为11位,1位起始位0,8位数据位(先低位),1位可程控为1或0的第9位数据和1

14、位停止位。方式2、方式3帧格式如图7-13所示。图7-13 方式2、方式3的帧格式方式2波特率 = fosc1方式2发送发送前,先根据通信协议由软件设置TB8(如奇偶校验位或多机通信的地址/数据标志位),然后将要发送的数据写入SBUF,即启动发送。TB8自动装入第9位数据位,逐一发送。发送完毕,使TI位置“1”。发送时序如图7-14所示。图7-14 方式2和方式3发送时序【例7-1】方式2发送在双机串行通信中的应用下面的发送中断服务程序,以TB8作为奇偶校验位,偶校验发送。数据写入SBUF之前,先将数据的偶校验位写入TB8(设第2组的工作寄存器区的R0作为发送数据区地址指针)。PIPTI: P

15、USHPSW ;现场保护PUSHAccSETBRS1 ;选择第2组工作寄存器区CLRRS0CLRTI ;发送中断标志清“0”MOVA,R0 ;取数据MOVC,P ;校验位送TB8, 采用偶校验MOVTB8,C;P=1,校验位TB8=1,P=0,校验 ;位TB8=0MOV SBUF ,A ;A数据发送,同时发TB8 INC R0 ;数据指针加1POP Acc ;恢复现场POP PSW RETI ;中断返回2方式2接收SM0、SM1=10,且REN = 1时,以方式2接收数据。数据由RXD端输入,接收11位信息。当位检测逻辑采样到RXD的负跳变,判断起始位有效,便开始接收一帧信息。在接收完第9位数据后,需满足以下两个条件,才能将接收到的数据送入SBUF(接收缓冲器)。(1)RI = 0,意味着接收缓冲器为空。(2)SM2 = 0或接收到的第9位数据位RB8 = 1。当满足上述两个条件时,收到的数据送SBUF(接收缓冲器),第9位数据送入RB8,且RI置“1”。若不满足这两个条件,接收的信息将被丢弃。串行口方式2和方式3接收时序如图7-15所示。图7-15 方式2和方式3接收时序【例7-2】方式2接收在双机通信中的应用。本例对例7-1发送的数据进行偶校验接收,程序如下(设1组寄存器区的R0为数据缓冲区指针)。PIRI: PUSHP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号