0 引言
计数器是数字系统中应用广泛的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时、产生节拍脉冲和脉冲序列等。例如,计算机中的时序发生器、分频器、指令计数器等都要使用计数器。一般集成计数器的进制都是固定的,像74LS160 为十进制,74LS161 为十六进制,但是实际中需要大量的任意进制(N 进制)的计数器,如:24 进制,60 进制等,可以通过对固定进制的计数器改进或者级联来完成所需要的N 进制的计数器。EWB 是加拿大Interactive Image Technologies 公司推出的一款电子电路仿真分析、设计软件,它具有直观的界面,用户学习操作十分简便,该软件与其升级版本Multisim 软件相比,使用方式与实际更接近,同时它还带有丰富齐全的元器件库,根据需要可灵活改变各器件的参数,因此它能演示各种复杂电路系统,以查看结果。
1 集成计数器74LS160 介绍
74LS160 是具有预置数功能的四位同步十进制计数器,其内部是由J-K 触发器和附加门组成。74LS160 管脚功能见表1.
74LS160 逻辑功能见表2.
从表2 看出, 集成计数器74LS160 具有以下4 个功能:
(1)异步清零功能:
当复位端CLR/ =O 时,输出 QD QC QB QA 全为零,实现异步清除功能。
(2)同步预置数功能:
当复位端CLR/ =1,预置控制端LOAD/ =0,并且有脉冲输入即CLK =CP ↑时,输出端QD QC QB QA=DCBA,实现同步预置数功能。
(3)保持功能:
当CLR/ = LOAD/ =1 且计数控制端ENP·ENT =O 时,输出QD QC QB QA 保持不变。
(4)计数功能:
当 CLR/ = LOAD/ = ENP = ENT =1,并且有脉冲输入即CLK =CP ↑时,计数器才开始加法计数,实现计数功能。
2 反馈复零法设计原理
设现有M 进制集成计数器,要设计N 进制计数器。
反馈复零法 主要利用一个与非门,其输入接在计数器的输出端,其输出接在计数器的复位端或预置数端。当计数器计到N 时,反馈与非门的输入端全部为1,输出端则为0.由于与非门的输出端与计数器的复位端或预置数端相连,使得计数器复位或输出等于预置数(0000),从而使计数器重新回到起始状态。与非门反馈到复位端的称为清零法,与非门反馈到预置控制端的称为预置数法。图1 给出了反馈复零法电路原理图,(a)图为异步清零法,(b)图为同步置数法。
图1 中与非门的输入端个数及连接位置由设计的计数器进制N 决定。
实际设计时,如果M>N,用一片M 集成集成计数器就可以完成N 进制计数器的设计;如果M<N,需要用多个M 进制集成计数器级联,扩展成大容量计数器,如两片74LS160 可以扩展成100 进制,再使用反馈复零法设计N 进制计数器。
3 设计实例
3.1 异步清零法实现的60 进制计数器的仿真设计
74LS160 为同步十进制集成计数器,其最大计10 个脉冲数。
现在需要设计60 进制计数器,通过两片74LS160 级联的方式扩展成100 进制,设十位计数器的编号为2,个位计数器的编号为1.
使用反馈复零法设计,步骤如下:
(1)写出60 对应的二进制代码:01100000,即十位计数器的输出Q2D Q2C Q2B Q2A=(6)D=(0110)B,个位计数器的输出Q1D Q1C Q1BQ1A=(0)D=(0000)B(2)求反馈复零逻辑表达式:采用异步清零法设计,所以:
(3)在EWB 软件里搭建仿真电路。具体如下:
①在EWB 的数字集成电路库选择2 片74LS160 集成计数器,在逻辑门电路库选择与非门,在信号源库选择Vcc 电源、地和脉冲信号源,在指示器件库选择2 个数码显示管将以上器件拖放在工作区的合适位置并设置参数。
② 连接线路:电源、地分别接到两片计数器的Vcc 和GND 端。脉冲信号源分别接到CLK 端。要实现计数功能则ENP=ENP=LOAD/=1,所以个位计数器的ENP=ENP=LOAD/=1,而十位计数器的接个位计数器的进位输出端RC0.由反馈复零逻辑表达式知反馈与非门输入端接十位计数器的Q2C Q2B,输出反馈到两个计数器的复位清零端CLR/.
采用异步清零法实现的60 进制计数器仿真电路图如图2 所示。
(4)打开仿真开关,运行仿真电路,观查仿真结果。仿真时可以看到,从0 开始计数时,来一个脉冲,个位计数器增1,当第十个脉冲来后,个位计数器进位,个位计数器为0,十位计数器显示1.即每计十个脉冲,十位计数器增1.整体看,当计数器从0 开始计数计到59 时开始循环,说明图3 实现了60 进制加法计数器功能。
3.2 同步置数法实现的24 进制计数器的仿真设计
同步置数法原理和异步清零法原理相同,区别在于与非门的输出端接在74LS160 的预置数端LOAD/.当计数器计到N-1 时,反馈与非门的输入端全部为1,则输出端为0,此时预置控制端有效,当再来一个脉冲时,计数器的输出端数据等于预置数,使计数器重新回到起始状态。所以要实现24 进制的计数器,应写出23对应的二进制代码。
(1)写出23 对应的二进制代码:00100011,即十位计数器的输出Q2D Q2C Q2B Q2A=(2)D=(0010)B,个位计数器的输出Q1D Q1C Q1BQ1A=(3)D=(0011)B
(2)求反馈复零逻辑表达式:采用异步清零法设计,所以:
(3)在EWB 软件里搭建仿真电路。具体如下:
①拖放元器件同异步清零法实现的60 进制计数器的仿真设计。
②连接线路:电源、地、技术控制端ENP/ENP、脉冲信号源接法不变。与异步清零法仿真设计区别在于此时CLR/=1 ;十位计数器的数据输入端D=C=B=A=0 ;由反馈复零逻辑表达式知与非门输入端接十位计数器的Q2C Q2B,而输出反馈到两个计数器的预置数端。
采用同步预置数法实现的24 进制计数器仿真电路图如图3所示。
(4)打开仿真开关,运行仿真电路,观查仿真结果。仿真时可以看到,从0 开始计数时,计到23 时开始循环,说明图3 实现了24 进制加法计数器功能。
3.3 仿真问题分析
在设计60 进制计数器仿真时,发现十位计数器不计数,检查后发现十位计数器的预置数端虚接,改正后仿真结果正确。另外以下几点:
(1)正确求取复零逻辑表达式,异步清零法为N 对应的二进制代码为1 的输出项的与非表达式,同步预置数法为(N-1)对应的二进制代码为1 的输出项的与非表达式。
(2)如果设计10 进制以上的计数器时,个位计数器的进位端要连到十位计数器的计数控制端ENP 和ENT 端。
(3)注意不同方法时,反馈与非门的输出端连接位置不同,异步清零法连到计数器复位端,而同步预置数法连到计数器预置数端,并且此时数据输入端应为0.
4 小结
本文主要以74LS160 为例,介绍了采用反馈复零法实现的N进制计数器的设计方法及仿真步骤。并以异步清零法设计的60进制计数器和同步置数法实现的24 进制计数器为例给出了详细的设计步骤。应用EWB 软件对设计的计数器进行仿真,结果表明达到设计要求。