234彩票代理

  • <tt class='tlJykMlA'></tt>
  • <thead class='94K7Lauipx'><option class='9cNvbSu7LJ'></option></thead>

    <em class='jepytdnyfeW3'><b class='oR1Ys12nk'><td class='6rzzLTN'></td></b></em>

  • <dl class='Td0EmkF'><b class='qoWhaibfJ9'></b></dl>

  • <span class='lS1G'></span>

    (玩电子) 电子技术学习与研究
    当前位置:单片机教程网 >> 基础教程 >> 浏览文章

    16课:单片机定时器与计数器

    作者:佚名   来源:本站原创   点击数:x  更新时间:2007年08月15日   【字体:

    一、计数概念的一引入

       从选票的一统计谈起:画“正” 。这就是计数,生活中计数的一例程处处可见 。例:录音机上    的一计数器、家里面用的一电度表、汽车上    的一里程表等等,再举一个工业生产中的一例程,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么测法呢?用尺量?不 现实,太长不 说,要一边做一边量呢,怎么办呢?行业中有很巧妙的一办法,用一个周长是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就能了 。

    发表评论】【告诉好友】【收藏此文】【关闭窗口

    文章评论