C51单片机的串行接口技术.ppt

上传人:小飞机 文档编号:6502461 上传时间:2023-11-07 格式:PPT 页数:22 大小:566.50KB
返回 下载 相关 举报
C51单片机的串行接口技术.ppt_第1页
第1页 / 共22页
C51单片机的串行接口技术.ppt_第2页
第2页 / 共22页
C51单片机的串行接口技术.ppt_第3页
第3页 / 共22页
C51单片机的串行接口技术.ppt_第4页
第4页 / 共22页
C51单片机的串行接口技术.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《C51单片机的串行接口技术.ppt》由会员分享,可在线阅读,更多相关《C51单片机的串行接口技术.ppt(22页珍藏版)》请在三一办公上搜索。

1、第5章 80C51单片机的串行接口技术,计算机与计算机之间,计算机与外设之间的数据交换称为通信。计算机与外部设备的通信有两种基本方式:并行通信和串行通信。信息的各位数据被同时传送的通信方法称为并行通信。并行通信依靠并行I/O接口实现。在并行通信中,数据有多少位就需要多少条信号传输线,这种通信方式的速度快,但由于传输线数较多,成本高,仅适合近距离通信,通常传送距离小于30米,常用并行通信协议有SPP、EPP、ECP等。当距离大于30米时,则多采用串行通信方式,串行通信是指信息的各位数据被逐位顺序传输的通信方式,这种通信方式较之并行通信而言,具有如下优点:(1)传输距离长,可达到数千公里;(2)长

2、距离内串行数据传送速率会比并行数据传送速率快,串行 通信的通信时钟频率较并行通信更容易提高;(3)抗干扰能力强,串行通信信号间的相互干扰完全可以忽略;(4)通信成本低;(5)传输线既传数据,又传联络信息。,5.1 串行通信概述,5.1.1 串行通信的分类 通常情况下,在串行通信中根据信息传送的格式分为:异步串行通信和同步串行通信。在80C51单片机中主要使用异步串行通信方式。同步通信方式是以数据块的方式传送的,数据传输率高,适合高速率、大容量的数据通信。同步通信在数据开始处用12个同步字符来指示。同步通信中,由同一频率的时钟脉冲来实现发送和接收的同步。在发送时要插入同步字符,接收端在检测到同步

3、字符后,就开始接收任意位的串行数据,如图5-1所示。同步通信具有较高的传输速率,通常在几十至几百千波特,但对硬件要求较高。,图5-1 同步通信原理图,异步通信中,是以字符为单位传送的,数据传送可靠性高,适合低速通信的场合。异步通信用起始位“0”表示字符的开始,然后从低位到高位逐位传送数据,最后用停止位“1”表示字符的结束。一个字符又称为一帧信息。在异步通信中,对字符的编码形式规定位:每个串行字符由4个部分组成:1个起始位、58个数据位、1个奇偶校验位以及12个停止位。在帧格式中,一个字符由起始位“0”开始,到停止位结束,两相邻字符帧之间可以无空闲位,也可以有若干空闲位,这由用户根据需要决定。如

4、图5-2所示。,图5-2 异步通信字符帧格式,在异步通信中,发送方和接收方必须保持相同的波特率(Baud Rate)才能实现正确的数据传送。波特率是串行通信的重要指标,用于表征数据传输的速度,波特率是指单位时间内传送的信息量,即每秒钟传送的二进制位数(亦称比特数),单位是bit/s,即位/秒。波特率越高,数据传输速度越快,但和字符的实际传输速率不同。字符的传输速率是指每秒内所传送字符帧数,和字符帧格式有关。,例如:在异步通信中使用1位起始位,8位数据位,无奇偶校验位,1位停止位,即一帧数据长度为10bit,如果要求数据传送的速率是1秒传送120帧字符,则传送波特率为1200波特。常用的标准波特

5、率是:110波特、300波特、600波特、1200波特、l800波特、2400波持、4800波特、9600波特和19200波特。,5.1.2 串行通信制式 在串行通信中,数据通常在发送器和接收器(如A和B)之间进行双向传送。这种传送根据需要又可分为单工通信、半双工通信和全双工通信。在80C51单片机中使用全双工异步串行通信方式。,图5-3 串行通信数据传送方式,5.1.3 串行通信接口标准 从本质说,通信是CPU于外部设备间交换信息的一种方式。所有的串行通信接口电路都是以并行数据形式与CPU连接、而以串行数据形式与外部设备进行数据传送。它们的基本功能都是从外部设备接收串行数据,转换为并行数据后

