第 6 讲:译码器与逻辑函数实现

译码器把输入代码展开成互斥的输出选择。nn 位输入共有 2n2^n 个组合,因此完整二进制译码器有 2n2^n 个输出,每个输出对应一个最小项或其反相。

高有效与低有效

高有效 nn–2n2^n 译码器中,输入为 ii 时只有 Yi=1Y_i=1;低有效器件则只有 Yˉi=0\bar Y_i=0。

器件图上的小圆圈、引脚上划线和真值表必须一起看。对低有效输出,某函数的最小项之和可以用 NAND 组合:若

F=m1+m3+m5,F=m_1+m_3+m_5,

而译码器输出 mˉi\bar m_i,则

F=mˉ1mˉ3mˉ5‾.F=\overline{\bar m_1\bar m_3\bar m_5}.

使能端

使能端决定译码器是否工作。多个使能引脚可能有高有效和低有效混合,必须满足全部条件。禁止时所有输出进入固定无效状态,而不是保留上次状态。

使能端可用于:

  • 片选和地址空间分配;
  • 译码器级联扩展;
  • 把一个变量接到使能端,以较小译码器实现较大函数;
  • 数据选通。

级联扩展

用两个 3–8 译码器构成 4–16:低三位同时接两片地址输入,最高位及其反相分别控制两片使能。最高位选择哪一片工作,低三位选择片内哪一路。

检查时应保证任意输入下只有一片被使能,否则会有重复输出;也不能两片都禁止,除非对应输入本就无效。

实现逻辑函数

译码器已经生成全部最小项,所以多输出函数只需把各自所需最小项组合。步骤:

  1. 把函数写成 ∑m\sum m;
  2. 输入变量按编号顺序接地址端;
  3. 按输出有效极性选 OR、NAND 或其他门;
  4. 使能端接到正确有效电平;
  5. 未用输出悬空是否允许按器件类型处理。

多个函数可共享同一译码器,体现“先生成全部最小项,再分别组合”。

显示译码器

BCD–七段译码器把 4 位 BCD 转为段信号 aa 到 gg。要确认:

  • 数码管是共阳还是共阴;
  • 段输出是高有效还是低有效;
  • 灯测试、消隐和级联消隐引脚怎样接;
  • 每段需要限流电阻,译码器是否能直接驱动。

BCD 的 10–15 为非法输入,器件对这些组合的显示可能未定义,不能据此设计正常功能。

译码器与存储器

存储器地址译码本质上也是把地址选成一根字线。高位地址常用于片选,低位地址进入片内译码;这正是后续 RAM 字扩展的基础。

常见错误

  • 变量顺序接反,导致最小项编号错;
  • 低有效输出仍用普通 OR,得到函数反相;
  • 忘记使能引脚;
  • 两片级联时最高位选择逻辑重叠;
  • 七段显示没有区分共阳/共阴;
  • 把译码器当存储器,误以为禁止后能保持输出。

评论