C51的串行通信课件_第1页
C51的串行通信课件_第2页
C51的串行通信课件_第3页
C51的串行通信课件_第4页
C51的串行通信课件_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主要内容:主要内容:n串行接口技术及其与外设连接串行接口技术及其与外设连接C51的串行通信PPT课件u串行接口扩展外设是嵌入式系统应串行接口扩展外设是嵌入式系统应提倡的理念。提倡的理念。u需要指出的是,这些接口知识具有需要指出的是,这些接口知识具有普遍意义,在其他类型的嵌入式系普遍意义,在其他类型的嵌入式系统里同样有用。统里同样有用。C51的串行通信PPT课件通过本章学习:通过本章学习:u了解嵌入式系统接口技术的概念了解嵌入式系统接口技术的概念u熟悉和掌握串行接口扩展外设的思熟悉和掌握串行接口扩展外设的思想和方法想和方法 C51的串行通信PPT课件u在计算机系统中,在计算机系统中,CPU和外部

2、通信有两种通信和外部通信有两种通信方式:并行通信和串行通信。方式:并行通信和串行通信。并行通信,即数据的各位同时传送;并行通信,即数据的各位同时传送;串行通信,即数据一位一位顺序传送。串行通信,即数据一位一位顺序传送。8.2.1 8.2.1 串行通讯的基本知识串行通讯的基本知识C51的串行通信PPT课件图图6.1 6.1 两种通信方式的示意图两种通信方式的示意图C51的串行通信PPT课件u并行通信:并行通信:需要多根传输线需要多根传输线传输速度快,传输速度快,但传输线数量多,成本高,适合近距离传输。但传输线数量多,成本高,适合近距离传输。u串行通信:串行通信:传输数据的各位在一条传输线上传送,

