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

下载本文档

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

文档简介

1、第7章 MCS-51单片机串行通信,第7章 MCS-51单片机串行通信,【学习目的和要求】 应该了解和掌握MCS-51单片机串行接口的结构原理、工作方式。 掌握工作方式0的应用,工作方式13的编程方法及初始化过程。 了解多机通信的基本原理及编程方法。,7.1 串行通信概述,7.2 串行通信接口,7.3 MCS-51单片机之间的串行通信,第7章 MCS-51单片机串行通信,7.4 MCS-51串行通信的波特率,第7章 MCS-51单片机串行通信,7.1串行通信概述,通信方式的分类:并行通信 、串行通信 并行通信的特点:在同一时刻,各数据位同时传送,传送速度快、效率高。但有多少数据位就需要多少根数

2、据线,因此传送成本高,且传送距离近,通常传送距离小于30米。 串行通信的特点:数据传送按顺序进行,最少只需一根传输线即可完成,成本低但速度较慢,传送距离远,一般可以从几米到几千公里。,计算机与外部设备或与其它计算机之间往往需要交换信息,所有这些信息交换均称为通信。,第7章 MCS-51单片机串行通信,7.1.1 串行通信的基本方式,串行通信方式:异步通信、同步通信,1异步通信 在异步通信方式中,数据通常是以字符(或字节)为单位组成字符帧传送的。字符帧通过传输线由发送端一帧一帧地发送到接收端,接收端一帧一帧地接收。通信双方必须遵守以下两项基本约定。,1) 字符帧格式 2) 波特率,第7章 MCS

3、-51单片机串行通信, 字符帧格式 字符帧格式,即字符的编码形式,通信双方必须具有相同的字符帧格式,否则不能进行通信。,图7-1 异步通信的字符帧格式,用起始位表示字符的开始,用停止位表示字符的结束。数据位在起始位之后,停止位之前,这样构成一帧数据。,奇偶校验位位于数据位之后,停止位之前,用于表示串行通信中采用奇校验位还是偶校验位,第7章 MCS-51单片机串行通信, 波特率,定义:每秒钟传送二进制数码的位数(比特数),或者为每位传输时间的倒数,单位是bit/s。,波特率用于表示数据传输的速度,波特率越高,数据传送率越快。而字符的实际传输速率是指每秒钟所传送的字符帧的帧数,与字符帧格式有关。

4、例如波特率为1200bit/s时,若采用图7-1的字符帧格式,则字符的实际传输速率为120011=109.09帧/秒。 通常异步通信的波特率在50bit/s9600bit/s之间。,第7章 MCS-51单片机串行通信,2同步通信,在同步通信方式中,数据是以连续方式串行传送的。一次只传送一帧信息,一帧中有若干个数据字符。,同步字符(可为单字符或双字符)位于帧格式开头,用于确认数据字符的开始,校验字符有12个,位于帧格式结尾,用于接收端对接收到的数据字符的正确性的校验。,在同步通信中,同步字符可以采用同一标准符式,也可由用户约定。在单同步字符帧格式中,同步字符常采用ASCII码中规定的SYN(即1

5、6H)代码;在双同步字符帧格式中,同步字符一般采用国际通用标准代码EB90H。,优点:是数据传送速率较高,通常可大于56000bit/s 缺点:是要求发送时钟与接受时钟保持严格同步。,第7章 MCS-51单片机串行通信,7.1.2 串行通信的数据传送方式,串行通信:单工、半双工、全双工,单工方式 在此方式下,只需要一条数据线,数据线 的一端接发送器,另一端接接收器,数据只能 单方向传送。,第7章 MCS-51单片机串行通信,2半双工方式 在此方式下,通信系统中每一个通信设备都由一个发送器和一个接收器组成,通过收发开关接到通信线上。数据能够实现双向传送,但任何时刻只能由其中的一方发送数据,另一方

6、接收数据。半双工方式既可以使用一条数据线,也可以使用两条数据线。,3全双工方式 在此方式下,通信系统中每一端都含有一个发送器和一个接收器,数据传送是双向的,并且可以同时发送和接收数据,该方式的串行通信需要使用两条数据线。,第7章 MCS-51单片机串行通信,7.2 串行通信接口,MCS-51单片机内部有一个可编程的全双工串行通信接口,该串行口有4种工作方式。 功能:用于网络通信,实现串行异步通信,还可作为同步移位寄存器。 其帧格式有8位、10位和11位,并能用软件设置波特率,由片内的定时器/计数器产生,接收和发送均可工作在查询方式或中断方式,使用方便灵活。,第7章 MCS-51单片机串行通信,

