单片机原理与应用 教学课件 PPT 作者 张东亮 第8章串行通信接口

上传人:E**** 文档编号:89355907 上传时间:2019-05-23 格式:PPT 页数:45 大小:632KB
返回 下载 相关 举报
单片机原理与应用 教学课件 PPT 作者 张东亮 第8章串行通信接口_第1页
第1页 / 共45页
单片机原理与应用 教学课件 PPT 作者 张东亮 第8章串行通信接口_第2页
第2页 / 共45页
单片机原理与应用 教学课件 PPT 作者 张东亮 第8章串行通信接口_第3页
第3页 / 共45页
单片机原理与应用 教学课件 PPT 作者 张东亮 第8章串行通信接口_第4页
第4页 / 共45页
单片机原理与应用 教学课件 PPT 作者 张东亮 第8章串行通信接口_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《单片机原理与应用 教学课件 PPT 作者 张东亮 第8章串行通信接口》由会员分享,可在线阅读,更多相关《单片机原理与应用 教学课件 PPT 作者 张东亮 第8章串行通信接口(45页珍藏版)》请在金锄头文库上搜索。

1、第8章 串行通信接口,8.1 串行通信概述 8.2 8051单片机串行通信口 8.3 单片机串行口方式0的应用 8.4 单片机与单片机串行通信 8.5 单片机与PC机的串行通信,数据通信方式有两种:并行通信与串行通信。 并行通信:所传送数据的各位同时发送或接收,数据有多少位就需要多少根数据线。 速度快,成本高,适合近距离传输。 如计算机并口打印机。 串行通信:所传送数据的各位按顺序一位一位地发送或接收。 成本低,硬件方便,适合远距离通信,传输速度低。,8.1 串行通信概述,1. 异步串行通信和同步串行通信,1)异步串行通信一帧(frame)数据格式 一个起始位 “0”,表示字符的开始,然后是5

2、8位数据位即该字符的代码,规定低位在前,高位在后,接 下来是奇偶校验位(奇、偶或无校验),最后以停止位“1”(可以是1、1.5或2位)表示字符的结束。,异步串行通信一帧数据格式,2)同步通信 在同步通信中,数据或字符开始处用一同步字符来指示(一般约定为12个字符),以实现发送端与接收端同步,一旦检测到约定同步字符,下面就连续按顺序接收数据。同步通信的数据帧结构由同步字符、数据字符和校验字符CRC三部分组成。,同步串行通信数据帧格式,2. 串行通信的数据传送速率。 波特率(Baud Rate):单位时间内传送的信息量。在计算机中,以每秒传送的二进制位数为单位。 1 Baud=1 bit/s (b

3、ps, 位/秒) 例如:100字符/秒,1个字符11位, 波特率为:10011=1100(波特) 平均每位传送占用时间 Td = 1/1100=0.909ms,3. 串行通信的数据传输方式,1). 单工(Simplex)方式: 一端是发送端,另外一端是接收端。,2) . 半双工(Half-duplex)方式,每端口有一个发送器和一个接收器,通过开关连接在线路上,数据可以双向传送,但不能同时发送和接收,要通过换向器转换方向。,3). 全双工(Full-duplex)方式,通信双方用两个独立的收发器单独连接,可以同时发送和接收数据, 因而提高了速度。,按通信方向数据通路形式分为:单工、半双工、全双

4、工通信方式。,双工通信传输方式示意图,4. 信号的调制与解调,数字信号通过调制解调器( MODEM :Modulator and Demodulator )变成模拟信号通过电话线传送到对方,接收方通过调制解调器将模拟信号转换成数字信号接收。,8.2.1 串行口结构,8051单片机有一个可编程的全双工异串行通信接口,它可作UART用,也可作同步移位寄存器,其帧格式可有8位、10位或11位,并能设置各种波特率。,8051 单片机通过引脚RXD(P3.0)串行数据接收端和引脚 TXD(P3.1)串行数据发送端与外界进行通信。 两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H,可同时发

