1000进制以内的任意进制计数器
任意进制计数器的设计

任意进制计数器的设计【摘要】计数器集成芯片一般有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 00 01 01 1 01 1
d3 d2 d1 d0 1 1
Q3n+1 Q2n+1 Q1n+1 Q0n+1
000 0
d3 d2 d1
d0
加法计数
减法计数
保持
注
异步清零 异步置数
BO =CO=1
4. 集成十进制同步计数器 (1) 集成十进制同步加法计数器74160、74162 VCC CO Q0 Q1 Q2 Q3 CTT LD 同步计数功能:
若用T 触发器:
T0 = 1 T1=Q0n T2= Q1n Q0n
&
FF0
Q0
1J
FF1
1J
Q1
C1
C1
FF1
1J C1
&
B
Q2
1K
1K
Q0
Q1
1K
Q2
3. 3 位二进制同步可逆计数器 (1) 单时钟输入二进制同步可逆计数器
加/减 控制端
&1
&1
C/B &1
U/D 1
1
1J C1
Q0
1K
CP
FF0 Q0
按计数的增 减分:
加法计数器 减法计数器 可逆计数 (Up-Down Counter)
按计数值的 二进制编码计数器 编码方式分: 二—十进制计数器
按数制分:
二进制计数器 十进制计数器
N 进制(任意进制)计数器
同步二进制加法计数器结构组成及原理
计数器计数容量、长度或模的概念
计数器能够记忆输入脉冲的数目,即电路的有效状态
CP2=Q1
二-八-十六进制计数器的实现
FF0 Q0
数电-时序逻辑电路 计数器

——依照一般同步时序电路的设计步骤
例题
用D触发器设计同步十进制加法计数器 用JK触发器设计同步六进制减法计数器
(1)异步二-十进制计数器 74HC/HCT390
FF0 二进制计数器 CP0输入,Q0输出
FF1——FF3
异步五进制计 数器(P277)
CP1输入,Q3、Q2、Q1输出
CP1 1
1000~1111 8进制
异步计数器
方法二 整体反馈清0法实现72进制加法计数器
1 CP
××××
CR D0 D1 D2 D3
CET
CEP 74161(0) TC CP Q0 Q1 Q2 Q3 PE 1
××××
CR D0 D1 D2 D3
CET
CEP 74161(1) TC
CP Q0 Q1 Q2 Q3 PE 1
TC
CEP
74161
PE
>CP Q0 Q1 Q2 Q3
CR: 异步清零端
CP:
有效
PE: 同步并行置数使能端
D0 - D3 :预置数据输入端 CET、CEP: 计数使能端
TC:进位输出端,用于级连(TC = CET·Q3·Q2·Q1·Q0)
74161逻辑功能表
输入
输出
清预 零置
使能
时 钟
预置数据输入
连接方式1 Q2 Q1 Q0 000 001 010 011 100 101 110 111 000 001
(5421码)
连接方式2 Q0 Q3 Q2 Q1 0 000 0 001 0 010 0 011 0 100 1 000 1 001 1 010 1 011 1 100
二-五-十进制加法计数器
计数器的原理

计数器的原理计数器是数字电路中广泛使用的逻辑部件,是时序逻辑电路中最重要的逻辑部件之一。
计数器除用于对输入脉冲的个数进行计数外,还可以用于分频、定时、产生节拍脉冲等。
计数器按计数脉冲的作用方式分类,有同步计数器和异步计数器;按功能分类,有加法计数器、减法计数器和既具有加法又有减法的可逆计数器;按计数进制的不同,又可分为二进制计数器、十进制计数器和任意进制计数器。
一、计数器的工作原理1、二进制计数器(1)异步二进制加法计数器图1所示为用JK触发器组成的4位异步二进制加法计数器逻辑图。
图中4个触发器F0~F3均处于计数工作状态。
计数脉冲从最低位触发器F0的CP端输入,每输入一个计数脉冲,F0的状态改变一次。
低位触发器的Q端与高位触发器的CP端相连。
每当低位触发器的状态由1变0时,即输出一负跳变脉冲时,高位触发器翻转。
各触发器置0端R D并联,作为清0端,清0后,使触发器初态为0000。
当第一个计数脉冲输入后,脉冲后沿使F0的Q0由0变1,F1、F2、F3均保持0态,计数器的状态为0001;当图1 4位异步二进制加法计数器第二个计数脉冲输入后,Q0由1变为0,但Q0的这个负跳变加至F1的CP端,使Q1由0变为1,而此时F3、F2仍保持0状态,计数器的状态为0010。
依此类推,对于F0来说,每来一个计数脉冲后沿,Q0的状态就改变,而对于F1、F2、F3来说,则要看前一位输出端Q 是否从1跳到0,即后沿到来时,其输出端的状态才改变,否则Q1、Q2、Q3端的状态同前一个状态一样。
这样在第15个计数脉冲输入后,计数器的状态为1111,第16个计数脉冲输入,计数器恢复为0000。
由上述分析可知,一个4位二进制加法计数器有24=16种状态,每经过十六个计数脉冲,计数器的状态就循环一次。
通常把计数器的状态数称之为计数器的进制数(或称计数器的模),因此,4位二进制计数器也可称之为1位十六进制(模16)计数器。
表1所示为4位二进制加法计数器的状态表。
实验六 任意进制计数器的构成

