基于MSI的N进制计数器设计方法研究

时间:2011-10-27

  摘要  以多种种典型的中规模集成 (MSI) 计数器芯片为例,采用反馈置零法 ( 复位法 )、反馈置数法 ( 置位法 ) 和级联法来构成任意进制计数器。总结出详细的设计步骤。

  1 绪论

  计数器是数字逻辑系统中的基本部件, 它是数字系统中用得多的时序逻辑电路,其主要功能就是用计数器的不同状态来记忆输入脉冲的个数。除此以外还具有定时、分频、运算等逻辑功能。 计数器不仅能用于对时钟脉冲的计数, 还可使用于定时、分频、产生节拍脉冲以及进行数字运算等。只要是稍微复杂一些的

  数字系统, 几乎没有不包含计数器的。通常把满足N=2n的计数器称为二进制规则计数器, 有些数字定时、分频系统中,常需要N≠2n 的任意进制计数器。

  当我们在设计任意进制计数器 (即计数模不是 2及10)时, 一般采用现有的中规模集成电路( Medium Scale Integration, MSI)芯片, 通过适当的反馈连接加以实现。而市场上现成的中规模集成电路芯片常见的只有十进制计数器和十六进制计数器,而在实际应用中,如数字钟电路中,却需要二十四进制和六十进制计数器,因此要将现有计数器改造成任意进制计数器。利用MSI芯片进行适当的连接就可以构成任意进制计数,所使用的方法主要有反馈置零法、反馈预置法和级联法。

  采用中规模集成计数器来设计任意进制计数器,使设计和调试工作更趋于简单, 并且具有体积小, 功耗低, 可靠性高等优点。 本文主要阐述了用中规模集成计数器设计任意进制同步加法计数器的设计思想, 并对设计方法和步骤作了讨论。

  2. MS I中规模计数器概述

  2.1 MS I中规模计数器芯片种类

  MS I中规模计数器芯片有非常多的种类。若按触发时钟的方式分类有: 同步计数器、异步计数器; 若按进制的"模"分类有: 二进制计数器、十进制计数器; 若按计数的方式分类: 有加法计数器、减法计数器和可逆(加/减)计数器; 若按芯片的型号分类就更多了, 如:仅74系列的4位二进制计数器芯片就有161、163、191、193、197等,十进制计数器芯片有160、162等。

  2.2 MSI中规模计数器工作原理

  2.2.1.以十进制同步计数器74LS160为例

  74LS160的功能

表1 74LS160功能表

表1 74LS160功能表

  根据功能表,74LSl60的功能说明如下:

  (1)异步清零功能。当CR=0 时,不论其他输入如何,输出Q3Q2Q1Q0 为0000,表中"×"表示任意。

  (2)同步并行置数功能。LD为预置数控制端,在CR=1 的条件下, LD=0 时,在CP 上升沿的作用下,预置好的数据d3d2dld0被并行地送到输出端,即此时的Q3Q2Q1Q0 为d3d2dld0 .

  (3)保持功能。在CR=1 和LD=1 的前提下,只要TTTP=0,则计数器不工作,输出保持原状态不变。

  (4)计数功能。正常计数时,必须使CR=1,LD=1,TTTP=1,此时在CP 的上升沿的作用下,计

  数器对C P 的个数进行加法计数。当计数到输出Q3Q2Q1Q0 为1001 时,C0=1,C0=1 的维持时间是从Q3Q2QlQ0 为1001 时起到QaQ2Q1Q0 状态变化时止。

  2.2.2以四位二进制计数器为例

  74LS161功能

表2 74LS161功能表

表2 74LS161功能表

  从功能表( 一) 可以看到,74LS161处于计数状态时,引出端RD,L D , S : , S : 都应为" 1 " ( 接高电平) . 如果取其中一片T 4 1 6 1 作为低位计数器〔记作(1 ) 〕, 对该片计数器来讲,每来一个C P 就计数,它始终工作在计数状态。

  3. 设计方案

  3. 1 采用反馈置零法来设计任意进制计数器

  对于 74LS160属于异步置零输入端的计数器,它是当置零输入端出现有效电平 (低电平 ) 后计数器立 即 被 置 零, 不 受 时 钟 信 号 的 控 制。 而 对 于74LS162 / 74LS163 属于同步置零输入端的计数 器。它是当置零输入端出现有效电平 (低电平 ) 后计数器并不会立即被置零, 必须等下一个时钟信号到达后, 才能将计数器置零。两者用时必须加以区分。

  3. 1. 1 采用并行法来设计 24 进制计数器

  用 74LS160并行置零法设计 24进制计数器的电路图如图 1所示。此电路的工作原理: 先假设两芯片的置零输入端为 1, 则个位芯片由于计数控制端 ENP = ENT = 1, 故该芯片始终处于计数状态; 而十位芯片的 ENP、ENT连接的是个位芯片的进位控制端 RCO, 只有当个位芯片的计数状态 Q 3Q 2 Q1 Q0为 1001时, RCO 才为 1.十位芯片才能计数。如果没有反馈置零 (即 MR 端恒接高电平 )则电路是一个 100进制计数器。现在电路中加上了反馈, 当计数状态 ( 00100100) 8421BCD码 = ( 24) 10时, 与非门输出为零。由于 74LS160 属于异步置零, 且复位控制端 MR低电平有效, 所以计数器立即置零。由于电路中的状态 ( 24 ) 10转瞬即逝, 显示不出。故电路的有效状态从 ( 00) 10到 ( 23) 10共 24个, 故此电路为24进制计数器。

图1  用74LS160并行置零法设计24进制计数器

