第7章 MCS-51单片机串行通信2010_第1页
第7章 MCS-51单片机串行通信2010_第2页
第7章 MCS-51单片机串行通信2010_第3页
第7章 MCS-51单片机串行通信2010_第4页
第7章 MCS-51单片机串行通信2010_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信【学习目的和要求】了解和掌握MCS-51单片机串行接口的结构原理、工作方式;掌握工作方式0的应用,工作方式13的编程方法及初始化过程;了解多机通信的基本原理及编程方法。7.1 7.1 串行通信概述串行通信概述7.2 MCS-517.2 MCS-51单片机串行通信接口单片机串行通信接口7.3 MCS-517.3 MCS-51单片机之间的串行通信单片机之间的串行通信第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信7.4 MCS-517.4 MCS-51串行通信的波特率串行通信的波特率第第7 7章章 MCS-51

2、MCS-51单片机串行通信单片机串行通信7.17.1串行通信概述串行通信概述通信方式的分类:通信方式的分类:并行通信并行通信 、串行通信串行通信并行通信的特点:在同一时刻,并行通信的特点:在同一时刻,各数据位同时传送各数据位同时传送,传,传送速度快、效率高。但有多少数据位就需要多少根数据送速度快、效率高。但有多少数据位就需要多少根数据线,因此传送成本高,且线,因此传送成本高,且传送距离近传送距离近,通常传送距离小,通常传送距离小于于3030米。米。串行通信的特点:数据传送串行通信的特点:数据传送按顺序进行按顺序进行,最少只需一根,最少只需一根传输线即可完成,成本低但速度较慢,传输线即可完成,成

3、本低但速度较慢,传送距离远传送距离远,一,一般可以从几米到几千公里。般可以从几米到几千公里。 计算机与外部设备或与其它计算机之间往往需计算机与外部设备或与其它计算机之间往往需要交换信息,所有这些信息交换均称为通信。要交换信息,所有这些信息交换均称为通信。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信7.1.1 7.1.1 串行通信的基本方式串行通信的基本方式串行通信方式:串行通信方式:异步通信、异步通信、同步通信同步通信1 1异步通信异步通信 数据通常是以字符(或字节)为单位组成字符帧传送的。字符数据通常是以字符(或字节)为单位组成字符帧传送的。字符帧通过传输线由发送端一

4、帧一帧地发送到接收端,接收端一帧一帧帧通过传输线由发送端一帧一帧地发送到接收端,接收端一帧一帧地接收。通信双方必须遵守以下两项基本约定地接收。通信双方必须遵守以下两项基本约定: : 字符帧格式字符帧格式 即字符的编码形式,通信双方必须具有相同即字符的编码形式,通信双方必须具有相同的字符帧格式,否则不能进行通信。的字符帧格式,否则不能进行通信。 波特率波特率 每秒钟传送二进制数码的位数(比特数),或者为每秒钟传送二进制数码的位数(比特数),或者为 每位传输时间的倒数,单位是每位传输时间的倒数,单位是bit/sbit/s。例例 波特率为波特率为1200bit/s1200bit/s时,上图字符实际传

5、输速率为时,上图字符实际传输速率为1200120011=109.0911=109.09帧帧/ /秒。秒。 通常异步通信的波特率在通常异步通信的波特率在50bit/s50bit/s9600bit/s9600bit/s之间。之间。优点优点:不需要传送同步脉冲,字符帧长度也不受限制,所需设备简单。缺点缺点:因字符帧中包含有起始位和停止位而降低了有效数据的传输速率。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信2 2同步通信同步通信 在同步通信方式中,数据是以连续方式串行传送的。一次只传送一帧信息,一帧中有若干个数据字符。同步字符数据1数据2数据3数据n校验字符1校验字符2同步字

6、符(可为单字符或双字符)位于帧格式开头,用于确认数据字符的开始数据字符在同步字符之后,个数不受限制,由所需传输的数据块长度决定;校验字符有12个,位于帧格式结尾,用于接收端对接收到的数据字符的正确性的校验。 在同步通信中,同步字符可以采用同一标准符式,也可由用户约定。在单同步字符帧格式中,同步字符常采用ASCII码中规定的SYN(即16H)代码;在双同步字符帧格式中,同步字符一般采用国际通用标准代码EB90H。优点:优点:是数据传送速率较高,通常可大于56000bit/s缺点:缺点:是要求发送时钟与接受时钟保持严格同步。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信7.1

