51单片机UART串口通信波特率产生过程

整体过程:晶振 → 机器周期 → 定时器1 → UART分频 → 波特率 → 发送bi

1. 晶振:

给单片机提供最原始的节拍,来自于物理现象,51单片机就是利用石英晶片这个物理效应产生时钟。

51单片机的晶振为11.0592MHz,代表每秒振荡 11,059,200 次。

2. 晶振 → 机器周期

51单片机中,12个晶振周期 = 1个机器周期,也就是12 × 83.3ns=1us,代表1个机器周期 = 1us。

3. 机器周期 → 定时器1

8位自动重装:

TH1 = 初值

TL1 = 初值

例:

TH1=0xFD

8位最大能表示255,0xFD转为二进制为253,从253开始数,255-253+1=3;

代表数三次,每次为一个机器周期,3个机器周期为3us,故该计时器为3us溢出一次。

4. 定时器1溢出 → UART分频

51 UART模式1(模式1用得最多):

若SMOD=0,UART时钟 = T1溢出频率 /32

若SMOD=1,UART时钟 = T1溢出频率 /16

5. UART分频 → 波特率

如我们最终需要的波特率为9600Hz:代表每秒发送9600bit,也就是1bit需要1/9600s=104.17us,得到没发送1bit需要104us;

6. UART发送bit

TXD每104us改变一次电平,发送1bit

注:时钟源和UART分频都是为了最终得到的波特率符合我们的要求,所以有多种组合的方案,但一般我们会选取误差最小的那一种方案。

相关推荐
嵌入式分享6 小时前
驱动之路#44:硬件 I2C 和软件 I2C 谁更坑?
linux·嵌入式硬件
嵌入式分享8 小时前
嵌入式分享#19:《嵌入式外设调试思路》--I2C设备篇
单片机·嵌入式硬件
WD137298015578 小时前
WD5030K输入工作电压 7.5‑30V,适合12A 及以内量产项目
stm32·单片机·嵌入式硬件·51单片机
千秋岁rr8 小时前
12.IIC
单片机·嵌入式硬件
光子物联单片机9 小时前
STM32传感器模块编程实践(二十二)DIY智能WIFI视频控制小车
c语言·stm32·单片机·嵌入式硬件·音视频
jucat9 小时前
拆个烟雾报警器
嵌入式硬件
HRTOS9 小时前
HRTOS 高速任务与中断嵌套的 8051 寄存器组资源说明
单片机·嵌入式硬件·系统架构·51单片机
新晨单片机设计10 小时前
S010C-基于STM32单片机水温控制系统(OLED显示)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·水温控制系统
lhbweilai10 小时前
从底层了解STM32八大功能(下)
stm32·单片机
新晨单片机设计11 小时前
S009C-基于STM32单片机语音出租车计价器【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·出租车计价器