,课程:单片机技术 教材:单片机基础,教学基本要求,:,(,1,)、了解串行通信的基础知识;,(,2,)、熟悉单片机串行口的结构及工作原理;,(,3,)、掌握单片机串行通信控制寄存器的功能;,(,4,)、掌握单片机串行通信的工作方式;,教学重点,:,(,1,)、串行控制寄存器,SCON,的功能;,(,2,)、串行工作方式,0,、,1,;,教学难点,:,(,1,)、串行工作方式,1,的程序设计;,第,8,章,80C51,单片机串行通信,8.1,串行通信基础知识,8.1.1,异步通信和同步通信,在计算机系统中,,CPU,和外部通信有以下两种方式:,(,a,),并行通信:各数据位同时传送,速度快、效率高;,(,b,),串行通信:数据传送按位顺序进行,成本低、速度慢;,串行通信又分为异步和同步方式,单片机中使用异步通信方式。,(,1,)异步串行通信的字符格式,异步串行通信以字符为单位,即一次传送一个字符。,异步串行通信,的字符格式如下:,(,a,),信息两种状态分别以,mark,和,space,标志,“,mark”,译为“标号”对应逻辑“,1”,状态,在发送器空闲时,数据线应保持在,mark,状态;,“,space”,译为“空格”,对应逻辑“,0”,状态。,(,b,),起始位:发送器是通过发送起始位而开始一个字符的传送,起始位使数据线处于“,SPACE”,状态。,(,c,),数据位:起始位之后就传送数据。,在数据位中、低位在前(左)、高位在后(右)。数据位可以是,5,、,6,、,7,或,8,位。,(,d,),奇偶校验位:用于对字符传送作正确性检查,,3,种可能:奇、偶或无校验。,(,e,),停止位:处于最后,用以标志一个字符传送的结束,它对应于,mark,状态,停止位可能是,1,,,1.5,或,2,位。,(,f,),位时间:一个数据位的时间宽度。,(,g,),帧(,frame,):,从起始位到停止位结束的时间。(,c,),数据位:起始位之后就传送数据。,(,2,),异步串行通信的信号形式,(,a,),近程通信:采用数字信号直接传送形式,即在传送过程中不改变原数据代码的波形频率。,(,b,),远程通信:采用频率调制法,即以不同频率的载波信号代表数字信号的两种不同电平状态,也称频带传送方式,因此,应采用调制解调器(,modem,)。,(,3,),串行通信的数据通路形式,(,a,),单工形式,(,b,),半双工形式,(,c,),全双工形式,(,4,),串行通信的传送速率,波特率:每秒传送数据位的数目(,bps,),位,/,秒,1,波特,=1bps(,位,/,秒,),(,5,),串行接口电路,串行接口电路也称之为,通用异步接收发送器(,UART,)。,电路组成:(,1,)接收器;,(,2,)发送器;,(,3,)控制器;,主要功能:(,1,)数据串行化,/,反串行化,并行数据,串行数据;,(,2,)格式信息的插入,滤除;,格式信息:启始位,奇偶位,停止位。,(,3,)错误检验,用于检验数据通信过程是否正确,。,8.2 80C51,串行口,8.2.1 80C51,串行口硬件结构,80C51,串行口硬件结构,如图所示,SBUF,:,串行口寄存器,可寻址专用寄存器,包括发送寄存器和接收寄存器,具有同一地址(,99H,)。,串行发送时:向,SBUF,写入数据;,串行接收时:从,SBUF,读出数据;,移位寄存器:与接收寄存器构成双缓冲结构。,在接收方式下,串行数据通过引脚,RXD,(,P3.0,),进入,由于接收,SBUF,和移位寄存器构成了双缓冲结构,所以,在数据接收过程中,可以避免出现帧重叠错误。,在发送方式下,串行数据通过引脚,TXD,(,P3.1,),送出。在发送数据时,,CPU,处于主动状态,不会发生帧重叠错误,因此,发送电路不需要双缓冲结构。,MCS-51,单片机串行口结构如图所示,8.2.2,串行,口控制,机制,与,串行,通信有关的控制,寄存器,共有,3,个:,(,1,),串行控制寄存器,SCON,(,字节地址:,98H,;,位地址:,9FH,98H,),SCON,的格式如下:,位地址,9FH,9EH,9DH,9CH,9BH,9AH,99H,98H,位符号,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,各位功能说明如下:,(,a,),SM0,,,SM1,:,串行口工作方式选,择位,SM0 SM1,工作方式,0 0,0,0 1,1,1 0,2,1 1,3,(,b,),SM2,:,多机通信控制,位,多机通信控制位,用于方式,2,和方式,3,中。在方式,2,和方式,3,处于接收方式时,若,SM2=1,且接收到的第,9,位数据,RB8,为,0,时,不激活,RI,;若,SM2=1,,且,RB8=1,时,则置,RI=1,。,在方式,2,、,3,处于接收或发送方式时,若,SM2=0,,,不论接收到的第,9,位,RB8,为,0,还是为,1,,,TI,、,RI,都以正常方式被激活。在方式,1,处于接收时,若,SM2=1,,,则只有收到有效的停止位后,,RI,置,1,。在方式,0,中,,SM2,应为,0,。,(,c,),REN,:,允许接收位,它由软件置位或清零。,REN=1,时,允许接收;,REN=0,时,禁止接收。,(,d,),TB8,:,发送数据位,8,在方式,2,和方式,3,中,,TB8,的内容是要发送的第,9,位数据,其值由用户通过软件置位或复位。,在双机通信时,,TB8,可做奇偶校验位使用;,在多机通信时,常以,TB8,位的,状态表示主机发送的是地址帧还是数据帧(,TB8=0,,,数据帧;,TB8=1,,,地址帧)。,(,e,),RB8,:,接收数据位,8,在方式,2,和方式,3,中,,RB8,的内容是接收到的第,9,位数据,代表着接收数据的某种特征(与,TB8,功能类似)。,(,f,),TI,发送中断标志位,在方式,0,中,发送完,8,位数据后,由硬件置位;在其它方式中,在发送停止位之前由硬件置位。因此,,TI=1,,,表示帧发送结束。可用指令,JBC TI,,,rel,来查询是否发送结束。,TI=1,时,也可向,CPU,申请中断,响应中断后,必须由软件清除,TI,(,TI=0,)。,(,g,),RI,:,接收中断标志位,在方式,0,中,接收完,8,位数据后,由硬件置位;在其它方式中,在接收停止位时由硬件置位。因此,,RI=1,,,表示帧接收结束。同,TI,一样,也可以通过,JBC RI,,,rel,来查询是否接收完一帧数据。,RI=1,时,也可申请中断,响应中断后,必须由软件清除,RI,。,(,2,),电源控制寄存器,PCON,(,字节地址,87H,),电源控制寄存器,PCON,是为,CHMOS,型单片机的电源控制而设置的。,SMOD,:,串行口波特率的倍增位。,SMOD=1,:,串行口波特率加倍,系统复位后,SMOD=0,。,位序,B7,B6,B5,B4,B3,B2,B1,B0,位,符号,SMOD,/,/,/,GF1,GF0,PD,ID,(,3,),中断允许寄存器,IE,(,字节地址,0A8H,,,位地址,0AFH,0A8H,),ES,:,串行中断允许位;(,a,),ES=0,:,禁止串行中断,(,b,),ES=1,:,允许串行中断,位,地址,0AFH,0AEH,0ADH,0ACH,0ABH,0AAH,0A9H,0A8H,位,符号,EA,/,/,ES,ET1,EX1,ET0,EX0,8.3 80C51,串行口工作方式,SM0 SM1,工作方式,功能,波特率,0 0,方式,0,8,位同步移位寄存器,f,osc,/12,0 1,方式,1,10,位,UART,可变,1 0,方式,2,11,位,UART,f,osc,/64或f,osc,/32,1 1,方式,3,11,位,UART,可变,MCS-51,单片机的串行口有,4,种工作方式,基本情况如下:,从表中可以看出,方式,0,和方式,2,的波特率是固定的,而方式,1,和方式,3,的波特率是可变的,其值由定时器,T1,的溢出率控制。,8.3.1,串行,工作方式,0,在方式,0,下,串行口作为同步移位寄存器使用,,波特率固定为,f,osc,/12,,,RXD,(,P3.0,):,数据移位的出入口;,TXD,(,P3.1,):,提供移位时钟脉冲。,移位数据发送,接收以,8,位为一帧,,,不设起始位和停止位,,,低位在前,,,高位在后。,D0,D1,D2,D3,D4,D5,D6,D7,(,1,),数据发送与接收,使用方式,0,实现数据的移位输入输出时,,实际上把串行口变成为并行口使用,。,串行口,作为并行口输入输出使用时,必须要有“并入串出”(,CD4014,、,74LS165,),和“串入并出”(,CD4094,、,74LS164,),移位寄存器的配合。,(,a,),串行口,作并行口实现数据输出,(,b,),串行口,作并行口实现数据输入,(,2,)应用举例,例:使用,CD4094,的并行输出端接,8,支发光二极管,利用它的串入并出功能,把发光二极管从左向右依此点亮,并反复循环之。,假设发光二极管为共阴极型,,电路如图所示。,解:,当串行口把,8,位状态码串行移位,输出,后,,TI,置,1,,如把,TI,作状态查询标志,,则可使用,查询法,进行程序设计,。,ORG 1000H,MOV SCON,,,#00H,;,串行口方式,0,工作,CLR ES,;,MOV A,,,#80H,;,发光二极管从左亮起,DELR,:,CLR P1.0,;,关闭(关)并行输出,MOV SBUF,,,A,;,串行输出,JNB TI,,,$,;,状态查询,SETB P1.0,;,开启并行输出,ACALL DELAY,;,状态维持,(,DELAY,延时子程序),CLR TI,;,清发送中断标志,RR A,;,发光右移,AJMP DELR,;,继续,END,思考题:如采用中断方法,应如何修改程序?,