MCS-51单片机的串行口及应用

一、串行数据通信概述

        串行通信是实现远距离低成本数据传输的有效办法

        1.1 常见的串行口通信接口及应用

MCS-51单片机的串行口及应用_第1张图片

        1.2 串行通信的分类

        (1)同步传输和异步传输(按数据传输的方式)

                a)同步传输:以数据块为单位进行传送,包括同步字符、数据块和校验字符CRC

                优点:传输速度快

                缺点:要求发送时钟与接收时钟必须保持严格同步

                b)异步传输:以字符为单位进行传输,每个字符均按照固定的字符格式传送,又被称为

                优点:无需传送同步脉冲,可靠性高,所需设备简单,发送与接收相互独立,互不同步,但双方必须使用相同波特率和字符帧格式

                缺点:字符帧中包含起始位和停止位而降低了有效数据的传输效率。

                异步通信协议:①没有发送数据时,数据线保持“1”状态;②发送数据时,先发起始位“0”,其后是数据;③数据后再发一位停止位“1”。

        (2)单工、双工、半双工(按数据传输方向划分)

        1.3 串行通信的速率——波特率

        波特率:每秒钟传送信号的数量。

        单位:波特(Baud)

        每秒钟传送二进制数的位数称为比特率,单位是bps或b/s。

        在单片机串行通信中,传送的信号是二进制信号,波特率和比特率数值上是相等的,单位采用bps。

二、MCS-51单片机串行口的结构及特点

MCS-51单片机的串行口及应用_第2张图片

 UART:Universal Asynchronous Receiver/Transmitter 通用异步接收器/发送器

三、MCS-51单片机串行口的控制

3.1 数据缓冲寄存器SBUF(99H)

SUBF:用来存放发送和接收数据的两个独立的缓冲寄存器。

发送:CPU将数据送到发送SBUF寄存器(MOV SUBF,A)后,SBUF便一位一位的发送数据,发送完成后标志TI=1;

接收:在CPU允许接收的前提下(REN=1),外部串行数据经过RXD送入SBUF时,电路便自动启动接收,知道完成一帧数据后标志RI=1。CPU通过执行以下指令取出收到的数据:MOV A,SBUF

3.2 串行口控制寄存器SCON(98H)

SM0 SM1 SM2 REN TB8 RB8 TI RI

SM0、SM1:工作模式选择;

SM2:多机通信使能位(模式0、1不用,设置为0)

REN:允许接收位,只有当REN=1时,才允许接收数据

TB8:在9位有效数据传送模式2、3时,存放将要发送的第9位数据(奇偶校验)

TB8:在9位有效数据传送模式2、3时,存放接收的第9位数据(奇偶校验)

TI:完成一帧数据发送的标志,必须由软件清零,发送完成TI=1并申请中断

RI:完成一帧数据接收的标志,必须由软件清零,接收完成RI=1并申请中断

CPU与SBUF之间如何“沟通”、“配合”?

双方通过标志位进行协调

(1)发送数据时,当SBUF完成数据发送,TI=1并申请中断

①中断方式

中断服务程序:CLR TI

                          MOV SBUF,A

②查询方式

                          JNZ TI,$

                          CLR TI

                          MOV SBUF,A

(2)接收数据时,当SBUF从RXD接收完一个完整的数据帧时,RI=1并申请中断。

①中断方式

中断服务程序:CLR RI

                          MOV A,SBUF

②查询方式

                          JNZ RI,$

                          CLR RI

                           MOV A,SBUF

3.3 串行口控制寄存器PCON(87H)

SMOD X X X GF1 GF0 PD IDL

SMOD:串行口波特率倍率控制位

SMOD=1时,模式1、2、3的波特率加倍

四、MCS-51单片机串行口的四种工作模式

4.1 模式0

        特点:同步移位寄存器(同步通信)

        波特率:fosc/12(固定不可变)

        工作过程:RXD做数据口(发送或接收数据),TXD作为移位脉冲输出端(同步脉冲)在移位过程中,先移数据的低位。

        主要功能:使用串行口扩展并行口。

4.2 模式1

        特点:10位(1位起始位+8位数据位+1位停止位)的异步通信方式

        波特率:波特率可变

        工作过程:

        a)发送操作:在TI=0时,执行MOV SBUF,A。自动在8位字符的前后分别添加起始位和停止位,并从TXD端开始依次发送一帧数据,当发送完成后TI=1。

        b)接收操作:在REN=1且RI=0时,串行口接收电路对RXD进行采样,其采样频率是波特率的16倍。当连续8次采集到RXD上为低电平时,检测电路便认为RXD线上有了“起始位”,此后在每个采样周期的7、8、9三个脉冲时对RXD进行采样,按照“三中取二”原则确定该位的数据是高电平还是低电平。

        当接收到停止位时,必须满足RI=0且SM2=0,才能把数据传送到SBUF,并使RI=1,否则数据丢失。所以每次接收数据前必须把RI清零

4.3 模式2与模式3

        特点:11位(1位起始位+8位数据+1位奇偶校验+1位停止位)的异步通信方式 

        波特率:模式2波特率固定(fosc/64或fosc/32),模式3波特率可由编程改变。      

        工作方式:

        a)发送操作:与模式1唯一的区别是,在发送前将第9位数据送入TB8;

        b)接收操作:与模式1唯一的区别是,RB8中收到的是第9位数据,而不是停止位。

五、串行口波特率的设定

MCS-51单片机的串行口及应用_第3张图片

六、串行口应用举例

你可能感兴趣的:(51单片机,嵌入式硬件,单片机)