7、.2 7.1.2 串行通信的数据传送方式串行通信的数据传送方式 1 1单工方式单工方式 发送端数据线接收端接收发送端数据线1数据线2接收发送端 2 2半双工方式半双工方式 3 3全双工方式全双工方式 第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信7.2 MCS-517.2 MCS-51单片机串行通信接口单片机串行通信接口全双工全双工的的异步异步通讯串行口通讯串行口4 4种工作方式种工作方式, ,波特率由片内定时器波特率由片内定时器/ /计数器控制计数器控制网络通信,实现串行异步通信,同步移位寄存器网络通信,实现串行异步通信,同步移位寄存器第第7 7章章 MCS-51MCS

8、-51单片机串行通信单片机串行通信7.2.1 7.2.1 串行口的结构原理串行口的结构原理1. 1. 串行口结构串行口结构组成:两个组成:两个数据缓冲寄存器数据缓冲寄存器SBUFSBUF、一个、一个输入移位输入移位寄存器寄存器、两个控制寄存器、两个控制寄存器SCONSCON和和PCONPCON。 缓冲寄存器SBUF是两个在物理上独立的专用寄存器,一个作发送缓冲器,另一个作接收缓冲器。 控制寄存器SCON和PCON用来设定串行口的工作方式并对接收和发送进行控制。串行口对外有两条独立的收发信号线RXD(P3.0)、TXD(P3.1),实现全双工通信。第第7 7章章 MCS-51MCS-51单片机串

9、行通信单片机串行通信2. 2. 串行通信过程串行通信过程(1)(1)接收数据过程接收数据过程 当当CPUCPU允许允许接收接收,即,即SCONSCON的的RENREN位置位置1 1时,外界数据通过引脚时,外界数据通过引脚RXDRXD(P3.0P3.0)串行输入)串行输入,数据的最低位首先进入移位寄存器,一,数据的最低位首先进入移位寄存器,一帧接收完后再并行送入接收数据缓冲寄存器帧接收完后再并行送入接收数据缓冲寄存器SBUFSBUF中,同时将接中,同时将接收中断标志位收中断标志位RIRI置置1 1,向,向CPUCPU发出中断请求。发出中断请求。CPUCPU响应中断后读取响应中断后读取输入的数据,

10、同时用软件将输入的数据,同时用软件将RIRI位清位清0 0,准备开始下一帧的输入过,准备开始下一帧的输入过程,直至所有数据接收完。程,直至所有数据接收完。(2)(2)发送数据过程发送数据过程 CPUCPU要要发送发送数据时,将数据并行写入发送数据缓冲寄存器数据时,将数据并行写入发送数据缓冲寄存器SBUFSBUF中,同时启动数据由中,同时启动数据由TXDTXD(P3.1P3.1)引脚串行发送)引脚串行发送,当一帧数,当一帧数据发送完,即发送缓冲器空时,由硬件自动将发送中断标志位据发送完,即发送缓冲器空时,由硬件自动将发送中断标志位TITI置置1 1,向,向CPUCPU发出中断请求。发出中断请求。

11、CPUCPU响应中断后用软件将响应中断后用软件将TITI位清位清0 0,同时又将下一帧数据写入同时又将下一帧数据写入SBUFSBUF中中,重复上述过程直至所有数据,重复上述过程直至所有数据发送完毕。发送完毕。1 1第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信7.2.2 7.2.2 串行口的控制串行口的控制1 1电源和数据传输率控制寄存器电源和数据传输率控制寄存器PCONPCON PCONPCON寄存器主要是为寄存器主要是为CHMOSCHMOS型单片机的电源控制设型单片机的电源控制设置的专用寄存器,单元地址为置的专用寄存器,单元地址为87H87H,不能进行位寻址。,不能进

12、行位寻址。位序位序8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88H87H87H位符位符号号SMODSMODGF1GF1GF0GF0PDPDIDLIDL图7-5 PCON各位的定义其中低其中低4 4位是位是CHMOSCHMOS型单片机掉电方式控制位:型单片机掉电方式控制位:GF1GF1、GF0 GF0 通用标志位,由软件置位、复位。通用标志位,由软件置位、复位。PD PD 掉电方式控制位,掉电方式控制位,PD=1PD=1,则进入掉电方式。,则进入掉电方式。IDL IDL 待机方式控制位,待机方式控制位,IDL=1IDL=1,则进入待机方式。,则进入待机方式。

13、在在HMOSHMOS单片机中,该寄存器中除最高位之外,其它位都没单片机中,该寄存器中除最高位之外,其它位都没有定义。最高位有定义。最高位SMODSMOD是串行口波特率倍增位,在串行口工作方是串行口波特率倍增位,在串行口工作方式式1 1、方式、方式2 2和方式和方式3 3时,若时,若SMOD=1SMOD=1,则串行口波特率加倍,若,则串行口波特率加倍,若SMOD=0SMOD=0,则串行口波特率不加倍。系统复位时,则串行口波特率不加倍。系统复位时SMOD=0SMOD=0。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信2 2串行口控制寄存器串行口控制寄存器SCONSCON SC

