单片机比特率计算公式

比特率2400:
晶振:11.0592
计算公式:

256- (11.0592* 1000*1000)/2400/32/12

在计算机中,串口通信是通过波特率(baudrate)来控制数据传输速度的。而波特率和定时器的预分频和重载值有关。在51单片机中,使用定时器1来控制串口通信波特率。

根据定时器1的工作方式,波特率可以通过以下公式计算得出:
波特率 = 定时器时钟频率 / (12 * 定时器1的重载值)

其中,定时器时钟频率可以通过晶振的频率来计算。在此题中,晶振频率为11.0592MHz。因此,
定时器时钟频率 = 晶振频率 / 12

将波特率代入公式中,可以解出定时器1的重载值。在此题中,波特率为2400。因此,

定时器1的重载值 = 定时器时钟频率 / (12 * 波特率)

代入相应的数值进行计算,可得到定时器1的重载值TH1约等于191。

#include <reg51.h> //头文件

sbit TX = P3^1; // 定义 TX 引脚为 P3.1

void init_uart(); // 初始化函数
void delay(int time); // 延时函数

void main()
{
    init_uart(); // 初始化串口

    while(1)
    {
        TX = 0; // 向串口发送一个字符
        SBUF = 'A'; 
        delay(10);
    }
}

// 初始化函数
void init_uart()
{
    TMOD &= 0x0F; // 清空模式位
    TMOD |= 0x20; // 设置 T1 模式为 8 位自动重装载定时器

    TH1 = 0xFD; // 波特率为 2400
    TL1 = 0xFD;

    PCON &= 0x7F; // SMOD=0,波特率倍增器关闭
    SCON = 0x50; // 串口工作在方式 1,允许接收

    TR1 = 1; // 启动定时器 T1
}

// 延时函数
void delay(int time)
{
    int i, j;
    for(i=0; i<time; i++)
        for(j=0; j<100; j++);
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿Debug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值