6、传送给CPU;或从CPU接收并行数据,转换成串行数据后输出给外部设备。能够实现异步通信的硬件电路称为UART(Universal Asynchronous Receive/Transmitter),即通用异步接收器/发送器;能够实现同步通信的硬件电路称为USRT(Universal Synchronous Receive/Transmitter)。所谓接口标准,就是明确的定义若干条信号线,使接口电路标准化、通用化。采用标准接口,可以方便地把计算机、外部设备和测量仪器等有机的联系起来,并实现其间的通信。在单片机控制系统中,常用的串行通信接口标准有:RS-232C、RS-449、RS-422A、R

7、S-423A、RS-485、20mA电流环、USB、IIC及SPI等总线接口标准。,5.2.1 80C51的串行接口的结构 MCS-51单片机通过串行数据接收引脚RXD(P3.0)和串行数据发送引脚TXD(P3.1)与外界进行通信。串行口内有一个可直接寻址的专用寄存器-串行口缓冲寄存器SBUF,SBUF由两个寄存器组成:一个发送寄存器、一个接收寄存器,两者共用一个物理地址99H,可同时发送、接收数据,CPU写SBUF,就是修改发送寄存器,读SBUF就是读接收寄存器。其内部结构功能如图5-12所示。接收寄存器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时响应串口接收中断,没有把上一帧数据

8、读走,产生两帧数据重叠的情况。发送寄存器没有采用双缓冲结构,因为发送数据是由CPU控制的,在用户编程时,必须避免产生写重叠情况,即在用户程序中必须等数据发送完毕后才能发送下一个数据。,图5-12 80C51串行口结构框图,5.2 80C51的串行接口及工作方式,5.2.2 80C51的串行接口的控制寄存器 单片机串行接口是可编程的接口,在使用其串行接口时,必须先对串行口控制寄存器(SCON)和电源及波特率选择寄存器(PCON)进行初始化。1、SCON串行口控制寄存器 SCON是一个特殊功能寄存器,用于设定串行接口的工作方式,字节地址位98H,具有位寻址能力。各位的功能如下:,SM0、SM1为工

9、作方式选择位。80C51串行口有四种工作方式,如表5-2所示。,RI为接收中断标志位:在方式0下,当接收到第8位数据,或在其他3种方式下接收停止位的一半(与SM2的设置有关)时,由硬件置位。RI=1时,表示一帧数据接收完成。RI被置位后可向CPU产生中断请求,也可供软件查询。RI必须用CLR指令复位。TI为发送中断标志位:在方式0下,当发送第8位数据结束,或在其他3种方式下发送停止位时,由硬件置位。TI=1时,表示一帧数据发送完成。TI被置位后可向CPU产生中断请求,也可供软件查询。TI必须用CLR指令复位。RB8为帧接收标志位:在方式2、方式3下为接收数据的第9位,它可以是奇偶校验位,也可以

10、作为多机通信控制位,用于判定该字符所代表的信息(地址或数据等)。在方式1下,若SM2=0,RB8位为接收到的停止位。在方式0下,该位不用。TB8为帧发送标志位:方式2、方式3下为要发送数据的第9位,由软件置位或复位,表示奇偶校验位,也可以作为多机通信控制位,用于判定该字符所代表的信息(地址或数据等)。在方式0和方式1下,该位不用。,REN为串行口接收允许控制位:由软件置位或复位。REN=1,表示允许接收;REN=0,禁止接收。SM2为串行口多机通信控制位(作为方式2、方式3的附加控制位):在方式2或方式3下,若SM2=0,则不允许多机通信,即不管接收到的第9位数据为0或1,前8位数据都送入SB

11、UF,并使RI=1;若SM2=1,则允许多机通信。多机通信协议规定:若接收到的第9位数据RB8=1,说明本帧数据为地址数据,若接收到的第9位数据RB8=0,说明本帧为数据帧。在方式1下,若SM2=1,则只有接收到有效的停止位时,才能置位RI。在方式0下,SM2必须为0。例如:设串行口工作在方式1,允许接收,则指令为:MOV SCON,#01010000B,2、PCON电源及波特率选择寄存器 PCON寄存器主要是为CHMOS型单片机的电源控制设置的专用寄存器,单元地址为87H,不能位寻址。各位的功能如下:,SMOD:串行口波特率的倍增位。在HMOS单片机中,该寄存器中除最高位之外,其他位都是虚设

12、的。在单片机工作在方式1、方式2和方式3时,SMOD=1,串行口波特率提高一倍;SMOD=0,则波特率不加倍。系统复位时SMOD=0。,GF1、GF0:通用标志位,由软件置位、复位。,PD:掉电方式控制位,PD=1,则进入掉电方式。,IDL:待机方式控制位,IDL=1,则进入待机方式。,根据SCON寄存器的SM0、SM1位设置的不同,80C51串行口有4种工作方式,其中方式0和方式2的波特率相同,方式1和方式3的波特率可变,取决于定时器T1的溢出率。方式0 在方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.