14、ONSCON是一个可以位寻址的特殊功能寄存器,主要是一个可以位寻址的特殊功能寄存器,主要功能是设定串行口的工作方式、接收和发送控制以功能是设定串行口的工作方式、接收和发送控制以及设置状态标志,单元地址为及设置状态标志,单元地址为98H98H。位地址位地址9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98H位符号位符号SM0SM0SM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRISM0SM0SM1SM1方式方式功能说明功能说明波特率波特率0 00 00 0移位寄存器方式移位寄存器方式fosc/12fosc/120 01 11

15、18 8位异步收发方式位异步收发方式可变(可变(T1T1溢出率溢出率/n/n)1 10 02 29 9位异步收发方式位异步收发方式fosc/64fosc/64或或fosc/32fosc/321 11 13 39 9位异步收发方式位异步收发方式可变(可变(T1T1溢出率溢出率/n/n)(1 1)SM0SM0、SM1SM1串行口串行口4 4种工作方式的选择位种工作方式的选择位 第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信 (2 2)SM2 SM2 多机通信控制位多机通信控制位 SM2SM2主要用于方式主要用于方式2 2和方式和方式3 3在在方式方式2 2和方式和方式3 3中

16、:中:当当SM2=1SM2=1: 接收第接收第9 9位数据位数据(RB8RB8)=1=1, , 前前8 8位送入位送入SBUFSBUF,置,置 位位RI=1RI=1,产生中断。,产生中断。 接收第接收第9 9位数据位数据(RB8RB8)=0=0 ,前,前8 8位数据丢弃位数据丢弃 。当当SM2=0SM2=0: 不论接收到第不论接收到第9 9位数据是位数据是0 0还是还是1 1,前,前8 8位数据送入位数据送入SBUFSBUF中,置位中,置位RI=1RI=1,产生中断。,产生中断。在方式在方式1 1中中:若:若SM2=1SM2=1,则只有接收到停止位,则只有接收到停止位RIRI才被激活。才被激活

17、。在方式在方式0 0中:中:SM2SM2必须是必须是0 0。 (3 3)RENREN允许串行接收位允许串行接收位 由软件置由软件置“1”“1”或清或清“0”“0” REN=1 REN=1 允许串行口接收数据。允许串行口接收数据。 REN=0 REN=0 禁止串行口接收数据。禁止串行口接收数据。 (4 4)TB8TB8发送的第发送的第9 9位数据位数据 方式方式2 2和和3 3时,时,TB8TB8是要发送的第是要发送的第9 9位数据位数据 可作为可作为奇偶校验位奇偶校验位使用,也可作为使用,也可作为地址帧地址帧或或数据帧数据帧的标志。的标志。 =1=1为地址帧为地址帧, , =0=0为数据帧为数

18、据帧 (5 5)RB8RB8接收到的第接收到的第9 9位数据位数据 方式方式2 2和和3 3时,时,RB8RB8存放接收到的第存放接收到的第9 9位位数据。在方式数据。在方式1 1,如果,如果SM2=0SM2=0,RB8RB8是接收到的停止位。方式是接收到的停止位。方式0 0不使不使RB8RB8 (6 6)TITI发送中断标志位发送中断标志位 方式方式0 0时时,串行发送第,串行发送第8 8位数据结束时由硬件置位数据结束时由硬件置“1”“1”, 其它工作方式其它工作方式,串行口发送停止位的开始时置,串行口发送停止位的开始时置“1”“1”。TI=1TI=1,表示表示一一 帧数据发送结束,可供软件

19、查询,也可申请中断。帧数据发送结束,可供软件查询,也可申请中断。CPUCPU响应中断后响应中断后, , 向向SBUFSBUF写入要发送的下一帧数据。写入要发送的下一帧数据。TITI必须由软件清必须由软件清0 0。 (7 7)RIRI接收中断标志位接收中断标志位 方式方式0 0时时,接收完第,接收完第8 8位数据时,位数据时,RIRI由硬件置由硬件置1 1。 其它工作方式其它工作方式,串行接收到停止位时,该位置,串行接收到停止位时,该位置“1”“1”。RI=1RI=1,表示表示一一 帧数据接收完毕,并申请中断帧数据接收完毕,并申请中断, , CPUCPU从接收从接收SBUFSBUF取走数据。该位

20、状取走数据。该位状态也可软件查询。态也可软件查询。RIRI必须由软件清必须由软件清“0”“0”。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信7.2.3 7.2.3 串行口的工作方式串行口的工作方式 MCS-51MCS-51单片机的串行口有单片机的串行口有4 4种工作方式,由串行口控种工作方式,由串行口控制寄存器制寄存器SCONSCON的高的高2 2位位SM0SM0和和SM1SM1的编码确定。的编码确定。1 1、方式、方式0 0为为同步移位寄存器方式同步移位寄存器方式,其,其波特率波特率固定为固定为fosc/12fosc/12在这种方式下,数据从在这种方式下,数据从RXD

21、RXD(P3.0P3.0)端串行输出或输入,同步)端串行输出或输入,同步信号从信号从TXDTXD(P3.1P3.1)端输出。该方式以)端输出。该方式以8 8位数据为一帧,没有位数据为一帧,没有起始位和停止位,先发送或接收最低位。起始位和停止位,先发送或接收最低位。D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7图图7-7 7-7 方式方式0 0的帧格式的帧格式第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信 方式方式0 0发送发送 数据从数据从RXDRXD(P3.0P3.0)端串行输出,同步信号从)端串行输出,同步信号从TXDTXD(P3.1P3.1)端输出

