第 145 篇

考研数电·零基础讲义 第09讲(下)|译码器

约 19 分钟 6134 字 华南师范大学数字电子技术考研数电零基础讲义

考研数电·零基础讲义 · 第 09 讲(下)|译码器 学完这一讲,你能读懂 3 线-8 线译码器 74HC138 的功能表和三个片选端,会用两片 74HC138 扩展成 4 线-16 线译码器,会用 74HC138 加与非门实现任意三变量逻辑函数(这是大题高频考法),并认识驱动数码管的 BCD-七段显示译码器。预计用时 2~2.5 小时。

本讲地图

  • 译码是编码的反操作:输入一个二进制代码,让对应的那一根输出线"亮起来"。
  • 74HC138:3 个地址输入、8 个低电平有效输出、3 个片选端;输出恰好是全部最小项的"非",所以又叫最小项译码器。
  • 两大用法:①扩展(片选端当额外地址);②实现逻辑函数("最小项 + 与非门")。
  • 显示译码器:把 BCD 码翻译成七段数码管的亮灭信号。
  • 华师怎么考:考纲点名"译码器"。"用 74HC138 和门电路实现某函数""用两片扩展"是典型大题;功能表、片选条件是常见填空。
  • 教材对应:第 4 章 4.4.2 节(译码器),4.5 节例 4.5.2 及"用译码器设计组合电路"部分。

前置知识

  • 最小项mim_i的编号和写法,Y=∑m(⋯ )Y=\sum m(\cdots)(见第 03 讲)。
  • 摩根定理:X⋅Y⋅Z‾=X‾+Y‾+Z‾\overline{X\cdot Y\cdot Z}=\overline{X}+\overline{Y}+\overline{Z}(见第 02 讲下)。
  • 低电平有效、使能端、编码器的概念(见第 09 讲上)。

一、译码是什么

1.1 大白话:银行叫号屏

上一讲的编码器是"给病人发号码牌"。译码器正好反过来,像银行的叫号屏:系统送来一个号码(比如 101),屏幕就把 5 号窗口的灯点亮,其余窗口都不亮。

译码器(Decoder):输入nn位二进制代码,输出2n2^n根线;输入是几,就只让第几根输出线有效。

3 位代码有 8 种,所以有 3 线-8 线译码器;2 位代码对应 2 线-4 线译码器;4 位对应 4 线-16 线。

1.2 译码器用在哪里

  • 存储器的地址译码:计算机里有很多块存储芯片,CPU 送出一个地址,译码器根据地址的高几位"选中"其中一块芯片,其余芯片都不响应。第 22 讲(下)存储器容量扩展时会再见到它。
  • 键盘、指示灯扫描:用 3 根线轮流点亮 8 个指示灯中的一个。
  • 组合逻辑设计:因为它输出全部最小项,可以拼出任意函数(本讲第四节)。
  • 数码显示:广义的译码器还包括把 BCD 码"翻译"成七段亮灭信号的显示译码器(本讲第七节)。

一句话:凡是"根据一个代码,从很多对象中挑出一个"的场合,都用得到译码器。

1.3 先自己设计一个 2 线-4 线译码器

题目:输入A1A0A_1A_0⁠,输出Y0∼Y3Y_0\sim Y_3(高电平有效)。输入是几,Y几=1Y_{几}=1⁠。

真值表:

A1A_1 A0A_0 Y0Y_0 Y1Y_1 Y2Y_2 Y3Y_3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1

写式:每个输出只在一行为 1,所以它就是那一行的最小项:

Y0=A1‾ A0‾=m0,Y1=A1‾A0=m1,Y2=A1A0‾=m2,Y3=A1A0=m3Y_0=\overline{A_1}\,\overline{A_0}=m_0,\quad Y_1=\overline{A_1}A_0=m_1,\quad Y_2=A_1\overline{A_0}=m_2,\quad Y_3=A_1A_0=m_3

画图:两个非门得到A1‾\overline{A_1}⁠、A0‾\overline{A_0}⁠,再用 4 个 2 输入与门。

重要发现:二进制译码器的每个输出就是一个最小项。这一点是后面"用译码器实现任意函数"的根基,请记牢。

