80C51串行口通信

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

80C51串行口通信

80C51串行口的结构

TXD 是80C51单片机的P3.1口

RXD 是80C51单片机的P3.0口

T1 溢出率是定时器1 的溢出率 SMOD

是发送速率倍频的 16分频

T1每溢出一次发送一位,里面复杂咱们不管,每次发送完后TI

申请中断,就是串口每次发送完一个字节去申请一个中断,每接受完一个字节它也要申请一次中断。接受完了通过移位寄存器

SBUF 取走。发送也用SBUF .

单片机上有两个物理上独立的接受,发送缓冲器SBUF,它们占用同一地址99H;接受器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。

解释下这句话意思:物理上独立的但是地址相同,但是具体内部构造咱们不去了解它。2个寄存器一个负责发一个负责收,接受是双缓冲的结构。如果去取数据

A=SBUF ; 发送数据

SBUF =A; 就是说SBUF =A 就把A

发出去了。 A= SBUF 就是把 SBUF

的值给取出来给了A。单片机的串口就是这么简单。主要要搞好中断和比特率。

80C51串行口的控制寄存器

SCON

是一个特殊功能寄存器,用以设定串行口的工作方式、接受/发送控制以及设置状态标志;

有此图课看出地址诶98H 能对8整除所以可以进行位操作。

●SMO 和SM1为工作方式选择位,可选择四种工作方式:如下图

串行口有4种工作方式。 0 、1、2、3。 f方式0 可以看出

是移位寄存器就是一位一位移位了,波特率是固定的晶

振除以12

Fosc(oscillator 振荡器),方式1 是10位异步收发器(8位数据),波特率可变。一下 2、3

类同。我们主要掌握方式1就OK。用的最多的也是方式1。波特率用软件控制,设置多少就多少。由于选择方式1

所以SMO SM1

就是 0

1 。

●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。

因为我们就是1个单片机所以SM2就是0了。有效停止位用到RB8

有用到校验的时候

●REN,允许串行接收位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。

所以我们需要设置为1,就能接受数据了。 REN=1;

●TB8,在方式2或方式3中,是发送数据的第九位,可

以用软件规定其作用。可以用作数据的奇偶校验位,或

在多机通信中,作为地址帧/数据帧的标志位。

在方式0和方式1中,该位未用。

而我们用方式1 所以不设置也可以,给0也没问题,因为这个寄存器上电时候全都是0.

●RB8,在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。

因为我们是方式1所以不用管它了。SM2=0 所以这里接

到是停止位。因为我们不用校验位 TB8

RB8 都设置0就行了。

●TI,发送中断标志位。在方式0时,当串行发送第8

位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断

服务程序中,必须用软件将其清0,取消此中断申请。

●RI,接收中断标志位。在方式0时,当串行接收第8

位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须

在中断服务程序中,用软件将其清0,取消此中断申请。 TI RI

这两位比较重要 TI 是发送停止位硬件置1,

申请中断,响应中端时候必须清0,这个中断就退出了,不然就会又进入中断了。RI 类似。所刚开始的时候是硬件置1

所以不用管。给0 0 就行了。

PCON 寄存器中有一位SMOD与串行口工作有关:

PCON寄存器是单片机的跟电源有关系的。

比如让单片机进入、休眠、掉电、低功耗状态等。其他

几位可以去找找看资料。

SMOD(PCON.7)

波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。

就是工作的时候你想让波特率加倍就把SMOD

=1就行了。咱们不用设置它

80C51串行口的工作方式

一、方式0

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

1、方式0输出

方式0咱们就不用看了

二、方式1

方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。

其中1位起始位,8位数据位,1位停止位。

写入SBUF 就是SBUF = 0X01

这就写入了、停一下 TXD 就发起始数据

停止停止开始的时候TI就置1.说明数据就发完了。

2、方式1输入

相关文档
最新文档