首页 > 代码库 > 单片机的定时器与计数器

单片机的定时器与计数器

计数器

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

定时器

计数器除了能作为计数之用外,还能用作时钟,计数器是如何作为定时器来用?

计数和时间之间的确十分相关,一个闹钟将它定时在1个小时后闹响,也能说是秒针走了(3600)次,时间就转化为秒针走的次数。

                          

                                                            定时器计数器结构

只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。由此,单片机中的定时器和计数器是一个东西,只不过计数器是记录的外界发生的事情,而定时器则是由单片机供给一个非常稳定的计数源。

定时器的是计数源是单片机的晶体震荡器经过12分频后获得的一个脉冲源,计数脉冲的间隔与晶体震荡器有关,一个12M的晶体震荡器12M/12等于1MHZ,倒数也就是计数脉冲间隔1微秒

溢出

计数器溢出后将使得TF0变为“1”,变成1后将产生事件。

经常会有少于65536个计数值的要求,我们采用预置数的办法,我要计100,那我就先放进65436,再来100个脉冲,就到了65536。定时也是如此,每个脉冲是1微秒,则计满65536个脉冲需时65.536毫秒,如果只要10毫秒,10个毫秒为10000个微秒,所以只要在计数器里面放进55536就能了。

 

单片机的定时器与计数器