实验六任意进制计数器的构成设计性实验一、实验目的1、学习用集成触发器构成计数器的方法;2、掌握中规模集成计数器的使用及功能测试方法;3、运用集成计数计构成N分频器,了解计数计的分频作用。
二、实验原理计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。
计数器种类很多。
按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。
根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。
根据计数的增减趋势,又分为加法、减法和可逆计数器。
还有可预置数和可编程序功能计数器等等。
目前,无论是TTL还是CMOS 集成电路,都有品种较齐全的中规模集成计数器。
使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。
1、用D触发器构成异步二进制加/减计数器图6-1是用四只D触发器构成的四位二进制异步加法计数器,它的连接特点是将每只D触发器接成T'触发器,再由低位触发器的Q端和高一位的CP端相连接。
图6-1 四位二进制异步加法计数器若将图6-1稍加改动,即将低位触发器的Q端与高一位的CP端相连接,即构成了一个4位二进制减法计数器。
2、中规模十进制计数器CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如图6-2所示。
图中LD—置数端CP U—加计数端CP D—减计数端CO—非同步进位输出端BO—非同步借位输出端D0、D1、D2、D3—计数器输入端Q 0、Q 1、Q 2、Q 3 —数据输出端 CR图6-2 CC40192引脚排列及逻辑符号CC40192(同74LS192,二者可互换使用)的功能如表6-1,说明如下:当清除端CR 为高电平“1”时,计数器直接清零;CR 置低电平则执行其它功能。
当CR 为低电平,置数端LD 也为低电平时,数据直接从置数端D 0、D 1、D 2、D 3 置入计数器。
计数器的原理

计数器的原理计数器是数字电路中广泛使用的逻辑部件,是时序逻辑电路中最重要的逻辑部件之一。
计数器除用于对输入脉冲的个数进行计数外,还可以用于分频、定时、产生节拍脉冲等。
计数器按计数脉冲的作用方式分类,有同步计数器和异步计数器;按功能分类,有加法计数器、减法计数器和既具有加法又有减法的可逆计数器;按计数进制的不同,又可分为二进制计数器、十进制计数器和任意进制计数器。
一、计数器的工作原理1、二进制计数器(1)异步二进制加法计数器图1所示为用JK触发器组成的4位异步二进制加法计数器逻辑图。
图中4个触发器F0~F3均处于计数工作状态。
计数脉冲从最低位触发器F0的CP端输入,每输入一个计数脉冲,F0的状态改变一次。
低位触发器的Q端与高位触发器的CP端相连。
每当低位触发器的状态由1变0时,即输出一负跳变脉冲时,高位触发器翻转。
各触发器置0端R D并联,作为清0端,清0后,使触发器初态为0000。
当第一个计数脉冲输入后,脉冲后沿使F0的Q0由0变1,F1、F2、F3均保持0态,计数器的状态为0001;当图1 4位异步二进制加法计数器第二个计数脉冲输入后,Q0由1变为0,但Q0的这个负跳变加至F1的CP端,使Q1由0变为1,而此时F3、F2仍保持0状态,计数器的状态为0010。
依此类推,对于F0来说,每来一个计数脉冲后沿,Q0的状态就改变,而对于F1、F2、F3来说,则要看前一位输出端Q是否从1跳到0,即后沿到来时,其输出端的状态才改变,否则Q1、Q2、Q3端的状态同前一个状态一样。
这样在第15个计数脉冲输入后,计数器的状态为1111,第16个计数脉冲输入,计数器恢复为0000。
由上述分析可知,一个4位二进制加法计数器有24=16种状态,每经过十六个计数脉冲,计数器的状态就循环一次。
通常把计数器的状态数称之为计数器的进制数(或称计数器的模),因此,4位二进制计数器也可称之为1位十六进制(模16)计数器。
表1所示为4位二进制加法计数器的状态表。
常用计数器详情介绍