22、。当端输出。当CPUCPU执行一条将数据写入发送缓冲器执行一条将数据写入发送缓冲器SBUFSBUF的指令时,的指令时,产生一个正脉冲,串行口将产生一个正脉冲,串行口将8 8位数据以位数据以fosc/12fosc/12的固定波特率从的固定波特率从RXDRXD引脚输出,从低位到高位。当发送完引脚输出,从低位到高位。当发送完8 8位数据后,中断标志位数据后,中断标志位位TITI置置1 1,请求中断。在下次发送数据之前,必须用软件将,请求中断。在下次发送数据之前,必须用软件将TITI清零。清零。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信 方式方式0 0接收接收 在满足在满足R

23、EN=1REN=1和和RI=0RI=0的条件下,串行口处于方式的条件下,串行口处于方式0 0接收。接收。此时,数据从此时,数据从RXDRXD端串行输入,同步信号从端串行输入,同步信号从TXDTXD(P3.1P3.1)端输)端输出,接收器以出,接收器以fosc/12fosc/12的波特率对的波特率对RXDRXD引脚输入的数据信息采引脚输入的数据信息采样。当接收器接收完样。当接收器接收完8 8位数据后,中断标志位位数据后,中断标志位RIRI置置1 1,请求中,请求中断,表示可进行下一帧数据的接收。在下次接收之前,必须断,表示可进行下一帧数据的接收。在下次接收之前,必须用软件将用软件将RIRI清零。

24、清零。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信【例例7-17-1】用串行口扩展8位并行输入口功能说明:利用一个并入串出的移位寄存器功能说明:利用一个并入串出的移位寄存器74LS16674LS166芯片与芯片与单片机串行口相连,扩展成单片机串行口相连,扩展成8 8位并行输入端口。位并行输入端口。74LS16674LS166芯片芯片连接连接8 8位指拨开关,作为单片机的数据输入端,控制单片机位指拨开关,作为单片机的数据输入端,控制单片机输出端口输出端口P1P1所接的所接的8 8个个LEDLED。1、74LS166芯片:芯片:74LS166是并行输入串行输出是并行输入串行

25、输出8位移位寄存器位移位寄存器各引脚说明如下各引脚说明如下: :A AH H: 并行输入端。并行输入端。QHQH: 串行输出端。串行输出端。CLKCLK: 时钟脉冲输入端,在脉冲的上时钟脉冲输入端,在脉冲的上 升沿实现位移。升沿实现位移。INHINH: 时钟禁止端。时钟禁止端。SH/LDSH/LD:位移与置位控制。:位移与置位控制。SERSER:扩展多个:扩展多个74LS16674LS166的首尾连接端。的首尾连接端。VCCVCC:接:接+5V+5V。GNDGND:接地端。:接地端。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信2 2、接口扩展电路、接口扩展电路 单片机的

26、单片机的TXDTXD(P3.1P3.1)作为移位脉冲输出端与)作为移位脉冲输出端与74LS16674LS166的移的移位脉冲输入端位脉冲输入端CLKCLK相连,相连,RXD(P3.0)RXD(P3.0)作为串行输入端与作为串行输入端与74LS16674LS166的的串行输出端串行输出端QHQH相连,相连,P3.2P3.2用来控制用来控制74LS16674LS166的位移与置入的位移与置入(SH/LDSH/LD脚),时钟禁止端脚),时钟禁止端INHINH接地,芯片的接地,芯片的VCCVCC端接端接+5V+5V。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信3 3、汇编语言程

