组合逻辑电路(二)(译码器和编码器)

2024-03-09 04:44

本文主要是介绍组合逻辑电路(二)(译码器和编码器),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

译码器

简单逻辑门译码器

二进制译码器

2线-4线译码器

3线-8线译码器 

二-十进制译码器

4线-10线译码器  

七段显示译码器

编码器

二进制普通编码器 

二-十进制普通编码器(8421BCD码编码器)

优先编码器(Priority Encoder)


译码器

将输入的代码译为特定对象(如逻辑电平),用于检测特定数字状态的组合逻辑电路

译码

利用译码表将具有特定含义的文字、符号和数码等信号译成控制信号

使能端(控制端):用于选通或禁止译码器工作的控制信号输入端,有高电平使能和低电平使能之分

译码器的逻辑功能就是将输入的代码翻译成另外一种特定代码输出

根据输入输出代码的不同,可以设计成各种不同类型的译码器

常见的中规模集成译码器有二进制译码器、二-十进制译码器和七段显示译码器等几类

译码器如有3个输入端8个输出端,称为3线-8线译码器

如有4个输入端10个输出端,称为4线-10线译码器

简单逻辑门译码器

一个与(或)逻辑门就是最简单的译码器,可用于检测特定的二进制数值

二进制译码器

二进制译码器的输入是一组二进制代码,输出是一组高、低电平信号

若译码器有n个输入端,则最多有2^n个输出端,这种译码器被称为n线-2^n线译码器 

2线-4线译码器

2线-4线译码器:

2线-4线译码器真值表
输入输出
\bar{S}AB\bar{F_{3}}\bar{F_{2}}\bar{F_{1}}\bar{F_{0}}
1××1111
0001110
0011101
0101011
0110111

3线-8线译码器 

74LS138即3线-8线译码器,有3个二进制代码输入端A2、A1、A0,8个译码器输出端\bar{Y_{0}}\sim \bar{Y_{7}},低电平有效,3个使能输入端S_{1}\overline{S_{2}}\overline{S_{3}},其中S_{1}高电平有效,\overline{S_{2}}\overline{S_{3}}都为低电平有效

3线-8线译码器:

74LS138的真值表
输入输出
S_{1}\overline{S_{2}}+\overline{S_{3}}A_{2}A_{1}A_{0}\bar{Y_{0}}\bar{Y_{1}}\bar{Y_{2}}\bar{Y_{3}}\bar{Y_{4}}\bar{Y_{5}}\bar{Y_{6}}\bar{Y_{7}}
×1×××11111111
0××××11111111
1000001111111
1000110111111
1001011011111
1001111101111
1010011110111
1010111111011
1011011111101
1011111111110

S_{1}=0\overline{S_{2}}+\overline{S_{3}}=1\overline{S_{2}}\overline{S_{3}}中至少有一个1)时,译码器被禁止,即译码器不工作,\bar{Y_{0}}\sim \bar{Y_{7}}输出都为高电平

只有S_{1}\overline{S_{2}}\overline{S_{3}}都为1时才工作,即S_{1}=1S_{2}=0S_{3}=0

S_{1}=1时,同时\overline{S_{2}}+\overline{S_{3}}=0\overline{S_{2}}=\overline{S_{3}}=0)时,译码器被选通处于工作状态,此时,由A2、A1、A0输入的二进制代码组合并确定\bar{Y_{0}}\sim \bar{Y_{7}}的译码输出

74LS138的输出端逻辑表达式为

\bar{Y_{0}}=\overline{\bar{A_{2}}\bar{A_{1}}\bar{A_{0}}}=\bar{m_{0}}        \bar{Y_{1}}=\overline{\bar{A_{2}}\bar{A_{1}}A_{0}}=\bar{m_{1}}

\bar{Y_{2}}=\overline{\bar{A_{2}}A_{1}\bar{A_{0}}}=\bar{m_{2}}        \bar{Y_{3}}=\overline{\bar{A_{2}}A_{1}A_{0}}=\bar{m_{3}}

\bar{Y_{4}}=\overline{A_{2}\bar{A_{1}}\bar{A_{0}}}=\bar{m_{4}}        \bar{Y_{5}}=\overline{A_{2}\bar{A_{1}}A_{0}}=\bar{m_{5}}

\bar{Y_{6}}=\overline{A_{2}A_{1}\bar{A_{0}}}=\bar{m_{6}}        \bar{Y_{7}}=\overline{A_{2}A_{1}A_{0}}=\bar{m_{7}}

74LS138由于输出为低电平有效,因此,它的8个输出\bar{Y_{0}}\sim \bar{Y_{7}}是对应输入变量A2A1A0的最小项非\bar{m_{0}}\sim \bar{m_{7}}

二-十进制译码器

将输入的BCD吗的十个代码翻译成十个对应信号输出的逻辑电路,称为二-十进制译码器

