(本科)第8章串行口ppt课件.ppt
《(本科)第8章串行口ppt课件.ppt》由会员分享,可在线阅读,更多相关《(本科)第8章串行口ppt课件.ppt(142页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程主讲人:第8章 串行口2第第8章章 AT89S52单片机单片机 的串行口的串行口23内容概要内容概要 本章介绍本章介绍AT89S52单片机片内全双工通用异步收发(单片机片内全双工通用异步收发(UART)串行口的)串行口的基本结构与工作原理以及相关的特殊功能寄存器,串行口的基本结构与工作原理以及相关的特殊功能寄存器,串行口的4种工作方式。种工作方式。 本章还介绍如何利用单片机串行口实现多机串行通信,单片机串行通信本章还介绍如何利用单片机串行口实现多机串行通信,单片机串行通信的各种应用编程以及单片机与的各种应用编程以及单片机与PC机的串行通信。机的串行通信。 此外,从实用角度对目前单片机串行通
2、信广泛使用的各种常见的标准串此外,从实用角度对目前单片机串行通信广泛使用的各种常见的标准串行通信接口行通信接口RS232、RS422以及以及RS485也作以简要介绍。也作以简要介绍。48.1 串行通信基础串行通信基础 随着单片机的广泛应用与计算机网络技术的普及,单片机与个人计算机随着单片机的广泛应用与计算机网络技术的普及,单片机与个人计算机或单片机与单片机之间的通信使用较多。或单片机与单片机之间的通信使用较多。8.1.1 并行通信与串行通信并行通信与串行通信 单片机的数据通信有单片机的数据通信有并行通信并行通信与与串行通信串行通信两种方式。两种方式。1. 并行通信并行通信 单片机的并行通信通常
3、使用多条数据线将数据字节的各个位同时传送,单片机的并行通信通常使用多条数据线将数据字节的各个位同时传送,每一位数据都需要一条传输线,此外还需要一条或几条控制信号线。并行每一位数据都需要一条传输线,此外还需要一条或几条控制信号线。并行通信的示意图见通信的示意图见图图8-1。5图图8-1 并行通信示意图并行通信示意图6 并行通信相对传输速度快。但由于传输线较多,并行通信相对传输速度快。但由于传输线较多,长距离传送时成本高长距离传送时成本高,因,因此这种方式适合于此这种方式适合于短距离短距离的数据传输。的数据传输。2. 串行通信串行通信 单片机串行通信是将数据字节分成一位一位的形式在一条传输线上逐个
4、传单片机串行通信是将数据字节分成一位一位的形式在一条传输线上逐个传送。一次只能传送一位,对于一个字节的数据,至少要分送。一次只能传送一位,对于一个字节的数据,至少要分8位才能传送完毕位才能传送完毕。如。如图图8-2所示。所示。 串行通信在串行通信在发送发送时,要把并行数据变成串行数据发送到线路上去,接收时时,要把并行数据变成串行数据发送到线路上去,接收时要把串行数据再变成并行数据。要把串行数据再变成并行数据。 串行通信传输线少,长距离传送时成本低,且可以利用电话网等现成设备串行通信传输线少,长距离传送时成本低,且可以利用电话网等现成设备,因此在单片机应用系统中,串行通信的使用非常普遍。,因此在
5、单片机应用系统中,串行通信的使用非常普遍。7图图8-2 串行通信的示意图串行通信的示意图 88.1.2 同步通信与异步通信同步通信与异步通信 串行通信又有串行通信又有两种方式两种方式:异步通信与同步通信。:异步通信与同步通信。 同步串行通信同步串行通信是采用一个是采用一个同步时钟同步时钟,通过一条同步时钟线,加到收发双,通过一条同步时钟线,加到收发双方,使收、发双方达到完全同步,此时,传输数据的位之间的距离均为方,使收、发双方达到完全同步,此时,传输数据的位之间的距离均为“位间隔位间隔”的整数倍,同时传送的字符间不留间隙,既保持位同步关系。同的整数倍,同时传送的字符间不留间隙,既保持位同步关系
6、。同步通信及数据格式见步通信及数据格式见图图8-3。 异步串行通信异步串行通信是指收、发双方是指收、发双方使用各自的时钟使用各自的时钟控制数据的发送和接收,控制数据的发送和接收,这样可省去连接收、发双方的一条同步时钟信号线,使得异步串行通信连这样可省去连接收、发双方的一条同步时钟信号线,使得异步串行通信连接更加简单且容易实现。为使收发双方协调,要求收、发双方的时钟尽可接更加简单且容易实现。为使收发双方协调,要求收、发双方的时钟尽可能一致。能一致。9图图8-3 同步通信及数据格式同步通信及数据格式10 图图8-4给出了异步串行通信的示意图以及数据帧格式。异步串行通信是给出了异步串行通信的示意图以
7、及数据帧格式。异步串行通信是以数据帧为单位进行数据传输,各数据帧之间的间隔是任意的,但每个数以数据帧为单位进行数据传输,各数据帧之间的间隔是任意的,但每个数据帧中的各位是以固定的时间传送的。据帧中的各位是以固定的时间传送的。 异步串行通信不要求收、发双方时钟严格一致,实现容易,成本低,但异步串行通信不要求收、发双方时钟严格一致,实现容易,成本低,但是每个数据帧要附加起始位、停止位有时还要再加上校验位。是每个数据帧要附加起始位、停止位有时还要再加上校验位。 同步串行通信相比异步串行通信,同步串行通信数据传输的效率较高,同步串行通信相比异步串行通信,同步串行通信数据传输的效率较高,但是额外增加了一
8、条同步时钟线。但是额外增加了一条同步时钟线。11图图8-4 异步串行通信异步串行通信128.1.3 串行通信的传输模式串行通信的传输模式 串行通信按照按照数据传输的方向及时间关系可分为单工、半双工和全双串行通信按照按照数据传输的方向及时间关系可分为单工、半双工和全双工。工。1.单工单工 数据传输仅能按一个固定方向传输,不能反向传输,如数据传输仅能按一个固定方向传输,不能反向传输,如图图8-5(a)。2.半双工半双工 数据传输可双向传输,但数据传输可双向传输,但不能同时不能同时传输,如传输,如图图8-5(b)。3.全双工全双工 数据传输可数据传输可同时进行双向传输同时进行双向传输,如图,如图8-
9、5(c)所示。所示。13 (b)半双工)半双工 (a)单工)单工 (c)全双工)全双工图图8-5 单工、半双工和全双工的数据传输模式单工、半双工和全双工的数据传输模式 148.1.4 串行通信的错误校验串行通信的错误校验 在串行通信中,往往要对数据传送的正确与否进行校验。校验时保证传在串行通信中,往往要对数据传送的正确与否进行校验。校验时保证传输数据准确无误的关键。常用的有奇偶校验与循环冗余码校验等方法。输数据准确无误的关键。常用的有奇偶校验与循环冗余码校验等方法。1. 奇偶校验奇偶校验 串行发送数据时,数据位尾随串行发送数据时,数据位尾随1位奇偶校验位(位奇偶校验位(1或或0)。)。 当约定
10、为当约定为奇校验奇校验时,数据中时,数据中“1”的个数与校验位的个数与校验位“1”的个数之和应为的个数之和应为奇奇数数; 当约定为当约定为偶校验偶校验时,数据中时,数据中“1”的个数与校验位的个数与校验位“1”的个数之和应为的个数之和应为偶偶数数。数据发送方与接收方应一致。在接收数据帧时,对。数据发送方与接收方应一致。在接收数据帧时,对“1”的个数进行校的个数进行校验,若发现不一致,则说明数据传输过程中出现了差错,则通知发送端重验,若发现不一致,则说明数据传输过程中出现了差错,则通知发送端重发。发。152. 代码和校验代码和校验 代码和校验是发送方将所发数据块求和或各字节异或,产生一个字节的校
11、代码和校验是发送方将所发数据块求和或各字节异或,产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据时同时对数据块(除验字符(校验和)附加到数据块末尾。接收方接收数据时同时对数据块(除校验字节)求和或各字节异或,将所得结果与发送方的校验字节)求和或各字节异或,将所得结果与发送方的“校验和校验和”进行比较进行比较,如果相符,则无差错,否则即认为在传输过程中出现了差错。,如果相符,则无差错,否则即认为在传输过程中出现了差错。3. 循环冗余码校验循环冗余码校验 循环冗余码校验纠错能力强,容易实现。校验是通过某种数学运算实现有循环冗余码校验纠错能力强,容易实现。校验是通过某种数学运算实现有
12、效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。是目前应用最广的检错码编码方式之一,广泛用于同步通信中。性校验等。是目前应用最广的检错码编码方式之一,广泛用于同步通信中。168.2 串行口的结构串行口的结构 结构见结构见图图8-6。 有有两个物理上独立两个物理上独立的的接收、发送缓冲器接收、发送缓冲器SBUF(属于特殊功能寄存器),(属于特殊功能寄存器),可同时发送、接收数据。可同时发送、接收数据。 发送缓冲器发送缓冲器只能写入不能读出只能写入不能读出 接收缓冲器接收缓冲器只能读出不能写入只能读出不能
13、写入 两个缓冲器两个缓冲器共用一个特殊功能寄存器字节地址共用一个特殊功能寄存器字节地址(99H)。)。 控制寄存器共有两个:特殊功能寄存器控制寄存器共有两个:特殊功能寄存器SCON和和PCON。1617 图图8-6 串行口的内部结构图串行口的内部结构图17188.2.1 串行口控制寄存器串行口控制寄存器SCON 字节地址字节地址98H,可位寻址,可位寻址,位地址位地址为为98H9FH。格式如。格式如图图8-7。18 介绍介绍SCON中各位的功能。中各位的功能。(1)SM0、SM1串行口串行口4种工作方式种工作方式选择位选择位 SM0、SM1所对应的所对应的4种工作方式种工作方式见见表表8-1。
14、图图8-7 串行口控制寄存器串行口控制寄存器SCON的格式的格式19(2 2)SM2SM2多机通信控制位多机通信控制位 多机通信是在方式多机通信是在方式2 2和方式和方式3 3下进行。当下进行。当串口以方式串口以方式2 2或或方式方式3 3接收时接收时,如果如果SM2=1SM2=1,则只有当,则只有当接收到的第接收到的第9 9位数据位数据(RB8RB8)为为“1 1”时时,才使,才使RIRI置置“1 1”,产生中断请求,并将接收到的前,产生中断请求,并将接收到的前8 8位数据送入位数据送入SBUFSBUF。 当当接收到的第接收到的第9 9位数据位数据(RB8RB8)为为“0 0”时时,则将接收
15、到的前,则将接收到的前8 8位数据丢位数据丢弃。弃。1920 当当SM2= 0时,则时,则不论第不论第9位数据是位数据是1还是还是0,都将前都将前8位数据送入位数据送入SBUF中,中,并使并使RI置置1,产生中断请求。产生中断请求。 在在方式方式1时,如果时,如果SM2=1,则只有收到有效的停止位时才会激活,则只有收到有效的停止位时才会激活RI。 在在方式方式0时,时,SM2必须为必须为0。(3)REN允许串行接收位。允许串行接收位。 由软件置由软件置“1”或清或清“0”。 REN=1,允许允许串行口接收数据。串行口接收数据。 REN=0,禁止禁止串行口接收数据。串行口接收数据。2021(4)
16、TB8发送的第发送的第9位数据位数据方式方式2和方式和方式3,TB8是要发送的第是要发送的第9位数据,其值由软件置位数据,其值由软件置“1”或清或清“0”。在。在双机串行通信双机串行通信时,一般作为时,一般作为奇偶校验位奇偶校验位使用;在使用;在多机串行通信多机串行通信中中用来表示主机发送的是地址帧还是数据帧,用来表示主机发送的是地址帧还是数据帧,TB8=1为为地址帧地址帧,TB8=0为为数据数据帧帧。(5)RB8接收的第接收的第9位数据位数据方式方式2和方式和方式3,RB8存放接收到的存放接收到的第第9位位数据数据。在。在方式方式1,如,如SM2=0,RB8是接收到的停止位。在是接收到的停止
17、位。在方式方式0,不使用,不使用RB8。(6)TI发送中断标志位发送中断标志位方式方式0,串行发送的,串行发送的第第8位数据结束时位数据结束时TI由硬件置由硬件置“1”,在在其他方式其他方式中,中,串行口发送停止位的开始时置串行口发送停止位的开始时置TI 为为“1”。2122 TI =1,表示,表示一帧数据发送结束一帧数据发送结束。TI的状态可供软件查询,也可申请的状态可供软件查询,也可申请中断。中断。CPU响应中断后,在中断服务程序中向响应中断后,在中断服务程序中向SBUF写入要发送的下一写入要发送的下一帧数据。帧数据。TI必须由软件清必须由软件清“0”。(7)RI接收中断标志位接收中断标志
18、位 方式方式0时,时,接收完第接收完第8位数据位数据时,时,RI由硬件置由硬件置“1”。在其他工作方式。在其他工作方式中,串行接收到停止位时,该位置中,串行接收到停止位时,该位置“1”。RI = 1,表示一帧数据接收完,表示一帧数据接收完毕,并申请中断,要求毕,并申请中断,要求CPU从接收从接收SBUF取走数据。该位的状态也可供取走数据。该位的状态也可供软件查询。软件查询。RI必须由软件清必须由软件清“0”。 SCON的的所有位所有位都可进行位操作清都可进行位操作清“0”或置或置“1”。238.2.2 特殊功能寄存器特殊功能寄存器PCON 字节地址字节地址为为87H,不能位寻址。格式如,不能位
19、寻址。格式如图图8-8所示所示。23图图8-8 特殊功能寄存器特殊功能寄存器PCON的格式的格式24 下面介绍下面介绍PCON中各位功能。仅最高位中各位功能。仅最高位SMOD与串口有关,与串口有关,其他各位其他各位的功能已在的功能已在第第2章章的节电工作方式一节中作过介绍。的节电工作方式一节中作过介绍。 SMOD:波特率选择位。波特率选择位。 例如例如,方式,方式1的波特率计算公式为的波特率计算公式为 24SMOD232 当当SMOD = 1时,时,要比要比SMOD = 0时的波特率加倍时的波特率加倍,所以也称,所以也称SMOD位位为为波特率倍增位波特率倍增位。258.3 串行口的串行口的4种
20、工作方式种工作方式 4种工作方式由种工作方式由SCON中中SM0、SM1位位定义,编码见定义,编码见表表6-1。8.3.1 方式方式0 方式方式0为为同步移位寄存器输入同步移位寄存器输入/输出方式输出方式。该方式并。该方式并不用于两个单片机之间不用于两个单片机之间的异步串行通信的异步串行通信,而是,而是用于串行口外接移位寄存器用于串行口外接移位寄存器,扩展并行,扩展并行I/O口。口。 8位数据为一帧,位数据为一帧,无无起始位起始位和和停止位停止位,先发送或接收最低位。波特率固定,先发送或接收最低位。波特率固定,为为fosc/12。帧格式如。帧格式如图图8-9所示所示。25图图8-9 方式方式0
21、的帧格式的帧格式261方式方式0输出输出(1)方式)方式0输出的工作原理输出的工作原理 当当CPU执行一条将数据执行一条将数据写入发送缓冲器写入发送缓冲器SBUF的指令的指令时,时,产生一个正脉冲产生一个正脉冲,串行口开始把串行口开始把SBUF中的中的8位数据以位数据以fosc/12的的固定波特率固定波特率从从RXD引脚串行输出,引脚串行输出,低位在先,低位在先,TXD引脚输出同步移位脉冲,引脚输出同步移位脉冲,发送完发送完8位数据,中断标志位位数据,中断标志位TI置置“1”。发送时序如发送时序如图图8-10所示所示。262727图图8-10 方式方式0发送时序发送时序28(2)方式)方式0输
22、出的应用案例输出的应用案例 方式方式0输出的典型应用是串行口输出的典型应用是串行口外接外接串行输入串行输入/并行输出的同步移位寄并行输出的同步移位寄存器存器74LS164,实现并行输出端口的扩展。,实现并行输出端口的扩展。 图图8-11所示为串行口工作在方式所示为串行口工作在方式0,通过,通过74LS164的输出来控制的输出来控制8个外个外接接LED发光二极管亮灭的接口电路。当串行口被设置在方式发光二极管亮灭的接口电路。当串行口被设置在方式0输出时,输出时,串行数据由串行数据由RXD端(端(P3.0)送出,移位脉冲由)送出,移位脉冲由TXD端(端(P3.1)送出。在)送出。在移位脉冲的作用下,
23、串行口发送缓冲器的数据逐位地从移位脉冲的作用下,串行口发送缓冲器的数据逐位地从RXD端串行地移端串行地移入入74LS164中。中。282929 图图8-11 方式方式0输出外接输出外接8个个LED发光二极管接口电路发光二极管接口电路 30【例例8-1】 如如图图8-11所示,编写程序控制所示,编写程序控制8个发光二极管流水点亮。个发光二极管流水点亮。图中图中74LS164的的8脚(脚(CLK端)为同步脉冲输入端,端)为同步脉冲输入端, 9脚脚为控制端,由单为控制端,由单片机的片机的P1.0控制,当控制,当9脚为脚为0时,允许串行数据由时,允许串行数据由RXD端(端(P3.0)向)向74LS16
24、4的串行数据输入端(的串行数据输入端(1脚和脚和2脚)输入,此时脚)输入,此时74LS164的的8位并位并行输出端关闭;当行输出端关闭;当9脚为脚为1时,串行数据输入端(时,串行数据输入端(1脚和脚和2脚)关闭,但是脚)关闭,但是允许允许74LS164中的中的8位数据并行输出。位数据并行输出。当串行口将当串行口将8位串行数据发送完毕后,申请中断,在中断服务程序中位串行数据发送完毕后,申请中断,在中断服务程序中,单片机向串行口输出下一个,单片机向串行口输出下一个8位数据。位数据。采用中断方式的采用中断方式的参考程序参考程序如下:如下: 31#include #include /包含移位函数的头文
25、件包含移位函数的头文件sbit P1_0=0 x90;unsigned char nSendByte;void delay(unsigned int i) /延时函数延时函数unsigned char j;for(;i0;i-) /变量变量i由实际参数传入一个值,因此由实际参数传入一个值,因此i不能赋初值不能赋初值for(j=0;j125;j+);main( )/主函数主函数 SCON=0 x00; / 设置串行口为方式设置串行口为方式0EA=1;/ 全局中断允许全局中断允许32ES=1;/ 允许串行口中断允许串行口中断 nSendByte=1; / 点亮数据初始值为点亮数据初始值为0000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科第8章 串行口ppt课件 本科 串行口 ppt 课件
限制150内