27、序、汇编语言程序扩展扩展8 8位输入端口源程序:位输入端口源程序:START: MOV SCON,#10H;设定方式;设定方式0,REN=1CLR P3.2 ;P3.2=0,数据置入,数据置入4LS166 ACALL DELAY ;调用延时子程序;调用延时子程序 SETB P3.2 ;P3.2=1,74LS166移位串出移位串出 CLR RI ;RI=0,清除接收中断标志位,清除接收中断标志位 JNB RI,$ ;等待接收完毕;等待接收完毕 MOV A,SBUF ;将;将SBUF数据装入数据装入A MOV P1,A ;将;将A中数据送入中数据送入P1口输出口输出JMP START ;循环执行;

28、循环执行DELAY: MOV R7,#02 ;延时子程序;延时子程序 DJNZ R7,$ RET第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信【例例7-2】用串行口扩展用串行口扩展8位并行输出端口位并行输出端口 将单片机串行口设定为工作方式将单片机串行口设定为工作方式0 0,RXDRXD(P3.0P3.0)和)和TXDTXD(P3.1P3.1)与与74LS16474LS164芯片(串行输入并行输出移位寄存器)连接,用串行口扩展芯片(串行输入并行输出移位寄存器)连接,用串行口扩展8 8位并行输出口。将位并行输出口。将8 8个个LEDLED分为左右两组,使亮灯从中间开始向左移

29、动分为左右两组,使亮灯从中间开始向左移动一次,再从中间开始向右移动一次,接着从最右端向中间移动一次,一次,再从中间开始向右移动一次,接着从最右端向中间移动一次,再从最左端向中间移动一次,然后闪烁两次,不断循环。再从最左端向中间移动一次,然后闪烁两次,不断循环。74LS16474LS164芯片是串行输入并行输出的移位寄芯片是串行输入并行输出的移位寄存器。存器。各引脚说明如下各引脚说明如下: :QAQAQHQH:并行输出端。:并行输出端。A A、B B: 串行输入端。串行输入端。CLRCLR:清除端,:清除端,0 0电平时使电平时使74LS16474LS164输出清输出清0 0。CLKCLK:时钟

30、脉冲输入端,在脉冲的上升沿实:时钟脉冲输入端,在脉冲的上升沿实 现位移。现位移。1. 74LS1641. 74LS164芯片芯片第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信2. 接口扩展电路接口扩展电路 使用使用74LS16474LS164移位寄存器芯片扩展移位寄存器芯片扩展8 8位并行输出口,连接位并行输出口,连接8 8个个LEDLED输出显示。单片机的串行输出信号输出显示。单片机的串行输出信号RXDRXD(P3.0P3.0)引脚与)引脚与74LS16474LS164芯片的串行输入端芯片的串行输入端A A和和B B相连,单片机的相连,单片机的TXDTXD(P3.1P3

31、.1)引)引脚与脚与74LS16474LS164的时钟脉冲输入端的时钟脉冲输入端CLKCLK相连,向芯片提供脉冲信号,相连,向芯片提供脉冲信号,芯片的第芯片的第9 9脚接脚接+5V+5V,第,第7 7脚接地。脚接地。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信3. 汇编语言程序汇编语言程序 本程序利用单片机串行口功能将数据发送到74LS164芯片内,再由74LS164芯片来完成8位并行输出口扩展。主程序流程MOV SCON,#00H ;设串口方式;设串口方式0 START: MOV DPTR,#TABLE ;编码表起始地址;编码表起始地址LP:CLR A ;A清清0 M

32、OVC A,A+DPTR ;查表,取数据送入;查表,取数据送入AMOV SBUF,A ;将数据送入;将数据送入SBUFLP1: JBC TI,LP2 ;TI=1?是,转到?是,转到LP2 JMP LP1 ;否,等待中断;否,等待中断LP2: ACALL DELAY ;调延时子程序;调延时子程序 INCDPTR ;数据指针加;数据指针加1 JMP LP ;跳转到;跳转到LP处处DELAY: MOV R5,#20 ;延时;延时0.2S子程序子程序DL1:MOV R6,#20DL2:MOV R7,#248 DJNZ R7,$ DJNZ R6,DL2 DJNZ R5,DL1 RET ;返回;返回TAB