如果输出改成低电平有效,把与门换成与非门即可:Y0′=m0‾Y_0'=\overline{m_0}⁠,以此类推。


二、3 线-8 线译码器 74HC138

2.1 引脚一个一个认

3线-8线译码器74HC138:地址依次变化时,对应的一个输出变为低电平(动画) 74HC138 A2 A1 A0 S1 S1=1 S2 S2'=0 S3 S3'=0 Y0 Y0' Y1 Y1' Y2 Y2' Y3 Y3' Y4 Y4' Y5 Y5' Y6 Y6' Y7 Y7' 地址 A2A1A0 是几,就只有 Y几′ 输出低电平(红色),其余为 1 000=0 001=0 010=0 011=0 100=0 101=0 110=0 111=0

图 1:74HC138 逻辑框图。地址A2A1A0A_2A_1A_0依次取 000~111,被选中的输出变为低电平(动画循环播放)

引脚 读法 作用
A2A1A0A_2A_1A_0 A 二、A 一、A 零 地址输入(代码输入),A2A_2是最高位
Y0′∼Y7′Y_0'\sim Y_7' Y 零非~Y 七非 8 个输出,低电平有效:被选中的那根输出 0,其余输出 1
S1S_1 S 一 片选(使能)端,高电平有效
S2′S_2'⁠、S3′S_3' S 二非、S 三非 片选端,低电平有效

片选条件(三个条件同时满足芯片才工作):

S1=1且S2′=0且S3′=0S_1=1\quad\text{且}\quad S_2'=0\quad\text{且}\quad S_3'=0

教材把后两个合写成S2′+S3′=0S_2'+S_3'=0(两个都为 0,它们的"或"才是 0)。只要有一个条件不满足,芯片就被禁止,8 个输出全部为 1。

大白话:三个片选端就像银行开门要三把钥匙——一把要"插上"(⁠S1=1S_1=1⁠),两把要"拔掉"(⁠S2′=S3′=0S_2'=S_3'=0⁠),缺一不可。

2.2 功能表(教材表 4.4.5)

S1S_1 S2′+S3′S_2'+S_3' A2A_2 A1A_1 A0A_0 Y0′Y_0' Y1′Y_1' Y2′Y_2' Y3′Y_3' Y4′Y_4' Y5′Y_5' Y6′Y_6' Y7′Y_7'
0 × × × × 1 1 1 1 1 1 1 1
× 1 × × × 1 1 1 1 1 1 1 1
1 0 0 0 0 0 1 1 1 1 1 1 1
1 0 0 0 1 1 0 1 1 1 1 1 1
1 0 0 1 0 1 1 0 1 1 1 1 1
1 0 0 1 1 1 1 1 0 1 1 1 1
1 0 1 0 0 1 1 1 1 0 1 1 1
1 0 1 0 1 1 1 1 1 1 0 1 1
1 0 1 1 0 1 1 1 1 1 1 0 1
1 0 1 1 1 1 1 1 1 1 1 1 0

2.3 逐行拆解

  • 前两行:片选不满足,芯片禁止,输出全 1。
  • 后八行:芯片工作。地址是几(把A2A1A0A_2A_1A_0当二进制数),就是第几个输出为 0。比如A2A1A0=101A_2A_1A_0=101(即 5),只有Y5′=0Y_5'=0⁠。
  • 工作时任何时刻有且只有一个输出为 0。

2.4 逻辑式:输出 = 最小项的非

芯片工作时(教材记作S=1S=1⁠),

Yi′=mi‾(i=0,1,⋯ ,7)Y_i'=\overline{m_i}\qquad(i=0,1,\cdots,7)

例如Y0′=A2‾ A1‾ A0‾‾=m0‾Y_0'=\overline{\overline{A_2}\,\overline{A_1}\,\overline{A_0}}=\overline{m_0}⁠,Y5′=A2A1‾A0‾=m5‾Y_5'=\overline{A_2\overline{A_1}A_0}=\overline{m_5}⁠。8 个输出正好给出了 3 个变量的全部 8 个最小项(取反形式),所以叫最小项译码器。

2.5 片选在芯片内部是怎么实现的