无
异步(低电平有效)
单时钟可逆 4 位二进制计数器
无
异步(低电平有效)
双时钟可逆十进制计数器 异步(高电平有效) 异步(低电平有效)
双时钟可逆 4 位二进制计数器 异步(高电平有效) 异步(低电平有效)
二-五-十进制“加” 计数器 异步(高电平有效) 预置 9,异步(高电平有效)
二-八-十六进制“加” 计数器 异步(高电平有效)
输出
工作模式
CR LD ET EP CP D3 D2 D1 D0 Q3 Q2 Q1 Q0
0 × × × × × × × × 0 0 0 0 异步清零
1 0 × × ↑ D C B A D C B A 同步置数
1 1 0 × × × × × × 保 持 数据保持
1 1 × 0 × × × × × 保 持 数据保持
在时钟脉冲作用下,顺7序413地8 使每个输出1端输出Q3Q节2Q1拍Q0脉冲,
用以协调系统各部G分1 G2的AG2工B 作A2 A1 A0
RCO 74161
ET 1 EP
∧
1 00
RD LD D3 D2 D1 D0 CP
CP
1
CP Q0 Q1 Q2 Y0 Y1 Y2
Y3 Y4 Y5 Y6 Y7
LD Q 0 nQ 3 nQ 0 nQ 3 n
时序图
完整状态转换图
用RCO端来实现
(2)异步反馈置数法
例5-16 用集成计数器74X193和必要的门电路组成10进制计 数器,要求用反馈置数法实现。
逻辑电路图
计数脉冲 1
1
1
&
0
0
完整的状态图
例5-17 用74X160组成48进制计数器。
数字电路实验3计数器

实验八计数器一、实验目的1.熟悉由集成触发器构成的计数器电路及其工作原理。
2.熟悉掌握常用中规模集成电路计数器及其应用方法。
二、实验原理和电路所谓计数,就是统计脉冲的个数,计数器就是实现“计数”操作的时序逻辑电路。
计数器的应用十分广泛,不仅用来计数,也可用作分频、定时等。
计数器种类繁多。
根据计数体制的不同,计数器可分成二进制(即2”进制)计数器和非二进制计数器两大类。
在非二进制计数器中,最常用的是十进制计数器,其它的一般称为任意进制计数器。
根据计数器的增减趋势不同,计数器可分为加法计数器—随着计数脉冲的输入而递增计数的;减法计数器—随着计数脉冲的输入而递减的;可逆计数器—既可递增,也可递减的。
根据计数脉冲引入方式不同,计数器又可分为同步计数器—计数脉冲直接加到所有触发器的时钟脉冲(CP)输入端;异步计数器—计数脉冲不是直接加到所有触发器的时钟脉冲(CP)输入端。
1.异步二进制加法计数器异步二进制加法计数器是比较简单的。
图1.8.1(a)是由4个JK(选用双JK74LS112)触发器构成的4位二进制(十六进制)异步加法计数器,图1.8.1(b)和(c)分别为其状态图和波形图。
对于所得状态图和波形图可以这样理解:触发器FFO(最低位)在每个计数沿(CP)的下降沿(1 → 0)翻转,触发器FF1的C P端接FF0的Q0端,因而当FFO(Q O)由1→ 0时,FF1翻转。
类似地,当FF1(Q1)由1→0时,FF2翻转,FF2(Q2)由1→0时,FF3翻转。
4位二进制异步加法计数器从起始态0000到1111共十六个状态,因此,它是十六进制加法计数器,也称模16加法计数器(模M=16)。
从波形图可看到,Q0 的周期是CP周期的二倍;Q1是Q0的二倍,CP的四倍;Q2是Q1 的二倍,Q0的四倍,CP的八倍;Q3是Q2的二倍,Q1的四倍,Q0的八倍,CP的十六倍。
计数器知识点总结

