2024年4月14日发(作者:旗恩霈)
51单片机波特率计算公式和定时器初值
波特率 = 2^SMOD * (Fosc / (32 * (256 - TH1)))
其中
- Fosc是单片机的振荡频率
-SMOD表示串口模式选择位(位于PCON寄存器)
-当SMOD=0时,波特率加倍,即2*波特率
-当SMOD=1时,波特率不变,即1*波特率
-TH1是定时器1的初值
定时器1的初值计算公式为:
TH1 = 256 - (Fosc / (32 * 2^SMOD)) / 波特率
需要根据实际情况,选择合适的波特率计算参数。
以下是一个示例:
假设单片机的振荡频率为11.0592MHz,需要设置波特率为9600。
首先,假设SMOD=0(不加倍波特率)。
计算TH1:
TH1 = 256 - (Fosc / (32 * 2^0)) / 9600
=256-36.125
=219.875
由于TH1是一个8位寄存器,所以需要取整,取最接近的整数:
TH1=220
因此,定时器1的初值为220。
定时器1以溢出的方式进行计数,并且串口通信时,需要根据波特率
设置好定时器1的初值,以保证波特率正确。
注意:
-对于不同的单片机,其定时器1的计算方法可能会有所不同,请根
据所使用的具体型号的数据手册进行参考。
-SMOD可以根据具体要求选择为0或1,以决定是否加倍波特率。若
要加倍波特率,可以将SMOD置为1
2024年4月14日发(作者:旗恩霈)
51单片机波特率计算公式和定时器初值
波特率 = 2^SMOD * (Fosc / (32 * (256 - TH1)))
其中
- Fosc是单片机的振荡频率
-SMOD表示串口模式选择位(位于PCON寄存器)
-当SMOD=0时,波特率加倍,即2*波特率
-当SMOD=1时,波特率不变,即1*波特率
-TH1是定时器1的初值
定时器1的初值计算公式为:
TH1 = 256 - (Fosc / (32 * 2^SMOD)) / 波特率
需要根据实际情况,选择合适的波特率计算参数。
以下是一个示例:
假设单片机的振荡频率为11.0592MHz,需要设置波特率为9600。
首先,假设SMOD=0(不加倍波特率)。
计算TH1:
TH1 = 256 - (Fosc / (32 * 2^0)) / 9600
=256-36.125
=219.875
由于TH1是一个8位寄存器,所以需要取整,取最接近的整数:
TH1=220
因此,定时器1的初值为220。
定时器1以溢出的方式进行计数,并且串口通信时,需要根据波特率
设置好定时器1的初值,以保证波特率正确。
注意:
-对于不同的单片机,其定时器1的计算方法可能会有所不同,请根
据所使用的具体型号的数据手册进行参考。
-SMOD可以根据具体要求选择为0或1,以决定是否加倍波特率。若
要加倍波特率,可以将SMOD置为1