7、7.2.1 串行口的结构原理,1. 串行口结构,组成:两个数据缓冲寄存器SBUF、一个输入移位寄存器、两个控制寄存器SCON和PCON。,缓冲寄存器SBUF是两个在物理上独立的专用寄存器,一个作发送缓冲器,另一个作接收缓冲器。,控制寄存器SCON和PCON用来设定串行口的工作方式并对接收和发送进行控制。串行口对外有两条独立的收发信号线RXD(P3.0)、TXD(P3.1),实现全双工通信。,第7章 MCS-51单片机串行通信,2. 串行通信过程,(1)接收数据过程 当CPU允许接收,即SCON的REN位置1时,外界数据通过引脚RXD(P3.0)串行输入,数据的最低位首先进入移位寄存器,一帧接收

8、完后再并行送入接收数据缓冲寄存器SBUF中,同时将接收中断标志位RI置1,向CPU发出中断请求。CPU响应中断后读取输入的数据,同时用软件将RI位清0,准备开始下一帧的输入过程,直至所有数据接收完。,(2)发送数据过程 CPU要发送数据时,将数据并行写入发送数据缓冲寄存器SBUF中,同时启动数据由TXD(P3.1)引脚串行发送,当一帧数据发送完,即发送缓冲器空时,由硬件自动将发送中断标志位TI置1,向CPU发出中断请求。CPU响应中断后用软件将TI位清0,同时又将下一帧数据写入SBUF中,重复上述过程直至所有数据发送完毕。,第7章 MCS-51单片机串行通信,7.2.2 串行口的控制,1电源和

9、数据传输率控制寄存器PCON PCON寄存器主要是为CHMOS型单片机的电源控制设置的专用寄存器,单元地址为87H,不能进行位寻址。,图7-5 PCON各位的定义,其中低4位是CHMOS型单片机掉电方式控制位: GF1、GF0 通用标志位,由软件置位、复位。 PD 掉电方式控制位,PD=1,则进入掉电方式。 IDL 待机方式控制位,IDL=1,则进入待机方式。,在HMOS单片机中,该寄存器中除最高位之外,其它位都没有定义。最高位SMOD是串行口波特率倍增位,在串行口工作方式1、方式2和方式3时,若SMOD=1,则串行口波特率加倍,若SMOD=0,则串行口波特率不加倍。系统复位时SMOD=0。,

10、第7章 MCS-51单片机串行通信,2串行口控制寄存器SCON,SCON是一个可以位寻址的特殊功能寄存器,主要功能是设定串行口的工作方式、接收和发送控制以及设置状态标志,单元地址为98H。,图7-6 SCON各位的定义,第7章 MCS-51单片机串行通信,SM0、SM1 串行口方式选择位。 两个选择位对应4种方式:,注:fosc为时钟频率,SM2 多机通信控制位。 SM2主要用于方式2和方式3。在方式2和方式3中, 当SM2=1,接收的第9位数据(RB8)为0时,则将接收到的前8位数据丢弃,只有接收到第9位数据(RB8)为1时,才将接收到的前8位数据送入SBUF,并置位RI产生中断请求。 当S

11、M2=0时,则不论接收到第9位数据是0还是1,都将接收到的前8位数据送入SBUF中,并产生中断请求。 在方式1中,若SM2=1,只有接收到有效的停止位RI才被激活。 在方式0中,SM2必须是0。,第7章 MCS-51单片机串行通信,REN 允许串行接收位: REN=1时,允许串行口接收;REN=0时,禁止串行口接收。该位由软件置位或清0。 TB8 发送数据的第9位: 在方式2、方式3中,TB8作为第9位数据发送出去,根据需要用软件置位或清0。TB8可在双机通信中作为奇偶校验位,也可在多机通信中作为发送地址帧或数据帧的标志位。一般约定,发送地址帧时设置 TB8=1;发送数据帧时设置TB8=0。在

