计数器的使用

本节介绍计数器的使用方法。与定时器类似,如果熟练掌握了定时器,那么本节对你就较为容易。

一、工作原理

在介绍定时器时,就曾说过,定时器与计数器都是由TR0和TR1操控的,只是同一时间只能使用其中一个。

计数器:

对外部事件以脉冲的形式进行计数。什么意思呢,举一个例子,如果我们想通过按3次按键(外部事件实现LED灯的亮与灭。其中每按下一次按键就会有一个下降沿(脉冲的形式),触发3次下降沿就会实现模式的切换。简而言之:每次我们按下按键则计数器自动加1,直到计满溢出。

定时器:

启动计时器后,每当一个机器周期到来,则初值寄存器加1,直到计满溢出。

 外部中断:

出发形式设置为下降沿触发,则对应引脚来一个下降沿则触发中断。

对比上述三者。

计数器与定时器的不同点在于:对象不同,计数器与机器周期无关,针对的是外部引脚,而定时器与外部引脚无关,只与机器周期有关。

计数器与外部中断的不同点在于:初值不同,外部中断每接受到一个下降沿就会启动中断,而计数器可以自己控制初值。比如接受好几个下降沿信号才触发中断。

二、代码实现

先是主函数对TMOD进行初始化,可以结合定时器的工作方式类比。不记得的小伙伴也可以参照下图

注意:D1和D0的选择,取决于,所要计数的个数,如果个数少就采用D1(即D1=1),如果个数多就采用D2。

接下来是TH0与TL0的置处置。如果把0xfd进行转换不难发现,初值为253,也就是我们要计3个数。

三、总结

本节与定时器紧密联系。

重点:弄清楚计数器与定时器,及外部中断间的区别。

无难点。

那么本节就到此结束。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值