计数器知识点总结一、计数器的原理1. 计数器的定义计数器是一种能够记录和显示物体个数或事件次数的装置。
在数字电子系统中,计数器是用来对发生的事件次数进行计数和记录的重要电子组件。
它可以通过输入信号触发,输出特定的计数信号,用于控制其他电路或设备的工作。
2. 计数器的工作原理计数器的工作原理主要涉及触发器、计数信号输入、控制信号输入和计数信号输出等方面。
当接收到计数信号输入时,计数器会相应地进行计数,并在符合设定条件时产生计数信号输出。
计数器通常采用二进制计数方式,可实现十进制、十六进制等不同计数方式。
3. 计数器的基本原理计数器由触发器、译码器、计数器控制逻辑、时钟信号和复位信号等多个部分组成。
其中,触发器用于存储和转移计数值,译码器用于将计数信号转换成输出信号,计数器控制逻辑用于对计数器进行控制和管理,时钟信号用于驱动计数器进行计数,复位信号用于将计数器清零。
二、计数器的类型1. 按工作方式划分计数器根据工作方式的不同,可以分为同步计数器和异步计数器两种类型。
同步计数器是指各级计数器都由同一个时钟信号驱动,计数过程是同步进行的。
它的优点是结构简单,易于控制,适用于需要高精度计数的场合。
异步计数器是各级计数器由不同的时钟信号驱动,计数过程是异步进行的。
它的优点是速度快,适用于需要高速计数的场合。
2. 按计数范围划分计数器根据计数范围的不同,可以分为二进制计数器、十进制计数器和十六进制计数器等多种类型。
二进制计数器是指计数器以二进制方式进行计数,适用于数字电子系统中常用的计数方式。
十进制计数器是指计数器以十进制方式进行计数,适用于人们习惯的计数方式。
十六进制计数器是指计数器以十六进制方式进行计数,适用于较大计数范围的计数方式。
3. 按应用场景划分计数器根据应用场景的不同,可以分为通用计数器、频率计数器、脉冲计数器、事件计数器等多种类型。
通用计数器是常用的通用计数设备,适用于各种计数场合。
频率计数器是用于测量信号频率的计数器,适用于频率测量场合。
数字电路第6章习题参考答案

电路 如图
1010
1001
1000 0111 0110 (b)
19
利用后十一个态,反馈置位信号直接由进位端Oc=QDQCQBQA 引 入,预置数为16-11=5=0101,状态迁移关系如下:
QDQCQBQA 0101
0110 0111
1000
1001 1010 电路 如图
1111
1110
1101
1100
励议程和时钟议程为:F1:(LSB) CP1=CP,J1=Q4,K1=1(书上有错)
F2:
CP2=Q1,J2=K2=1
F3:
CP3=Q2,J3=K3=1
F4:(MSB) CP4=CP,J4=Q1Q2Q3,K4=1
要求:(1)画出该计数器逻辑电路图;
(2)该计数器是模几计数器;
(3)画出工作波形图(设电路初始状态为0000)。
01 01 01 01
00 00 10 10
00 00
3
1001
1010
1111
0000 0001 0010 0011
1000
1011
1100
0100
1101
1110
0111 0110 0101
(3)画出工作波形图(设电路初始状态为0000)。
4
6.3 设计一个计数电路,在CP脉冲作用下,3个触发器QA,QB,QC 及输出C的波形图如图所示(分别选用JK触发器和D触发器)。 QC为高位, QA为低位。
00 1 1 X 0 01 0 0 X X
11 0 0 X X 10 1 1 X X
Q 2n1Q 1nQ 2nQ 1nQ 2n
J 4 Q3nQ2 nQ1n K 4 1 J 3 Q2 nQ1n K 3 Q2 nQ1n J 2 K 2 Q1n
计数器

