51单片机7-串口通信

1.串口通信

2.我的单片机串行口的结构

在这里插入图片描述
说明:接收、发送缓冲器都是SBUF物理上独立的,占用同一地址99H ;

3.与串口通信相关的寄存器

串口控制寄存器SCON,PCON寄存器

(1)串口控制寄存器SCON

本寄存器设定串口的工作方式,接受和发送控制和设置状态标志。
数据结构:在这里插入图片描述

  1. SM0和SM1为工作方式选择位在这里插入图片描述
  2. SM2,多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走)。当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并激活RI(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。
    在方式0时,SM2必须是0。在方式1时,如果SM2=1,则只有接收到有效停止位时,RI才置1。
  3. REN, 允许串行接收位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。
  4. TB8,
    在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。
    在方式0和方式1中,该位未用。
  5. RB8,
    在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。
  6. TI,
    发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。
  7. RI,接收中断标志位RI=1表示串口接收数据完毕。在方式0时,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须在中断服务程序中,用软件将其清0,取消此中断申请。
(2)PCON中只有一位SMOD与串行口工作有关

在这里插入图片描述
SMOD(PCON.7) 波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。

4.编程思路:

对串口进行初始化,设置产生波特率的定时器1、串口控制和中断控制。

  1. 确定T1的工作方式(编程TMOD寄存器);
  2. 计算T1的初值,装载TH1、TL1;
  3. 启动T1(编程TCON中的TR1位);
  4. 确定串行口控制(编程SCON寄存器);
  5. 串行口在中断方式工作时,要进行中断设置(编程IE、 IP寄存器)。

猜你喜欢

转载自blog.csdn.net/jackson_hao/article/details/85873158