12、方式0和方式1中,该位未用。,RB8 接收数据的第9位: 在方式2、方式3中,RB8是接收的第9位数据,在多机通信中为地址、数据标志位;方式0中RB8未用;在方式1中,若SM2=0,则接收的停止位自动存入RB8中。,TI 发送中断标志位: 在方式0中,发送完第8位数据时,由硬件自动置位。在其它方式中,在发送停止位开始时由硬件自动置位。T1=1时,申请中断,CPU响应中断后,发送下一帧数据,在任何方式中,TI都必须由软件清0。,RI 接收中断标志位: 在方式0中,第8位接收完毕,RI由硬件置位,在其它方式中,在接收停止位的一半时,自动被置为1,RI需由软件清0。,第7章 MCS-51单片机串行通

13、信,7.2.3 串行口的工作方式,MCS-51单片机的串行口有4种工作方式,由串行口控制寄存器SCON的高2位SM0和SM1的编码确定。,1、方式0,工作方式0为同步移位寄存器方式,其波特率固定为fosc/12。在这种方式下,数据从RXD(P3.0)端串行输出或输入,同步信号从TXD(P3.1)端输出。该方式以8位数据为一帧,没有起始位和停止位,先发送或接收最低位。,图7-7 方式0的帧格式,第7章 MCS-51单片机串行通信, 方式0发送 数据从RXD(P3.0)端串行输出,同步信号从TXD(P3.1)端输出。当CPU执行一条将数据写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口将8位

14、数据以fosc/12的固定波特率从RXD引脚输出,从低位到高位。当发送完8位数据后,中断标志位TI置1,请求中断。在下次发送数据之前,必须用软件将TI清零。,第7章 MCS-51单片机串行通信, 方式0接收 在满足REN=1和RI=0的条件下,串行口处于方式0接收。此时,数据从RXD端串行输入,同步信号从TXD(P3.1)端输出,接收器以fosc/12的波特率对RXD引脚输入的数据信息采样。当接收器接收完8位数据后,中断标志位RI置1,请求中断,表示可进行下一帧数据的接收。在下次接收之前,必须用软件将RI清零。,第7章 MCS-51单片机串行通信,【例7-1】用串行口扩展8位并行输入口,功能说

15、明:利用一个并入串出的移位寄存器74LS166芯片与单片机串行口相连,扩展成8位并行输入端口。74LS166芯片连接8位指拨开关,作为单片机的数据输入端,控制单片机输出端口P1所接的8个LED。,1、74LS166芯片: 74LS166是并行输入串行输出8位移位寄存器,各引脚说明如下: AH: 并行输入端。 QH: 串行输出端。 CLK: 时钟脉冲输入端,在脉冲的上 升沿实现位移。 INH: 时钟禁止端。 SH/LD:位移与置位控制。 SER:扩展多个74LS166的首尾连接端。 VCC:接+5V。 GND:接地端。,第7章 MCS-51单片机串行通信,2、接口扩展电路,单片机的TXD(P3.

16、1)作为移位脉冲输出端与74LS166的移位脉冲输入端CLK相连,RXD(P3.0)作为串行输入端与74LS166的串行输出端QH相连,P3.2用来控制74LS166的位移与置入(SH/LD脚),时钟禁止端INH接地,芯片的VCC端接+5V。,第7章 MCS-51单片机串行通信,3、汇编语言程序,扩展8位输入端口源程序: START:MOV SCON,#10H;设定方式0,REN=1 CLR P3.2 ;P3.2=0,移入4LS166 ACALL DELAY ;调用延时子程序 SETB P3.2 ;P3.2=1,74LS166移位串出 CLR RI ;RI=0,清除接收中断标志位 JNB RI

17、,$ ;等待接收完毕 MOV A,SBUF ;将SBUF数据装入A MOV P1,A ;将A中数据送入P1口输出 JMP START ;循环执行 DELAY: MOV R7,#02 ;延时子程序 DJNZ R7,$ RET,第7章 MCS-51单片机串行通信,【例7-2】用串行口扩展8位并行输出端口,将单片机串行口设定为工作方式0,RXD(P3.0)和TXD(P3.1)与74LS164芯片(串行输入并行输出移位寄存器)连接,用串行口扩展8位并行输出口。将8个LED分为左右两组,使亮灯从中间开始向左移动一次,再从中间开始向右移动一次,接着从最右端向中间移动一次,再从最左端向中间移动一次,然后闪烁

