51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > ◆学习MCU > 详细内容
[基础篇]十六、计数器与定时器
阅读次数:2385  字体大小: 【】 【】【

作者:平凡单片机

一、计数概念的引入

从选票的统计谈起:画“正”。这就是计数,生活中计数的例子处处可见。例:录音机上的计数器、家里面用的电度表、汽车上的里程表等等,再举一个工业生产中的例子,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有很巧妙的方法,用一个周长是 1 米的轮子,将电缆绕在上面一周,由线带轮转,这样轮转一周不就是线长 1 米嘛,所以只要记下轮转了多少圈,就可以知道走过的线有多长了。

二、计数器的容量

从一个生活中的例子看起:一个水盆在水龙头下,水龙没关紧,水一滴滴地滴入盆中。水滴不断落下,盆的容量是有限的,过一段时间之后,水就会逐渐变满。录音机上的计数器最多只计到 999…. 那么单片机中的计数器有多大的容量呢? 8031 单片机中有两个计数器,分别称之为 T0 和 T1 ,这两个计数器分别是由两个 8 位的 RAM 单元组成的,即每个计数器都是 16 位的计数器,最大的计数量是 65536 。

三、定时

8031 中的计数器除了可以作为计数之用外,还可以用作时钟,时钟的用途当然很大,如打铃器,电视机定时关机,空调定时开关等等,那么计数器是如何作为定时器来用的呢?

一个闹钟,我将它定时在 1 个小时后闹响,换言之,也可以说是秒针走了( 3600 )次,所以时间就转化为秒针走的次数的,也就是计数的次数了,可见,计数的次数和时间之间的确十分相关。那么它们的关系是什么呢?那就是秒针每一次走动的时间正好是 1 秒。

结论:只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。

由此,单片机中的定时器和计数器是一个东西,只不过计数器是记录的外界发生的事情,而定时器则是由单片机提供一个非常稳定的计数源。

那么提供组定时器的是计数源是什么呢?看图 1 ,原来就是由单片机的晶振经过 12 分频后获得的一个脉冲源。晶振的频率当然很准,所以这个计数脉冲的时间间隔也很准。问题:一个 12M 的晶振,它提供给计数器的脉冲时间间隔是多少呢?当然这很容易,就是 12M/12 等于 1M ,也就是 1 个微秒。

结论:计数脉冲的间隔与晶振有关, 12M 的晶振,计数脉冲的间隔是 1 微秒。

四、溢出

让我们再来看水滴的例子,当水不断落下,盆中的水不断变满,最终有一滴水使得盆中的水满了。这时如果再有一滴水落下,就会发生什么现象?水会漫出来,用个术语来讲就是“溢出”。

水溢出是流到地上,而计数器溢出后将使得 TF0 变为“ 1 ”。至于 TF0 是什么我们稍后再谈。一旦 TF0 由 0 变成 1 ,就是产生了变化,产生了变化就会引发事件,就象定时的时间一到,闹钟就会响一样。至于会引发什么事件,我们下次课再介绍,现在我们来研究另一个问题:要有多少个计数脉冲才会使 TF0 由 0 变为 1 。

五、任意定时及计数的方法

刚才已研究过,计数器的容量是 16 位,也就是最大的计数值到 65536 ,因此计数计到 65536 就会产生溢出。这个没有问题,问题是我们现实生活中,经常会有少于 65536 个计数值的要求,如包装线上,一打为 12 瓶,一瓶药片为 100 粒,怎么样来满足这个要求呢?

……

提示:如果是一个空的盆要 1 万滴水滴进去才会满,我在开始滴水之前就先放入一勺水,还需要 10000 滴嘛?

对了,我们采用预置数的方法,我要计 100 ,那我就先放进 65436 ,再来 100 个脉冲,不就到了 65536 了吗。

定时也是如此,每个脉冲是 1 微秒,则计满 65536 个脉冲需时 65.536 毫秒,但现在我只要 10 毫秒就可以了,怎么办?

……

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号