集成电路计数器

四、二—十进制计数器

🏠 首页 《无线电》杂志 1976年 🔗 第7期 🔗 第5页 分类:“现代家庭电子制作”电视讲座辅导材料 🔗 凌肇元 🔗

十进制运算是我们最熟悉、最习惯的数字运算。在小型数字控制机和数字仪表中,通常都采用十进制计数器来直接计数。目前广泛采用的十进制计数器,是在二进制代码的基础上,经过“改造”,变成十进制,用二进制代码表示十进制数,称为二—十进制代码。

十进制计数器有什么特点?构成一位十进制计数器必须具备那些条件呢?(1)要具有十个状态,分别表示0、1、2……9十个数字;(2)计数时,要能在这十个状态中顺序转换,周而复始,并在第十个脉冲作用后输出进位脉冲,即向高位进1,实现“逢十进一”;(3)要具有复位装置,通过手动或自动,使计数器开始计数的始点为“0”。

所谓编码,就是实行上述“改造”工作。前面已经谈过,编码方案,即从十六种状态中舍去六种状态的办法,有很多种。(表1)“8·4·2·1”代码是取十六个二进制数码的前十个,舍去后面六个。除此之外,常用的编码方案,还有“2·4·2·1”代码(表2)和(表3)“8·4·2·1”余3代码(简称余3代码)等。

图1
图1 🔍原图 (1845×951)

“8·4·2·1”和“2·4·2·1”中的字码,是指这种编码的各位所代表的具体数值,我们称它为“权”。每一位有确定的“权”的,叫权码,如上面所讲的三种;没有确定的“权”的,叫非权码,如循环码等。我们以“8·4·2·1”码为例来说:它的第四位的权是8,第三位的权是4,第二位的权是2,第一位的权是1,知道了每位的权,就可以知道二进制数码所代表的十进制数,例如“1001”这个数码,就等于8+0+0+1=9。余3代码也是权码,它是8·4·2·1码的一个变种,例如“1001”这个数码在余3代码中等于(8+0+0+1)-3=9-3=6。

编码方案虽然有很多种,但通常选用的却是有限的几种。为什么常选用“8·4·2·1”和“2·4·2·1”等这几种代码,这完全是依据了实践的需要。譬如,根据二进制计数器的进位特点,自然产生了“8·4·2·1”这种形式的编码,它的权数各不相同,它是所有二—十进制编码方案中,唯一单值对应的编码,一个十进位数字对应唯一的一组二进制数码,所以使运算很为方便。又譬如,在不少电子设备中不仅要求能做加法计数,而且要求能做减法计数,在这种可逆计数器中,用互补“2·4·2·1”代码和余3代码这种权的形式比较方便,因为互补“2·4·2·1”代码和余3代码的加减法计数是互补的,从它们的二进制码可以看到:0与9、1与8、2与7、3与6、4与5都互补为“1111”,也就是从Q端输出的数码和Q-端输出的数码正好互补,组成可逆计数器比较方便,线路比较简单。

现象只是入门的向导,一进了门就要抓住它的实质。在二进制计数器的基础上,通过怎样的“改造”,才能编成“8·4·2·1”十进计数器或者“2·4·2·1”代码、余3代码计数器呢?让我们用逻辑方框图作一个比较。关键在于,在四级二进制触发器的十六种状态中,怎样跳去六种状态,并实现余下的十种状态的顺序转换。

图2
图2 🔍原图 (688×298)

