51单片机串口通讯_第1页
51单片机串口通讯_第2页
51单片机串口通讯_第3页
51单片机串口通讯_第4页
51单片机串口通讯_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、51串口通讯2013.05.03 1 异步通信方式 01停止位起始位低位高位7位数据位奇偶校验停止位第N个字符第N-1个字符 2 同步通信方式 串行通信的波特率 波特率(band rate)是异步通信中每秒钟传送的二进制数码的位数(比特数),单位是位/秒。 作用:1、反映串行通信的速率; 2、反映对传输通道的要求:波特率越高,要求的传输通道的频带宽度就越宽。 异步通信:波特率为每秒传送的字符数和每个字符位数的乘积。MCS-51MCS-51串行口的结构串行口的结构 MCS-51有一个可编程的有一个可编程的全双工串行通全双工串行通信接口信接口,可作为通用异步收发器,可作为通用异步收发器(UART)

2、,也可作为同步移位寄存器。它的帧格式有也可作为同步移位寄存器。它的帧格式有8位、位、10位和位和11位,可以设置为固定波特率位,可以设置为固定波特率和可变波特率,给使用者带来很大的灵活和可变波特率,给使用者带来很大的灵活性。性。串行口内部结构示意简图有两个物理上独立的接收、发送缓冲器有两个物理上独立的接收、发送缓冲器SBUF,它们占用,它们占用同一地址同一地址99H ;接收器是双缓冲结构;接收器是双缓冲结构 ;发送缓冲器,因;发送缓冲器,因为发送时为发送时CPU是主动的,不会产生重叠错误。是主动的,不会产生重叠错误。 80C5180C51串行口的控制寄存器串行口的控制寄存器 SCON 是一个特

3、殊功能寄存器,用以设定串行口的工是一个特殊功能寄存器,用以设定串行口的工作方式、接收作方式、接收/发送控制以及设置状态标志:发送控制以及设置状态标志: SM0和和SM1为工作方式选择位,可选择四种工作方式:为工作方式选择位,可选择四种工作方式: SM2,多机通信控制位,多机通信控制位,主要用于方式,主要用于方式2和方式和方式3。当当接收机的接收机的SM2=1时可以利用收到的时可以利用收到的RB8来控制是否来控制是否激活激活RI(RB80时不激活时不激活RI,收到的信息丢弃;,收到的信息丢弃;RB81时收到的数据进入时收到的数据进入SBUF,并激活,并激活RI,进而在,进而在中断服务中将数据从中

4、断服务中将数据从SBUF读走)。读走)。当当SM2=0时,不时,不论收到的论收到的RB8为为0和和1,均可以使收到的数据进入,均可以使收到的数据进入SBUF,并激活,并激活RI(即此时(即此时RB8不具有控制不具有控制RI激活的激活的功能)。通过控制功能)。通过控制SM2,可以实现多机通信。,可以实现多机通信。在方式在方式0时,时,SM2必须是必须是0。在方式。在方式1时,若时,若SM2=1,则只有接收到有效停止位时,则只有接收到有效停止位时,RI才置才置1。REN,允许串行接收位,允许串行接收位。由软件置。由软件置REN=1,则启动,则启动串行口接收数据;若软件置串行口接收数据;若软件置RE

5、N=0,则禁止接收。,则禁止接收。TB8,在方式,在方式2或方式或方式3中,是发送数据的中,是发送数据的第九位第九位,可以用软件规定其作用。可以用作,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为数据的奇偶校验位,或在多机通信中,作为地址帧地址帧/数据帧的标志位。数据帧的标志位。在方式在方式0和方式和方式1中,该位未用。中,该位未用。RB8,在方式,在方式2或方式或方式3中,是接收到数据中,是接收到数据的第九位的第九位,作为奇偶校验位或地址帧,作为奇偶校验位或地址帧/数据帧数据帧的标志位。在方式的标志位。在方式1时,若时,若SM2=0,则,则RB8是接收到的停止位。是接收

6、到的停止位。TI,发送中断标志位,发送中断标志位。在方式。在方式0时,当串行时,当串行发送第发送第8位数据结束时,或在其它方式,串位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使行发送停止位的开始时,由内部硬件使TI置置1,向,向CPU发中断申请。在中断服务程序中,发中断申请。在中断服务程序中,必须用软件将其清必须用软件将其清0,取消此中断申请。,取消此中断申请。RI,接收中断标志位,接收中断标志位。在方式。在方式0时,当串时,当串行接收第行接收第8位数据结束时,或在其它方式,位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使串行接收停止位的中间时,由内部硬件使R

7、I置置1,向,向CPU发中断申请。也必须在中断服发中断申请。也必须在中断服务程序中,用软件将其清务程序中,用软件将其清0,取消此中断申,取消此中断申请。请。80C5180C51串行口的控制寄存器串行口的控制寄存器PCON中只有一位中只有一位SMOD与串行口工作有关与串行口工作有关 : SMOD(PCON.7) 波特率倍增位。在串行口方式波特率倍增位。在串行口方式1、方式方式2、方式、方式3时,波特率与时,波特率与SMOD有关,当有关,当SMOD=1时,时,波特率提高一倍。复位时,波特率提高一倍。复位时,SMOD=0。80C5180C51串行口的工作方式串行口的工作方式 一、方式一、方式0 方式

8、方式0时,串行口为同步移位寄存器的输入输出方式。主时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚)引脚输入或输出,同步移位脉冲由输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发)引脚输出。发送和接收均为送和接收均为8位数据,低位在先,高位在后。波特率固定位数据,低位在先,高位在后。波特率固定为为fosc/12。 1、方式、方式0输出输出80C5180C51串行口的工作方式串行口的工作方式 2、方式、方式0输入输入 方式方式0接收和发送电路接收和发送电路80C5180C51串行口的工作方式串行口的工作

