51单片机各种位数定时器初值计算方法?

 我来答
怒火无尊
2019-12-29
知道答主
回答量:6
采纳率:0%
帮助的人:1.4万
展开全部
对12MHz ,1个机器周期 1us ,12/fosc = 1us


方式0是13位定时器,最大时间间隔 = 2^13 = 8.192ms

方式1是16位定时器,最大时间间隔 = 2^16 = 65.536ms

方式2是8位定时器,最大时间间隔 = 2^8 = 0.256ms =256 us

方式3 仅适用于T0,此时T0分成两个8位计数器,T1停止计数

当选用定时器的方式1时,设机器周期为Tcy,定时器产生一次中断的时间为t,那么需要计数的个数N=t/Tcy,装入THX和TLX中的数分别为:

THX = (2^16 - N)/256 TLX = (2^16 -N )%256(此处的X为定时器0或定时器1)

公式为:(2^y - X)*Tcy = t

Tosc= 1/ fosc

一个机器周期 = 12个时钟周期 = 12/fosc

溢出速率 = 1 / 溢出时间
故:初值X = 2^y – t/Tcy

THX = 高八位
TLX = 低八位

注:

X:定时器初值

N:计数值

y:定时器工作方式

fosc:晶振频率

Tcy:机器周期,Tosc:时钟周期
Tcy = 1/Tosc
力控科技
2024-08-19 广告
串口通信方式1和方式3,要用T1来控制波特率。 T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下: T1初值 = 256 - fosc * (SMOD + 1) / (384 * 波特率) -我不明白波特率跟... 点击进入详情页
本回答由力控科技提供
lycdl
高粉答主

2019-11-21 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:4736万
展开全部
51单片机而言,定时器只有8位和16位两种,没达到“各种”那么多。而计算初值的方法是相同的,区别只是8位数是用256作基数,16位用65536作基数。根据晶振频率计算机周期,Tc=12/fosc,设定时的时间为Td,则初值X=基数-Td/Tc
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙里波特
2019-11-23 · TA获得超过5240个赞
知道大有可为答主
回答量:1.1万
采纳率:100%
帮助的人:607万
展开全部
各种位数,常用的是 16 位数。
8 位,也有一些用武之地。
13 位,基本没有用的了。
书上,都有例题。看书就行。
难倒,楼主对书,还有什么疑问吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式