“8·4·2·1”代码去掉最后六种状态,实现从“1001”状态(十进制数字9)到“0000”状态(十进制数字0)的跳变。为此,在四级二进制计数器基础上增加了一个控制门(见图1)。显然,在计数脉冲1—7时,触发器C\(_{4}\)始终呈“0”态,Q-4=“1”,反馈控制线a保证来自Q\(_{1}\)的信号能通过与门,使C1、C\(_{2}\)、C3按二进制计数。控制线b使Q\(_{1}\)和C4的置“0”端相连接,Q\(_{1}\)的输出经b线只可能使C4置“0”。当第8个计数脉冲后沿来到时,因控制门仍然打开着,使C\(_{1}\)、C2、C\(_{3}\)都翻转为“0”,并由Q3向C\(_{4}\)的置“1”端输入计数脉冲,使C4翻转为“1”,第8个计数脉冲后沿使计数器变成“1000”。这时,Q-\(_{4}\)=“0”,将“与”控制门封住(注意当C4置“1”端通过C线接收来自Q\(_{3}\)的信号时,C4置“0”端经b线接收到的来自Q\(_{1}\)的信号已经消失)。当第9个脉冲后沿来到时,C1翻转为“1”,计数器状态为“1001”。当第10个脉冲后沿来到时,C\(_{1}\)翻转为“0”,并输出信号脉冲,这时因与门已封住,信号输不进C2,但却能通过控制线b使C\(_{4}\)置“0”,致使计数器呈“0000”状态。C4由“1”变“0”时,向高位计数器输出计数信号。可见,经过这种简单的改造,二进制计数器就成为十进制计数器了。

图3
图3 🔍原图 (700×344)

从表2看出,互补“2·4·2·1”代码的特点,是从“0100”直接变换成“1011”,跳过计数次序中的5至10(即“0101”至“1010”)。图2是采用互补“2·4·2·1”代码的十进制计数器逻辑方框示意图,它增加了一个反馈控制与门和二个或门。当输入计数脉冲1~4时,按正常二进制计数。当第5个脉冲后沿来到时,若按二进制计数,应为“0101”状态,但因反馈控制门的作用,当Q\(_{4}\)=“1”,Q3=“1”,同时计数输入端又处于计数脉冲高电平的情况下,与门的三个输入端全为“1”,与门打开,输出信号同时经二个或门分别加到C\(_{2}\)、C3输入端,使C\(_{2}\)、C3翻转,C\(_{3}\)由“1”变“0”时,又引起C4翻转,迫使整个计数器成为“1011”状态(应当注意,这里应该是Q\(_{1}\)的正跳变滞后于与门输出端的负跳变)。显然,与门在其他时间,均被封住,仅当C4=“0”,C\(_{3}\)=“1”,而且C1的输入端为“1”时才打开。从“1011”以后至“1111”则仍按二进制计数。当第10个脉冲后沿到来时,由“1111”变成“0000”,同时向高位计数器输出进位脉冲信号。

图4
图4 🔍原图 (683×326)

图3是采用余3代码的十进制计数器逻辑方框示意图,它同样增加了一个反馈控制门,不过这种编码的起始状态数字0是“0011”,所以复位端的连接和前二种情况不同(C\(_{1}\)、C2接在置“1”端)。复位脉冲先把计数器置成“0011”,然后开始按正常的二进制计数。当计数到“1100”,即十进制数字9以后,实现从“1100”到“0011”的跳变。这时反馈控制门的三个输入端Q\(_{4}\)=“1”、Q3=“1”,计数输入端C\(_{P}\)=“1”,所以第10个脉冲来到后,计数器状态本应为“1101”,但这是一个不稳定状态,因为这时反馈控制门全部输入为“1”,门被打开,经与非门输出的负脉冲,连到C4、C\(_{3}\)的置“0”端和C2的置“1”端,迫使计数器呈“0011”状态。实现了从“1100”到“0011”的跳变,并在这个变换中,向高位计数器输出进位脉冲信号。

逻辑方框图能够简明地说明这几种编码制的共性和特性。使我们对十进计数器的工作原理,有了一个概括的了解。实际应用的二—十进制计数电路,还跟采用什么样的触发器有关。下面讲一讲用J\(_{K}\)触发器和D触发器组成的“8·4·2·1”代码二—十进制计数器。