18、两次,不断循环。,第7章 MCS-51单片机串行通信,2. 接口扩展电路,使用74LS164移位寄存器芯片扩展8位并行输出口,连接8个LED输出显示。单片机的串行输出信号RXD(P3.0)引脚与74LS164芯片的串行输入端A和B相连,单片机的TXD(P3.1)引脚与74LS164的时钟脉冲输入端CLK相连,向芯片提供脉冲信号,芯片的第9脚接+5V,第7脚接地。,第7章 MCS-51单片机串行通信,3. 汇编语言程序,本程序利用单片机串行口功能将数据发送到74LS164芯片内,再由74LS164芯片来完成8位并行输出口扩展。,主程序流程,MOV SCON,#00H ;设串口方式0 START:

19、MOV DPTR,#TABLE ;编码表起始地址 LP:CLR A ;A清0 MOVC A,A+DPTR ;查表,取数据送入A MOV SBUF,A ;将数据送入SBUF LP1: 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,#20 DL2:MOV R7,#248 DJNZ R7,$ DJNZ R6,DL2 DJNZ R5,DL1 RET ;返回 TABLE: DB 0

20、EFH,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章 MCS-51单片机串行通信,2. 方式1,工作方式1为8位异步通信方式,适合于点对点的异步通信。这种方式规定发送或接收一帧信息为10位,即1个起始位(0),8个数据位,1个停止位(1),先发送或接收最低位。数据传输率

21、可以改变。TXD脚和RXD脚分别用于发送和接收数据。,第7章 MCS-51单片机串行通信,(1)方式1发送,当CPU执行一条数据写发送缓冲器SBUF的指令时,就启动发送。图中TX时钟频率就是发送的波特率。发送开始时,内部发送控制信号变为有效。将起始位向TXD输出,此后每经过一个TX时钟周期,便产生一个移位脉冲,并由TXD输出一个数据位。8位数据位全部发送完后,置“1”中断标志位TI,并申请中断。,图7-17方式1发送数据时序,第7章 MCS-51单片机串行通信,(2)方式1接收,数据从RXD(P3.0)引脚输入。在SCON寄存器中REN位置1的前提下,当检测到起始位的负跳变时,则开始接收。定时

22、控制信号有两种,一种是接收移位时钟(RX时钟),它的频率和传送的波特率相同。另一种是位检测器采样脉冲,它的频率是RX时钟的16倍。,当一帧数据接收完毕以后,必须同时满足以下两个条件,这次接收才真正有效。 RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中的数据已被取走,说明“接收SBUF”已空。 SM2=0或收到的停止位=1(方式1时,停止位已进入RB8),则收到的数据装入SBUF和RB8(RB8装入停止位),且置“1”中断标志RI。 若这两个条件不同时满足,收到的数据不能装入SBUF,该帧数据将丢弃。,第7章 MCS-51单片机串行通信,3. 方式2和3,当SM0=

23、1、SM1=0时,串行口选择方式2;SM0=1、SM1=1时,串行口选择方式3。 工作方式2和3为9位异步通信方式。每帧数据均为11位,1位起始位0,8位数据位(先低位),1位可程控的第9位数据和1位停止位。由TXD(P3.1)引脚发送数据,RXT(P3.0)引脚接收数据。,图7-19方式2和3的帧格式,第7章 MCS-51单片机串行通信,(1)方式2发送,发送数据前,先根据通讯协议由软件设置TB8(例如,双机通讯时的奇偶校验位或多机通讯时的地址/数据的标志位)。然后将要发送的数据写入SBUF,即可启动发送过程。串行口能自动把TB8取出,并装入到第9位数据位的位置,再逐一发送出去。发送完毕,则

24、把TI位置1。,第7章 MCS-51单片机串行通信,【例7-3】方式2发送在双机通讯中的应用。,在双机通讯中,以TB8作为奇偶校验位,处理方法为数据写入SBUF之前,先将数据的奇偶校验位写入TB8。CPU执行一条写SBUF的指令后,立即启动发送器发送。因发送完一帧信息后,TI被置1,再次向CPU申请中断,所以进入中断服务程序后,必须先将TI清零。,源程序如下: PIPTI: PUSH PSW ;保护现场 PUSH Acc CLR TI ;发送中断标志清0 MOV A,R0 ;取数据 MOV C,P ;取奇偶校验位 MOV TB8,C ;奇偶校验位送TB8 MOV SBUF ,A ;启动发送 I