3、能够节省传传输数据的各位在一条传输线上传送,能够节省传输线,输线,在数据位数很多且远距离数据传送时,比较经济;在数据位数很多且远距离数据传送时,比较经济;缺点是传送速度比并行通信要慢。缺点是传送速度比并行通信要慢。 C51的串行通信PPT课件u按照串行数据的时钟控制方式,串行通信可分按照串行数据的时钟控制方式,串行通信可分为同步通信为同步通信和和异步通信异步通信两类。两类。u异步通信(异步通信(Asynchronous Communication)在异步通信中,数据通常是以字符为单位组成字符在异步通信中,数据通常是以字符为单位组成字符帧传送的。帧传送的。字符帧由发送端一帧一帧地发送,每一帧数据

4、是低字符帧由发送端一帧一帧地发送,每一帧数据是低位在前,高位在后,通过传输线被接收端一帧一帧位在前,高位在后,通过传输线被接收端一帧一帧地接收。地接收。发送端和接收端可以由各自独立的时钟来控制数据发送端和接收端可以由各自独立的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。的发送和接收,这两个时钟彼此独立,互不同步。C51的串行通信PPT课件字符帧也叫数据帧,由起始位、数据位、奇偶校验位字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等四部分组成和停止位等四部分组成图图6.2 6.2 异步通信的字符帧格式异步通信的字符帧格式 C51的串行通信PPT课件起始位:起始位:位于字符帧

5、开头,只占一位,低电平,用于位于字符帧开头,只占一位,低电平,用于向接收设备表示发送端开始发送一帧信息。向接收设备表示发送端开始发送一帧信息。数据位:数据位:紧跟起始位之后,用户根据情况可取紧跟起始位之后,用户根据情况可取5位、位、6位、位、7位或位或8位,低位在前、高位在后。位,低位在前、高位在后。奇偶校验位:奇偶校验位:位于数据位之后,仅占一位,用来表征位于数据位之后,仅占一位,用来表征串行通信中是采用奇校验还是偶校验。串行通信中是采用奇校验还是偶校验。停止位:停止位:位于字符帧最后,高电平。通常可取位于字符帧最后,高电平。通常可取1位、位、1.5位或位或2位,用于向接收端表示一帧字符信息

6、已经发位,用于向接收端表示一帧字符信息已经发送完,也为发送下一帧做准备。送完,也为发送下一帧做准备。在串行通信中,两相邻字符帧之间可以没有空闲位,在串行通信中,两相邻字符帧之间可以没有空闲位,也可以有若干空闲位,这由用户来决定。也可以有若干空闲位,这由用户来决定。C51的串行通信PPT课件波特率为每秒钟传送二进制数码元的数目。波特率用波特率为每秒钟传送二进制数码元的数目。波特率用于表征数据传输的速度,波特率越高,数据传输速度于表征数据传输的速度,波特率越高,数据传输速度越快;越快;波特率和字符的实际传输速率不同,字符的实际传输波特率和字符的实际传输速率不同,字符的实际传输速率是每秒内所传字符帧

7、的帧数,和字符帧格式有关。速率是每秒内所传字符帧的帧数,和字符帧格式有关。通常,异步通信的波特率为通常,异步通信的波特率为50-9600bit/s。异步通信的优点是不需要传送同步时钟,字符帧长度异步通信的优点是不需要传送同步时钟,字符帧长度不受限制,故设备简单。缺点是字符帧中因包含起始不受限制,故设备简单。缺点是字符帧中因包含起始位和停止位而降低了有效数据的传输效率。位和停止位而降低了有效数据的传输效率。C51的串行通信PPT课件同步通信是一种连续串行传送数据的通信方式,一次同步通信是一种连续串行传送数据的通信方式,一次通信只传输一帧信息。这里的信息帧和异步通信的字通信只传输一帧信息。这里的信

8、息帧和异步通信的字符帧不同,通常有若干个数据字符。符帧不同,通常有若干个数据字符。图图6.3 6.3 同步通信的字符帧格式同步通信的字符帧格式C51的串行通信PPT课件n在串行通信中数据是在两个站之间进行传送的,在串行通信中数据是在两个站之间进行传送的,按照数据传送方向,串行通信可分为:按照数据传送方向,串行通信可分为:单工(单工(simplex)半双工(半双工(half duplex)全双工(全双工(full duplex)三种制式。)三种制式。C51的串行通信PPT课件图图6.4 6.4 单工、半双工和全双工三种制式示意图单工、半双工和全双工三种制式示意图C51的串行通信PPT课件u能够完

9、成异步通信的硬件电路称为能够完成异步通信的硬件电路称为UART,即,即通用异步接收器通用异步接收器/发送器(发送器(Universal Asynchronous Receiver/Transmitter););u能够完成同步通信的硬件电路称为能够完成同步通信的硬件电路称为USRT(Universal Synchronous Receiver/Transmitter););u既能够完成异步又能同步通信的硬件电路称既能够完成异步又能同步通信的硬件电路称为为USART(Universal Synchronous Asynchronous Receiver/Transmitter)。)。C51的串行通

10、信PPT课件uRS-232C是使用最早、应用最多的一种异步串行通信是使用最早、应用最多的一种异步串行通信总线标准。它是美国电子工业协会(总线标准。它是美国电子工业协会(EIA)1962年公年公布、布、1969年最后修定而成的。其中年最后修定而成的。其中RS表示表示Recommended Standard,232是该标准的标识号,是该标准的标识号,C表示最后一次修定。表示最后一次修定。uRS-232C主要用来定义计算机系统的一些数据终端设主要用来定义计算机系统的一些数据终端设备(备(DTE)和数据电路终接设备()和数据电路终接设备(DCE)之间的电气)之间的电气性能。性能。uRS-232C串行接

11、口总线适用于:设备之间的通信距离串行接口总线适用于:设备之间的通信距离不大于不大于15米,传输速率最大为米,传输速率最大为20kB/s。C51的串行通信PPT课件RS-232C采用串行格式,该标准规定:信息的开始为采用串行格式,该标准规定:信息的开始为起始位,信息的结束为停止位;信息本身可以是起始位,信息的结束为停止位;信息本身可以是5、6、7、8位再加一位奇偶位。如果两个信息之间无信息,位再加一位奇偶位。如果两个信息之间无信息,则写则写“1”,表示空。,表示空。图图6.5 RS-232C6.5 RS-232C信息格式信息格式C51的串行通信PPT课件RS-232CRS-232C规定了自己的电

12、气标准,由于它是在规定了自己的电气标准,由于它是在TTLTTL电路电路之前研制的,所以它的电平不是之前研制的,所以它的电平不是+5V+5V和地,而是采用负和地,而是采用负逻辑,即:逻辑,即:逻辑逻辑“0”:+5V-+15V逻辑逻辑“1”:-5V- -15V因此,因此,RS-232CRS-232C不能和不能和TTLTTL电平直接相连,使用时必须电平直接相连,使用时必须进行电平转换,否则将使进行电平转换,否则将使TTLTTL电路烧坏。电路烧坏。常用的电平转换集成电路是传输线驱动器常用的电平转换集成电路是传输线驱动器MC1488MC1488和传和传输线接收器输线接收器MC1489MC1489。C51

13、的串行通信PPT课件RS-232CRS-232C标准总线为标准总线为2525根,采用标准的根,采用标准的D D型型2525芯插头座。芯插头座。与与PCPC机联机通信时一般采用机联机通信时一般采用9 9针的接插件将串行口的信针的接插件将串行口的信号送出。号送出。接插件的引脚信号如表接插件的引脚信号如表6.16.1所示。所示。C51的串行通信PPT课件DB-9信号名称信号名称方向方向含含 义义3TXD输出输出数据发送端数据发送端2RXD输入输入数据接收端数据接收端7RTS输出输出请求发送(计算机要求发送数据)请求发送(计算机要求发送数据)8CTS输入输入清除发送(清除发送(MODEM准备接收数据)

14、准备接收数据)6DSR输入输入数据设备准备就绪数据设备准备就绪5SG-信号地信号地1DCD输入输入数据载波检测数据载波检测4DTR输出输出数据终端准备就绪(计算机)数据终端准备就绪(计算机)9RI输入输入响铃指示响铃指示C51的串行通信PPT课件通信速度和通信距离通信速度和通信距离通常的标准串行接口,都有满足可靠传输时的最大通通常的标准串行接口,都有满足可靠传输时的最大通信速度和传送距离指标,但这两个指标具有相关性,信速度和传送距离指标,但这两个指标具有相关性,适当降低传输速度,可以提高通信距离。适当降低传输速度,可以提高通信距离。抗干扰能力抗干扰能力通常选择的标准接口,在保证不超过其使用范围

15、时都通常选择的标准接口,在保证不超过其使用范围时都有一定的抗干扰能力,以保证可靠的信号传输。但在有一定的抗干扰能力,以保证可靠的信号传输。但在一些工业测控系统,通信环境十分恶劣,因此在通信一些工业测控系统,通信环境十分恶劣,因此在通信介质选择、接口标准选择时,要充分考虑抗干扰能力,介质选择、接口标准选择时,要充分考虑抗干扰能力,并采取必要的抗干扰措施。并采取必要的抗干扰措施。C51的串行通信PPT课件n80C51内部有一个可编程全双工串行通信接口,内部有一个可编程全双工串行通信接口,它具有它具有UART的全部功能;的全部功能;n该接口不仅可以同时进行数据的接收和发送,该接口不仅可以同时进行数据

16、的接收和发送,也可做同步移位寄存器使用;也可做同步移位寄存器使用;n该串行口有该串行口有4种工作方式,帧格式有种工作方式,帧格式有8位、位、10位位和和11位,波特率可由软件设置,由片内的定时位,波特率可由软件设置,由片内的定时/计数器产生。计数器产生。C51的串行通信PPT课件n80C51内部有两个独立的接收、发送缓冲器内部有两个独立的接收、发送缓冲器SBUF,SBUF属于特殊功能寄存器。属于特殊功能寄存器。n发送缓冲器发送缓冲器只能写入不能读出只能写入不能读出,接收缓冲器,接收缓冲器只只能读出不能写入能读出不能写入,二者共用一个字节地址,二者共用一个字节地址(99H)。)。C51的串行通信

17、PPT课件图图6.6 6.6 串行口结构示意图串行口结构示意图C51的串行通信PPT课件u串行口数据缓冲器串行口数据缓冲器SBUF分为发送分为发送SBUF和接收和接收SBUF,两个在物理上独立,两个在物理上独立发送发送SBUF用于存放待发送的用于存放待发送的8位数据,写入位数据,写入SBUF将同将同时启动发送;时启动发送;接收接收SBUF存放已接收成功的存放已接收成功的8位数据,供位数据,供CPU读取。读取。SBUF,SCON,PCONC51的串行通信PPT课件两个两个SBUF共用一个地址共用一个地址99H,通过读、写指令来区别,通过读、写指令来区别对接收或发送缓冲器所进行的操作;对接收或发送

18、缓冲器所进行的操作;* 写数据到发送写数据到发送SBUF指令:指令:MOVMOV SBUFSBUF,A A* 读取接收读取接收SBUF数据指令:数据指令:MOVMOV A A ,SBUFSBUFCPU在写在写SBUF时,就是修改发送缓冲器;时,就是修改发送缓冲器;读读SBUF时,就是读接收缓冲器的内容。时,就是读接收缓冲器的内容。C51的串行通信PPT课件位地址位地址9FH9EH9DH9CH9BH9AH99H98H位符号位符号SM0SM1SM2RENTB8RB8TIRI特殊功能寄存器特殊功能寄存器SCON用来控制串行口的工作方式和用来控制串行口的工作方式和状态,由软件设置单片机用何种工作方式;

19、状态,由软件设置单片机用何种工作方式;该寄存器字节地址为该寄存器字节地址为98H,可以位寻址;,可以位寻址;单片机复位时,所有位全为单片机复位时,所有位全为0。图图6.7 SCON6.7 SCON的各位定义的各位定义C51的串行通信PPT课件SM0 SM1工作方式工作方式功能功能波特率波特率0 0方式方式08位同步移位寄存位同步移位寄存器器fosc/120 1方式方式110位位UART可变可变1 0方式方式211位位UARTfosc/64或或fosc/321 1 方式方式311位位UART可变可变pSM0、SM1:串行方式选择位。串行方式选择位。表表6.2 SM06.2 SM0、SM1SM1的

20、功能定义的功能定义C51的串行通信PPT课件pSM2:多机通信控制位多机通信控制位用于方式用于方式2和方式和方式3中中在方式在方式2和方式和方式3处于接收时,若处于接收时,若SM2=1, 且接收到且接收到的第的第9位数据位数据RB8为为0时,不激活时,不激活RI;若若SM2=1,且,且RB8=1时,则置时,则置RI=1;在方式在方式2、3处于接收或发送方式,若处于接收或发送方式,若SM2=0,不论接,不论接收到第收到第9位位RB8为为0还是为还是为1,TI,RI都以正常方式被都以正常方式被激活;激活;在方式在方式1处于接收时,若处于接收时,若SM2=1,则只有收到有效的,则只有收到有效的停止位

21、后,停止位后,RI置置1;在方式在方式0中,中,SM2应为应为0。C51的串行通信PPT课件pREN:允许串行接收位允许串行接收位由软件置位或清零;由软件置位或清零;REN=1时,允许接收;时,允许接收;REN=0时,禁止接收。时,禁止接收。pTB8:发送数据的第发送数据的第9 9位位在方式在方式2和方式和方式3中,由软件置位或复位;中,由软件置位或复位;可做奇偶校验位。可做奇偶校验位。pRB8:接收数据的第接收数据的第9位位与与TB8相对应。相对应。C51的串行通信PPT课件pTI:发送中断标志位发送中断标志位在方式在方式0中,发送完中,发送完8位数据后,由硬件置位;位数据后,由硬件置位;在

22、其他方式中,发送停止位之初由硬件置位。因此在其他方式中,发送停止位之初由硬件置位。因此TI是发送完一帧数据的标志,可以用指令是发送完一帧数据的标志,可以用指令JBC TI,rel来来查询是否发送结束。查询是否发送结束。TI=1时,也可向时,也可向CPU申请中断,申请中断,响应中断后都必须由软件清除响应中断后都必须由软件清除TI。pRI:接收中断标志位接收中断标志位在方式在方式0中,接收完中,接收完8位数据后,由硬件置位;位数据后,由硬件置位;在其他方式中,接收停止位的中间由硬件置位。在其他方式中,接收停止位的中间由硬件置位。同同TI一样,也可以通过一样,也可以通过JBC RI,rel来查询是否

23、接收完来查询是否接收完一帧数据。一帧数据。RI=1时,也可申请中断,响应中断后都必须由软件清时,也可申请中断,响应中断后都必须由软件清除除RI。C51的串行通信PPT课件PCON(87H)D7D6D5D4D3D2D1D0位符号位符号SMODGF1GF0PDIDLPCON主要是为主要是为CHMOS型单片机的电源控制而设置的型单片机的电源控制而设置的专用寄存器,不可位寻址,字节地址为专用寄存器,不可位寻址,字节地址为87H。在在HMOS的的8051单片机中,单片机中,PCON除了最高位以外大除了最高位以外大多数位都未做定义。多数位都未做定义。与串行通信有关的只有与串行通信有关的只有D7位(位(SM

24、OD),该位为波特),该位为波特率倍增位率倍增位当当SMOD=1时,串行口波特率增加一倍时,串行口波特率增加一倍,当,当SMOD=0时,串行口波特率为设定值时,串行口波特率为设定值;当系统复位时,当系统复位时,SMOD=0。 图图6.8 PCON6.8 PCON的各位定义的各位定义C51的串行通信PPT课件n80C51的串行口有的串行口有4种工作方式,通过对种工作方式,通过对SCON中的中的SM1、SM0位来决定。位来决定。 方式方式0:同步移位寄存器方式,用于扩展并行同步移位寄存器方式,用于扩展并行I/O接口。特点为:接口。特点为:一帧一帧8位数据,无起始位和停止位;位数据,无起始位和停止位

25、;RXD:数据输入:数据输入/输出端;输出端;TXD:同步脉冲输出端,每个脉冲对应一个数据位;:同步脉冲输出端,每个脉冲对应一个数据位;波特率固定,波特率固定,B = fosc/12如:如: fosc=12MHz,B=1Mbit/s,每位数据占,每位数据占1 s。C51的串行通信PPT课件当一个数据写入发送缓冲器当一个数据写入发送缓冲器SBUF时,启动发送,串行时,启动发送,串行口将口将8位数据以位数据以fosc/12的波特率从的波特率从RXD引脚输出(低位引脚输出(低位在前)在前)发送完后置中断标志发送完后置中断标志TI为为1,请求中断;,请求中断;在再次发送数据之前,必须由软件清在再次发送

26、数据之前,必须由软件清TI为为0;发送时序如图发送时序如图6.9(a)所示所示图图6.9(a) 0方式发送时序方式发送时序写入写入SBUFRXD输出输出TXDTID0D1D2D3D4D5D6D7C51的串行通信PPT课件图图6.10 方式方式0用于扩展用于扩展I/O口输出口输出具体接线图如图具体接线图如图6.106.10所示。其中所示。其中74LS16174LS161为串为串入并出移位寄存器。入并出移位寄存器。C51的串行通信PPT课件在满足在满足REN=1和和RI=0的条件下,串行口即开始从的条件下,串行口即开始从RXD端以端以fosc/12的波特率输入数据(低位在前);的波特率输入数据(低

27、位在前);当接收完当接收完8位数据后,置中断标志位数据后,置中断标志RI为为1,请求中断;,请求中断;再次接收数据之前,必须由软件清再次接收数据之前,必须由软件清RI为为0;接收时序如图接收时序如图6.9(b)所示所示写写REN=1RI=0RXD输入输入RI图图6.9(b) 0方式接收时序方式接收时序C51的串行通信PPT课件图图6.11 6.11 方式方式0 0用于扩展用于扩展I/OI/O口输入口输入具体接线图如图具体接线图如图6.11 6.11 所示。其中所示。其中74LS16574LS165为为并入串出移位寄存器。并入串出移位寄存器。C51的串行通信PPT课件方式方式1是串行口为波特率可

28、调的是串行口为波特率可调的10位通用异步通信方式位通用异步通信方式一帧数据一帧数据10位:位:8位数据位,位数据位,1个起始位个起始位(0),1个停止位个停止位(1);RXD:接收数据端,:接收数据端, TXD:发送数据端;:发送数据端;波特率:用波特率:用T1作为波特率发生器,作为波特率发生器,B=(2SMOD/32)T1溢出率溢出率图图6.12 106.12 10位的帧格式位的帧格式 C51的串行通信PPT课件当当TI=0时、执行时、执行“MOV SBUF,A”指令后启动发送指令后启动发送操作;操作;发送电路会自动在发送电路会自动在8位发送字符前后分别添加位发送字符前后分别添加1位起始位起

29、始位和停止位,并在移位脉冲作用下在位和停止位,并在移位脉冲作用下在TxD线上依次发线上依次发送一帧信息;送一帧信息;发送完后,维持发送完后,维持TxD线为高电平并置中断标志线为高电平并置中断标志TI为为1;TI需由软件复位;需由软件复位;写入写入SBUF图图6.13(a)方式)方式1发送时序图发送时序图TXD数据输出数据输出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位检测检测负跳变负跳变C51的串行通信PPT课件接收时,由接收时,由REN置置1允许接收;允许接收;接收器以所选用波特率的接收器以所选用波特率的16倍的速率对倍的速率对RxD引脚进行引脚进行采样。当采样采样。当采样1

