作者:拍友2502905977 | 来源:互联网 | 2023-08-17 10:24
51单片机的串行接口介绍串行口结构设置工作方式(串行口控制寄存器SCON)设置波特率51单片机内部集成1~2个可编程通用异步串行通信接口(即UART),采用全双工制式。该通信接口有
51单片机的串行接口介绍
- 串行口结构
- 设置工作方式(串行口控制寄存器SCON)
- 设置波特率
51单片机内部集成1~2个可编程通用异步串行通信接口(即UART),采用全双工制式。该通信接口有四种工作方式,并且
能设置各种波特率
串行口结构
1、串行口数据缓存器SBUF用于存放发送/接收的数据,它在物理上是同一个寄存器,逻辑上是两个
2、串行口寄存器SCON用于控制串行口的工作方式
3、波特率发生器由定时器T1构成
4、波特率于单片机的晶振频率、定时器T1初值、串行口的工作方式以及波特率选择位SMOD有关
设置工作方式(串行口控制寄存器SCON)
可位寻址
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|
SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
SM0 | SM1 | 工作方式 | 功能 | 波特率 |
---|
0 | 0 | 方式0 | 8位同步移位寄存器 | Fosc/12 |
0 | 1 | 方式1 | 10位UART | 可变 |
1 | 0 | 方式2 | 11位UART | Fosc/64 或 Fosc/32 |
1 | 1 | 方式3 | 11位UART | 可变 |
控制位 | 功能 | 说明 |
---|
SM2 | 多机通信控制位 | (空) |
REN | 允许串行接收位 | REN=1时,允许接收;REN=0时,禁止接收 |
TB8 | 发送数据第九位 | (空) |
RB8 | 接收数据第九位 | (空) |
TI | 发送中断标志位 | 发送完一帧数据的标志,由硬件置位,软件清零 |
RI | 接收中断标志位 | 接收完一帧数据的标志,由硬件置位,软件清零 |
进行单机通信了解上面的就够使用了,(空)的以后再补充
设置波特率
本人只用过工作方式1,所以这里只介绍工作方式1
波 特 率 = 2 S M O D ∗ ( T 1 溢 出 率 ) / 32 波特率 = 2^{SMOD}*(T1溢出率)/ 32 波特率=2SMOD∗(T1溢出率)/32
T 1 溢 出 率 = F o s c / ( 12 ∗ ( 256 − 初 值 ) ) T1溢出率 = Fosc/(12*(256-初值)) T1溢出率=Fosc/(12∗(256−初值))
T 1 初 值 = 256 − F o s c ∗ 2 S M O D / ( 12 ∗ 波 特 率 ∗ 32 ) T1初值 = 256 – Fosc*2^{SMOD}/(12*波特率*32) T1初值=256−Fosc∗2SMOD/(12∗波特率∗32)
公式中256哪里来:上面说到方式一的10位UART 是:1位起始位,8位数据位(二进制),1位停止位,所以计数最大值为
M = 2 8 = 256 M = 2^8 = 256 M=28=256