标题: 16课:单片机定时器与计数器 [打印本页]

作者: admin    时间: 2013-5-21 03:12
标题: 16课:单片机定时器与计数器
一、计数概念的引入
   从选票的统计谈起:画“正”。这就是计数,生活中计数的例程处处可见。例:录音机上的计数器、家里面用的电度表、汽车上的里程表等等,再举一个工业生产中的例程,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有很巧妙的办法,用一个周长是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毫秒就能了,怎么办?10个毫秒为10000个微秒,所以,只要在计数器里面放进55536就能了。



作者: wilim    时间: 2013-6-26 22:40
很好的帖子,牛人。
作者: 鱼鹰    时间: 2013-9-19 16:10
谢谢楼主分享
作者: 火箭客    时间: 2013-12-22 14:26
不错,深入浅出
作者: 雪中梅花    时间: 2014-5-31 05:15
楼主辛苦了。
作者: yinwanfeng    时间: 2014-8-30 23:58
一直跟着这个教程来学,深入浅出的教学,不可多得的好教材,受益匪浅,感谢了
作者: kaka3511    时间: 2015-2-7 15:28
good 非常好的帖子啊
作者: b4082    时间: 2015-4-7 16:48
加油!!!
作者: 戴定高    时间: 2015-4-28 12:13
茅塞顿开
作者: moyuqilin    时间: 2015-5-4 00:27
谢谢了,受教了
作者: 邰夏留    时间: 2015-5-17 20:09
楼主有点帅。
作者: xyh828    时间: 2015-5-25 08:45
不错!不错!受教了
作者: JY脚印    时间: 2015-5-26 18:26
讲的很好!!

作者: little_c    时间: 2015-6-11 11:27
简单明了,很容易理解。
作者: hzb123    时间: 2015-8-24 09:51
不是最高计数到65535吗? 从0到65535总共计65536次
作者: yit1268    时间: 2015-8-27 17:25
很好,顿时觉悟了

作者: Betic    时间: 2015-9-3 10:20
这么多教程·赶紧收藏慢慢看
作者: wubozh    时间: 2015-10-9 16:43
可惜以前没看到这个教程
作者: xingsong198283    时间: 2015-11-11 12:08
深入浅出!非常好的讲解!
作者: 随意    时间: 2016-3-29 20:12
赞一个
作者: a1097994700    时间: 2016-4-6 01:01
楼主好厉害!简练,深入浅出。短短的文字胜过书上的繁琐与抽象在!
作者: WFX777888    时间: 2016-8-6 07:32
谢谢分享资料
作者: 小唐    时间: 2016-10-28 10:00
是分别设置计时开始和结束的脉冲数吗?
作者: 咖啡男二号    时间: 2016-11-15 18:35
大赞一个,灰常感谢
作者: 光说不练    时间: 2017-2-10 23:45
讲得太好了!
作者: comC    时间: 2017-3-13 14:57
16课:单片机
作者: 愤怒的小鸟嗷    时间: 2017-3-23 19:56
xieixelouzhu
作者: zrx15756000859    时间: 2017-3-26 11:09
很好懂
作者: a1097994700    时间: 2017-4-26 10:10
印成书必买
作者: tranhunga    时间: 2017-5-1 20:44

挺好的
作者: yjs    时间: 2017-5-9 23:52
精明强干,易懂
作者: 请叫我壹达    时间: 2017-5-20 11:36
赞一个
作者: yjs    时间: 2017-7-20 11:22
楼主讲得通俗易懂
作者: 一万个为什么    时间: 2017-9-27 17:09
雪中梅花 发表于 2014-5-31 05:15
楼主辛苦了。

滴水的例子很形象
作者: 1238    时间: 2017-10-9 10:28
楼主辛苦了!谢谢分享经验!学习了。
作者: wodetianna    时间: 2017-10-29 13:46
简单明了
作者: cjjabc666    时间: 2018-1-23 20:58
听君一席话,胜看十年书,修行不分先后,达者为师!!
作者: heron    时间: 2018-3-3 13:59
能学到这里的人,对这一课的学习都很轻松。之前有几节课已经卡住了不少人了吧。
作者: 太阳黑子1    时间: 2018-4-14 21:44
太好啦,非常形象
作者: fscommand    时间: 2018-4-30 08:53
讲的好,易懂
作者: keneng    时间: 2018-6-26 09:30
这节讲的很形象,通俗易懂
作者: 不负时光~田    时间: 2018-8-3 18:32
讲的很好,通俗易懂,赞一个
作者: 萌猛猛    时间: 2018-9-4 10:35
通俗易懂
作者: 梦太晚    时间: 2018-9-7 09:12
学习了 你真帅
作者: 残影峰峰    时间: 2018-9-8 12:00
很不错
作者: 枭奇电子    时间: 2020-2-25 22:52
通俗易懂,很形象
作者: Tuier    时间: 2021-2-18 10:50
通俗易懂的介绍




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1