30、到到0的跳变时,再连续采样的跳变时,再连续采样8次,如果采次,如果采样值都为样值都为0,表示接收到有效起始位,否则起始位无效,表示接收到有效起始位,否则起始位无效,重新启动接收过程;重新启动接收过程;确认接收到起始位后,就开始接收本帧的其余数据,确认接收到起始位后,就开始接收本帧的其余数据,在每一位信息的中间时刻采样在每一位信息的中间时刻采样3次,取其中两次以上相次,取其中两次以上相同的值为该位信息的接收值,以保证可靠接收;同的值为该位信息的接收值,以保证可靠接收;采样采样RXD输入数据输入数据图图6.13 (b)方式)方式1接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始

31、位起始位RI检测检测负跳变负跳变C51的串行通信PPT课件在接收到停止位时,接收电路必须满足两个条件:在接收到停止位时,接收电路必须满足两个条件: RI=0, 接收到的停止位为接收到的停止位为1 或者或者 SM2=0,才能把接收到的才能把接收到的8位数据存入位数据存入SBUF(接收)中,把停(接收)中,把停止位送入止位送入RB8中,同时置位中断标志中,同时置位中断标志RI,发串口中断,发串口中断请求,完成一帧接收过程。请求,完成一帧接收过程。若不满足上述条件,所接收到的一桢信息将丢失,接若不满足上述条件,所接收到的一桢信息将丢失,接收器复位,并从新开始检测负跳变,以便接收下一帧收器复位,并从新