J0 K0 1
J 2 K 2 Q0 Q1
J1 K1 Q0 J 3 K 3 Q0 Q1 Q2
就构成了4位二进制同步减法计数器。
(3)二进制同步可逆计数器
将加法计数器和减法计数器合并起来,并引入一加/减控制信号X便构 成4位二进制同步可逆计数器,各触发器的驱动方程为:
J0 K0 1
0100
0101
0110
0111
1000
在异步计数器中,高位触发器的状态翻转必须在相邻触发器产生进位信号 (加计数)或借位信号(减计数)之后才能实现,所以工作速度较低。为
了提高计数速度,可采用同步计数器。
2.二进制同步计数器
(1)二进制同步加法计数器 由于计数器的翻 转规律性较强,只需 用“观察法”就可设 计出电路: 因为是“同步”方式, 所以将所有触发器的 CP端连在一起,接计 数脉冲。 然后分析状态图,
2.8421BCD码异步十进制加法计数器
Q3 Q2 Q1 FF 2 Q 1J Q Q0 1 FF 3 Q 1J & FF 1 1J Q FF0 1J C1 CP 计数脉冲 1K R CR 清零脉冲
∧
∧
∧
C1
C1
C1
1K R
1K R
1K R
用前面介绍的异步时序逻辑电路分析方法对该电路进行分析: (1)写出各逻辑方程式。 ①时钟方程: CP0=CP (时钟脉冲源的下降沿触发。) CP1=Q0 (当FF0的Q0由1→0时,Q1才可能改变状态。) CP2=Q1 (当FF1的Q1由1→0时,Q2才可能改变状态。)
n n n n n n Q2 Q1 Q0 Q3 Q0 Q3
Q2
n 1
n n n n Q1nQ0 Q2 Q1nQ0 Q2
计数器的原理

计数器的原理计数器是数字电路中广泛使用的逻辑部件,是时序逻辑电路中最重要的逻辑部件之一。
计数器除用于对输入脉冲的个数进行计数外,还可以用于分频、定时、产生节拍脉冲等。
计数器按计数脉冲的作用方式分类,有同步计数器和异步计数器;按功能分类,有加法计数器、减法计数器和既具有加法又有减法的可逆计数器;按计数进制的不同,又可分为二进制计数器、十进制计数器和任意进制计数器。
一、计数器的工作原理1、二进制计数器(1)异步二进制加法计数器图1所示为用JK触发器组成的4位异步二进制加法计数器逻辑图。
图中4个触发器F0~F3均处于计数工作状态。
计数脉冲从最低位触发器F0的CP端输入,每输入一个计数脉冲,F0的状态改变一次。
低位触发器的Q端与高位触发器的CP端相连。
每当低位触发器的状态由1变0时,即输出一负跳变脉冲时,高位触发器翻转。
各触发器置0端R D并联,作为清0端,清0后,使触发器初态为0000。
当第一个计数脉冲输入后,脉冲后沿使F0的Q0由0变1,F1、F2、F3均保持0态,计数器的状态为0001;当图1 4位异步二进制加法计数器第二个计数脉冲输入后,Q0由1变为0,但Q0的这个负跳变加至F1的CP端,使Q1由0变为1,而此时F3、F2仍保持0状态,计数器的状态为0010。
依此类推,对于F0来说,每来一个计数脉冲后沿,Q0的状态就改变,而对于F1、F2、F3来说,则要看前一位输出端Q 是否从1跳到0,即后沿到来时,其输出端的状态才改变,否则Q1、Q2、Q3端的状态同前一个状态一样。
这样在第15个计数脉冲输入后,计数器的状态为1111,第16个计数脉冲输入,计数器恢复为0000。
由上述分析可知,一个4位二进制加法计数器有24=16种状态,每经过十六个计数脉冲,计数器的状态就循环一次。
通常把计数器的状态数称之为计数器的进制数(或称计数器的模),因此,4位二进制计数器也可称之为1位十六进制(模16)计数器。
表1所示为4位二进制加法计数器的状态表。
数字电路技术实验之计数器

实验七计数器一、实验目的1. 熟悉中规模集成计数器的逻辑功能及使用方法。
2. 掌握用中规模集成计数器构成任意进制计数器的方法。
3. 学习用集成触发器构成计数器的方法。
二、实验原理计数器是一个用以实现计数功能的时序部件,它不仅可以用来对脉冲计数,还常用作数字系统的定时、分频和执行数字运算以及其他特定的逻辑功能。
计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。
计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。
计数器种类很多,按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器;根据计数进制的不同,分为二进制计数器、十进制计数器和任意进制计数器;根据计数的增减趋势,又分为加法、减法和可逆计数器;如按预置和清除方式来分,则有并行预置、直接预置、异步清除和同步清除等;按权码来分,则有“8421”码,“5421”码、余“3”码等计数器及可编程序功能计数器等等。
目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数电路。
使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。
1.十进制计数器74LS90(二、五分频)74LS90是模二-五-十异步计数器。
具有计数、清除、置9功能。
74LS90包含M=2和M=5两个独立的下降沿触发计数器,清除端和置9端两计数器公用,没有预置端。
模2计数器的时钟输入端为A(CP1),输出端为Q A;模5计数器的时钟输入端为B(CP2)。
输出端由高位到低位为Q D、Q C、Q B;异步置9端为S91和S92,高电平有效。
即只要S91·S92=1,则输出Q D Q C Q B Q A为1001;异步清除端为R01和R02,当R01·R02=1,且S91·S92=0时,输出Q D Q C Q B Q A=0000;只有R01·R02=0,S91·S92=0,即两者全无效时,74LS90才能执行计数操作。
1000进制数码管计数器