也称4线-10线译码器

4线-10线译码器  

4线-10线译码器 :

图中A3、A2、A1、A0为输入端,\bar{F_{0}}\sim \bar{F_{9}}为输出端,输出低电平0有效

4线-10线译码器74LS42的真值表
序号输入输出
A_{3}A_{2}A_{1}A_{0}\bar{F_{0}}\bar{F_{1}}\bar{F_{2}}\bar{F_{3}}\bar{F_{4}}\bar{F_{5}}\bar{F_{6}}\bar{F_{7}}\bar{F_{8}}\bar{F_{9}}
000000111111111
100011011111111
200101101111111
300111110111111
401001111011111
501011111101111
601101111110111
701111111111011
810001111111101
910011111111110

七段显示译码器

在数字测量仪表或其他数字设备中,常常将测量或运算结果用数字、文字或符号显示出来

因此,显示译码器和显示器是数字设备不可缺少的组成部分
目前常见的字符显示器主要为液晶显示器(liquid crystal display,LCD)、发光二极管(light emitting diode,LED)组成的数码管和点阵显示器

七段数码管(又称LED数码显示器)是由7段条形发光二极管排列组合而成,7个发光段分别对应a,b,c,d,e,f,g

按内部的连接方式,七段数码管分为共阳极和共阴极两种类型

数码显示器:

共阴极:

LED使用时公共端阴极通常接地,a,b,c,d,e,f,g为高电平时点亮对应的发光段

共阳级:

共阳极LED使用时公共端阳极通常接+5V电源,a,b,c,d,e,f,g为低电平时点亮对应的发光段

若要使用共阴极数码管来显示某字形,则需要由输出高电平有效的译码器去驱动各发光段

而共阳极数码管则需要由输出低电平有效的译码器去驱动各发光段


共阴极接阳极

共阳极接阴极

对应的字母表示的灯管亮相应显示0~9十个数字

例如对于显示0

共阳极接法需要

a,b,c,d,e,f,g七个输入端接收

0,0,0,0,0,0,1

共阴极接法需要

a,b,c,d,e,f,g七个输入端接收

1,1,1,1,1,1,0

编码器

编码是译码的逆过程,将某种特定信息用文字、符号和数码等来表示的过程称为编码,实现编码功能的电路称为编码器

编码器把输入的每一个有效信号(高、低电平)编成一组对应的代码输出

在数字系统中,通常是将信息编成若干位二进制代码或二-十进制代码

编成二进制代码的编码器称为二进制编码器,而对十进制数进行编码的编码器称为二-十进制编码器

从逻辑功能的特点可将编码器分成普通编码器和优先编码器

普通编码器在任何时刻,输入信号中只能有1位信号有效,不允许同时有多位输入信号有效,否则输出将出现错误状态

优先编码器工作时允许有多位输入信号同时有效,按设定的优先权排队,任一时刻,优先编码器只对输入信号中优先权最高的一个编码

二进制普通编码器 

将N=2^n个输入信号转换成n位二进制代码输出的逻辑电路,称为二进制编码器

编码器的输出代码可以是原码形式,也可以是反码形式,原码是指等值十进制数对应的二进制代码,而各位原码取反则称为反码

二-十进制普通编码器(8421BCD码编码器)

用4位二进制代码对1位十进制数码0~9进行编码的电路,称为二-十进制编码器

优先编码器(Priority Encoder)

区别于普通编码器,优先编码器允许在多个输入端同时输入有效信号,根据规定好的优先顺序,对其中优先级别最高的有效输入信号进行编码

这种编码器广泛应用于计算机系统中的中断请求和数字控制的排队逻辑电路中

常见的中规模集成优先编码器有8线-3线优先编码器和10线-4线BCD优先编码器两种

优先编码器 74LS148 真值表
输入输出
\bar{S}\bar{I_{0}}\bar{I_{1}}\bar{I_{2}}\bar{I_{3}}\bar{I_{4}}\bar{I_{5}}\bar{I_{6}}\bar{I_{7}}\bar{F_{0}}\bar{F_{1}}\bar{F_{2}}\bar{F_{S}}\bar{F}_{EX}
1××××××××11111
01111111111101
0×××××××000010
0××××××0100110
0×××××01101010
0××××011101110
0×××0111110010
0××01111110110
0×011111111010
00111111111110

\bar{S}是选通输入端,当\bar{S}=1时,无论有没有编码输入,\bar{F_{0}}\bar{F_{1}}\bar{F_{2}}=111,没有有效编码信号输出,只有\bar{S}=0时,编码器才能正常工作

\bar{F_{S}}是选通输出端,只有\bar{S}=0,且\bar{I_{0}}\sim \bar{I_{7}}全部为高电平(没有有效编码信号输入),\bar{F_{S}}才为0,因此\bar{F_{S}}=0表示电路虽然处于工作状态,但没有有效编码信号输入