32、开始检测负跳变,以便接收下一帧信息。信息。方式方式1接收时,应先用软件清除接收时,应先用软件清除RI或或SM2标志标志C51的串行通信PPT课件方式方式2和方式和方式3都是都是11位位UART方式,由方式,由SCON中的中的SM0、SM1两位编码确定;两位编码确定;一帧数据为一帧数据为11位:位:9位数据位,位数据位,1个起始位个起始位(0),1个停止个停止位位(1),第,第9位数据位在位数据位在TB8/RB8中,常用作校验位和多中,常用作校验位和多机通讯标识位。机通讯标识位。RXD:接收数据端,:接收数据端,TXD:发送数据端。:发送数据端。波特率波特率: 方式方式2:B=(2SMOD/64

33、)fosc方式方式3:B=(2SMOD/32)T1溢出率溢出率C51的串行通信PPT课件图图6.14 116.14 11位的帧格式位的帧格式C51的串行通信PPT课件发送时,先根据通信协议由软件设置发送时,先根据通信协议由软件设置TB8,然后用指令,然后用指令将要发送的数据写入将要发送的数据写入SBUF,启动发送器;,启动发送器;写写SBUF的指令,除了将的指令,除了将8位数据送入位数据送入SBUF外,同时还外,同时还将将TB8装入发送移位寄存器的第装入发送移位寄存器的第9位,并通知发送控制位,并通知发送控制器进行一次发送;器进行一次发送;一帧信息就从一帧信息就从TXD发送,在送完一帧信息后,

