整体过程:晶振 → 机器周期 → 定时器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分频都是为了最终得到的波特率符合我们的要求,所以有多种组合的方案,但一般我们会选取误差最小的那一种方案。