
像移位寄存器和其他组合电路一样,最常用的数字电子产品中还有一个重要的元件,就是计数器。计数器不仅用于计数,还用于测量频率和时间以及增加内存地址。
计数器是一种数字装置。计数器的输出包括基于时钟脉冲应用的预定义状态,这些状态可用于计算脉冲数。通常,计数器由触发装置组成,触发装置可以是同步计数器或异步计数器。在同步计数器中,所有触发器只有一个时钟i/p,而在异步计数器中,触发器的o/p是来自邻近触发器的时钟信号。
根据计时方法的划分,计数器可以分为不同的类型,主要包括:
异步计数器,同步计数器,异步十进制计数器,同步十进制计数器,异步上下计数器,同步上下计数器。为了方便大家更好的理解各个计数器的工作原理,下面依次介绍。
异步计数器
2位异步计数器的原理图如下所示。其中,外部时钟只连接到FF0(第一个触发器)的时钟i/p,所以这个FF在每个时钟脉冲的下降沿改变状态,但是FF1只有在被FF0的Q o/p的下降沿激活时才会改变。由于FF的整体传播延迟,i/p时钟脉冲的变化和FF0的Q o/p的变化永远不会同时发生。所以FF不能同时激活,导致异步运行。
请注意,为方便起见,上图中Q0、Q1和CLK的变化显示为同时发生,尽管这是一个异步计数器。实际上,Q0、Q1和CLK的变化有一个小的延迟b/n.
正常情况下,所有清零I/p连接在一起,因此在开始计数前,单个脉冲可以清零所有FF。经过传播延迟后,输入到FF0的时钟脉冲会通过新计数器产生波纹,比如水面上的波纹,所以也叫波纹计数器。
两位纹波计数器的电路图包括四种不同的状态,每种状态由一个计数值组成。类似地,具有n个FFs的计数器可以有2N个状态。一个计数器的状态数叫做它的模数。因此,两位计数器是mod-4计数器。
异步十进制计数器
在前一个计数器中有2N个状态。然而,状态少于2N的计数器也是可能的。它们被设计成在它们的系列中包括状态的数量。这些被称为缩短序列,通过在经历其所有状态之前驱动计数器循环来完成。具有缩短序列的计数器的公共模数是10。一个系列有10个状态的计数器叫做十进制计数器。实现的十进制计数器电路如下。
当计数器计数到10时,所有FF将被清除。注意,只有Q1和Q3被用于解码计数10,这被称为部分解码。同时,0-9的其他状态之一同时具有高Q1和Q3。十进制计数器表系列如下所示。
异步加减计数器
在特定的应用中,计数器必须能够上下计数。下面的电路是一个三位加减计数器,根据控制信号的状态进行加减计数。当上行i/p为1且下行i/p为0时,FF0和FF1之间的与非门将触发器(FF0)的同相o/p (Q)开启至时钟i/p触发器(FF1)。类似地,触发器1的非反相o/p将通过另一个与非门进入触发器2的时钟i/p。所以计数器会向上计数。
一旦控制i/p (UP)为0,DOWN为1,触发器0 (FF0)和触发器1 (FF)的反相o/ps将分别开启到FF1和FF2的时钟i/ps。如果FF最初更改为0,当施加i/p脉冲时,计数器将通过下图所示的序列。注意,由于与非门引入的额外传播延迟,异步加减计数器比加减计数器慢。
同步计数器
在这种类型的计数器中,所有ff的CLK i/p连接在一起,并由I/p脉冲激活。因此,所有FFs将立即改变状态。下面的电路图是一个三位同步计数器。FF0的输入j和k连接到高电平。FF1的J K i/ps连接到FF0的o/p,FF2的输入J K连接到and门的o/p,由FF0和FF1的o/ps馈电。当FF0和FF1的输出都为高电平时。由于与门,第四个CLK脉冲的上升沿将使FF2改变其状态。
三位计数器表的顺序如下所示。这些计数器的主要优点是它们不会增加时间延迟,因为所有的FFs都是并行激活的。因此,同步计数器的最大工作频率将远高于等效的异步计数器。
同步十进制计数器
同步计数器从0计数到9,类似于异步计数器,然后再次循环到0。该过程通过将1010状态驱动回0000状态来完成。这就是所谓的截断序列,可以通过下面的电路来设计。
从以上一系列表格中,我们可以观察到:
Q0连接到每个CLK脉冲。
每当Q0=1 Q3=0时,Q1在下一个时钟脉冲发生变化。
每当Q0=Q1=1时,Q2在下一个时钟脉冲发生变化。
每当Q0=1、Q1=1且Q2=1(计数7)或Q0=1且Q3=1(计数9)时,Q3将在下一个CLK脉冲发生变化。
以上特性可用于与门或或门,其逻辑图如上图所示。
同步升降计数器
三位同步加减计数器、表格形式和序列如下所示。这个计数器有一个类似异步提升计数器的提升控制i/p,用来通过一定的级数来控制计数器的方向。
系列显示:
上升和下降序列中每个CLK脉冲的Q0关系
当Q0=1是上行序列时,Q1的状态在下一个CLK脉冲时改变。
当Q0=0是下降序列时,Q1的状态在下一个CLK脉冲时改变。
当Q0=Q1=1用于向上序列时,Q2的状态将在下一个CLK脉冲时改变。
当Q0=Q1=0用于下降序列时,Q2的状态将在下一个CLK脉冲时改变。
与门、或门和非门都采用了上述特性,它们的逻辑图如上图所示。
计数器的应用
计数器的应用主要涉及数字钟和多路复用。计数器的最好例子是下面讨论的并行到串行数据转换逻辑。
在并行线上同时执行的一组位称为并行数据。在时间序列中的一行上执行的一组位称为串行数据。并行到串行的数据转换通常是通过使用计数器来提供二进制数据序列,选择多路复用器的i/ps,如下面的电路所示。
在上述电路中,8模式计数器由Q个o/ps组成,它们连接到数据并选择8位多路复用器的i/ps。第一个8位并行数据组施加于多路复用器的输入端。当计数器执行从0到7的二进制序列时,每个位从D0开始,D0是串行选择的,并通过多路复用器传递到o/p线路。经过8个CLK脉冲后,数据字节被转换成串行格式,并通过传输线发送出去。然后,计数器重新处理0,并以类似的过程再次串行改变另一个并行字节。
异步计数器和同步计数器的比较
让我们简单比较一下同步计数器和异步计数器的操作和特点。它们之间的主要区别如下:
摘要
众所周知,微控制器的应用需要对外部事件进行计数,比如精确的内部延时产生和脉冲序列的频率。这些事件经常在数字系统和计算机中使用。这两个事件都可以通过软件技术来执行,但用于计数的软件循环不会给出确切的结果,更重要的功能没有完成,这可以通过微控制器中用作中断的定时器和计数器来纠正。
其中,计数器是专门设计的同步时序电路,计数器的状态等于电路中触发器保存的计数。计数器计数或记录事件发生的次数。此外,计数器是一个关键的硬件组件,并被定义为“用于计数脉冲数的数字电路”,因为计数器是通过将触发器分组并向它们施加单个时钟信号来设计的。
简而言之,计数器是具有一组存储元件(如触发器)来保存计数的电子设备。