图1  用74LS160并行置零法设计24进制计数器

  另外如果采用同步置零 74LS162计数器来设计24进制计数器, 那么反馈代码必须是 ( 23) 10相应的8421BCD 码为 00100011.由此可见反馈信号应取自十位芯片的 Q1 及个位芯片的 Q1 和 Q0, 相应的与非门应改成四输入端与非门。用 74LS162并行置零法设计 24进制计数器的电路图如图 2所示。

图2   用74LS162并行置零法设计24进制计数器

图2   用74LS162并行置零法设计24进制计数器

  3. 1. 2 采用串行法来设计 48 进制计数器

  用 74LS160串行置零法设计 48进制计数器的电路图如图 3所示。

图3  用74LS160串行置零法设计48进制计数器

图3  用74LS160串行置零法设计48进制计数器

  此电路的工作原理: 先假设两芯片的置零输入端为 1, 则个位芯片由于计数控制端 ENP=ENT = 1, 故该芯片始终处于计数状态; 而十位芯片的 ENP = ENT = 1, 但十位芯片的计数脉冲CLK 是通过个位芯片的进位控制端 RCO 取反来控制的。当个 位芯 片的计 数状 态 Q 3Q 2Q 1Q 0为 1001时, RCO 为 1.当下一个计数脉冲到来时 RCO 又为0.又由74LS160计数器的时钟脉冲 CLK是上升沿有效, 与此同时, 个位的RCO 由1到0相当于一个下降沿, 通过非门74LS04 控制就得到一个上升沿, 同时十位芯片才能计数。如果没有反馈置零(即MR 恒接高电平)则电路是一个100 进制计数器。现电路中加上了反馈。当计数状态( 01001000) 8421BCD码= (48)10时, 与非门输出为零。由于74LS160属于异步置零, 且复位控制端低电平有效, 所以计数器立即置零。如果采用同步置零74LS162计数器来设计48进制计数器, 那么反馈代码必须是( 47)10相应的8421BCD码为01000111.由此可见反馈信号应取自十位芯片的Q2 及个位芯片的Q2, Q1 及Q0, 相应的与非门应改成四输入端与非门。74LS162串行置零法设计48进制计数器的电路图如图4所示。

图4  用74LS162串行置零法设计48进制计数器

图4  用74LS162串行置零法设计48进制计数器

  另外, 采用串行法设计时, 十位芯片的计数脉冲CLK还可以通过个位芯片的位Q3 端通过非门取反来控制, 其他线路保持不变。只要对图3或图4稍加修改即可。

  3.2  采用反馈置数法来设计任意进制计数器

  此方法适用于某些具有预置数的计数器, 它是采用预置数控制端LOAD来实现。对于74LS160属于同步式预置数的计数器来说, 当LOAD 出现有效电平低电平后待下一个时钟脉冲信号到来后计数器输出端的状态Q3Q2Q1Q0 = D3D2D1D0.使其跳过某些状态来设计任意进制计数器。下面就以74LS160为例, 用并行置数法设计23 进制计数器,其中预置数端D3D2D1D0可以置零, 也可以置十以内的任意四位二进制数。那么此电路在其置数时十位和个位的D3D2D1D0 置入( 01100110 )8421BCD 码= ( 66) 10, 而反馈代码十位和个位为( 10001000)8421BCD 码= ( 88) 10, 相当于十进制数的88.由此分析可得到计数器的模为( 88- 66) + 1= 23, 故计数器为23进制计数器, 其设计电路图如图5所示。由此可以得到置数法的设计要点为:反馈代码转换成的十进制数 - 预置数端的代码转换成的十进制数 + 1 = 所设计的计数器的模。同样我们也可以仿照前面的设计用串行置数法设计任意进制计数器。

图5用74LS160并行置数法设计23进制计数器

图5用74LS160并行置数法设计23进制计数器

  4 设计步骤

  由于反馈置数法不太常用, 且难于理解?? 下面我们就以反馈置零法为例, 通过以上分析和经验总结,可以得出任意N 进制计数器的设计方法及步骤。

  根据计数模N 来确定所需要计数器芯片的个数n.n= INT ( logm (N - 1) ) + 1, INT 表示取整。m: 当芯片为十进制计数器时m 取10, 当芯片为四位二进制计数器时m 取16.

  ( 2)当n个计数器芯片连接成模为m 的计数器

  ( 3)选用并行法或串行法将n 个计数器连接起来。

  ( 4)确定反馈置零代码。如果计数器芯片采用异步置零反馈代码为(N ) 10, 若是采用同步置零, 则反馈代码为(N ?? 1) 10.

  ( 5)反馈置零代码形式的转换。如果芯片为十进制制计数器, 将反馈代码转换成8421BCD 码的形式。若是四位二进制计数器, 则将反馈代码转换成二进制数。

  ( 6)将转换结果与计数器的状态输出端进行比较,让与1对应的引脚作用到与非门(反馈置零端低电平有效)或者与门(反馈置零端高电平有效)的输入端, 然后将与非门或者与门的输出, 连接到计数器芯片的反馈置零端即可。

参考文献:

[1]. 74LS160 datasheet https://www.dzsc.com/datasheet/74LS160_1522197.html.
[2]. 74LS161 datasheet https://www.dzsc.com/datasheet/74LS161_1544273.html.
[3]. 74LS162 datasheet https://www.dzsc.com/datasheet/74LS162_1553409.html.
[4]. 74LS04  datasheet https://www.dzsc.com/datasheet/74LS04+_772886.html.

上一篇:基于ZigBee技术的公交车自动报站系统设计
下一篇:嵌入式系统能耗的动态管理方案

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料