13、1)送出。这种方式常用于扩展I/O口。移位输出:方式0发送数据的原理图和工作时序如图5-13,采用74LS164串入并出移位寄存器实现,P1.0线提供片选信号(高电平有效)。当一个数据写入串行口发送缓冲器时,串行口将8位数据以fosc/12的固定波特率从RxD引脚输出,从低位到高位。发送完成后,置中断标志TI为1,请求中断,在再次发送数据之前,必须用软件将TI清零。,5.3 80C51串行口的工作方式及波特率,移位输入:方式0接收数据的原理图和工作时序如图5-14所示采用74LS165并入串出移位寄存器实现,P1.0线提供控制信号,当S/L=0时,允许置入并行数据,当S/L=1时,允许数据串行

14、移位输出。在REN=1和RI=0的条件下,接收器以fosc/12的波特率对RxD引脚输入的数据信息采样,当接收器接收完8位数据后,置中断标志RI=1为请求中断,在再次接收之前,必须用软件将RI清零。,图5-14 方式0输入原理图、时序,80C51串行口工作方式0应用举例:【例5-1】用8051串行口外接8位并入串出口,驱动所连接的8只LED管循环点亮。接口扩展如图5-15所示。,仿真链接,采用查询方式:#include sbit clk=P10;void delay(int N)/延时子程序(晶振12M)int i,j;for(i=0;iN;i+)for(j=0;ji;j+);void mai

15、n()int xx;while(1)clk=0;clk=1;/发送移位脉冲 SCON=0 x10;/允许串行口接收数据 while(RI=0)/等待发送;xx=SBUF;/读取数据 RI=0;/清除接收中断标志 P2=xx;delay(200);,方式1 方式1是10位数据的异步通信,多用于双机通信。TXD为数据发送端,RXD为数据接收端,传送的每一帧数据中包括:1位起始位,8位数据位,1位停止位。波特率可变,PCON寄存器的SMOD位和T1的溢出率共同决定。波特率=(2smod)T1的溢出率/32 当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且T

16、CON的TR1=1,以启动定时器),使用这种方式,使得编程操作方便,也可避免因重装初值(时间常数初值)而带来的定时误差。T1的溢出率=fosc/(12*(256-N),N为定时器T1的计数初值所以:方式1下的波特率=或者:,方式1发送:方式1数据发送是从数据写入发送缓冲器(SBUF)开始的,随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,使TXD输出线维持在“1”状态下并将SCON寄存器的TI位置“1”,该位的状态可供查询或请求中断,在再次发送数据之前,必须用软件将TI清零。方式1发送的时序如图5-16所示。,图5

17、-16 方式1串行发送时序,方式1接收:在REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,当检测到RXD引脚输入电平产生负跳变时,说明起始位有效,将其移入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并将SCON寄存器的RI位置“1”,该位的状态可供查询或请求中断,在再次发送数据之前,必须用软件将RI清零。方式1接收的时序如图5-17所示。,图5-17

18、方式1串行接收时序,5.3.3 方式2和方式3 方式2和方式3是11位数据的异步通信,多用于多机通信。TXD为数据发送端,RXD为数据接收端,传送的每一帧数据中包括:1位起始位,9位数据位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),1位停止位。方式2的波特率为晶振频率的64分频或32分频,方式3的波特率设置方法与方式1相同。方式2和方式3接收:接收时,数据从右边移入输入移位寄存器,在起始位0移到最左边时,当接收器接收到第9位数据后,在RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到的数据装入接收缓冲器SBUF和RB8(接收数据的第9位),并置位RI,供查询或

19、向CPU请求中断如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的负跳变。方式2、3接收的时序如图5-18所示。,图5-18 方式2、3接收时序,方式2和方式3发送:发送数据由TxD端输出,一帧信息中的9位数据包括8位数据位(先低位后高位)、一位附加可控位(1或0)。附加的第9位数据为SCON中的TB8的状态,它由软件置位或复位,可作为多机通信中地址数据信息的标志位,也可作为数据的奇偶校验位。一个字符帧发送完毕后,自动将TI位置“1”,供查询或向CPU请求中断。方式2、3发送的时序如图5-19所示。,图5-19 方式2、3发送时序,5.3.4 串行口的初始化 采用80C51进行串行通信之前必须对其进行初始化。初始化的主要内容是:设置产生波特率的定时器1的初始值、设置串行口的工作方式和控制方式、设置中断控制。具体步骤如下:1)确定T1的工作方式(TMOD寄存器编程);2)计算T1的初值,装载TH1、TL1;3)确定SMOD值(PCON寄存器编程);4)启动T1(TCON中的TR1位置位);5)确定串行口通信方式(SCON寄存器编程);6)若串行口在中断方式工作时,进行中断设置(IE、IP寄存器编程)。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号