5、送、接收数据。 发送缓冲器只能写入,不能读出。CPU写SBUF,一方面修改发送寄存器,同时启动数据串行发送;接收缓冲器只能读出、不能写入。读SBUF,就是读接收寄存器。,8.2 8051单片机串行通信口,串行口结构框图,8.2.2 串行口控制寄存器SCON 8051串行通信的方式选择 ,接受和发送控制及串行口的标志均由专用寄存器SCON控制和指示,字节地址为98H,可以位寻址。其格式如下:,SM0 SM1:串行口工作方式选择位。 0 0-方式0, 0 1-方式1 1 0-方式2, 1 1-方式3 REN:串行接收允许位。 0-禁止接收, 1-允许接收 TB8: 在方式2,3中,TB8是发送机要

6、发送的第9位数据。,串行口的4种工作方式 SM0 SM1 方式 功 能 说 明 0 0 0 同步移位寄存器方式(用于扩展I/O口) 0 1 1 8位异步收发,波特率可变(由定时器控制) 1 0 2 9位异步收发,波特率为fosc/64或 fosc/32 1 1 3 9位异步收发,波特率可变(由定时器控制),RB8: 在方式2,3中,RB8是接收到的第9位数据,该数据来自发送机的TB8。 TI: 发送中断标志位。发送前必须用软件清零,发送过程中TI保持零电平,发送完一帧数据后,由硬件置 “1”,如果再发送,必须用软件再清零。,RI: 接收中断标志位。接收前,必须用软件清零,接收过程中RI保持零电

7、平,接收完一帧数据后由片内硬件自动置“1”。如果再接收必须用软件清零。 SM2:多机通信控制位。,SCON,字节地址98H,D7 D6 D5 D4 D3 D2 D1 D0,SM2:多机通信控制位,仅用于方式2和方式3。发送机设置SM2=1, 以发送第9位TB8为1作为地址帧寻找从机,以TB8为0作为数据帧进行通信,从机初始化时设置SM2=1 。 若接收的第9位数据RB8=0,不置位RI,即不引起接收中断, 不接收数据帧,继续监听。如接收到RB8=1,置位RI,引起接收中断, 程序中判断接收的地址帧和本机的地址是否符合, 若不符合,维持SM2=1,继续监听,若符合,则 清SM2,接收对放发来的后

8、续信息。,SM2的作用为: 在方式2,3中,发送机SM2=1(程序设置)。 接收机SM2=1,若RB8=1,激活RI,引起接收中断。 RB8=0,不激活RI,不引起接断。 SM2=0,无论RB8=1还是RB8=0均激活RI引起接收中断。 在方式1中, 当接收时SM2=1, 则只有收到有效停止位才激活RI,在方式 0 中, SM2应置为0。,PCON的字节地址为87H,无位地址, 只能字节寻址,初始化时SMOD=0。,PCON,87H,电源控制寄存器PCON,串行通信只用PCON中的最高位SMOD。,SMOD : 波特率加倍位。在计算串行方式 1、 2、 3 的波特率时, SMOD 0不加倍;

9、SMOD 1 加倍,中断允许控制寄存器IE ,字节地址为A8H,可以位寻址,0 禁止,1允许,IE.4 ES (Enable Serial Port):串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。,8.2.3 MCS-51 通信工作方式及其应用,根据串行通信数据格式和波特率的不同, 8051单片机的串行通信有四种工作方式。 1. 串行口工作方式0。移位寄位器工作方式。,RXD为串行数据的发送端或接收端, TXD输出频率为 fosc/12的时钟脉冲。,波特率固定为fosc/12 (fosc为单片机晶振频率),方式0的数据格式为8位,低位在前,高位在后。,移位寄位器方式多

