首页 > 编程知识 正文

51单片机c语言编程入门(51单片机波特率计算c语言,51单片机波特率怎么算?51单片机波特率计算公式)

时间:2023-05-03 14:11:18 阅读:121739 作者:1308

51单片机的波特率怎么计算? 51单片机波特率计算公式

方式0

方式0的波特率固定为主振动频率的1/12。

方式2

方案2的波特率由PCON中的选择位SMOD确定,可以由下式表示:

波特率=2的SMOD次方除以64乘以fosc。 也就是说,如果SMOD=1,则波特率为1/32fosc;如果SMOD=0,则波特率为1/64fosc

方式1和方式3

作为波特率发生器的计时器T1的公式如下。

T1溢出率=T1计数率/溢出发生所需的周期数

式中的T1计数率取决于是在计时器状态下动作还是在计数器状态下动作。 在定时器状态下工作时,T1计数率为fosc/12; 在计数器状态下操作时,T1计数率为外部输入频率,该频率应小于fosc/24。 发生溢出所需的周期与计时器T1的操作模式和T1的预设值有关。

计时器T1在模式0下动作:溢出所需周期数=8192-x

计时器T1在模式1下动作:溢出所需周期数=65536-x

计时器T1以模式2动作:溢出所需周期数=256-x

方式2是自动重载初始值的8位计时器/计数器模式,所以适于用作波特率发生器。 这就是为什么许多单片机系统使用这种看起来“奇怪”的晶体振动的原因,因为当时钟表频率使用11.0592MHZ时,很容易获得标准的波特率。

下表列出了计时器T1在方式2下运行的常见波特率和初始值。

常用波特率fosc(MHz ) SMOD TH1初始值

19200 11.0592 1 FDH

9600 11.0592 0 FDH

4800 11.0592 0 FAH

2400 11.0592 0 F4H

1200 11.0592 0 E8H

例如

9600 11.0592 0 FDH

T1溢出率=T1计数率/溢出发生所需的周期数

发生溢出所需的循环数=256-FD(253 )=3

SMOD=(11059200/12 ) *3 *1/32=9600

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。