--1000--进制数码管计数器--顶层文件的VUDL源程序Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity clock isPort(clk:in std_logic;Enable:in std_logic;Sel:out std_logic_vector(2 downto 0);Segment:out std_logic_vector(6 downto 0));End clock;Architecture rt1 of clock isComponent clk_div1000 isPort(clk:in std_logic;Clk_div:out std_logic);End component;Component count24 isPort(enable:in std_logic;Clk0:in std_logic;Qhh:out std_logic_vector(3 downto 0);Qh:out std_logic_vector(3 downto 0);Ql:out std_logic_vector(3 downto 0));End component;Component display isPort(clk:in std_logic;Qhh:in std_logic_vector(3 downto 0);Qh:in std_logic_vector(3 downto 0);Ql:in std_logic_vector(3 downto 0);Sel:out std_logic_vector(2 downto 0);Segment:out std_logic_vector(6 downto 0));End component;Signal qhh:std_logic_vector(3 downto 0);Signal qh:std_logic_vector(3 downto 0);Signal ql:std_logic_vector(3 downto 0);Signal clk0:std_logic;BeginU0:clk_div1000 port map(clk,clk0);U1:count24 port map(enable,clk0,qhh,qh,ql);U2:display port map(clk,qhh,qh,ql,sel,segment);End rt1;--频率源模块的VHDL源程序Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity clk_div1000 isPort(clk:in std_logic;Clk_div:out std_logic);End clk_div1000;Architecture rt2 of clk_div1000 isSignal q_tmp:integer range 0 to 999; BeginProcess(clk)BeginIf(clk'event and clk='1') thenIf(q_tmp=999) thenQ_tmp<=0;ElseQ_tmp<=q_tmp+1;End if;End if;End process;Process(clk)BeginIf(clk'event and clk='1') thenIf(q_tmp=999) thenClk_div<='1';ElseClk_div<='0';End if;End if;End process;End rt2;--计数模块的VHDL源程序Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity count24 isPort(enable:in std_logic;Clk0:in std_logic;Cout:out std_logic;qhh:out std_logic_vector(3 downto 0);ql:out std_logic_vector(3 downto 0));End count24;Architecture rt3 of count24 isSignal qhh_temp ,qh_temp,ql_temp:std_logic_vector(3 downto 0);BeginProcess(clk0)BeginIf(clk0'event and clk0='1') thenIf(enable='1') thenIf(qhh_temp="1001" and qh_temp="1001" and ql_temp="1001") thenQhh_temp<="0000";Qh_temp<="0000";Ql_temp<="0000";ElseIf(qh_temp="1001" and ql_temp="1001") thenQl_temp<="0000";Qh_temp<= "0000";Qhh_temp<=qhh_temp+1;ElseIf(ql_temp="1001") thenQl_temp<="0000";Qh_temp<=qh_temp+1;ElseQl_temp<=ql_temp+1;End if;End if;End if;End if;End if;Qhh<=qhh_temp;Qh<=qh_temp;Ql<=ql_temp;End process;End rt3;--显示模块的VHDL源程序子模块1Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity count8 isPort(clk:in std_logic;End count8;Architecture rt4 of count8 isSignal sel_tmp:std_logic_vector(2 downto 0); BeginProcess(clk)BeginIf(clk' event and clk='1') thenIf(sel_tmp="111") thenSel_tmp<=(others=>'0');ElseSel_tmp<=sel_tmp+1;End if;End if;Sel<=sel_tmp;End process;End rt4;--子模块2Library ieee;Use ieee.std_logic_1164.all;Entity time_choose isPort(sel:in std_logic_vector(2 downto 0);qhh:in std_logic_vector(3 downto 0);qh:in std_logic_vector(3 downto 0);ql:in std_logic_vector(3 downto 0);q:out std_logic_vector(3 downto 0));end time_choose;architecture rt5 of time_choose isbeginprocess(sel,qh,ql)begincase sel iswhen "000"=>q<=ql;when "001"=>q<=qh;when "010"=>q<=qhh;when others =>q<="HHHH";end case;end process;end rt5;--模块3Library ieee;Use ieee.std_logic_1164.all;Entity seg7 isPort(q:in std_logic_vector(3 downto 0);segment:out std_logic_vector(6 downto 0)); end seg7;architecture rt6 of seg7 isbeginprocess(q)begincase Q iswhen "0000"=>segment<="0111111";when "0001"=>segment<="0000110";when "0010"=>segment<="1011011";when "0011"=>segment<="1001111";when "0100"=>segment<="1100110";when "0101"=>segment<="1101101";when "0110"=>segment<="1111101";when "0111"=>segment<="0100111";when "1000"=>segment<="1111111";when "1001"=>segment<="1101111";when others=>segment<="0000000"; end case;end process;end rt6;--模块3Library ieee;Use ieee.std_logic_1164.all;Entity display isPort(clk:in std_logic;sel:out std_logic_vector(2 downto 0);Qhh:in std_logic_vector(3 downto 0);Qh:in std_logic_vector(3 downto 0);Ql:in std_logic_vector(3 downto 0);segment:out std_logic_vector(6 downto 0)); end display;architecture rt7 of display iscomponent count8 isport(clk:in std_logic;sel:out std_logic_vector(2 downto 0));end component;component time_choose isport(sel:in std_logic_vector(2 downto 0);Qhh:in std_logic_vector(3 downto 0);Qh:in std_logic_vector(3 downto 0);Ql:in std_logic_vector(3 downto 0);q:out std_logic_vector(3 downto 0));end component;component seg7 isport(q:in std_logic_vector(3 downto 0);segment:out std_logic_vector(6 downto 0)); end component;signal sel_tmp:std_logic_vector(2 downto 0); signal q: std_logic_vector(3 downto 0);signal segment_tmp: std_logic_vector(6 downto 0); beginu0:count8 port map(clk,sel_tmp);sel<=sel_tmp;u2:time_choose port map(sel_tmp,qhh,qh,ql,q);u3:seg7 port map(q,segment_tmp);segment<=segment_tmp;end rt7;。
《任意进制计数器》习题及参考答案