34、发送,在送完一帧信息后,TI被自被自动置动置1;在发送下一帧信息之前,在发送下一帧信息之前,TI必须由中断服务程序或查必须由中断服务程序或查询程序清询程序清0。C51的串行通信PPT课件当当REN=1时,允许串行口接收数据;时,允许串行口接收数据;数据由数据由RXD端输入,接收端输入,接收11位的信息;位的信息;当接收器采样到当接收器采样到RXD端的负跳变、并判断起始位有效端的负跳变、并判断起始位有效后,开始接收一帧信息;后,开始接收一帧信息;当接收器接收到第当接收器接收到第9位数据后,必须同时满足以下两个位数据后,必须同时满足以下两个条件:条件: RI=0, SM2=0 或接收到的第或接收到

35、的第9位数据为位数据为1,则接收数据有效,则接收数据有效,8位数据送入位数据送入SBUF,第,第9位送入位送入RB8,并置并置RI=1;若不满足上述两个条件,则信息丢失。若不满足上述两个条件,则信息丢失。请注意: 与方式1不同, 方式2和3中装入RB8的是第9位数据, 而不是停止位。所接收的停止位的值与SBUF、RB8和RI都没有关系, 利用这一特点可用于多机通信中。 C51的串行通信PPT课件图图6.15 (a)方式)方式1发送时序图发送时序图RXD输入输入RID0D1D2D3D4D5D6RB8停止位停止位起始位起始位D7写入写入SBUFTXD输出输出TID0D1D2D3D4D5D6TB8停

36、止位停止位起始位起始位D7检测检测负跳变负跳变图图6.15 (b)方式)方式1发送时序图发送时序图u方式方式2/32/3发送与接收时序如图发送与接收时序如图6.156.15所示所示C51的串行通信PPT课件在串行通信中,收发双方对传送的数据速率即波特率在串行通信中,收发双方对传送的数据速率即波特率要有一定的约定;要有一定的约定;80C51单片机的串行口通过编程可以有单片机的串行口通过编程可以有4种工作方式。种工作方式。其中,方式其中,方式0和方式和方式2的波特率是固定的,方式的波特率是固定的,方式1和方式和方式3的波特率可变,由定时器的波特率可变,由定时器T1的溢出率决定。的溢出率决定。方式方

37、式0的波特率的波特率在方式在方式0中,波特率为时钟频率的中,波特率为时钟频率的1/12,即:,即:串行口方式串行口方式0 0波特率波特率 = = fosc/12,固定不变。,固定不变。C51的串行通信PPT课件在方式在方式2中,波特率由波特率系数和系统时钟频率中,波特率由波特率系数和系统时钟频率fosc决定。当决定。当SMOD=0时,波特率为时,波特率为fosc/64;当;当SMOD=1时,波特率为时,波特率为fosc/32。即:即: 在方式在方式1和方式和方式3下,波特率由定时器下,波特率由定时器T1的溢出率和的溢出率和波特率系数共同决定。即:波特率系数共同决定。即:方式方式1和方式和方式3

