任意进制计数器的设计
【摘要】计数器集成芯片一般有4位二进制、8位二进制或十进制计数器,而在实际应用中,往往需要设计一个任意N进制计数器,本文给出它的设计方法和案例。
【关键词】计数器;清零
一、利用反馈清零法获得计数器
1 集成计数器清零方式
异步清零方式:与计数脉冲CP无关,只要异步清零端出现清零信号,计数器立即被清零。
此类计数器有同步十进制加法计数器CT74LS160、同步4位二进制加法计数器CT74LS161、同步十进制加/减计数器CT74LS192、同步4位二进制加/减计数器CT74LS193等。
同步清零方式:与计数脉冲CP有关,同步清零端获得清零信号后,计数器并不立刻被清零,只是为清零创造条件,还需要再输入一个计数脉冲CP,计数器才被清零。
属于此类计数器有同步十进制加法计数器CT74LS162、同步4位二进制加法计数器CT74LS163、同步十进制加/减计数器CT74LS190、同步4位二进制加/减计数器CT74LS191等。
2 反馈清零法
对于异步清零方式:应在输入第N个计数脉冲CP后,利用计数器状态SN 进行译码产生清零信号加到异步清零端上,立刻使计数器清零,即实现了N计数器。
在计数器的有效循环中不包括状态SN,所以状态SN只在极短的瞬间出现称为过渡状态。
对于同步清零方式:应在输入第N-1个计数脉冲CP后,利用计数器状态SN-1进行译码产生清零信号,在输入第N个计数脉冲CP时,计数器才被清零,回到初始零状态,从而实现N计数器。
可见同步清零没有过渡状态。
利用计数器的清零功能构成N计数器时,并行数据输入端可接任意数据,其方法如下:
①写出N计数器状态的二进制代码。
异步清零方式利用状态SN,同步清零方式利用状态SN-1。
②写出反馈清零函数。
③画逻辑图。
例1 试用CT74LS160的异步清零功能构成六进制计数器。
解:①写出SN的二进制代码。
SN=S6=0110
②写出反馈清零函数。
③画逻辑图。
如图1所示。
图1 用CT74LS160的异步清零功能构成六进制计数器
图2 用CT74LS162的同步清零功能构成六进制计数器
例2 试用CT74LS162的同步清零功能构成六进制计数器。
解:
①写出SN-1的二进制代码。
SN-1=S5=0101
②写出反馈清零函数。
③画逻辑图。
如图2所示
二、利用反馈置数法获得N计数器
1 集成计数器置数方式
异步置数方式:与计数脉冲CP无关,只要异步置数端出现置数信号,计数器立即被置数。
属于此类计数器有同步十进制加/减计数器CT74LS190/192、同步4位二进制加法/减计数器CT74LS191/193。
同步置数方式:与计数脉冲CP有关,同步置数端获得置数信号后,计数器并不立刻被置数,还需要再输入一个计数脉冲才能将预置数置于计数器。
属于此类计数器有同步十进制加法计数器CT74LS160/162、同步4位二进制加法计数器CT74LS161/163。
2反馈置数法
利用计数器的置数功能构成N计数器时,要确定计数器从某个预置数状态开始计数,并行数据输入端D3~D0接入计数器的计数起始数据,计满N个状态后产生置数信号,使计数器返回到预置数状态。
利用计数器的清零功能构成N计数器的方法如下:
①确定计数器计数状态和预置数状态。
②写出计数器状态的二进制代码。
当预置数为全0时,取前N个计数状态,则异步置数方式利用状态SN,同步清零方式利用状态SN-1。
③写出反馈置数函数。
④画逻辑图。
例3 试用CT74LS161的同步置数功能构成十进制计数器。
解:CT74LS161是十六进制计数器,置数状态在0000~1111这16个状态中任选,因此实现的方案很多。
方法一:置全0法(前个状态计数)
①确定计数器计数状态和预置数状态。
取置数状态为S0=0000,预置数D3D2D1D0=0000,计数范围为0000~1001。
②写出计数器状态的二进制代码。
③写出反馈置数函数。
③画逻辑图。
如图3(a)所示。
(a)
(b)
图3 用CT74LS161的同步置数功能构成十进制计数器
(a)置全0法(前10个状态计数)
(b)CO置数法(后10个状态计数)
方法二:CO置数法(后N个状态计数)
用进位输出信号CO作为预置数的控制信号。
M-N=16-10=(6)10=(0110)2,设预置数D3D2D1D0=0110,计数范围为0110~1111。
计到1111时,进位输出信号CO=Q3Q2Q1Q0=1,通过非门产生一个置数信号加到同步置数端,即,在下一个计数脉冲CP到来时,把预置数D3D2D1D0=0110并行置入Q3Q2Q1Q0中,计数器返回到预置数状态Q3Q2Q1Q0=0110,从而实现了十进制计数。
电路如图3(b)。
三、大容量N进制计数器
当要求实现的计数器的计数模值超过单片计数器的计数范围时,可将多片计数器级联起来,就可获得大容量进制计数器。
常用的方法有两种:
1 大模分解法
如果将模N可以分解为多个因数相乘(每个因数小于单片计数器的最大值),
即,则可先用片计数器分别组成模值为N1、N2、…、Nn的计数器,然后再将它们级联起来组成N进制计数器。
例4 试用两片CT74LS190构成五十进制计数器。
解:,个位片CT74LS190(1)组成十进制计数器(低位片);十位片CT74LS190(2)组成五进制计数器(高位片),然后级联组成五十进制计数器,电路如图4所示。
图中,级联采用串行进位方式,即将低位片CT74LS190(1)串行进位端的输出信号作为高位片计数器CT74LS190(2)的计数输入脉冲。
当十位计数器CT74LS190(2)计到5时,异步置数端端,计数器被置数到0,从而实现了五十进制计数。
图4 两片CT74LS190构成五十进制计数器
三、整体反馈置零或整体反馈置数法
例5 试用两片CT74LS161构成四十二进制计数器。
解:(1)将两片CT74LS161采用并行进位方式组成进制计数器。
(2)将256进制计数器采用整体反馈置零法构成42进制计数器。
42进制计数器对应的二进制代码,当计数器计到42时,计数器状态,反馈置零函数,这是经与非门输出低电平,使两片CT74LS161同时置零,从而实现四十二进制计数,逻辑图如图5所示。
图5 两片CT74LS161构成四十二进制计数器
参考文献:
[1] 杨志忠.数字电子技术基础【M】.北京:高等教育出版社.2010.
[2] 赵景波.数字电子技术应用基础【M】.北京:人民邮电出版社.2009.。