单片机定时器初值计算方法

采用C语言... 采用C语言 展开
 我来答
胖大海君
2012-07-29 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1436
采纳率:11%
帮助的人:641万
展开全部
呵呵 正确为你解答:
1 可以按定时时间的计算公式, 计算出定时器的时间常数X:
定时时间T=(2的N次方-X)12/单片机晶振频率
2 N为定时器的工作方式:
方式0时,N=13
方式1时,N=16
方式2时,N=8
3 根据定时时间和工作方式,计算出时间常数X
把X转换成二进制数,高8位送给TH1,低8位送给TL1,就可以启动定时器开始定时了。

例如: 工作在方式1,定时时间为1000微秒 晶振频率=12MHZ
则 定时时间T=(2的16次方-X)12/12MHZ=1000 解出 X=64536=FC18H

呵呵 如满意 请选择满意回答
懂点工程也要懂点生活

2015-07-29 · 一起分享生活的点点滴滴
懂点工程也要懂点生活
采纳数:12613 获赞数:177399

向TA提问 私信TA
展开全部
  一、计算:
  1.晶振12M
  12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次 机器周期。 65536-10000=55536(d8f0) TH0=0xd8,TL0=0xf0
  2.晶振11.0592M
  11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。

  二、参考资料:
  http://wenku.baidu.com/link?url=NKwBgYZhresxh_H7Vr7wjRFmuwXwIvhK70DjBd0Alt7MT1oBdQvrm85WbXSQej3m2qwlYyoc4XbeNx0bY8-930MYa9hBU01VnlRtftho3FG
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun_shi_ying
2012-07-30 · 超过12用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:41.2万
展开全部
定时器的初始值=定时器最大溢出的数值-所需要的定时时间*晶振频率/分频比
此时的定时时间要使用us
例如:
4MHz的晶振,分频比为128:1,定时器最大溢出时间为256,需要的定时时间为8ms,则
初始值=256-8000*4/128=6

另外,这个好像和使用什么语言关系不大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-05-06
展开全部
T=(2的N次方-X)12/单片机晶振频率
2 N为定时器的工作方式:
方式0时,N=13
方式1时,N=16
方式2时,N=8
注意晶振频率,晶振频率的十二分之一是机器频率,再取倒数是机器周期,把定时时间换算成多少个机器周期,当作T代入上式求出X,然后把X化为二进制数,(以方式1定时器0为例)高八位存入TH1,低八位存入TL1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
生活如歌_
2012-07-29 · TA获得超过1.5万个赞
知道大有可为答主
回答量:7398
采纳率:78%
帮助的人:2177万
展开全部
T0:50ms,方式1
TMOD = 0x01;
TH0 = 0x3C;
TL0 = 0x0B0;
EA = 1;
ET0 = 1;
TR0 = 1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式