任意进制计数器习题及参考答案习题1利用已有的集成计数器构成任意进制计数器的方法有哪些?试举例说明?解(1)直接选用已有的计数器。
例如,欲构成十二分频器,可直接选用十二进制异步计数器7492;(2)用两个模小的计数器串接,可以构成模为两者之积的计数器。
例如,用模6和模10计数器串接起来,可以构成模60计数器;(3)利用反馈法改变原有计数长度。
例如,用模10的计数器可以用反馈法构成模6的计数器。
如下图所示:习题2利用两片74LS160和必要的门电路构成五十进制计数器。
解中规模集成电路74LS160是同步十进制计数器。
用两片74LS160构成五十进制计数器的电路如下图示。
有关问题说明如下:(1)片1接成十进制N1,片2接成五进制N2,整个电路N1×N2=50即构成五十进制计数器。
N进制的计数器如由多片组成,其构成方法可以是串行进位方式或并行进位方式,上图采用的是串行进位方式。
(2)片1的EP和ET(教材用CEP和CET表示)恒为1,工作在计数状态。
片1每计到9(1001)时,进位输出端C(教材用TC)变为高电平,片2开始计数。
到0(0000)状态。
同时,在Q2端产生一个进位信号。
对整个电路而言,即是逢五十进一。
习题3 用74LS161二进制同步计数器实现模5计数器,请用两种方法。
解模5计数器的电路如下图所示。
中规模集成电路74LS161是4位二进制同步计数器,其功能同于74LS160(同步十进制计数器)。
图(a)为置零法(或称复位法)。
当输出为0100时,非门输出低电平使LD=0,输出端Q3 Q2 Q1 Q0=0000。
图(b)为置数法(或称置位法)。
当输出为1111时,进位端产生一个高电平进位信号,经反相器后使LD=0,数据输入端的预置数1011被置入。
于是计数器又将按1011 1100 1101 1110 1111的顺序进行计数。
请读者自行分析图(c)的工作原理。
习题4 74LS290的几种连接方式如下图所示,试分析图题6(a)(b)(c)(d)各为几分频电路。