(精品)第8章 80C51单片机串行通信.ppt
课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础教学基本要求教学基本要求:(1 1)、了解串行通信的基础知识;)、了解串行通信的基础知识;(2 2)、熟悉单片机串行口的结构及工作原理;)、熟悉单片机串行口的结构及工作原理;(3 3)、掌握单片机串行通信控制寄存器的功能;)、掌握单片机串行通信控制寄存器的功能;(4 4)、掌握单片机串行通信的工作方式;)、掌握单片机串行通信的工作方式;教学重点教学重点:(1 1)、串行控制寄存器)、串行控制寄存器SCONSCON的功能;的功能;(2 2)、串行工作方式)、串行工作方式0 0、1 1;教学难点教学难点:(1 1)、串行工作方式)、串行工作方式1 1的程序设计;的程序设计;第第8 8章章 80C5180C51单片机串行通信单片机串行通信课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础8.1 8.1 串行通信基础知识串行通信基础知识8.1.1 8.1.1 异步通信和同步通信异步通信和同步通信 在计算机系统中,在计算机系统中,CPUCPU和外部通信有以下两种方式:和外部通信有以下两种方式:(a a)并行通信:各数据位同时传送,速度快、效率高;并行通信:各数据位同时传送,速度快、效率高;(b b)串行通信:数据传送按位顺序进行,成本低、速度慢;串行通信:数据传送按位顺序进行,成本低、速度慢;串行通信又分为异步和同步方式,单片机中使用异步通信方式。串行通信又分为异步和同步方式,单片机中使用异步通信方式。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(1 1)异步串行通信的字符格式)异步串行通信的字符格式 异步串行通信以字符异步串行通信以字符为单为单位,即一次位,即一次传传送一个字符。送一个字符。异步串行通信异步串行通信的字符格式如下:的字符格式如下:课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 (a a)信息两种状态分别以信息两种状态分别以markmark和和spacespace标志,标志,“mark”mark”译为译为“标标号号”对应逻辑对应逻辑“1”1”状态,在发送器空闲时,数据线应保持在状态,在发送器空闲时,数据线应保持在markmark状态;状态;“space”space”译为译为“空格空格”,对应逻辑,对应逻辑“0”0”状态。状态。(b b)起始位:发送器是通过发送起始位而开始一个字符的传送,起始位:发送器是通过发送起始位而开始一个字符的传送,起始位使数据线处于起始位使数据线处于“SPACE”SPACE”状态。状态。(c c)数据位:起始位之后就传送数据。数据位:起始位之后就传送数据。在数据位中、低位在前(左)、高位在后(右)。数据位可在数据位中、低位在前(左)、高位在后(右)。数据位可以是以是5 5、6 6、7 7或或8 8位。位。(d d)奇偶校验位:用于对字符传送作正确性检查,奇偶校验位:用于对字符传送作正确性检查,3 3种可能:奇、种可能:奇、偶或无校验。偶或无校验。(e e)停止位:处于最后,用以标志一个字符传送的结束,它对停止位:处于最后,用以标志一个字符传送的结束,它对应于应于markmark状态,停止位可能是状态,停止位可能是1 1,1.51.5或或2 2位。位。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 (f f)位时间:一个数据位的时间宽度。位时间:一个数据位的时间宽度。(g g)帧(帧(frameframe):):从起始位到停止位结束的时间。从起始位到停止位结束的时间。(c c)数数据位:起始位之后就传送数据。据位:起始位之后就传送数据。(2 2)异步串行通信的信号形式异步串行通信的信号形式 (a a)近程通信:采用数字信号直接近程通信:采用数字信号直接传传送形式,即在送形式,即在传传送送过过程中程中不改不改变变原数据代原数据代码码的波形的波形频频率。率。(b b)远远程通信:采用程通信:采用频频率率调调制法,即以不同制法,即以不同频频率的率的载载波信号代波信号代表数字信号的两种不同表数字信号的两种不同电电平状平状态态,也称,也称频带传频带传送方式,因此,送方式,因此,应应采用采用调调制解制解调调器(器(modemmodem)。)。(3 3)串行通信的数据通路形式串行通信的数据通路形式 (a a)单单工形式工形式 (b b)半双工形式半双工形式 (c c)全双工形式全双工形式课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(4 4)串行通信的串行通信的传传送速率送速率 波特率:每秒波特率:每秒传传送数据位的数目(送数据位的数目(bpsbps)位位/秒秒 1 1波特波特=1bps(=1bps(位位/秒秒)课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(5 5)串行接口电路串行接口电路 串行接口电路也称之为串行接口电路也称之为通用异步接收通用异步接收发发送器(送器(UARTUART)。)。电路组成:(电路组成:(1 1)接收器;)接收器;(2 2)发送器;)发送器;(3 3)控制器;)控制器;主要功能:(主要功能:(1 1)数据串行化)数据串行化/反串行化,并行数据反串行化,并行数据串行数据;串行数据;(2 2)格式信息的插入,滤除;)格式信息的插入,滤除;格式信息:启始位,奇偶位,停止位。格式信息:启始位,奇偶位,停止位。(3 3)错误检验)错误检验 用于用于检验检验数据通信数据通信过过程是否正确程是否正确。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础8.2 80C518.2 80C51串行口串行口8.2.1 80C518.2.1 80C51串行口硬件串行口硬件结结构构 80C5180C51串行口硬件串行口硬件结结构构如图所示如图所示课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 SBUFSBUF:串行口寄存器,可寻址专用寄存器,包括发送寄存器串行口寄存器,可寻址专用寄存器,包括发送寄存器和接收寄存器,具有同一地址(和接收寄存器,具有同一地址(99H99H)。)。串行发送时:向串行发送时:向SBUFSBUF写入数据;写入数据;串行接收时:从串行接收时:从SBUFSBUF读出数据;读出数据;移位寄存器:与接收寄存器构成双缓冲结构。移位寄存器:与接收寄存器构成双缓冲结构。在接收方式下,串行数据通过引脚在接收方式下,串行数据通过引脚RXDRXD(P3.0P3.0)进入,由于接进入,由于接收收SBUFSBUF和移位寄存器构成了双缓冲结构,所以,在数据接收过程和移位寄存器构成了双缓冲结构,所以,在数据接收过程中,可以避免出现帧重叠错误。中,可以避免出现帧重叠错误。在发送方式下,串行数据通过引脚在发送方式下,串行数据通过引脚TXDTXD(P3.1P3.1)送出。在发送送出。在发送数据时,数据时,CPUCPU处于主动状态,不会发生帧重叠错误,因此,发送电处于主动状态,不会发生帧重叠错误,因此,发送电路不需要双缓冲结构。路不需要双缓冲结构。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础MCS-51MCS-51单片机串行口结构如图所示单片机串行口结构如图所示课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础8.2.2 8.2.2 串行串行口控制口控制机制机制 与与串行串行通信有关的控制通信有关的控制寄存器寄存器共有共有3 3个:个:(1 1)串行控制寄存器串行控制寄存器SCONSCON(字节地址:字节地址:98H98H;位地址:位地址:9FH9FH98H98H)SCONSCON的格式如下:的格式如下:位地位地址址9FH9EH9DH9CH9BH9AH99H98H位符位符号号SM0SM1SM2RENTB8RB8TIRI 各位功能说明如下:各位功能说明如下:(a a)SM0SM0,SM1SM1:串行口工作方式串行口工作方式选选择位择位课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础SM0SM1工作方式工作方式000011102113(b b)SM2SM2:多机通信控制多机通信控制位位 多机通信控制位,用于方式多机通信控制位,用于方式2 2和方式和方式3 3中。在方式中。在方式2 2和方式和方式3 3处处于接收方式时,若于接收方式时,若SM2=1,SM2=1,且接收到的第且接收到的第9 9位数据位数据RB8RB8为为0 0时,不激时,不激活活RIRI;若;若SM2=1SM2=1,且,且RB8=1RB8=1时,则置时,则置RI=1RI=1。在方式在方式2 2、3 3处于接收或处于接收或发送方式时,若发送方式时,若SM2=0SM2=0,不论接收到的第不论接收到的第9 9位位RB8RB8为为0 0还是为还是为1 1,TITI、RIRI都以正常方式被激活。在方式都以正常方式被激活。在方式1 1处于接收时,若处于接收时,若SM2=1SM2=1,则只有则只有收到有效的停止位后,收到有效的停止位后,RIRI置置1 1。在方式。在方式0 0中,中,SM2SM2应为应为0 0。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(c c)RENREN:允允许许接收位接收位 它由软件置位或清零。它由软件置位或清零。REN=1REN=1时,允许接收;时,允许接收;REN=0REN=0时,禁止时,禁止接收。接收。(d d)TB8TB8:发发送数据位送数据位8 8 在方式在方式2 2和方式和方式3 3中,中,TB8TB8的内容是要发送的第的内容是要发送的第9 9位数据,其值位数据,其值由用户通过软件置位或复位。由用户通过软件置位或复位。在双机通信时,在双机通信时,TB8TB8可做奇偶校验位使用;可做奇偶校验位使用;在多机通信时,常以在多机通信时,常以TB8TB8位的位的状态表示主机发送的是地址帧还状态表示主机发送的是地址帧还是数据帧(是数据帧(TB8=0TB8=0,数据帧;数据帧;TB8=1TB8=1,地址帧)。地址帧)。(e e)RB8RB8:接收数据位接收数据位8 8 在方式在方式2 2和方式和方式3 3中,中,RB8RB8的内容是接收到的第的内容是接收到的第9 9位数据,代表位数据,代表着接收数据的某种特征(与着接收数据的某种特征(与TB8TB8功能类似)。功能类似)。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(f f)TITI发发送中断送中断标标志位志位 在方式在方式0 0中,发送完中,发送完8 8位数据后,由硬件置位;在其它方式中,位数据后,由硬件置位;在其它方式中,在发送停止位之前由硬件置位。因此,在发送停止位之前由硬件置位。因此,TI=1TI=1,表示帧发送结束。表示帧发送结束。可用指令可用指令JBC TIJBC TI,relrel来查询是否发送结束。来查询是否发送结束。TI=1TI=1时,也可向时,也可向CPUCPU申请中断,响应中断后,必须由软件清除申请中断,响应中断后,必须由软件清除TITI(TI=0TI=0)。)。(g g)RIRI:接收中断接收中断标标志位志位 在方式在方式0 0中,接收完中,接收完8 8位数据后,由硬件置位;在其它方式中,位数据后,由硬件置位;在其它方式中,在接收停止位时由硬件置位。因此,在接收停止位时由硬件置位。因此,RI=1RI=1,表示帧接收结束。同表示帧接收结束。同TITI一样,也可以通过一样,也可以通过JBC RIJBC RI,relrel来查询是否接收完一帧数据。来查询是否接收完一帧数据。RI=1RI=1时,也可申请中断,响应中断后,必须由软件清除时,也可申请中断,响应中断后,必须由软件清除RIRI。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(2 2)电源控制寄存器电源控制寄存器PCONPCON(字节地址字节地址87H87H)电源控制寄存器电源控制寄存器PCONPCON是为是为CHMOSCHMOS型单片机的电源控制而设置的。型单片机的电源控制而设置的。SMODSMOD:串行口波特率的倍增位。串行口波特率的倍增位。SMOD=1SMOD=1:串行口波特率加倍,系串行口波特率加倍,系统复位后统复位后SMOD=0SMOD=0。位序位序B7B6 B5 B4B3B2B1B0位位符号符号SMOD/GF1 GF0 PD ID(3 3)中断允中断允许许寄存器寄存器IEIE(字节地址字节地址0A8H0A8H,位地址位地址0AFH0AFH0A8H0A8H)ESES:串行中断允许位;(串行中断允许位;(a a)ES=0ES=0:禁止串行中断禁止串行中断 (b b)ES=1ES=1:允允许许串行中断串行中断 位位地址地址0AFH0AFH0AEH0AEH0ADH0ADH0ACH0ACH0ABH0ABH0AAH0AAH0A9H0A9H0A8H0A8H位位符号符号EAEA/ESESET1ET1EX1EX1ET0ET0EX0EX0课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础8.3 80C518.3 80C51串行口工作方式串行口工作方式SM0 SM1SM0 SM1工作方式工作方式功能功能波特率波特率0 00 0方式方式0 08 8位同步移位寄位同步移位寄存器存器f foscosc/12/120 10 1方式方式1 11010位位UARTUART可变可变1 01 0方式方式2 21111位位UARTUARTf foscosc/64/64或或f foscosc/32/321 11 1方式方式3 31111位位UARTUART可变可变 MCS-51MCS-51单片机的串行口有单片机的串行口有4 4种工作方式,基本情况如下:种工作方式,基本情况如下:从表中可以看出,方式从表中可以看出,方式0 0和方式和方式2 2的波特率是固定的,而方式的波特率是固定的,而方式1 1和方式和方式3 3的波特率是可变的,其值由定时器的波特率是可变的,其值由定时器T1T1的溢出率控制。的溢出率控制。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础8.3.1 8.3.1 串行串行工作方式工作方式0 0 在方式在方式0 0下下,串行口作串行口作为为同步移位寄存器使用同步移位寄存器使用,波特率固定为,波特率固定为f foscosc/12/12,RXDRXD(P3.0P3.0):):数据移位的出入口;数据移位的出入口;TXDTXD(P3.1P3.1):):提供提供移位移位时钟时钟脉冲。脉冲。移位数据移位数据发发送送,接收以接收以8 8位位为为一一帧帧,不不设设起始位和停止位起始位和停止位,低低位在前位在前,高位在后。高位在后。D0 D1 D2 D3 D4 D5 D6 D7(1 1)数据数据发发送与接收送与接收 使用方式使用方式0 0实现数据的移位输入输出时,实现数据的移位输入输出时,实际实际上把串行口上把串行口变变成成为为并行口使用并行口使用。串行口串行口作为并行口输入输出使用时,必须要有作为并行口输入输出使用时,必须要有“并入串出并入串出”(CD4014CD4014、74LS16574LS165)和和“串入并出串入并出”(CD4094CD4094、74LS16474LS164)移移位寄存器的配合。位寄存器的配合。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(a a)串行口串行口作并行口实现数据输出作并行口实现数据输出课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(b b)串行口串行口作并行口实现数据输入作并行口实现数据输入课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础(2 2)应用举例)应用举例 例:使用例:使用CD4094CD4094的并行输出端接的并行输出端接8 8支发光二极管支发光二极管,利用它的串利用它的串入并出功能,把发光二极管从左向右依此点亮,并反复循环之。入并出功能,把发光二极管从左向右依此点亮,并反复循环之。假假设发设发光二极管光二极管为为共阴极型共阴极型,电路如图所示。,电路如图所示。课程:单片机技术课程:单片机技术 教材:单片机基础教材:单片机基础 解:解:当串行口把当串行口把8 8位状位状态码态码串行移位串行移位输出输出后,后,TITI置置1 1,如把,如把TITI作作状状态查询标态查询标志,志,则可使用则可使用查询查询法法进行程序设计进行程序设计。ORG 1000HORG 1000H MOV SCON MOV SCON,#00H#00H;串行口方式串行口方式0 0工作工作 CLR ESCLR ES;MOV AMOV A,#80H#80H;发发光二极管从左亮起光二极管从左亮起 DELRDELR:CLR P1.0CLR P1.0;关关闭闭(关)并行(关)并行输输出出 MOV SBUFMOV SBUF,A A;串行串行输输出出 JNB TIJNB TI,$;状状态查询态查询 SETB P1.0SETB P1.0;开启并行开启并行输输出出 ACALL DELAYACALL DELAY;状状态维态维持持(DELAYDELAY延时子程序)延时子程序)CLR TICLR TI;清发送中断标志清发送中断标志 RR ARR A;发光右移发光右移 AJMP DELRAJMP DELR;继续继续 ENDEND思考题:如采用中断方法,应如何修改程序?思考题:如采用中断方法,应如何修改程序?