图5
图5 🔍原图 (656×304)
图6
图6 🔍原图 (675×395)

图4是由J\(_{K}\)触发器组成的“8·4·2·1”代码二—十进制计数器,它运用了JK触发器的特有功能。把图4和图1比较一下,可以看出,它们的基本原理是一样的。对照图5的波形和二进制计数器的波形(本文第一篇的图6),可以看出,由第1个计数脉冲到第9个计数脉冲,波形是完全相同的,它们都遵守“除二”的原则,即从前级输入二个脉冲,向后级输出一个脉冲(这里的J\(_{K}\)触发器用后沿负阶跃触发)。所不同的是当第10个脉冲来到后,整个计数器不是进位为“1010”,而是回到原始状态“0000”。

和图1一样,在第8个脉冲到来前,触发器C\(_{4}\)始终处在“0”状态,Q4=“0”,Q-\(_{4}\)=“1”,与Q-4连接的反馈线连到第二级触发器C\(_{2}\)的J端,使此端为高电位“1”,又因K端悬空,故J=“1”、K=“1”。根据JK触发器的功能,这时触发器C\(_{2}\)正常翻转,如同图1中的控制门打开着一样。第四级C4的输入端与C\(_{1}\)级的输出Q1端相连,Q\(_{1}\)的下降沿将同时输至C2和C\(_{4}\),当C1向后发出进位脉冲时,恰值第2、4、6、8个脉冲后沿到来的时刻,在第2、4、6个脉冲后沿到来时,C\(_{4}\)的J端始终被“0’封住,使J=“0”、K=“1”,如同图1中的b线连在C\(_{4}\)的置“0”端一样,使C4保持“0”态不变。仅当第8个脉冲来到前(7过后的状态为“0111”),因Q\(_{2}\)=Q3=“1”,C\(_{4}\)的J1=J\(_{2}\)=“1”,即J=“1”K=“1”,根据JK触发器特性,这时输入信号将引起翻转,故第8个脉冲的后沿使C\(_{4}\)翻转,由“0”变“1”。第8个脉冲后,整个计数器呈“1000”状态。第9个脉冲仅使Q1翻转,不向后输出信号,计数器是“1001”状态。第10个脉冲使C\(_{1}\)由“1”变“0”,并向后输出信号,使C2和C\(_{4}\)都收到脉冲信号,但由于第10个脉冲到来前,Q4=“0”,所以C\(_{2}\)的J端为“0”,如同图1中的控制门被a线封住一样,使C2、C\(_{3}\)仍保持“0”态不变,而C4的J\(_{1}\)和J2在第10个脉冲来到前,都是“0”态,根据J\(_{K}\)触发器的特性,J=“0”、K=“1”时,接收脉冲后,C4为“0”。结果,使整个计数器状态变成“0000”,并向高位计数器发出进位脉冲信号。可见,J\(_{K}\)触发器的J端K端,在这里发挥了控制作用,省却了图1中的外加控制门,使电路变得更加简单。

图7
图7 🔍原图 (816×309)

用D触发器组成的“8·4·2·1”代码,二—十进制计数器线路,如图6所示。根据D触发器的特点,D触发器作计数用时,将Q和一个D端相连,作为输出端。比较一下图4和图6,图6中的C\(_{2}\)和C4这二级触发器里,用D端代替J\(_{K}\)触发器的J端,其余线路完全一样。当D=“0”时,输入脉冲使触发器为“0”态,当D=“1”时,输入脉冲使触发器为“1”态,各级触发器输入脉冲信号后将呈什么状态,完全由D的状态确定。可见,它的各级翻转过程和JK触发器组成的“8·4·2·1”代码十进计数器一致。其波形图也同图5一样。

图8
图8 🔍原图 (859×404)

图7是用J\(_{K}\)触发器或D触发器组成的互补“2·4·2·1”代码二—十进制计数器。(天津市四十二中学 凌肇元)