33、LE: DB 0EFH,0DFH,0BFH,7FH ;中间开始向左移;中间开始向左移 动控制码动控制码 DB 0F7H,0FBH,0FDH,0FEH ;中间开始向右移动控制码;中间开始向右移动控制码 DB 0FEH,0FDH,0FBH,0F7H ;最右端向中间移动控制码;最右端向中间移动控制码 DB 7FH,0BFH,0DFH,0EFH ;最左端向中间移动控制码;最左端向中间移动控制码 DB 00H,0FFH,00H,0FFH ;闪烁;闪烁2次次DB 03H ;结束码;结束码 END ;程序结束;程序结束第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信2. 2. 方式方式1

34、 1 工作方式工作方式1 1为为8 8位异步通信方式位异步通信方式,适合于点对点的异,适合于点对点的异步通信。这种方式规定发送或接收一帧信息为步通信。这种方式规定发送或接收一帧信息为1010位,即位,即1 1个起始位(个起始位(0 0),),8 8个数据位,个数据位,1 1个停止位(个停止位(1 1),先发),先发送或接收最低位。数据传输率可以改变。送或接收最低位。数据传输率可以改变。TXDTXD脚和脚和RXDRXD脚脚分别用于发送和接收数据。分别用于发送和接收数据。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信(1 1)方式)方式1 1发送发送 当当CPUCPU执行一条

35、数据写发送缓冲器执行一条数据写发送缓冲器SBUFSBUF的指令时,就启动发送。的指令时,就启动发送。图中图中TXTX时钟频率就是发送的波特率。发送开始时,内部发送控制信时钟频率就是发送的波特率。发送开始时,内部发送控制信号变为有效。将起始位向号变为有效。将起始位向TXDTXD输出,此后每经过一个输出,此后每经过一个TXTX时钟周期,时钟周期,便产生一个移位脉冲,并由便产生一个移位脉冲,并由TXDTXD输出一个数据位。输出一个数据位。8 8位数据位全部发位数据位全部发送完后,置送完后,置“1”1”中断标志位中断标志位TITI,并申请中断。,并申请中断。图7-17方式1发送数据时序第第7 7章章

36、MCS-51MCS-51单片机串行通信单片机串行通信(2 2)方式)方式1 1接收接收 数据从数据从RXDRXD(P3.0P3.0)引脚输入。在)引脚输入。在SCONSCON寄存器中寄存器中RENREN位置位置1 1的前提下,的前提下,当检测到起始位的当检测到起始位的负跳变负跳变时,则开始接收。定时控制信号有两种,一种时,则开始接收。定时控制信号有两种,一种是接收是接收移位时钟移位时钟(RXRX时钟),它的频率和传送的波特率相同。另一种是时钟),它的频率和传送的波特率相同。另一种是位检测器采样脉冲位检测器采样脉冲,它的频率是,它的频率是RXRX时钟的时钟的1616倍。倍。一帧数据接收完后,必须

37、同时满足以下条件,接收才有效:一帧数据接收完后,必须同时满足以下条件,接收才有效: RI=0RI=0,即上一帧数据接收完成时,即上一帧数据接收完成时,RI=1RI=1发出的中断请求已被响应,发出的中断请求已被响应,SBUFSBUF中数据已被取走,说明中数据已被取走,说明“接收接收SBUF”SBUF”已空。已空。 SM2=0SM2=0或收到的或收到的停止位停止位=1=1(方式(方式1 1时,停止位已进入时,停止位已进入RB8RB8),则收到的),则收到的数据装入数据装入SBUFSBUF和和RB8RB8(RB8RB8装入停止位),且置装入停止位),且置“1”1”中断标志中断标志RIRI。 若这两个

38、条件不同时满足,收到的数据不能装入若这两个条件不同时满足,收到的数据不能装入SBUFSBUF,该帧数据将,该帧数据将丢弃。丢弃。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信3. 3. 方式方式2 2和和3 3 当当SM0=1SM0=1、SM1=0SM1=0时,串行口选择方式时,串行口选择方式2 2; SM0=1 SM0=1、SM1=1SM1=1时,串行口选择方式时,串行口选择方式3 3。 工作方式工作方式2 2和和3 3为为9 9位位异步通信方式异步通信方式。每帧数据均为。每帧数据均为1111位,位,1 1位起始位位起始位0 0,8 8位数据位(先低位),位数据位(先低

39、位),1 1位可程位可程控的第控的第9 9位数据和位数据和1 1位停止位。由位停止位。由TXD(P3.1)TXD(P3.1)引脚发送数引脚发送数据,据,RXT(P3.0)RXT(P3.0)引脚接收数据。引脚接收数据。图7-19方式2和3的帧格式第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信(1 1)方式)方式2 2发送发送 发送数据前,先根据通讯协议由软件设置发送数据前,先根据通讯协议由软件设置TB8TB8(例如,双机通(例如,双机通讯时的奇偶校验位或多机通讯时的地址讯时的奇偶校验位或多机通讯时的地址/ /数据的标志位)。然后将数据的标志位)。然后将要发送的数据写入要发送