25、NC R0 ;数据指针加1 POP Acc ;恢复现场 POP PSW RETI ;中断返回,第7章 MCS-51单片机串行通信,(2)方式2接受,当串行口置为方式2,且REN=1时,串行口以方式2接收数据。数据由RXD端输入,接收11位信息。当位检测逻辑采样到RXD引脚从1到0的负跳变,并判断起始位有效后,便开始接收一帧信息。在接收器到第9位数据后,需满足以下两个条件,才能将接收到的数据送入SBUF。 (1)RI=0,意味着接收缓冲器已空。 (2)SM2=0或接收到的第9位数据位RB8=1。 当上述两个条件满足时,接收到的数据送入SBUF(接收缓冲器),第9位数据送入RB8,并置1 RI。若

26、这两个条件不满足,接收的信息将被丢弃。,第7章 MCS-51单片机串行通信,【例7-4】方式2接收在双机通讯中的应用。,本例与例7-3相对应。若附加的第9位数据为校验位,在接收程序中应作奇偶校验处理,设R0为数据缓冲器指针。,源程序如下: LP: PUSH PSW ;保护现场 PUSH Acc CLR RI ;清接收中断标志 MOV A, SBUF ;接收数据送A MOV C, P ;取奇偶校验位 JNC L1 ;RB8是发送数据的校验位,P是接收数据的校验位, 若P不等于RB8, 则接收信息出错。 JNB RB8, ERR ;P=1,RB8=0,转ERR AJMP L2;P=1,RB8=1,

27、转L2 L1: JB RB8, ERR;P=0,RB8=1,转ERR L2: MOV R0, A;接收数据送存储区 INC R0 POP Acc POP PSW ERR: ;出错处理程序段 RETI,第7章 MCS-51单片机串行通信,7.3 MCS-51单片机之间的串行通信,多个MCS-51单片机可利用串行口进行多机通讯。要保证主机与所选择的从机实现可靠地通讯,必须保证串行口具有识别功能。 串行口控制寄存器SCON中的SM2位就是为满足这一条件而设置的多机通讯控制位。在串行口以方式2(或方式3)接收时,若SM2=1,表示置多机通讯功能位,这时出现两种可能情况: (1)接收到的第9位数据为1时

28、,数据才装入SBUF,并置中断标志RI=1向CPU发出中断请求; (2)接收到的第9位数据为0时,则不产生中断标志, 将接收到的信息将丢弃。若SM2=0,则接收的第9位数据不论是0还是1,都产生RI=1中断标志,接收到的数据装入SBUF中。应用上述特性,便可实现MCS-51的多机通讯。,第7章 MCS-51单片机串行通信,设多机系统中有1个主机和3个从机。主机的RXD与所有从机的TXD端相连,TXD与所有从机的RXD端相连。从机的地址分别为00H、01H和02H。 多机通讯工作过程: (1)从机串行口编程为方式2或方式3接收,且置“1”SM2和REN位,使从机只处于多机通讯且接收地址帧的状态。

29、 (2)在主机先将从机地址(即准备接收数据的从机地址)发送给各从机,然后再传送数据或命令,主机发出的地址信息的第9位为1,数据(包括命令)信息的第9位为0。当主机向各从机发送地址时,各从机的串行口接收到的第9位信息RB8为1,且由于SM2=1,则置“1”中断标志位RI,各从机响应中断执行中断服务程序。在中断服务子程序中,判断主机送来的地址是否与本机地址相符合,若为本机地址,则该从机清“0”SM2位,准备接收主机的数据或命令;若于本机地址不相符,则保持SM2=1状态。 (3)接着主机发送数据帧,此时各从机串行口接收到的RB8=0,只有与前面地址相符合的从机(即已清“0”SM2位的从机)才能激活中断标志位RI,从而产生中断,进入中断服务程序,在中断服务程序中接收主机的数据(或命令);其它的从机因SM2保持为1,而RB8=0不激活中断标志RI,不能进入中断,将所接收的数据丢弃不作处理,从而保证主机和从机间通讯的正确性。图7-22所示的多机系统是主从式,由主机控制多机之间的通讯,从机和从机的通讯只能经主机才能实现。,多机通信系统示意图,第7章 MCS-51单片机串行通信,7.4 MCS-51串行通信的波特率,串行口的波特率用于表示数据传输的速率。波特率的选取不仅与所选通信设备、通信距离有关

温馨提示

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

最新文档

评论

0/150

提交评论