38、的波特率的波特率264SM O Doscf 方式方式2 2波特率波特率 = =方式方式1 1和方式和方式3 3的波特率的波特率 = = 溢出率溢出率2132SMODT C51的串行通信PPT课件T1为方式为方式2的时间常数:的时间常数: X = 28 - t/T溢出时间:溢出时间: t= (28 -X)T = (28 -X)12/ foscT1溢出率溢出率=1/t= fosc /12(28 -X) 波特率波特率B=(2SMOD /32)fosc/12(28-X)串行口方式串行口方式1、3,根据波特率选择,根据波特率选择T1工作方式,计算工作方式,计算时间常数。时间常数。T1选方式选方式2: T

39、H1=X= 28-fosc/122SMOD/(32B)T1选方式选方式1用于低波特率,需考虑用于低波特率,需考虑T1重装时间常数时重装时间常数时间。间。C51的串行通信PPT课件SIOSIO: MOV MOVSCON SCON ,# #控制状态字控制状态字 ;写方式字且;写方式字且TI=RI=0TI=RI=0(MOV(MOVPCON PCON ,#80H)#80H);波特率加倍;波特率加倍(MOV(MOVTMOD TMOD ,#20H)#20H) ;T1T1作波特率发生器作波特率发生器(MOV(MOVTH1 TH1 ,#X) #X) ;选定波特率;选定波特率(MOV(MOVTL1 TL1 ,#

40、X) #X) (SETB(SETBTR1) TR1) (SETB(SETBEA)EA) ;开串行口中断;开串行口中断(SETB(SETBES)ES)C51的串行通信PPT课件初始化编程:初始化编程:MOVMOVTMODTMOD,#20H#20HMOVMOVPCONPCON,#80H#80HMOVMOVTH1TH1,#0F3H#0F3HMOVMOVTL1TL1,#0F3H#0F3HSETBSETB TR1TR1MOVMOVSCONSCON,#50H#50H【解解】:x = 2562SMODfosc / (24003212)= 242.98243 = F3H同理,同理,fosc = 11.0592

41、MHz,波特率为,波特率为2400。设。设SMOD = 0则则 x = F4H例:若例:若fosc = 6MHz,波特率为,波特率为2400,设,设SMOD = 1,则定,则定时时/计数器计数器T1的计数初值为多少?并进行初始化编程。的计数初值为多少?并进行初始化编程。C51的串行通信PPT课件n主要三个方面:主要三个方面:波特率的确定及初始化波特率的确定及初始化串行口工作方式初始化串行口工作方式初始化收收/ /发数据操作发数据操作 编程要点:编程要点:C51的串行通信PPT课件u波特率:固定波特率、可变波特率波特率:固定波特率、可变波特率 使用可变波特率时,必须先确定定时器使用可变波特率时,

42、必须先确定定时器T1的计数初的计数初值,对值,对T1进行初始化(不允许定时器进行初始化(不允许定时器T1中断)。中断)。u串行通信的编程方式:串行通信的编程方式: 查询方式:查查询方式:查TI(发送)、(发送)、RI(接收)是否为(接收)是否为1。 中断方式:预先开串行中断,当中断方式:预先开串行中断,当TI或或RI为为1,自动产,自动产生中断,在中断服务程序中,再查询生中断,在中断服务程序中,再查询TI、RI标志,标志,判断是发送还是接收中断。判断是发送还是接收中断。u注意:不管采用何种方式,查询完后必须清除注意:不管采用何种方式,查询完后必须清除TI或或RI标志,系统不会自动清除。标志,系

43、统不会自动清除。C51的串行通信PPT课件C51的串行通信PPT课件C51的串行通信PPT课件C51的串行通信PPT课件C51的串行通信PPT课件n80C51单片机之间的串行通信主要可分为双机单片机之间的串行通信主要可分为双机通信和多机通信。通信和多机通信。 (1) 串口方式串口方式0应用应用n 80C51单片机串行口方式单片机串行口方式0为移位寄存器方式,为移位寄存器方式,外接一个串入并出的移位寄存器,就可以扩展外接一个串入并出的移位寄存器,就可以扩展一个并行口。一个并行口。C51的串行通信PPT课件MOVMOVSCONSCON,#00H#00H;选方式;选方式0 0SETBSETB P1.

44、0P1.0;选通;选通74LS16474LS164MOVMOVA A,#DATA#DATA;置要发送的数据;置要发送的数据MOVMOVSBUFSBUF,A A;数据写入;数据写入SBUFSBUF并启动发送并启动发送WAITWAIT:JNBJNBTITI,WAITWAIT;一个字节数据发送完吗?;一个字节数据发送完吗?CLRCLRTITICLRCLRP1.0P1.0;关闭;关闭74LS16474LS164选通选通 n发送:发送:74LS164为串入并出移位寄存器。如图为串入并出移位寄存器。如图6.9所示:所示:例:方式例:方式0的应用。的应用。C51的串行通信PPT课件MOVMOVR0R0,#5

45、0H#50H;R0R0作片内作片内RAMRAM地址指针地址指针MOVMOVR7R7,#02H#02H;接收字节计数;接收字节计数RQRQ:CLRCLRP1.0P1.0;允许置入并行数据;允许置入并行数据SETBSETB P1.0P1.0;允许串行移位;允许串行移位MOVMOVSCONSCON,#10H#10H;串口方式;串口方式0 0,并入接收允许,并入接收允许JNBJNBRIRI,$ $;等待接收一帧数据;等待接收一帧数据CLRCLRRIRIMOVMOVA A,SBUFSBUFMOVMOVR0R0,A A;存入片内;存入片内RAMRAMINCINCR0R0DJNZDJNZ R7R7,RQRQ