40、的数据写入SBUFSBUF,即可启动发送过程。串行口能自动把,即可启动发送过程。串行口能自动把TB8TB8取出,并装入到第取出,并装入到第9 9位数据位的位置,再逐一发送出去。发送完毕位数据位的位置,再逐一发送出去。发送完毕则则TITI位置位置1 1。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信【例例7-37-3】方式2发送在双机通讯中的应用。 在双机通讯中,以在双机通讯中,以TB8TB8作为奇偶校验位,处理方法为数据作为奇偶校验位,处理方法为数据写入写入SBUFSBUF之前,先将数据的奇偶校验位写入之前,先将数据的奇偶校验位写入TB8TB8。CPUCPU执行一执行一条

41、写条写SBUFSBUF的指令后,立即启动发送器发送。因发送完一帧信的指令后,立即启动发送器发送。因发送完一帧信息后,息后,TITI被置被置1 1,再次向,再次向CPUCPU申请中断,所以进入中断服务程申请中断,所以进入中断服务程序后,必须先将序后,必须先将TITI清零。清零。 源程序如下:源程序如下:PIPTI: PUSH PSW ;保护现场;保护现场 PUSH Acc CLR TI ;发送中断标志清;发送中断标志清0 MOV A,R0 ;取数据;取数据 MOV C,P ;取奇偶校验位;取奇偶校验位 MOV TB8,C ;奇偶校验位送;奇偶校验位送TB8 MOV SBUF ,A ;启动发送;启

42、动发送 INC R0 ;数据指针加;数据指针加1 POP Acc ;恢复现场;恢复现场 POP PSW RETI ;中断返回;中断返回第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信(2 2)方式)方式2 2接受接受 当串行口置为方式当串行口置为方式2 2,且,且REN=1REN=1时,串行口以方式时,串行口以方式2 2接收数接收数据。数据由据。数据由RXDRXD端输入,接收端输入,接收1111位信息。当位检测逻辑采样到位信息。当位检测逻辑采样到RXDRXD引脚从引脚从1 1到到0 0的负跳变,并判断起始位有效后,便开始接收的负跳变,并判断起始位有效后,便开始接收一帧信息。

43、在接收器到第一帧信息。在接收器到第9 9位数据后,需满足以下两个条件,位数据后,需满足以下两个条件,才能将接收到的数据送入才能将接收到的数据送入SBUFSBUF。 (1)RI=0(1)RI=0,意味着接收缓冲器已空。,意味着接收缓冲器已空。 (2)SM2=0 (2)SM2=0或接收到的第或接收到的第9 9位数据位位数据位RB8=1RB8=1。 当上述两个条件满足时,接收到的数据送入当上述两个条件满足时,接收到的数据送入SBUFSBUF(接收(接收缓冲器),第缓冲器),第9 9位数据送入位数据送入RB8RB8,并置,并置1 RI1 RI。若这两个条件不。若这两个条件不满足,接收的信息将被丢弃。满

44、足,接收的信息将被丢弃。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信【例例7-47-4】方式2接收在双机通讯中的应用。 本例与例本例与例7-37-3相对应。若附加的第相对应。若附加的第9 9位数据为校验位,在位数据为校验位,在接收程序中应作奇偶校验处理,设接收程序中应作奇偶校验处理,设R0R0为数据缓冲器指针。为数据缓冲器指针。源程序如下:源程序如下:LP:PUSH PSW;保护现场PUSHAccCLRRI;清接收中断标志MOVA,SBUF;接收数据送AMOVC,P;取奇偶校验位JNCL1;RB8是发送数据的校验位,P是接收数据的校验位,若P不等于RB8,则接收信息出错

45、。JNBRB8,ERR;P=1,RB8=0,转ERRAJMP L2;P=1,RB8=1,转L2L1: JBRB8,ERR;P=0,RB8=1,转ERRL2: MOVR0,A;接收数据送存储区INCR0POP AccPOP PSWERR:;出错处理程序段RETI要要保证主机与所选择的从机实现可靠地通讯保证主机与所选择的从机实现可靠地通讯,必须保证串,必须保证串口具有识别功能。口具有识别功能。SCONSCON中的中的SM2SM2位位就是满足这一条件而设置的就是满足这一条件而设置的多机通讯控制位多机通讯控制位原理:原理:在串行口以方式在串行口以方式2 2(或方式(或方式3 3)接收时,)接收时,若若

