您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 电气技术 > 第8章 80C51单片机串行通信
课程:单片机技术教材:单片机基础教学基本要求:(1)、了解串行通信的基础知识;(2)、熟悉单片机串行口的结构及工作原理;(3)、掌握单片机串行通信控制寄存器的功能;(4)、掌握单片机串行通信的工作方式;教学重点:(1)、串行控制寄存器SCON的功能;(2)、串行工作方式0、1;教学难点:(1)、串行工作方式1的程序设计;第8章80C51单片机串行通信课程:单片机技术教材:单片机基础8.1串行通信基础知识8.1.1异步通信和同步通信在计算机系统中,CPU和外部通信有以下两种方式:(a)并行通信:各数据位同时传送,速度快、效率高;(b)串行通信:数据传送按位顺序进行,成本低、速度慢;串行通信又分为异步和同步方式,单片机中常使用异步通信方式。计算机1计算机2或外设GNDGND计算机1计算机2或外设GNDGND发送接受(a)(b)...课程:单片机技术教材:单片机基础(1)异步串行通信的字符格式异步串行通信以字符为单位,即一次传送一个字符。异步串行通信的字符格式如下:D0D1D2D3D4D5D6D70/1D0D110/1......100第n+1字符帧第n字符帧8位数据起始位停止位奇偶校验(a)D0D1D2D3D4D5D6D70/1D0D111......100第n+1字符帧第n字符帧8位数据起始位停止位奇偶校验111空闲位(b)课程:单片机技术教材:单片机基础(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):从起始位到停止位结束的时间。(2)异步串行通信的信号形式(a)近程通信:采用数字信号直接传送形式,即在传送过程中不改变原数据代码的波形频率。(b)远程通信:采用频率调制法,即以不同频率的载波信号代表数字信号的两种不同电平状态,也称频带传送方式,因此,应采用调制解调器(modem)。(3)串行通信的数据通路形式(a)单工形式(b)半双工形式(c)全双工形式课程:单片机技术教材:单片机基础发送器A站接受器B站单工通信(a)发收A站发收B站发收A站发收B站(b)(c)半双工通信全双工通信(4)串行通信的传送速率波特率:每秒传送数据位的数目(bps)位/秒1波特=1bps(位/秒)课程:单片机技术教材:单片机基础(5)串行接口电路串行接口电路也称之为通用异步接收发送器(UART)。电路组成:(1)接收器;(2)发送器;(3)控制器;主要功能:(1)数据串行化/反串行化,并行数据串行数据;(2)格式信息的插入,滤除;格式信息:启始位,奇偶位,停止位。(3)错误检验用于检验数据通信过程是否正确。课程:单片机技术教材:单片机基础8.280C51串行口8.2.180C51串行口硬件结构80C51串行口硬件结构如图所示TI(发送中断)发送SBUF(99H)接收SBUF(99H)输入移位寄存器TXD串行输出RXD串行输出RI(接收中断)80C51内部总线移位时钟课程:单片机技术教材:单片机基础SBUF:串行口寄存器,专用寄存器,包括发送寄存器和接收寄存器,具有同一地址(99H)。串行发送时:向SBUF写入数据;串行接收时:从SBUF读出数据;移位寄存器:与接收寄存器构成双缓冲结构。在接收方式下,串行数据通过引脚RXD(P3.0)进入,由于接收SBUF和移位寄存器构成了双缓冲结构,所以,在数据接收过程中,可以避免出现帧重叠错误。在发送方式下,串行数据通过引脚TXD(P3.1)送出。在发送数据时,CPU处于主动状态,不会发生帧重叠错误,因此,发送电路不需要双缓冲结构。TI(发送中断)发送SBUF(99H)接收SBUF(99H)输入移位寄存器TXD串行输出RXD串行输出RI(接收中断)80C51内部总线移位时钟课程:单片机技术教材:单片机基础MCS-51单片机串行口结构如图所示课程:单片机技术教材:单片机基础8.2.2串行口控制机制与串行通信有关的控制寄存器共有3个:(1)串行控制寄存器SCON(字节地址:98H;位地址:9FH~98H)SCON的格式如下:位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRI各位功能说明如下:(a)SM0,SM1:串行口工作方式选择位课程:单片机技术教材:单片机基础SM0SM1工作方式000011102113(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,表示帧发送结束。可用指令JBCTI,rel来查询是否发送结束。TI=1时,也可向CPU申请中断,响应中断后,必须由软件清除TI(TI=0)。(g)RI:接收中断标志位在方式0中,接收完8位数据后,由硬件置位;在其它方式中,在接收停止位时由硬件置位。因此,RI=1,表示帧接收结束。同TI一样,也可以通过JBCRI,rel来查询是否接收完一帧数据。RI=1时,也可申请中断,响应中断后,必须由软件清除RI。课程:单片机技术教材:单片机基础(2)电源控制寄存器PCON(字节地址87H)电源控制寄存器PCON是为CHMOS型单片机的电源控制而设置的。SMOD:串行口波特率的倍增位。SMOD=1:串行口波特率加倍,系统复位后SMOD=0。位序B7B6B5B4B3B2B1B0位符号SMOD///GF1GF0PDID(3)中断允许寄存器IE(字节地址0A8H,位地址0AFH~0A8H)ES:串行中断允许位;(a)ES=0:禁止串行中断(b)ES=1:允许串行中断位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符号EA//ESET1EX1ET0EX0课程:单片机技术教材:单片机基础8.380C51串行口工作方式SM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可变10方式211位UARTfosc/64或fosc/3211方式311位UART可变MCS-51单片机的串行口有4种工作方式,基本情况如下:从表中可以看出,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,其值由定时器T1的溢出率控制。课程:单片机技术教材:单片机基础8.3.1串行工作方式0在方式0下,串行口作为同步移位寄存器使用,波特率固定为fosc/12,RXD(P3.0):数据移位的出入口;TXD(P3.1):提供移位时钟脉冲。移位数据发送,接收以8位为一帧,不设起始位和停止位,低位在前,高位在后。…D0D1D2D3D4D5D6D7…(1)数据发送与接收使用方式0实现数据的移位输入输出时,实际上把串行口变成为并行口使用。串行口作为并行口输入输出使用时,必须要有“并入串出”(CD4014、74LS165)和“串入并出”(CD4094、74LS164)移位寄存器的配合。课程:单片机技术教材:单片机基础(a)串行口作并行口实现数据输出80C51RXDTXDP1.0CLKDATASTBCD4094并行输出课程:单片机技术教材:单片机基础(b)串行口作并行口实现数据输入80C51RXDTXDP1.0CLKQ8P/(/S)CD4014并行输入课程:单片机技术教材:单片机基础(2)应用举例例:使用CD4094的并行输出端接8支发光二极管,利用它的串入并出功能,把发光二极管从左向右依此点亮,并反复循环之。假设发光二极管为共阴极型,电路如图所示。80C51RXDTXDP1.0CLKDATASTBCD4094课程:单片机技术教材:单片机基础解:当串行口把8位状态码串行移位输出后,TI置1,如把TI作状态查询标志,则可使用查询法进行程序设计。ORG1000HMOVSCON,#00H;串行口方式0工作CLRES;MOVA,#80H;发光二极管从左亮起DELR:CLRP1.0;关闭(关)并行输出MOVSBUF,A;串行输出JNBTI,$;状态查询SETBP1.0;开启并行输出ACALLDELAY;状态维持(DELAY延时子程序)CLRTI;清发送中断标志RRA;发光右移AJMPDELR;继续END思考题:如采用中断方法,应如何修改程序?课程:单片机技术教材:单片机基础8.3.2串行工作方式1串行工作方式1是10位为一帧的异步串行通信方式,这种工作方式是为双机通信而准备的。帧格式包括1个起始位,8个数据位和1个停止位。数据发送:是由一条写发送寄存器(SBUF)的指令开始,随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,使TXD输出线维持在1状态下,并将SCON寄存器的TI位置1,通知CPU可以接着发送下一个字符。数据接收:SCON的REN位应处于允许接收状态,即REN=1。在此前提下,串行口采样RXD端,当采样到从1到0的状态跳变时,就认为已接收到起始位。随后在移位脉冲的控制下,把接收到的数据位移入接收寄存器中。直到停止位到来之后置位中断标志位RI,通知CPU从SBUF取走接收到的一个字符。课程:单片机技术教材:单片机基础8.3.3串行工作方式2和3串行工作方式2和3都是11位为一帧的串行通信方式,即1个起始位、9个数据位和1个停止位。在这两种工作方式下,字符还是8个数据位,只不过增加了一个第9数据位(D8),它是一个可编程位,其功能由用户设定。在发送数据时,应予先在串行口控制寄存器SCON的TB8位中把第9个数据位的内容准备好。这两种工作方式的数据接收过程也与方式1基本类似,不同点仍在第9数据位上,串行口把接收到的前8个数据位移入SBUF,而把第9数据位送SCON的RB8。串行工作方式2和3是为多机通信而准备的。两者的工作过程相同,差别仅在于波特率的设置,方式2的波特率是固定的,而方式3的波特率可由用户根据需要设定,设定方法与方式1相同。课程:单片机技术教材:单片机基础8.4.280C51的波特率1.串行工作方式0的波特率串行工作方式0的波特率是固定的,其值为波特率=fosc/122.串行工作方式2的波特率串行工作方式2的波特率也是固定的,但有两个数值。计算公式为:波特率=fosc×2smod/64其中smod是串行口波特率倍增位SMOD的值。这两种固定的波特率可根据需要选择,而选择的方法是设置PCON寄存器
本文标题:第8章 80C51单片机串行通信
链接地址:https://www.777doc.com/doc-3380897 .html