46、n接收:接收:74LS165为为8位并入串出移位寄存器。如图位并入串出移位寄存器。如图6.10所示。所示。C51的串行通信PPT课件u如果两个单片机系统距离较近,就可以将它们的串行如果两个单片机系统距离较近,就可以将它们的串行口直接相连,实现双机通信。如图口直接相连,实现双机通信。如图6.13所示。所示。u对于双机异步通信的程序通常采用两种方法:查询方对于双机异步通信的程序通常采用两种方法:查询方式和中断方式。式和中断方式。 图图6.16 6.16 双机异步通信接口电路双机异步通信接口电路C51的串行通信PPT课件u甲机发送:甲机发送:编程将甲机片外编程将甲机片外1000H-101FH单元的数

47、据单元的数据块从串行口输出。定义方式块从串行口输出。定义方式2发送,发送,TB8为奇偶校验位。为奇偶校验位。发送波特率发送波特率375K,晶振为,晶振为12MHz,所以,所以SMOD=1。MOVMOVSCONSCON,#80H#80H;设置串行口为方式;设置串行口为方式2 2MOVMOVPCONPCON,#80H#80H;SMOD=1SMOD=1MOVMOVDPTRDPTR,#1000H#1000H;设数据块指针;设数据块指针MOVMOVR7R7,#20H#20H;设数据块长度;设数据块长度u发送子程序参考如下:发送子程序参考如下:C51的串行通信PPT课件STARTSTART:MOVXMOV

48、X A A,DPTRDPTR;取数据给;取数据给A A MOV MOVC C,P P MOV MOVTB8TB8,C C;奇偶位;奇偶位P P给给TB8TB8 MOV MOVSBUFSBUF,A A;数据送;数据送SBUFSBUF,启动发送,启动发送WAIT:WAIT:JBCJBCTITI,CONTCONT;发送完,清;发送完,清TITI,取下一个数据,取下一个数据 AJMPAJMP WAITWAIT;未完等待;未完等待CONTCONT: INCINCDPTRDPTR;更新数据单元;更新数据单元 DJNZDJNZ R7R7,STARTSTART;循环发送至结束;循环发送至结束 RETRETu发

49、送子程序(续)发送子程序(续)C51的串行通信PPT课件MOVMOVSCONSCON,#80H #80H ;设置串行口为方式;设置串行口为方式2 2MOVMOVPCONPCON,#80H #80H ;SMOD=1SMOD=1MOVMOVR0R0,#50H #50H ;设置数据块指针;设置数据块指针MOVMOVR7R7,#20H #20H ;设置数据块长度;设置数据块长度SETBSETBREN REN ;启动接收;启动接收WAITWAIT:JBCJBCRIRI,READ READ ;接收完,清;接收完,清RIRI,读入数据,读入数据SJMPSJMPWAITWAIT;未完等待;未完等待READRE

50、AD:MOV MOV A A,SBUFSBUF;读入一帧数据;读入一帧数据u乙机接收:乙机接收:编程使乙机接收甲机发送过来的数据块,编程使乙机接收甲机发送过来的数据块,并存入片内并存入片内50H-6FH单元。接收过程要求判断单元。接收过程要求判断RB8,若出错置若出错置F0标志为标志为1,正确则置,正确则置F0标志为标志为0,然后返回。,然后返回。两机应采用相同的工作方式和波特率。两机应采用相同的工作方式和波特率。u接收子程序参考如下:接收子程序参考如下:C51的串行通信PPT课件JNBJNBPSW.0PSW.0,PZPZ;奇偶位为;奇偶位为0 0则转则转JNBJNBRB8RB8, ERRER

51、R;P=1P=1,RB8=0RB8=0,则出错,则出错SJMPSJMPRIGHTRIGHT;二者全为;二者全为1 1,则正确,则正确PZ:PZ:JB JB RB8RB8, ERRERR;P=0P=0,RB8=1RB8=1,则出错,则出错RIGHT:RIGHT:MOVMOVR0R0, A A;正确,存放数据;正确,存放数据INCINCR0R0;更新地址指针;更新地址指针DJNZDJNZR7R7, WAITWAIT;判断数据块是否接收完;判断数据块是否接收完CLRCLRPSW.5PSW.5;接收正确,且接收完清;接收正确,且接收完清F0F0标志标志RETRET;返回;返回ERR: ERR: SET

52、BSETBPSW.5PSW.5;出错,置;出错,置F0F0标志为标志为1 1 RETRET;返回;返回u接收子程序(续)接收子程序(续)C51的串行通信PPT课件n在很多应用中,双机通信的接收方都采用中断的方式在很多应用中,双机通信的接收方都采用中断的方式来接收数据,以提高来接收数据,以提高CPU的工作效率;发送方仍然采的工作效率;发送方仍然采用查询方式发送。用查询方式发送。u甲机发送甲机发送上面的通信程序,收发双方是采用奇偶位上面的通信程序,收发双方是采用奇偶位TB8来进行来进行校验的,这里介绍一种用累加和进行校验的方法。校验的,这里介绍一种用累加和进行校验的方法。编程将甲机片内编程将甲机片