\bar{F}_{EX}称为扩展端,用以扩展编码器的功能,只要\bar{I_{0}}\sim \bar{I_{7}}中有任何一个为低电平,且\bar{S}=0,则\bar{F}_{EX}=0,因此,\bar{F}_{EX}=0表示电路处于工作状态,而且有有效编码信号输入

这篇关于组合逻辑电路(二)(译码器和编码器)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/789543

相关文章

hdu4869(逆元+求组合数)

//输入n,m,n表示翻牌的次数,m表示牌的数目,求经过n次操作后共有几种状态#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#includ

Go组合

摘要 golang并非完全面向对象的程序语言,为了实现面向对象的继承这一神奇的功能,golang允许struct间使用匿名引入的方式实现对象属性方法的组合 组合使用注意项 使用匿名引入的方式来组合其他struct 默认优先调用外层方法 可以指定匿名struct以调用内层方法 代码 package mainimport ("fmt")type People struct{}type Pe

组合c(m,n)的计算方法

问题:求解组合数C(n,m),即从n个相同物品中取出m个的方案数,由于结果可能非常大,对结果模10007即可。       共四种方案。ps:注意使用限制。 方案1: 暴力求解,C(n,m)=n*(n-1)*...*(n-m+1)/m!,n<=15 ; int Combination(int n, int m) { const int M = 10007; int

代码随想录训练营day37|52. 携带研究材料,518.零钱兑换II,377. 组合总和 Ⅳ,70. 爬楼梯

52. 携带研究材料 这是一个完全背包问题,就是每个物品可以无限放。 在一维滚动数组的时候规定了遍历顺序是要从后往前的,就是因为不能多次放物体。 所以这里能多次放物体只需要把遍历顺序改改就好了 # include<iostream># include<vector>using namespace std;int main(){int n,m;cin>>n>>m;std::vector<i

INDEX+SMALL+IF+ROW函数组合使用解…

很多人在Excel中用函数公式做查询的时候,都必然会遇到的一个大问题,那就是一对多的查找/查询公式应该怎么写?大多数人都是从VLOOKUP、INDEX+MATCH中入门的,纵然你把全部的多条件查找方法都学会了而且运用娴熟,如VLOOKUP和&、SUMPRODUCT、LOOKUP(1,0/....,但仍然只能对这种一对多的查询望洋兴叹。   这里讲的INDEX+SMALL+IF+ROW的函数组合,

代码随想录算法训练营Day37|完全背包问题、518.零钱兑换II、377. 组合总和 Ⅳ、70. 爬楼梯(进阶版)

完全背包问题                  和01背包最大区别就是一个物品可以重复放多次,因此遍历空间时可以从前往后。 import java.util.*;public class Main{public static void main (String[] args) {Scanner sc = new Scanner(System.in);int m = sc.nextInt

稀疏自编码器tensorflow

自编码器是一种无监督机器学习算法,通过计算自编码的输出与原输入的误差,不断调节自编码器的参数,最终训练出模型。自编码器可以用于压缩输入信息,提取有用的输入特征。如,[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]四比特信息可以压缩成两位,[0,0],[1,0],[1,1],[0,1]。此时,自编码器的中间层的神经元个数为2。但是,有时中间隐藏层的神经元

【内网】ICMP出网ew+pingtunnel组合建立socks5隧道

❤️博客主页: iknow181 🔥系列专栏: 网络安全、 Python、JavaSE、JavaWeb、CCNP 🎉欢迎大家点赞👍收藏⭐评论✍ 通过环境搭建,满足以下条件: 攻击机模拟公网vps地址,WEB边界服务器(Windows Server 2008)模拟公司对外提供Web服务的机器,该机器可以通内网,同时向公网提供服务。内网同网段存在一台Windows内网服务

霍夫曼编码/译码器

赫夫曼树的应用 1、哈夫曼编码   在数据通信中,需要将传送的文字转换成二进制的字符串,用0,1码的不同排列来表示字符。例如,需传送的报文为“AFTER DATA EAR ARE ART AREA”,这里用到的字符集为“A,E,R,T,F,D”,各字母出现的次数为{8,4,5,3,1,1}。现要求为这些字母设计编码。要区别6个字母,最简单的二进制编码方式是等长编码,固定采用3位二进制,可分别用

PyPortfolioOpt:Python中的投资组合优化工具

PyPortfolioOpt:Python中的投资组合优化工具 在金融领域,投资组合优化是一个关键的环节,它帮助投资者在追求最大回报的同时管理风险。今天,我们将探索一个名为PyPortfolioOpt的Python库,它提供了一系列的工具和算法,用于构建和优化投资组合。 概览 PyPortfolioOpt是一个开源的Python库,专门用于金融投资组合的优化。它包括经典的有效前沿、Black