请问,51单片机我同时把计数器1和定时器0打开,定时器1计数到255的时候,把TR1=TR0=0都关闭, 20

我想测定时器走了多少,怎么写呢?求高手。... 我想测定时器走了多少,怎么写呢?求高手。 展开
 我来答
dsu5566
2012-04-14 · TA获得超过2152个赞
知道大有可为答主
回答量:1761
采纳率:100%
帮助的人:2042万
展开全部
//简单
//计数器1和定时器0都用中断,
TMOD=0x61;//定时器0方式1,计数器1方式2
TH0=0xFC; //1ms初值
TL0=0x18; //1ms初值
TH1=0x0;
TL1=0x0;
ET0=1;
TR1=1;
ET1=1;
EA=1;
//while(TL1==0);可以等计数器计到1才启动定时器0
TR0=1;
//计数1到255关闭计数器1和定时器0
更多追问追答
追问
你这个程序和我的有区别么?计数1到255,
if(TH1*256+TL1==256)
TR0=TR1=0;
time=NUM;
而你定时器给我初值???!!我要测计数器走了255,定时器的时间,你给了1ms的初值是为了什么?我觉得定时器应该是给一个变量啊。
追答
你定义一个变量NUM,放在定时器0中断自加
计数器1计到255进中断把 TR0=TR1=0
变量NUM就是定时器的时间,,单位是ms
明白吗?

中断程序你自己写吧,遇到问题再问我

参考资料: http://hi.baidu.com/dsu5566

_一闻
2012-04-07 · TA获得超过134个赞
知道答主
回答量:89
采纳率:0%
帮助的人:42.9万
展开全部
没搞清楚你要测定时器怎么用,你提问就没提清楚!

想测定时器走了多少很简单,比如随便定义一个变量TimeValue,在定时器中断将TimeValue++,
这样你定时器中断多少你是可以算出来的;不知道你是要模拟PWM波还是说要计数,如果说是计数外部脉冲的话,你可以设置定时器计数模式,也可以使用外部中断,每次触发你就软件设置外部中断引脚低电平,然后在外部中断函数里TimeValue++,
追问
就是计数器1走255,定时器走多长时间的一段程序怎么写?。。。。。
TMOD=0X50
TH0=NUM/256;TL0=NUM%256;
TL1=TH1=0;
TR0=TR1=1;
if(TH1*256+TL1==256)
TR0=TR1=0;
time=NUM;
这个NUM的值就是定时器0走的值????
哪没说清楚啊,。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aimei126良
2012-04-07 · TA获得超过320个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:404万
展开全部
要看你的定时器的工作方式,初值是多少。好好看看书吧
追问
你这和没说一样啊。。。。。初值你随便写啊。。。。TMOD=0X51,定时器工作方式1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式