与移位寄存器和其他组合电路一样,在最常使用的数字电子产品中还有另一个重要元素,它就是计数器。计数器不仅用于计数,还用于测量频率和时间,增加内存地址。
计数器是一种数字设备,计数器的输出包括基于时钟脉冲应用的预定义状态,可用于计算脉冲数。通常情况下,计数器由触发器装置组成,触发器装置可以是同步计数器或异步计数器。在同步计数器中,只给所有触发器一个时钟 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。
通常情况下,所有CLEAR i/ps都连接在一起,因此在开始计数之前,单个脉冲可以清除所有FF。输入FF0的时钟脉冲在传播延迟后通过新计数器产生波纹,例如水面上的波纹,因此又称为波纹计数器。
两位纹波计数器的电路图包括四种不同的状态,每种状态由一个计数值组成。同样,具有n个FF的计数器可以具有2N个状态。计数器中的状态数称为其模数。因此,两位计数器是mod-4计数器。
异步进制计数器
在前面的计数器中有2N个状态。但是,状态小于 2N的计数器也是可能的,它们的设计目的是在其系列中包含状态数,这些被称为缩短序列,它是通过在经历其所有状态之前驱动计数器循环来完成的。具有缩短序列的计数器的常见模数是10。在其系列中具有10个状态的计数器称为十进制计数器。实现的十进制计数器电路如下所示。
当计数器计数到10时,所有FF将被清除。请注意,只有Q1和Q3都用于解码10的计数,这称为部分解码。与此同时,0-9的其他状态之一同时具有高Q1和Q3。下面给出了十进制计数器表的系列。
异步上下计数器
在特定应用中,计数器必须能够向上和向下计数。下面的电路是一个三位向上和向下计数器,根据控制信号状态向上或向下计数。当UP i/p为1且DOWN i/p为0时,FF0和FF1之间的NAND门将触发器 (FF0) 的非反相 o/p (Q) 导通到时钟i/p触发器(FF1)。同样,触发器1的非反相o/p将通过另一个NAND门进入触发器2的时钟 i/p。因此计数器将向上计数。
一旦控制 i/p (UP) 为0且DOWN为1,则触发器 0 (FF0) 和触发器 1 (FF) 的反相 o/ps分别被导通到FF1和FF2的时钟i/ps。如果FF最初更改为0,则在应用i/p脉冲时,计数器将通过下图所示序列。请注意,由于 NAND门引入了额外的传播延迟,异步上下计数器比加计数器/减计数器慢。
同步计数器
在这种类型的计数器中,所有FF的CLK i/ps连接在一起并由i/p脉冲激活。因此,所有FF都会瞬间改变状态。下面的电路图是一个三位同步计数器。FF0的输入J和K连接到高电平。FF1的J &K i/ps连接到FF0的 o/p,FF2的输入J & K连接到与门的o/p由FF0和FF1的 o/ps馈电。当FF0和FF1的输出都为高时。由于AND门,第四个CLK脉冲的上升沿将导致FF2改变其状态。
下面给出了三位计数器表的序列,这些计数器的主要优点是没有增加时间延迟,因为所有FF都是并行激活的。因此,该同步计数器的最大工作频率将大大高于等效异步计数器。
同步十进制计数器
同步计数器从0到9计数,类似于异步计数器,然后再次循环为零。这个过程是通过将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为up系列时,Q1的状态在下一个CLK脉冲上改变。
当Q0=0为down系列时,Q1的状态在下一个 CLK脉冲上改变。
当Q0=Q1=1用于向上系列时,Q2的状态会在下一个CLK脉冲上发生变化。
当Q0=Q1=0用于下降系列时,Q2的状态会在下一个CLK脉冲上发生变化。
与门、或门和非门采用上述特性,其逻辑图如上图所示。
计数器的应用
计数器的应用主要涉及数字时钟和多路复用,计数器的最佳示例是下面讨论的并行到串行数据转换逻辑。
在并行线上同时执行的一组位称为并行数据。在时间序列中的单行上执行的一组位称为串行数据。并行到串行的数据转换通常是通过使用计数器来提供二进制数据系列,选择MUX的i/ps,如下面的电路中所示。
在上述电路中,8模计数器由Q o/ps组成,它们连接到数据,选择8位MUX的i/ps 。第一个8位并行数据组应用于MUX的输入。当计数器从0到7进行二进制序列时,每个位都以D0开头,被串行选择并通过MUX 传递到o/p线。经过8个CLK脉冲后,数据字节已变为串行格式并通过传输线发送出去。然后,计数器重新处理 0,并在类似的过程中再次串行更改另一个并行字节。
异步与同步计数器的比较
下面简单比较一下同步和异步计数器的操作和特点,二者的主要区别如下:
总结
众所周知,微控制器的应用需要对外部事件进行计数,例如精确的内部时间延迟生成和脉冲序列的频率。这些事件经常用于数字系统和计算机。这两个事件都可以通过软件技术执行,但是用于计数的软件循环不会给出确切的结果,更重要的功能没有完成,而这些都可以通过微控制器中用作中断的定时器和计数器来纠正。
其中,计数器是专门设计的同步时序电路,计数器的状态等于触发器在电路中保持的计数。计数器计算或记下事件发生的次数。另外,计数器是关键的硬件组件,被定义为“用于计算脉冲数的数字电路”,因为计数器是通过将触发器分组并对其施加单个时钟信号来设计的。
简而言之,计数器就是那些具有一组存储元件(如触发器)来保存计数的电子器件。
全部0条评论
快来发表一下你的评论吧 !