第 148 篇
考研数电·零基础讲义 第16讲(中)|集成计数器 74HC161 与 74HC160
考研数电·零基础讲义 · 第 16 讲(中)|集成计数器 74HC161 与 74HC160 学完这一讲,你能看懂 74HC161、74HC160 的逻辑符号和功能表,说清"异步清零""同步置数""保持""计数"各在什么条件下发生,会用进位输出 C 把两片、三片级联起来,并知道 74HC191/190 这类加/减计数器和它们的关键区别。预计用时 80–100 分钟。
本讲地图
- 为什么用集成计数器:上一讲是自己用触发器搭,实际工程和考试设计题几乎都用现成的中规模芯片。
- 74HC161:4 位同步二进制(十六进制)加法计数器。逐个讲清每个引脚:、、EP、ET、CLK、、、C。
- 功能表与优先级:清零是异步的(不等时钟),置数是同步的(等 CLK 上升沿)——这是下一讲"置零法/置数法"成败的关键,必须吃透。
- 74HC160:功能表和 161 完全相同,只是十进制,进位在 1001 时出现。
- 级联:并行进位、串行进位,ET 为什么能"链式"传进位。
- 74HC191/190 简介:可逆计数器,注意它们的置数是异步的。
- 华师怎么考:2026 回忆题第 8 题"用两片 74HC161 设计模 28 计数器,用两种不同方法",前提就是本讲的功能表。教材对应第 6 章 6.3.2 节(表 6.3.4、表 6.3.5,例 6.3.3)。
前置知识
- 同步二进制计数器、同步十进制计数器的原理(见第 16 讲(上))。
- 同步/异步的含义:同步 = 跟着时钟沿动作;异步 = 不看时钟,信号一到立刻动作(见第 13 讲)。
- 低电平有效、上划线的读法(见第 06 讲、第 09 讲)。
一、为什么要用集成计数器
1.1 大白话
上一讲我们像"自己焊收音机"一样,用 4 个 T 触发器加几个与门搭出了十六进制计数器。能用,但每次都搭很麻烦。
芯片厂家干脆把"4 个触发器 + 控制门"做进一块芯片,还顺手加了几个很实用的功能按钮:
- 一键清零(让数字马上回到 0000);
- 一键置数(把任意一个 4 位数"装"进去,下次从这个数开始数);
- 暂停(保持不动);
- 进位输出(数满一圈时通知下一片)。
有了这些按钮,我们就能用它拼出任意进制的计数器(下一讲)。最常用的两块就是 74HC161 和 74HC160。
型号读法:74 是系列号;HC 表示高速 CMOS;161 是功能编号。教材里写的 74161、74LS161、74HC161 逻辑功能和引脚排列都相同,只是内部工艺不同。
二、74HC161 的引脚:每个端子干什么
图 1:74HC161 的逻辑符号。左边是控制端,上边是置数用的数据端,右边是输出
2.1 逐个拆解
| 端子 | 读法 | 作用 | 有效电平 |
|---|---|---|---|
| CLK | "时钟" | 计数脉冲输入,上升沿动作 | ↑ |
| "R D 非" | 异步置零(清零):一变低,4 个触发器立刻全变 0,不管时钟 | 低电平有效 | |
| "L D 非"(Load) | 同步置数:为低时,等下一个 CLK 上升沿把装入 | 低电平有效 | |
| "D 零到 D 三" | 置数时要装进去的数据,是最高位 | — | |
| EP、ET | "E P""E T"(Enable) | 工作状态控制(计数使能)。两个都为 1 才计数;任一为 0 就保持 | 高电平有效 |
| — | 计数器状态输出,是最高位 | — | |
| C | "进位" | 进位输出:,即计到 1111 且 ET=1 时为 1 | 高电平有效 |
符号说明:
- 上划线(或教材写法、)表示"低电平有效":要让它起作用,得给它 0。逻辑符号上用一个小圆圈表示。
- CLK 处的小三角表示边沿触发;没有小圆圈表示上升沿。
2.2 EP 和 ET 有什么不同?
计数和保持这件事上,EP 和 ET 是"平等"的:两个都是 1 才计数。区别只有一个:ET 还控制进位输出 C。
- EP=0、ET=1:保持,C 也保持(如果正停在 1111,C 仍为 1);
- ET=0:保持,而且 C 强制为 0。
这个区别是为多片级联设计的(第五节会看到)。
2.3 数据手册里的名字(了解)
不同厂家的手册喜欢用别的名字,看到要认得:常写作或;写作或;EP/ET 写作 ENP/ENT 或 CEP/CET;C 写作 RCO 或 TC;有时写作 A~D,写作。
常见 16 脚双列直插封装的引脚号如下(以具体数据手册为准,考试作图一般只画逻辑符号、标端子名即可):
| 引脚 | 端子 | 引脚 | 端子 |
|---|---|---|---|
| 1 | (清零) | 9 | (置数) |
| 2 | CLK | 10 | ET |
| 3 | 11 | ||
| 4 | 12 | ||
| 5 | 13 | ||
| 6 | 14 | ||
| 7 | EP | 15 | C(进位) |
| 8 | GND(地) | 16 | (电源) |
三、74HC161 的功能表(核心中的核心)
3.1 功能表(以教材表 6.3.4 为准)
| CLK | EP | ET | 工作状态 | ||
|---|---|---|---|---|---|
| × | 0 | × | × | × | 置零(异步) |
| ↑ | 1 | 0 | × | × | 预置数(同步) |
| × | 1 | 1 | 0 | 1 | 保持 |
| × | 1 | 1 | × | 0 | 保持(但 C=0) |
| ↑ | 1 | 1 | 1 | 1 | 计数 |
"×"表示"取什么都行,不影响结果";"↑"表示"要有上升沿才动作"。
3.2 逐行拆解:从上往下就是优先级
把功能表从上往下读,它其实是一串"如果……否则……":
- 如果 → 立刻清零。其它所有输入(包括 CLK)都是 ×,管不着它。清零优先级最高。
- 否则如果 → 等 CLK 上升沿,把装进去。注意此时 EP、ET 都是 ×:就算 EP=ET=0,置数照样进行。
- 否则如果 EP、ET 有一个为 0 → 保持。
- 否则()→ 每个上升沿加 1,按循环。
3.3 "异步清零" vs "同步置数":一定要分清
大白话:
- 异步清零像"急停按钮":一按(变低)就停,不用等任何人发口令。所以功能表里清零那一行 CLK 是"×"。
- 同步置数像"排队办事":你把材料()递上去、举手示意(),但必须等叫号(CLK 上升沿)才给你办。所以置数那一行 CLK 是"↑"。
为什么这对设计至关重要?(下一讲详细讲,这里先打个预防针)
- 用异步清零做 M 进制:状态一到就被立刻清掉,这个状态只"闪"一下(叫过渡状态),所以要译码的是。
- 用同步置数做 M 进制:后还要等一个时钟,所以要从前一个状态译码,是稳定存在的。
教材特别提醒:有的计数器(如 74LS162、74LS163)是同步置零的,变低后要等下一个 CLK 才清零,和 74161/74160 的异步置零不同。考试遇到 161/160,一律按"清零异步、置数同步"处理。
3.4 芯片里面是怎么做到的?(帮助理解,不必死记)
教材图 6.3.11 给出了 74161 的内部逻辑图,大意是:
- 4 个触发器的异步置零端全部连在上,所以时 4 个触发器"同时、立刻"被清零,和时钟无关——这就是"异步"的物理来源。
- 时,内部门电路把每个触发器的 J、K 改成由对应的决定(例如时),但触发器本身还是要等 CLK 上升沿才动作——这就是"同步"置数的来源。
- 、EP=0 或 ET=0 时,内部门把各触发器的 J、K 都变成 0,于是来了时钟也不变,这就是"保持"。
- 4 个控制条件都满足时,内部就是上一讲的同步二进制加法计数器(、……)。
所以,功能表里的每一行,都对应着内部电路的一种"开关组合"。理解了这一点,功能表就不用硬背了。
3.5 进位输出 C
- 计数时,只有在 1111 这一个状态 C=1,其余 15 个状态 C=0;
- 第 16 个脉冲到来,状态回到 0000,C 从 1 跳回 0。可以用 C 的高电平(做下一片的使能),也可以用 C 的下降沿(经反相器变成上升沿,做下一片的时钟)作为进位信号;
- ET=0 时 C 一定为 0。
3.6 例题 1:按功能表逐拍推演
题:74HC161 现态,。依次施加下面的输入,写出每一步之后的状态:
① ,来一个 CLK↑; ② 同①,再来一个 CLK↑; ③ ,来一个 CLK↑; ④ ,来一个 CLK↑; ⑤ ,来一个 CLK↑; ⑥ 在两个时钟之间,短暂变为 0。
解(每一步都先看,再看,再看 EP、ET):
- ①:不清零;不置数;EP=ET=1 → 计数:。
- ②:计数:。
- ③:EP=0 → 保持:仍为。
- ④: → 置数(虽然 EP=ET=0,但置数优先于使能)。上升沿到来时装入:变为。
- ⑤:计数:。
- ⑥: → 不用等时钟,立刻变为。
各步结果:(Python 按功能表模拟核对一致)。对应的时序图:
图 2:例题 1 的时序。注意的低电平要"跨过"一个上升沿才置数;而一变低,Q 立即变 0,与时钟无关
3.7 例题 2:几个"抠字眼"的判断
题:判断对错并说明理由。
(1) 74HC161 的时,立即等于。 (2) 、同时出现时,计数器装入 D 的值。 (3) 74HC161 停在 1111,EP=0、ET=1,此时 C=1。 (4) 74HC161 停在 1111,EP=1、ET=0,此时 C=1。
解:
(1) 错。置数是同步的,要等 CLK 上升沿。 (2) 错。清零优先级最高,结果是 0000。 (3) 对。,EP 不参与 C。 (4) 错。ET=0,C 被强制为 0。
⚠️ 易错点:
- "异步"的意思是"不等时钟",不是"随时乱清"——清零只在期间起作用,回到 1 后又可以正常工作。
- 置数时 EP、ET 是"×",别以为要先让它们为 1。
- 、都是低电平有效,不用它们时要接高电平,不能悬空乱接。
- 数据端是最高位,装数时别把顺序写反。
四、74HC160:十进制版的 161
4.1 和 161 的异同
教材原话的意思是:74160 的各输入端功能和用法与 74161 相同,功能表也相同,不同的只是 74160 是十进制而 74161 是十六进制。
| 对比项 | 74HC161 | 74HC160 |
|---|---|---|
| 进制 | 十六进制(4 位二进制) | 十进制(8421 BCD) |
| 计数循环 | (0~15) | (0~9) |
| 清零 | 异步,低有效 | 相同 |
| 置数 | 同步,低有效 | 相同 |
| 保持、使能 | EP、ET | 相同 |
| 进位 C | 1111 且 ET=1 时为 1 | 1001 且 ET=1 时为 1 |
4.2 例题 3:74HC160 的计数与进位
题:74HC160 从 0000 开始计数(),C 在哪一拍为 1?第 10 个脉冲后状态是什么?
解:逐拍:,第 9 个脉冲后进入 1001,此时 C=1;第 10 个脉冲后回到 0000,C 变回 0。所以每 10 个脉冲 C 出现一次高电平——十分频。
⚠️ 易错点:74HC160 的 C 是从 1001 状态译出来的。下一讲用 160 做任意进制时,如果有效循环里没有 1001,C 就永远不会出现,进位得另想办法。
五、多片级联:一片不够,两片来凑
一片 161 最多十六进制,一片 160 最多十进制。要更大的,就把几片连起来。最基本的有两种方式(任意进制的整体置零、整体置数留到下一讲)。
5.1 并行进位(同步级联)
大白话:两片接同一个时钟,低位片数满一圈时"举手"(C=1),高位片看到举手才允许在下一个时钟加 1。
接法:
- 两片的 CLK 接同一个计数脉冲;
- 低位片 EP=ET=1(一直计数);
- 低位片的 C 接高位片的 EP 和 ET;
- 两片的、都接 1。
图 3:两片 74HC161 并行进位,构成 16×16=256 进制计数器
工作过程:低位片从 0000 数到 1111 期间,前 15 拍 C(1)=0,高位片保持;低位片停在 1111 时 C(1)=1,下一个上升沿到来,低位片回到 0000,高位片同时加 1。这样高位片每 16 拍加 1,整体是进制,可以把"高位片的 4 位 + 低位片的 4 位"(高位片在前)连起来看成一个 8 位二进制数,从 0 数到 255。
同理,两片 74HC160 并行进位就是进制(教材例 6.3.3),高位片是"十位"、低位片是"个位",正好是 BCD 码的 00~99。
5.1.1 例题:两片 160 并行级联时,"39 → 40"是怎么发生的
题:两片 74HC160 并行进位(接法同图 3,只是芯片换成 160),当前高位片 0011、低位片 1001(即 39)。来一个计数脉冲后两片各是多少?如果当前是 37 呢?
解:
- 当前 39:低位片是 1001,且 ET(1)=1,所以 C(1)=1 → 高位片 EP=ET=1,处于计数状态。上升沿到来:低位片,高位片。结果高位 0100、低位 0000,即 40。✔
- 当前 37:低位片 0111,C(1)=0 → 高位片 EP=ET=0,保持。上升沿到来:低位片,高位片仍 0011。结果 38。✔
可见高位片只在低位片"满 9"的那一拍才加 1,和我们手算十进制进位完全一样。(Python 模拟两片 160 并行进位为 00~99 共 100 个状态的循环。)
5.2 三片以上:为什么要用 ET 串成"链"
三片 161 并行时,第三片应该在"前两片都是 1111"时才加 1。巧妙的接法是:
- 第一片:EP=ET=1;
- 第二片:ET 接第一片的 C,EP 接 1(或也接 C(1));
- 第三片:ET 接第二片的 C,EP 接 1。
因为第二片的进位 C(2) 等于"ET(2) 与上第二片的",而 ET(2) 接的就是 C(1),所以 C(2)=1 自动就意味着"第一片全 1 且第二片全 1"。这就是 ET 要参与 C 的原因:进位信号可以一级一级串下去。三片总共进制(Python 模拟验证为 4096 个状态循环)。
5.3 串行进位(异步级联)
接法:两片 EP=ET=1 都一直计数;低位片的 C 经过一个反相器接到高位片的 CLK。
为什么要反相:低位片计到 1111 时 C 变高,反相后高位片 CLK 变低;下一个脉冲到来,低位片回到 0000,C 变低,反相后高位片 CLK 出现一个上升沿——高位片正好加 1。这样两片不是同时动作的,所以叫串行(异步)进位。速度比并行进位慢一些。
5.4 例题 4:并行级联的分频
题:两片 74HC161 按图 3 并行级联,计数脉冲频率 1 MHz。高位片输出的频率是多少?C(2) 多久出现一次高电平?
解:整体是 256 进制,高位片是整个 8 位数的最高位,频率。C(2) 只在整体为 255(两片都是 1111)时为 1,每 256 个脉冲出现一次,持续一个时钟周期。
⚠️ 易错点:并行进位时,低位片的 C 要接到高位片的 EP 和 ET(至少要接 ET 或二者都接),不能接到高位片的 CLK;串行进位才接 CLK,而且要经反相器。
六、74HC191 / 74HC190:可逆计数器简介
6.1 74HC191:单时钟同步十六进制加/减计数器
| 端子 | 作用 |
|---|---|
| 计数脉冲输入 | |
| 使能控制,时保持,时允许计数 | |
| 预置数,异步:时 立刻置入,不受时钟控制 | |
| 加/减控制:0 加法、1 减法 | |
| 进位/借位输出(最大/最小输出):加法且 1111 时为 1;减法且 0000 时为 1 | |
| 串行时钟输出,供多片级联用 |
功能表(教材表 6.3.5):
| 工作状态 | ||||
|---|---|---|---|---|
| × | 1 | 1 | × | 保持 |
| × | × | 0 | × | 预置数(异步) |
| ↑ | 0 | 1 | 0 | 加法计数 |
| ↑ | 0 | 1 | 1 | 减法计数 |
6.2 74HC190:十进制版的 191
74HC190 是单时钟同步十进制加/减计数器,各端功能、功能表与 74HC191 相同,只是按十进制计数。
6.3 双时钟的 74HC193(了解)
如果加法脉冲和减法脉冲来自两个不同的源,就用双时钟结构:来脉冲时加、来脉冲时减。它有异步置零(有效,注意是高电平有效)和异步预置数。
6.4 例题 5:74HC191 的减法计数与借位
题:74HC191 现态 0010,、、。连续来 3 个上升沿,写出状态序列;在哪个状态为 1?若在某一时刻令、,状态何时变化?
解:
- → 减法:。
- 减法时在 0000 状态为 1(表示"再减就要借位了"),所以第 2 个脉冲之后、第 3 个脉冲之前。
- 74HC191 的置数是异步的:一变低,状态立刻变为 0110,不等时钟。这一点和 74HC161 正好相反。
6.5 一张表看清"同步/异步"
| 芯片 | 清零 | 置数 |
|---|---|---|
| 74HC161 / 74HC160 | 异步() | 同步( + CLK↑) |
| 74LS163 / 74LS162 | 同步 | 同步 |
| 74HC191 / 74HC190 | 无清零端 | 异步(立即) |
| 74HC193 | 异步() | 异步 |
⚠️ 易错点:同样叫"置数法",用 161 时从译码(同步,等下一个时钟),用 191 时要从译码(异步,立刻),且只是过渡状态。下一讲详细讲。
速记卡
| 项目 | 74HC161 | 74HC160 |
|---|---|---|
| 进制 | 16 | 10 |
| 清零 | 低有效、异步、优先级最高 | 同左 |
| 置数 | 低有效、同步(等 CLK↑),优先于 EP/ET | 同左 |
| 计数 | ,CLK↑ 加 1 | 同左 |
| 保持 | EP、ET 任一为 0;ET=0 时 C=0 | 同左 |
| 进位 C | (1111 时) | 1001 且 ET=1 时为 1 |
| 并行进位 | 共用 CLK;C(低) → EP、ET(高) | 同左 |
| 串行进位 | C(低) 经反相器 → CLK(高) | 同左 |
| 74HC191/190 | 可逆;选加减;使能;置数异步 | — |
自测练习
1. 74HC161 现态 1101,,来一个 CLK 上升沿。状态和 C 各为多少?
答案与提示
ET=0 → 保持,仍为 1101;C 被 ET=0 强制为 0。
2. 74HC161 现态 0011,,令()。在上升沿到来之前状态是多少?上升沿之后呢?
答案与提示
上升沿之前仍是 0011(同步置数要等时钟);上升沿之后变为 1001。
3. 74HC161 处于计数状态,当前 1111。C 为多少?下一个上升沿后状态和 C 各为多少?
答案与提示
当前 C=1;下一拍状态 0000,C=0。
4. 74HC160 处于计数状态,C 为 1 时状态是什么?再来一个脉冲呢?
答案与提示
C=1 时状态为 1001;再来一个脉冲回到 0000,C=0。
5. 两片 74HC161 并行进位级联,计数脉冲 1 MHz,高位片的输出频率是多少?
答案与提示
。
6. 判断:(1) 74HC161 清零要等时钟;(2) 74HC191 置数要等时钟;(3) 74HC161 置数时必须 EP=ET=1。
答案与提示
(1) 错,161 是异步清零;(2) 错,191 的预置数是异步的;(3) 错,置数那一行 EP、ET 都是 ×。
7.(华师设计题风格) 用三片 74HC161 构成同步计数器,要求所有片共用一个时钟,问:各片的 EP、ET、、应如何连接?构成几进制计数器?
答案与提示
三片 CLK 接同一计数脉冲;、全接 1;第一片 EP=ET=1;第二片 ET 接 C(1)、EP 接 1;第三片 ET 接 C(2)、EP 接 1(利用的链式传递)。构成进制计数器(Python 模拟 4096 个状态一循环)。
下一讲预告
第 16 讲(下)进入真正的设计:用置零法、置数法把 161/160 改成任意进制,并完整做一遍 2026 回忆题第 8 题——两片 74HC161 设计模 28 计数器的多种方法。
👉 点击进入下一讲:第16讲(下)|任意进制计数器:置零法、置数法、多片级联
评论
还没有评论。 来写第一条。