教材的内部逻辑图里,三个片选端先进入一个门GSG_S⁠,产生内部使能信号

S=S1⋅S2′+S3′‾S=S_1\cdot\overline{S_2'+S_3'}

只有S=1S=1时,8 个与非门才把地址"翻译"出来;S=0S=0时 8 个与非门的输出都被强制为 1。所以S1S_1像一个"总开关",S2′S_2'⁠、S3′S_3'像两个"急停按钮",任何一个急停按下(为 1),芯片就停。

2.6 例题 1:读 74HC138

题目:(1)S1=1S_1=1⁠,S2′=S3′=0S_2'=S_3'=0⁠,A2A1A0=011A_2A_1A_0=011⁠,哪个输出为 0?(2)S1=1S_1=1⁠,S2′=0S_2'=0⁠,S3′=1S_3'=1⁠,A2A1A0=011A_2A_1A_0=011呢?

解:(1)片选满足,011 = 3,只有Y3′=0Y_3'=0⁠,其余为 1。(2)S3′=1S_3'=1⁠,片选不满足,8 个输出全为 1。

2.7 易错点 ⚠️

  • 三个片选端的有效电平不一样:S1S_1高有效,S2′S_2'⁠、S3′S_3'低有效。最常见的错误是把S1S_1也接 0。
  • 地址的高低位:A2A_2是最高位。A2A1A0=100A_2A_1A_0=100是 4,选中Y4′Y_4'⁠,不是Y1′Y_1'⁠。
  • 输出低电平有效:被选中的是 0,不是 1。

三、扩展:两片 74HC138 组成 4 线-16 线译码器

3.1 大白话:两层楼的叫号屏

一块叫号屏只有 8 个窗口。16 个窗口怎么办?装两块屏,一楼管 0~7 号,二楼管 8~15 号。号码的最高位D3D_3决定"去哪层楼":D3=0D_3=0一楼的屏工作,D3=1D_3=1二楼的屏工作。低三位D2D1D0D_2D_1D_0在本层选窗口。

关键在于:用片选端当作第 4 根地址线。

3.2 连接方法(教材例 4.5.2)

  • 两片的A2A1A0A_2A_1A_0都接D2D1D0D_2D_1D_0⁠。
  • 片(1)(管 0~7):S1S_1接 1,S2′S_2'⁠、S3′S_3'都接D3D_3⁠。于是D3=0D_3=0时片(1) 工作,D3=1D_3=1时片(1) 禁止。
  • 片(2)(管 8~15):S1S_1接D3D_3⁠,S2′S_2'⁠、S3′S_3'接 0。于是D3=1D_3=1时片(2) 工作,D3=0D_3=0时片(2) 禁止。
  • 片(1) 的Y0′∼Y7′Y_0'\sim Y_7'作Z0′∼Z7′Z_0'\sim Z_7'⁠,片(2) 的Y0′∼Y7′Y_0'\sim Y_7'作Z8′∼Z15′Z_8'\sim Z_{15}'⁠。

妙处在于利用了"S1S_1高有效、S2′S_2'低有效"这个差别:同一根D3D_3⁠,对一片是"开门",对另一片就是"关门",不需要额外的非门。

3.3 例题 2:验证

题目:D3D2D1D0=1011D_3D_2D_1D_0=1011⁠,哪个输出为 0?

解:D3=1D_3=1⁠,片(1) 的S2′=S3′=1S_2'=S_3'=1⁠,禁止,输出全 1;片(2) 的S1=1S_1=1⁠,S2′=S3′=0S_2'=S_3'=0⁠,工作,A2A1A0=011A_2A_1A_0=011选中片(2) 的Y3′Y_3'⁠,即Z3+8′=Z11′=0Z_{3+8}'=Z_{11}'=0⁠。1011 正是 11,正确。

以上接法已用程序对 16 种输入全部核对:每种输入都恰好只有对应编号的输出为 0。

3.4 易错点 ⚠️

  • 不要两片都用S1S_1接D3D_3——那样两片会同时工作或同时禁止。
  • 更大的扩展(5 线-32 线)需要 4 片 74HC138,再用一片译码器(比如另一片 74HC138 当 2 线-4 线用)把最高两位D4D3D_4D_3译成 4 个片选信号,分别接到 4 片的低电平片选端。见自测练习第 6 题。

