找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2085|回复: 5
收起左侧

求助这个单片机函数里T0重载值是如何计算的?

[复制链接]
ID:453144 发表于 2019-10-23 22:05 | 显示全部楼层 |阅读模式
我算完是baud*(11059200/12),不太明白这里的TL0是如何计算的,还有对baud这个值起到的作用不太了解
  1. void ConfigUART(unsigned int baud)

  2. {

  3.     TMOD &= 0xF0;   //清零T0的控制位

  4.     TMOD |= 0x02;   //配置T0为模式2

  5.     TH0 = 256 - (11059200/12)/baud;  //计算T0重载值

  6. }
复制代码
回复

使用道具 举报

ID:235200 发表于 2019-10-23 22:33 | 显示全部楼层
是根据定时计数器的溢出率来计算的
回复

使用道具 举报

ID:235200 发表于 2019-10-24 00:11 | 显示全部楼层
一般51单片机是用T1方式2作为波特率,其波特率计算是通过T1的溢出率来进行计算的,
溢出时间=(256-重装值)*机器周期=(256-重装值)*12/晶振频率
baud=1/溢出时间=晶振频率/(256-重装值)/12
从而得
256-重装值=晶振频率/12/baud
重装值=256-晶振频率/12/baud
回复

使用道具 举报

ID:411550 发表于 2019-10-24 00:47 | 显示全部楼层
计时器为方式2时的 波特率=晶振的频率/(12*(256-初值))
回复

使用道具 举报

ID:524818 发表于 2019-10-24 08:27 | 显示全部楼层
单片机芯片手册里有详细讲解,建议楼主读一下
回复

使用道具 举报

ID:123289 发表于 2019-10-24 21:05 | 显示全部楼层
关键点:
串行通讯的时钟来源于何处?一定要整明白!这个时钟的频率你关心一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表