53、内60H-6FH单元的数据块从串行口发送,单元的数据块从串行口发送,在发送之前将数据块长度发送给乙机,当发送完在发送之前将数据块长度发送给乙机,当发送完16个个字节后,再发送一个累加校验和。字节后,再发送一个累加校验和。定义双机串行口方式定义双机串行口方式1工作,晶振为工作,晶振为11.059MHz,波,波特率特率2400,定时器,定时器T1按方式按方式2工作,经计算得到定时工作,经计算得到定时器预置值为器预置值为0F4H,SMOD=0。 C51的串行通信PPT课件MOVMOVTMODTMOD,#20H#20H;设置定时器;设置定时器1 1为方式为方式2 2MOV MOV TL1TL1,#0F

54、4H#0F4H;设置预置值;设置预置值MOV MOV TH1TH1,#0F4H#0F4HSETBSETBTR1TR1;启动定时器;启动定时器1 1MOVMOVSCONSCON,#50H#50H;设置串行口为方式;设置串行口为方式1 1,;允许接收;允许接收STARTSTART: MOVMOVR0R0,#60H#60H;设置数据指针;设置数据指针MOVMOVR5R5,#10H#10H;设置数据长度;设置数据长度MOVMOVR4R4,#00H#00H;累加校验和初始化;累加校验和初始化MOVMOVSBUFSBUF,R5R5;发送数据长度;发送数据长度WAIT1WAIT1: JBCJBCTITI,T

55、RSTRS;等待发送;等待发送AJMPAJMPWAIT1WAIT1TRSTRS:MOVMOVA A,R0R0;读取数据;读取数据u发送子程序参考如下:发送子程序参考如下:C51的串行通信PPT课件MOVMOVSBUFSBUF,A A;发送数据;发送数据ADDADDA A,R4R4MOVMOVR4R4,A A;形成累加和;形成累加和 INCINCR0R0;修改数据指针;修改数据指针WAIT2WAIT2:JBCJBCTITI,CONTCONT;等待发送一帧数据;等待发送一帧数据AJMPAJMPWAIT2WAIT2CONTCONT:DJNZDJNZR5R5,TRSTRS;判断数据块是否发送完;判断数

56、据块是否发送完MOVMOVSBUFSBUF,R4R4;发送累加校验和;发送累加校验和WAIT3WAIT3:JBCJBCTITI,WAIT4WAIT4;等待发送;等待发送AJMPAJMPWAIT3WAIT3WAIT4WAIT4:JBCJBCRIRI,READREAD;等待乙机回答;等待乙机回答AJMPAJMPWAIT4WAIT4READREAD:MOVMOVA A,SBUFSBUF;接收乙机数据;接收乙机数据JZJZRIGHTRIGHT;00H00H,发送正确,返回,发送正确,返回AJMPAJMPSTARTSTART;发送出错,重发;发送出错,重发RIGHTRIGHT:RETRETu发送子程序(

57、续):发送子程序(续):C51的串行通信PPT课件乙机接收甲机发送的数据,并存入以乙机接收甲机发送的数据,并存入以2000H开始的片外开始的片外数据存储器中;数据存储器中;首先接收数据长度,接着接收数据,当接收完首先接收数据长度,接着接收数据,当接收完16个字个字节后,接收累加和校验码,进行校验;节后,接收累加和校验码,进行校验;数据传送结束后,根据校验结果向甲机发送一个状态数据传送结束后,根据校验结果向甲机发送一个状态字,字,00H表示正确,表示正确,0FFH表示出错,出错则甲机重发;表示出错,出错则甲机重发;接收采用中断方式。设置两个标志位(接收采用中断方式。设置两个标志位(7FH,7EH

58、位)位)来判断接收到的信息是数据块长度、数据还是累加校来判断接收到的信息是数据块长度、数据还是累加校验和。验和。 C51的串行通信PPT课件p编程说明:编程说明:假设晶振频率为假设晶振频率为 6 MHz ,按,按 1200 波特率,计算定时波特率,计算定时器器 1 的计数初值的计数初值;SMOD0 ,波特率不倍增,波特率不倍增,PCON = 00H 。C51的串行通信PPT课件串行发送的内容串行发送的内容包括数据块的首包括数据块的首末地址和数据两末地址和数据两部分内容。对数部分内容。对数据块首末地址的据块首末地址的传送以查询方式传送以查询方式进行,然后再以进行,然后再以查询方式传送数查询方式传

59、送数据。据。接收流程图如下:接收流程图如下:C51的串行通信PPT课件串行接收的内容包串行接收的内容包括数据块的首末地括数据块的首末地址和数据两部分内址和数据两部分内容。对容。对数据块首末数据块首末地址的接收以查询地址的接收以查询方式进行,而数据方式进行,而数据则以中断方式接收。则以中断方式接收。因此在程序中要先因此在程序中要先禁止串行中断,后禁止串行中断,后允许串行中断。允许串行中断。接收流程图如下:接收流程图如下:C51的串行通信PPT课件C51的串行通信PPT课件C51的串行通信PPT课件C51的串行通信PPT课件C51的串行通信PPT课件C51的串行通信PPT课件C51的串行通信PPT

60、课件u80C51串行口的方式串行口的方式2和方式和方式3有一个专门的应用领域,有一个专门的应用领域,即多机通信。即多机通信。u这一功能通常采用主从式多机通信方式,在这种方式这一功能通常采用主从式多机通信方式,在这种方式中,用一台主机和多台从机。中,用一台主机和多台从机。u主机发送的信息可以传送到各个从机或指定的从机,主机发送的信息可以传送到各个从机或指定的从机,各从机发送的信息只能被主机接收,从机与从机之间各从机发送的信息只能被主机接收,从机与从机之间不能进行通信。不能进行通信。u图图6.13是多机通信的一种连接示意图。是多机通信的一种连接示意图。C51的串行通信PPT课件图图6.17 6.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论