四、用 74HC138 实现逻辑函数(重点)

4.1 大白话:最小项"零件库"

第 03 讲说过:任何逻辑函数都能写成最小项之和。74HC138 工作时一下子提供了全部 8 个最小项(只是取了反)。就像一个"零件库",函数需要哪几个最小项,就把对应的输出线挑出来,再用一个门"合"起来。

4.2 为什么是"与非门"

设函数Y=m1+m3+m5Y=m_1+m_3+m_5⁠。利用"两次取反不变"和摩根定理:

Y=m1+m3+m5‾‾=m1‾⋅m3‾⋅m5‾‾=Y1′⋅Y3′⋅Y5′‾Y=\overline{\overline{m_1+m_3+m_5}}=\overline{\overline{m_1}\cdot\overline{m_3}\cdot\overline{m_5}}=\overline{Y_1'\cdot Y_3'\cdot Y_5'}

逐行拆解:

  • 第一个等号:两次取反,值不变;
  • 第二个等号:摩根定理把"和的非"变成"非的积";
  • 第三个等号:mi‾\overline{m_i}正好就是 74HC138 的输出Yi′Y_i'⁠。

结论:把函数包含的最小项对应的Yi′Y_i'接到一个与非门上,与非门的输出就是YY⁠。

4.3 标准步骤

  1. 把函数化成最小项之和的形式Y=∑m(⋯ )Y=\sum m(\cdots)(不要化简!要展开);
  2. 变量按顺序接地址:最高位变量接A2A_2⁠,依次接A1A_1⁠、A0A_0⁠;
  3. 片选接成工作状态:S1=1S_1=1⁠,S2′=S3′=0S_2'=S_3'=0⁠;
  4. 把∑m\sum m中各编号对应的Yi′Y_i'接到一个多输入与非门,输出即为YY⁠;
  5. 写出表达式Y=Yi′⋅Yj′⋯‾Y=\overline{Y_{i}'\cdot Y_{j}'\cdots}⁠,并验证。

4.4 例题 3:实现Y=AB‾+BCY=A\overline{B}+BC

第 1 步:展开成最小项。 缺哪个变量就乘上"(该变量 + 它的非)":

AB‾=AB‾(C+C‾)=AB‾C+AB‾ C‾=m5+m4A\overline{B}=A\overline{B}(C+\overline{C})=A\overline{B}C+A\overline{B}\,\overline{C}=m_5+m_4 BC=(A+A‾)BC=ABC+A‾BC=m7+m3BC=(A+\overline{A})BC=ABC+\overline{A}BC=m_7+m_3

所以Y=∑m(3,4,5,7)Y=\sum m(3,4,5,7)⁠。(最小项编号按ABCABC的二进制:AB‾CA\overline{B}C是 101 = 5。)

第 2 步:AA接A2A_2⁠,BB接A1A_1⁠,CC接A0A_0⁠。

第 3 步:S1=1S_1=1⁠,S2′=S3′=0S_2'=S_3'=0⁠。

第 4 步:Y3′Y_3'⁠、Y4′Y_4'⁠、Y5′Y_5'⁠、Y7′Y_7'接一个 4 输入与非门:

Y=Y3′⋅Y4′⋅Y5′⋅Y7′‾Y=\overline{Y_3'\cdot Y_4'\cdot Y_5'\cdot Y_7'}

第 5 步:验证一行:ABC=100ABC=100时,只有Y4′=0Y_4'=0⁠,与非门有一个输入为 0,输出 1;而原式AB‾+BC=1⋅1+0=1A\overline{B}+BC=1\cdot1+0=1⁠,一致。ABC=010ABC=010时只有Y2′=0Y_2'=0⁠,但Y2′Y_2'没接进与非门,与非门四个输入全是 1,输出 0;原式0+0=00+0=0⁠,一致。8 行已全部用程序核对。

4.5 例题 4:一片 74HC138 实现全加器(多输出函数)

题目:用一片 74HC138 和与非门实现 1 位全加器(输入AA⁠、BB⁠、CICI⁠,输出和SS⁠、进位COCO⁠)。

第 1 步:全加器真值表(第 08 讲例 2 已列过,第 11 讲还会细讲)给出:

S=∑m(1,2,4,7),CO=∑m(3,5,6,7)S=\sum m(1,2,4,7),\qquad CO=\sum m(3,5,6,7)

(⁠SS在输入有奇数个 1 时为 1;COCO在至少两个 1 时为 1。)

第 2 步:A→A2A\to A_2⁠,B→A1B\to A_1⁠,CI→A0CI\to A_0⁠;片选接工作状态。

第 3 步:

S=Y1′Y2′Y4′Y7′‾,CO=Y3′Y5′Y6′Y7′‾S=\overline{Y_1'Y_2'Y_4'Y_7'},\qquad CO=\overline{Y_3'Y_5'Y_6'Y_7'}

注意Y7′Y_7' 同时接到两个与非门——一根输出线可以给多个门用。这就是译码器做"多输出函数"的优势:一片芯片 + 每个输出一个与非门,就搞定了。

用一片74HC138和两个与非门实现1位全加器的接线图 74HC138 A2 A A1 B A0 CI S1 1 S2 0 S3 0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 S CO S=Σm(1,2,4,7) CO=Σm(3,5,6,7)

图 2:一片 74HC138 加两个 4 输入与非门实现全加器。橙线接SS⁠,绿线接COCO

4.6 能力边界

  • 一片 74HC138 有 3 个地址端,能实现任意不超过 3 个变量的函数(每个输出一个与非门)。
  • 4 个变量的函数要用 4 线-16 线译码器(比如两片 74HC138 扩展)+ 与非门。
  • 如果函数的最小项很多(比如 6 个),可以改用"非函数":Y‾\overline{Y}只含剩下的 2 个最小项,用与门:Y=Yi′⋅Yj′Y=Y_i'\cdot Y_j'(⁠ii⁠、jj是YY 不含的最小项)。原理:Y=mi+mj‾=mi‾⋅mj‾Y=\overline{m_i+m_j}=\overline{m_i}\cdot\overline{m_j}⁠。

4.7 例题 5:四变量函数——用两片 74HC138

题目:用 74HC138 和与非门实现Y=∑m(0,5,10,15)Y=\sum m(0,5,10,15)(变量ABCDABCD⁠,AA为最高位)。

思路:4 个变量需要 16 个最小项,一片只有 8 个,所以先按第三节把两片接成 4 线-16 线译码器:AA接片(1) 的S2′S_2'⁠、S3′S_3'和片(2) 的S1S_1⁠;BB⁠、CC⁠、DD接两片的A2A1A0A_2A_1A_0⁠;片(1) 的S1S_1接 1,片(2) 的S2′S_2'⁠、S3′S_3'接 0。

找最小项在哪一片:

  • m0m_0⁠、m5m_5的编号小于 8,在片(1):分别是片(1) 的Y0′Y_0'⁠、Y5′Y_5'⁠;
  • m10m_{10}⁠、m15m_{15}在片(2):编号减 8 得 2、7,是片(2) 的Y2′Y_2'⁠、Y7′Y_7'⁠。

合成:

Y=Y0(1)′⋅Y5(1)′⋅Y2(2)′⋅Y7(2)′‾Y=\overline{Y_{0(1)}'\cdot Y_{5(1)}'\cdot Y_{2(2)}'\cdot Y_{7(2)}'}

验证一行:ABCD=1010ABCD=1010(10)时,A=1A=1片(2) 工作,BCD=010BCD=010选中片(2) 的Y2′=0Y_2'=0⁠,与非门输出 1;原函数含m10m_{10}⁠,一致。16 行已用程序核对。

换个角度看这个函数:m0=0000m_0=0000⁠、m5=0101m_5=0101⁠、m10=1010m_{10}=1010⁠、m15=1111m_{15}=1111⁠,正好是"高两位ABAB等于低两位CDCD",即Y=(A⊙C)(B⊙D)Y=(A\odot C)(B\odot D)⁠。用译码器做这种"不好化简"的函数,完全不用动脑筋化简,这就是它的好处。

4.8 易错点 ⚠️

  • 一定要先展开成最小项,不能直接拿化简式去接。
  • 变量接地址端的顺序决定了最小项编号的含义;如果把CC接A2A_2⁠,编号就全变了。答卷上要写清"A→A2A\to A_2⁠,B→A1B\to A_1⁠,C→A0C\to A_0"。
  • 输出是低电平有效,所以合成用与非门;如果用的译码器输出是高电平有效(原码mim_i⁠),合成就用或门。

五、译码器当"数据分配器"用

5.1 大白话:快递分拣员

数据选择器(第 10 讲)是"多选一",数据分配器正好相反——把一路数据按地址送到多路中的某一路,像快递分拣员按地址把包裹扔进对应的筐。

5.2 接法

把S1S_1当作数据输入DD⁠,S2′=S3′=0S_2'=S_3'=0⁠,A2A1A0A_2A_1A_0当作"送往哪一路"的地址。例如地址为 101:

  • D=1D=1时芯片工作,Y5′=0Y_5'=0⁠;
  • D=0D=0时芯片禁止,Y5′=1Y_5'=1⁠。

所以Y5′=D‾Y_5'=\overline{D}⁠,数据以反码形式从地址指定的那一根线送出去,其他线一直是 1。(已用程序核对。)


六、二-十进制译码器 74HC42(了解)

它把 4 位 BCD 码A3A2A1A0A_3A_2A_1A_0(0000~1001)译成 10 个低电平输出Y0′∼Y9′Y_0'\sim Y_9'⁠。对于 1010~1111 这 6 个伪码(不是合法 BCD),10 个输出都是 1,即"拒绝翻译",教材称之为拒绝伪码的功能。


七、显示译码器:让数码管显示数字

7.1 七段数码管

数码管由 7 段可以发光的线段 a、b、c、d、e、f、g 拼成"日"字形(有的再加一个小数点)。点亮不同的段就显示不同的数字,比如 1 只亮 b、c 两段,8 七段全亮。

七段数码管各段名称与BCD码0到9的显示(动画) a b c d e f g 输入 0000abcdefg1111110 输入 0001abcdefg0110000 输入 0010abcdefg1101101 输入 0011abcdefg1111001 输入 0100abcdefg0110011 输入 0101abcdefg1011011 输入 0110abcdefg0011111 输入 0111abcdefg1110000 输入 1000abcdefg1111111 输入 1001abcdefg1110011 共阴极:1 = 亮

图 3:七段数码管各段的名称,依次显示 BCD 码 0000~1001 对应的数字(动画循环播放)

半导体(LED)数码管每段是一个发光二极管,分两种接法:

类型 公共端 某段点亮需要
共阴极 7 个 LED 的阴极连在一起接地 该段输入高电平
共阳极 7 个 LED 的阳极连在一起接电源 该段输入低电平

7.2 BCD-七段显示译码器的真值表(共阴极,1 = 亮,摘自教材表 4.4.7 的 0~9 部分)

数字 A3A2A1A0A_3A_2A_1A_0 a b c d e f g
0 0000 1 1 1 1 1 1 0
1 0001 0 1 1 0 0 0 0
2 0010 1 1 0 1 1 0 1
3 0011 1 1 1 1 0 0 1
4 0100 0 1 1 0 0 1 1
5 0101 1 0 1 1 0 1 1
6 0110 0 0 1 1 1 1 1
7 0111 1 1 1 0 0 0 0
8 1000 1 1 1 1 1 1 1
9 1001 1 1 1 0 0 1 1

逐行拆解:怎么自己推出一行?画一个"日"字,想象要显示的数字,看哪些段要亮。例如"4":右上 b、右下 c、左上 f、中间 g 亮,a、d、e 不亮,所以 abcdefg = 0110011。

注意教材这张表里,"6"不亮 a 段(没有顶上那一横),"9"不亮 d 段(没有底下那一横)。不同芯片的 6、9 字形可能不同,考试以题目给的表为准。

对每一段,以A3A2A1A0A_3A_2A_1A_0为变量、把 1010~1111 作为无关项或按芯片规定填写,就能用卡诺图化简出Ya∼YgY_a\sim Y_g的式子。教材给出的结果之一是

Ya=A3‾ A2‾ A1‾A0+A3A1+A2A0‾‾Y_a=\overline{\overline{A_3}\,\overline{A_2}\,\overline{A_1}A_0+A_3A_1+A_2\overline{A_0}}

("圈 0 再取反"得到。可以代入检验:输入 0001 时括号内第一项为 1,Ya=0Y_a=0⁠,"1"不亮 a 段,正确;在 0~9 上逐一核对均与上表一致。)

7.3 7448 的三个附加控制端(了解)

教材介绍的 BCD-七段译码器 7448(驱动共阴极数码管)有三个低电平有效的附加端:

  • 灯测试LT′LT':LT′=0LT'=0时七段全亮,用来检查数码管有没有坏段。
  • 灭零输入RBI′RBI':RBI′=0RBI'=0且输入为 0000 时,不显示 0(熄灭),用来去掉多余的前导零,比如把"00013.700"显示成"13.7"。
  • 灭灯输入/灭零输出BI′/RBO′BI'/RBO':作输入时BI′=0BI'=0使全部段熄灭;作输出时RBO′=0RBO'=0表示"本位的 0 已被熄灭",可以接到下一位的RBI′RBI'⁠,实现多位联动灭零。

八、译码器题目的常见问法(考前看一眼)

  1. 读功能表:给片选和地址,问哪个输出为 0。先查片选三个条件,再看地址。
  2. 说明某端作用:S1S_1⁠、S2′S_2'⁠、S3′S_3'是片选(使能)端,用于禁止芯片或扩展;Yi′Y_i'是最小项的非。
  3. 扩展:两片 4 线-16 线,利用S1S_1与S2′S_2'有效电平相反,最高位直接接片选,不加非门。
  4. 实现函数:展开最小项 → 写接法 → 写Y=⋯‾Y=\overline{\cdots} → 验证。四个字诀:"展、接、与非、验"。
  5. 分析题:给一个"74HC138 + 与非门"的电路,反过来写出Y=∑m(⋯ )Y=\sum m(\cdots)⁠,再化简、说功能(比如认出它是全加器、比较器)。
  6. 显示译码:会根据字形写某数字的 abcdefg,分清共阴、共阳。

答题时把"变量 → 地址端"的对应关系、片选端的接法写在图旁边,阅卷老师才好给分。


速记卡

项目 要点
译码器 nn位代码 → 2n2^n根线,输入是几就选中第几根
74HC138 3 线-8 线;输出Yi′=mi‾Y_i'=\overline{m_i}⁠,低电平有效
片选条件 S1=1S_1=1且S2′=S3′=0S_2'=S_3'=0⁠;否则输出全 1
4 线-16 线 片(1):S1=1S_1=1⁠,S2′=S3′=D3S_2'=S_3'=D_3⁠;片(2):S1=D3S_1=D_3⁠,S2′=S3′=0S_2'=S_3'=0
实现函数 展开成∑m\sum m → 变量接A2A1A0A_2A_1A_0 → 对应Yi′Y_i'接与非门
多输出 一片 138 + 每个输出一个与非门;同一根Yi′Y_i'可共用
数据分配器 S1S_1接数据,地址选路,输出为数据的反码
74HC42 BCD 译码,拒绝伪码
七段 共阴:1 亮;共阳:0 亮;abcdefg 顺序:上、右上、右下、下、左下、左上、中
7448 LT′LT'灯测试,RBI′RBI'灭零输入,BI′/RBO′BI'/RBO'灭灯/灭零输出

自测练习

1. 74HC138 中S1=1S_1=1⁠、S2′=S3′=0S_2'=S_3'=0⁠、A2A1A0=110A_2A_1A_0=110⁠,写出 8 个输出。若改为S1=0S_1=0呢?

答案与提示

110 = 6,Y6′=0Y_6'=0⁠,其余为 1,即Y0′∼Y7′=11111101Y_0'\sim Y_7'=11111101⁠。S1=0S_1=0时全为 1。

2. 用一片 74HC138 和一个与非门实现Y=A‾B+AB‾CY=\overline{A}B+A\overline{B}C⁠,写出最小项和接法。

答案与提示

A‾B=A‾BC‾+A‾BC=m2+m3\overline{A}B=\overline{A}B\overline{C}+\overline{A}BC=m_2+m_3⁠,AB‾C=m5A\overline{B}C=m_5⁠,所以Y=∑m(2,3,5)Y=\sum m(2,3,5)⁠。A→A2A\to A_2⁠,B→A1B\to A_1⁠,C→A0C\to A_0⁠,片选接工作状态,Y=Y2′Y3′Y5′‾Y=\overline{Y_2'Y_3'Y_5'}⁠。已穷举核对。

3. 用一片 74HC138 实现三变量多输出函数:Z1=AC‾+A‾BC+AB‾CZ_1=A\overline{C}+\overline{A}BC+A\overline{B}C⁠,Z2=BC+A‾ B‾CZ_2=BC+\overline{A}\,\overline{B}C⁠。

答案与提示

Z1=∑m(3,4,5,6)Z_1=\sum m(3,4,5,6)⁠,Z1=Y3′Y4′Y5′Y6′‾Z_1=\overline{Y_3'Y_4'Y_5'Y_6'}⁠;Z2=∑m(1,3,7)Z_2=\sum m(1,3,7)⁠,Z2=Y1′Y3′Y7′‾Z_2=\overline{Y_1'Y_3'Y_7'}⁠。Y3′Y_3'两个门共用。已用程序核对最小项。

4. 用 74HC138 实现"三位二进制数ABCABC能被 3 整除(含 0)时输出 1"。若不用与非门而用与门,怎么接?

答案与提示

能被 3 整除:0、3、6,Y=∑m(0,3,6)=Y0′Y3′Y6′‾Y=\sum m(0,3,6)=\overline{Y_0'Y_3'Y_6'}⁠。用与门:YY不含的最小项是 1、2、4、5、7,Y=Y1′Y2′Y4′Y5′Y7′Y=Y_1'Y_2'Y_4'Y_5'Y_7'(5 输入与门)。显然与非门更省。

5. 两片 74HC138 按本讲第三节接成 4 线-16 线译码器,输入D3D2D1D0=0110D_3D_2D_1D_0=0110时哪片工作、哪个输出为 0?

答案与提示

D3=0D_3=0⁠,片(1) 工作(⁠S2′=S3′=0S_2'=S_3'=0⁠,S1=1S_1=1⁠),片(2) 的S1=0S_1=0被禁止。片(1) 地址 110 = 6,Z6′=0Z_6'=0⁠。

6.(华师真题风格)用 74HC138 组成 5 线-32 线译码器,最少需要几片?说明连接思路。

答案与提示

输出 32 根,每片 8 根,需 4 片作输出;最高两位D4D3D_4D_3需要译成 4 个片选信号,可再用 1 片 74HC138(⁠A2A_2接 0,A1A0A_1A_0接D4D3D_4D_3⁠,只用Y0′∼Y3′Y_0'\sim Y_3'⁠),共 5 片。4 片输出级的A2A1A0A_2A_1A_0都接D2D1D0D_2D_1D_0⁠,S1=1S_1=1⁠、S3′=0S_3'=0⁠,各自的S2′S_2'分别接片选级的Y0′∼Y3′Y_0'\sim Y_3'⁠。已用程序对 32 种输入核对。(若允许加少量门,也可以用 4 片 74HC138 加门电路组合片选,思路不唯一。)

7. 共阳极数码管要显示"7",a~g 各段应加什么电平?

答案与提示

"7"亮 a、b、c,共阳极点亮要低电平:a、b、c 为 0,d、e、f、g 为 1,即 abcdefg = 0001111。


下一讲预告

第 10 讲讲"多选一"的数据选择器 74HC151/74HC153,并用它实现逻辑函数——包括 2026 回忆题第 5 题的完整解法。

👉 点击进入下一讲:第10讲|数据选择器

评论

还没有评论。 来写第一条。

留下一条评论

选填,不会公开

纯文本,链接会自动识别。