46、SM2=1SM2=1,表示置多机通讯功能位,这时有两种可能:表示置多机通讯功能位,这时有两种可能: (1 1)接收到的第接收到的第9 9位数据为位数据为1 1时时,数据才装入,数据才装入SBUFSBUF,并并置中断标志置中断标志RI=1RI=1向向CPUCPU发出中断请求;发出中断请求; (2 2)接收到的)接收到的第第9 9位数据为位数据为0 0时时,则,则不产生中断标志不产生中断标志,信息将抛弃信息将抛弃。若若SM2=0SM2=0,则则接收的第接收的第9 9位数据不论是位数据不论是0 0还是还是1 1,都产生,都产生RI=1RI=1中断标志,接收到的数据装入中断标志,接收到的数据装入SBU

47、FSBUF中。中。7.3 MCS-517.3 MCS-51单片机之间的串行通信单片机之间的串行通信 设多机系统中有一主机和设多机系统中有一主机和3 3个个80318031从机,从机,如下图。如下图。 主机的主机的RXDRXD与从机的与从机的TXDTXD相连,主机相连,主机TXDTXD与从机的与从机的RXDRXD端相连端相连 从机地址分别为从机地址分别为0000H H、01H01H、02H02H。 多机通信系统示意图多机通讯工作过程:多机通讯工作过程:(1 1)从机串行口)从机串行口编程为方式编程为方式2 2或方式或方式3 3接收接收,且,且置置“1”“1”SM2SM2和和RENREN位位,使从

48、机只处于多机通讯且接收地址帧的状态。使从机只处于多机通讯且接收地址帧的状态。(2 2)主机)主机先将从机地址先将从机地址(即准备接收数据的从机)(即准备接收数据的从机)发给各从机发给各从机, , 主主机发出的机发出的地址信息地址信息的第的第9 9位为位为1 1,各从机接收到的第各从机接收到的第9 9位信息位信息RB8RB8为为1 1,且由于,且由于SM2=1SM2=1,则置则置“1” “1” RIRI,各各从机响应中断,执行中断程序。在中断服务子程序中,从机响应中断,执行中断程序。在中断服务子程序中,判主机送来判主机送来的地址是否和本机地址相符合的地址是否和本机地址相符合,相符则该从机相符则该

49、从机清清“0”“0”SM2SM2位位,准备,准备接收主机的数据或命令;若接收主机的数据或命令;若不符,则保持不符,则保持SM2=1SM2=1状态状态。(3 3)接着主机发送数据帧接着主机发送数据帧,此时各从机串行口接收到,此时各从机串行口接收到 的的RB8=0RB8=0,只有地址相符合的从机系统(即已清只有地址相符合的从机系统(即已清“0”“0”SM2SM2位的从机位的从机)才能激活才能激活RIRI,进入中断,在中断程序中接收主机的数据(或命令进入中断,在中断程序中接收主机的数据(或命令) 其它的从机其它的从机因因SM2SM21 1,又,又RB8=0RB8=0不激活中断标志不激活中断标志RIR

50、I,不能进入中断,不能进入中断,接收的数据丢失。接收的数据丢失。 多机系统是主从式,由主机控制多机之间的通讯,多机系统是主从式,由主机控制多机之间的通讯,从机和从机的通从机和从机的通讯只能经主机才能实现讯只能经主机才能实现。第第7 7章章 MCS-51MCS-51单片机串行通信单片机串行通信7.4 MCS-517.4 MCS-51串行通信的波特率串行通信的波特率 串行口的波特率用于表示数据传输的速率。波特率的选取不仅与所串行口的波特率用于表示数据传输的速率。波特率的选取不仅与所选通信设备、通信距离有关,还受传输线的频带所限制,应根据实际需选通信设备、通信距离有关,还受传输线的频带所限制,应根据实际需要正确选用。要正确选用。 方式方式0 0和和方式方式2 2的波特率是的波特率是固定固定的;的; 方式方式1 1和和方式方式3 3波特率可由波特率可由定时器定时器T1T1的溢出率的溢出率来确定来确定(1 1)方式方式0 0波特率波特率时钟频率时钟频率foscfosc1/121/12,不受,不受SMODSMOD位的位的值的影响。若值的影响。若foscfosc=12MHz=12MHz,波特率为波特率为fosc/12fosc/12即即1 1Mb/sMb/s。(2 2)方式方式2 2波特率波特率= =(2 2SMODSMOD/64/64)foscfosc 若若foscfosc=12M

温馨提示

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

评论

0/150

提交评论