10、用于接口扩展,当用单片机构成系统时,往往感到并行口不够用,此时可通过外接串入并出移位寄存器(74LS164)扩展输出接口;通过外接并入串出移位寄存器扩展输入接口,方式 0 也可应用于短距离的单片机之间的通信。,串行口方式0的时序,串行口方式0用于扩展并列并行I/O输入,串行口方式0用于扩展并行I/O输出,2. 串行工作方式1 10位异步通信方式, 每帧数据由1个起始位“0”,8个数据位和1个停止位“1”共10位构成。其中起始位和停止位在发送时是自动插入的。,以TXD为串行数据的发送端,T1提供位时钟,RXD为数据的接收端,由T1提供移位时钟,是波特率可变方式,波特率=(2SMOD/32)(TI

11、的溢出率) =(2SMOD/32)fosc/(12(256-X) ) 根据给定的波特率,可以计算T1(方式2)的计数初值X。,10位的帧格式,串行口方式1的时序,11位异步发送/接收方式,即每帧数据由有一个起始位“0”, 9个数据位和1个停止位“1”组成。发送时第9个数据位, 由SCON寄存器的TB8位 提供,接收到的第9位数据存放在SCON寄存器的RB8位。 第9位数据可作为检验位,也可用于多机通信中识别传送的是地址还是数据的特征位。,方式2 波特率固定为(2SMOD/64)fosc.,3. 方式2、3,方式3。 数据格式同方式 2,所不同的是波特率可变,计算方式同方式 1。,串行口方式2、

12、3的时序,4. 8051多机通信,多机通信连接示意图,通常8051单片机的多机通信采用主从式多机通信方式。这一功能使它可以方便地应用于分布式计算机系统中。在这种方式中,只有一台主机(Master,Host),有多台从机(Slave)。主机发送的信息可以传到各个从机或指定的从机,各从机发送的信息只能被主机接收,各从机不直接相互通信。,8.2.4 串行通信波特率 在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。 串行口的四种工作方式对应三种波特率。由于

13、输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。 方式0的波特率 = fosc/12 方式2的波特率 =(2SMOD/64) fosc 方式1的波特率 =(2SMOD/32)(T1溢出率) 方式3的波特率 =(2SMOD/32)(T1溢出率),当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值X。 T1 溢出率 = fosc /(12(256 X) 在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。所以,选用的波特率也相对固定。常用的串行口波特率

14、以及各参数的关系如表所示。,串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下 确定T1的工作方式(TMOD寄存器); 计算T1的初值,装载TH1、TL1; 启动T1(TCON中的TR1位); 确定串行口控制(SCON寄存器); 串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。,8.3 单片机串行口方式0的应用,利用串口扩展输出口,例8-1串行口方式0,通过8位串入并出移位寄存器74HC164实现扩展并行输出口。,MOV A, #55H ; 设置间隔显示数值 CLR P1.0 ; 对74HC164清零 SETB P1.0 ; 允

15、许数据串行移位 MOV SCON, #00H ; 设串行口方式0 MOV SBUF, A ; 启动串行口发送 JNB TI, $ ; 等待一帧发送结束 CLR TI ; 清串行口发送中断标志 SJMP $,程序如下,例8-2 串行口方式0,用并行输入8位移位寄存器74HC165扩展16位并行输入口。,利用串口扩展输入口,MOV R7, #20 ; 设置读入字节数 MOV R0, #50H ; 设片内RAM指针 SETB F0 ; 设置读入字节奇偶数标志 RCV0: CLR P1.0 ; 允许并行置入数据 SETB P1.0 ; 允许串行移位 RCV1: MOV SCON, #10H ; 设串行

16、口方式0,并启动接收(REN=1) JNB RI, $ ; 等待接收1帧数据 CLR RI ; 清接收中断标志RI MOV A, SBUF ; 取缓冲器数据 MOV R0, A INC R0 CPL F0 JB F0, RCV2 ; 判是否接收完偶数帧, ; 接收完则重新并行置入 DEC R7 SJMP RCV1 ; 否则再接收1帧 RCV2: DJNZ R7, RCV0 ; 判是否已读入预定的字节数 SJMP $ ; 等待,8.4 单片机与单片机串行通信,例8-3 编程把单片机A片内RAM 50H5FH单元中的数据块从串行口输出。使单片机B接收16字节数据块,存入片内RAM 30H3FH单元。,A机发送程序: TRT: MOV TMOD, #20H ; 设定时器T1工作在方式2 MOV TH1, #0E6H MOV TL1, # 0E6H ;

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

当前位置:首页 > 高等教育 > 大学课件

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