第8章 80C51单片机串行通信_第1页
第8章 80C51单片机串行通信_第2页
第8章 80C51单片机串行通信_第3页
第8章 80C51单片机串行通信_第4页
第8章 80C51单片机串行通信_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教学基本要求:

(1)、了解串行通信的基础知识;(2)、熟悉单片机串行口的结构及工作原理;(3)、掌握单片机串行通信控制寄存器的功能;(4)、掌握单片机串行通信的工作方式;教学重点:(1)、串行控制寄存器SCON的功能;(2)、串行工作方式0;教学难点:

(1)、串行工作方式0的程序设计;第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):从起始位到停止位结束的时间。

(2)异步串行通信的信号形式(a)近程通信:采用数字信号直接传送形式,即在传送过程中不改变原数据代码的波形频率。

(b)远程通信:采用频率调制法,即以不同频率的载波信号代表数字信号的两种不同电平状态,也称频带传送方式,因此,应采用调制解调器(modem)。(3)串行通信的数据通路形式

(a)单工形式

(b)半双工形式

(c)全双工形式(4)串行通信的传送速率波特率:每秒传送数据位的数目(bps)位/秒

1波特=1bps(位/秒)(5)串行接口电路串行接口电路也称之为通用异步接收发送器(UART)。电路组成:(1)接收器;(2)发送器;(3)控制器;主要功能:(1)数据串行化/反串行化,并行数据串行数据;(2)格式信息的插入,滤除;格式信息:启始位,奇偶位,停止位。(3)错误检验用于检验数据通信过程是否正确。8.280C51串行口8.2.180C51串行口硬件结构

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的格式如下:位地址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//ESET1EX1ET0EX08.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)串行口作并行口实现数据输出(b)串行口作并行口实现数据输入(2)应用举例例:使用CD4094的并行输出端接8支发光二极管,利用它的串入并出功能,把发光二极管从左向右依此点亮,并反复循环之。假设发光二极管为共阴极型,电路如图所示。解:当串行口把8位状态码串行移位输出后,TI置1,如把TI作状态查询标志,则可使用查询法进行程序设计。

ORG0000H LJMPMAIN ORG0100HMAIN:MOVSCON,#00H;串行口方式0工作

CLRES;

MOVA,#80H;发光二极管从左亮起

DELR:CLRP1.0;关闭(关)并行输出

MOVSBUF,A;串行输出

JNBTI,$;状态查询

SETBP1.0;开启并行输出

ACALLDELAY;状态维持(DELAY延时子程序)

CLRTI;清发送中断标志

RRA;发光右移

AJMPDELR;继续

END思考题:如采用中断方法,应如何修改程序?#include<reg51.h>#include<intrins.h>#defineucharunsignedcharsbitP1_0=P1^0;uchar

aa;voidmain(){ SCON=0x00; ES=0;

aa=0x80; while(1) { P1_0=0; SBUF=aa;

if(TI==1) { P1_0=1; delay(); TI=0;

aa=_cror_(aa,1); }}}*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.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论