9、方式 二、方式二、方式1 方式方式1是是10位数据的异步通信口。位数据的异步通信口。TXD为数据发送引脚,为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,位起始位,8位数据位,位数据位,1位停止位。位停止位。 1、方式、方式1输出输出80C5180C51串行口的工作方式串行口的工作方式 2、方式、方式1输入输入 用软件置用软件置REN为为1时,接收器以所选择波特率的时,接收器以所选择波特率的16倍速率采倍速率采样样RXD引脚电平,检测到引脚电平,检测到RXD引脚输入电平发生负跳变时,则引脚输入电平发生负跳变时,则

10、说明起始位有效,将其移入输入移位寄存器,并开始接收这一说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当一次移位。当RI=0,且,且SM2=0(或接收到的停止位为(或接收到的停止位为1)时,)时,将接收到的将接收到的9位数据的前位数据的前8位数据装入接收位数据装入接收SBUF,第,第9位(停止位(停止位)进入位)进入RB8,并置,并置RI=1,向,向CPU请求中断。

11、请求中断。80C5180C51串行口的工作方式串行口的工作方式 三、方式三、方式2和方式和方式3 方式方式2或方式或方式3时为时为11位数据的异步通信口。位数据的异步通信口。TXD为数据发为数据发送引脚,送引脚,RXD为数据接收引脚为数据接收引脚 。 方式方式2和方式和方式3时起始位时起始位1位,数据位,数据9位(含位(含1位附加的第位附加的第9位位,发送时为,发送时为SCON中的中的TB8,接收时为,接收时为RB8),停止位),停止位1位,位,一帧数据为一帧数据为11位。方式位。方式2的波特率固定为晶振频率的的波特率固定为晶振频率的1/64或或1/32,方式,方式3的波特率由定时器的波特率由

12、定时器T1的溢出率决定。的溢出率决定。 80C5180C51串行口的工作方式串行口的工作方式 1、方式、方式2和方式和方式3输出输出 发送开始时,先把起始位发送开始时,先把起始位0输出到输出到TXD引脚,然后发送移引脚,然后发送移位寄存器的输出位(位寄存器的输出位(D0)到)到TXD引脚。每一个移位脉冲都引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位,并由使输出移位寄存器的各位右移一位,并由TXD引脚输出。引脚输出。 第一次移位时,停止位第一次移位时,停止位“1”移入输出移位寄存器的第移入输出移位寄存器的第9位位上上 ,以后每次移位,左边都移入,以后每次移位,左边都移入0。当停止位移至输

13、出位时。当停止位移至输出位时,左边其余位全为,左边其余位全为0,检测电路检测到这一条件时,使控制,检测电路检测到这一条件时,使控制电路进行最后一次移位,并置电路进行最后一次移位,并置TI=1,向,向CPU请求中断。请求中断。 80C5180C51串行口的工作方式串行口的工作方式 2、方式、方式2和方式和方式3输入输入 接收时,数据从右边移入输入移位寄存器,在起接收时,数据从右边移入输入移位寄存器,在起始位始位0移到最左边时,控制电路进行最后一次移位。移到最左边时,控制电路进行最后一次移位。当当RI=0,且,且SM2=0(或接收到的第(或接收到的第9位数据为位数据为1)时)时,接收到的数据装入接

14、收缓冲器,接收到的数据装入接收缓冲器SBUF和和RB8(接收(接收数据的第数据的第9位),置位),置RI=1,向,向CPU请求中断。如果条请求中断。如果条件不满足,则数据丢失,且不置位件不满足,则数据丢失,且不置位RI,继续搜索,继续搜索RXD引脚的负跳变。引脚的负跳变。波特率的计算波特率的计算 在串行通信中,收发双方对发送或接收数据的速率要有在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其约定。通过软件可对单片机串行口编程为四种工作方式,其中方式中方式0和方式和方式2的波特率是固定的,而方式的波特率是固定的,而方式1和方式和方式3的波特的波

15、特率是可变的,由定时器率是可变的,由定时器T1的溢出率来决定。的溢出率来决定。 串行口的四种工作方式对应串行口的四种工作方式对应三种波特率三种波特率。由于输入的移位。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相时钟的来源不同,所以,各种方式的波特率计算公式也不相同。同。方式方式0的波特率的波特率 = fosc/12方式方式2的波特率的波特率 =(2SMOD/64) fosc 方式方式1的波特率的波特率 =(2SMOD/32)(T1溢出率)溢出率)方式方式3的波特率的波特率 =(2SMOD/32)(T1溢出率)溢出率) 当当T1作为波特率发生器时,最典型的用法是使作为波特率

16、发生器时,最典型的用法是使T1工作在自动再装入工作在自动再装入的的8位定时器方式(即方式位定时器方式(即方式2,且,且TCON的的TR1=1,以启动定时器)。这,以启动定时器)。这时溢出率取决于时溢出率取决于TH1中的计数值。中的计数值。 T1 溢出率溢出率 = fosc /12256 (TH1) 在单片机的应用中,常用的晶振频率为:在单片机的应用中,常用的晶振频率为:12MHz和和11.0592MHz。所。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。如表所示。串口的配置串行口工作之前,应对其进行初始化,主要是设置串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器产生波特率的定时器1、串行口控制和中断控制。、串行口控制和中断控制。具体步骤如下:具体步骤如下:确定确定T1的工作方式的工作方式(编程(编程TMOD寄存器);寄存器);计算计算T1的初值的初值,装载

温馨提示

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

评论

0/150

提交评论