您好,欢迎访问三七文档
8位二进制加法器1.摘要:本次设计主要是如何实现8位二进制数的相加,即两个000到255之间的数相加,由于在实际中输入的往往是三位十进制数,因此,被加数和加数是两个三位十进制数,范围在000到255之间,通过六个二-十进制编码器(即74LS147)分别将加数和被加数的个位、十位、百位转换为8421BCD码,于是得到了两个12位字码,将它们接入三个四位超前进位并行加法器(即74LS283),其中原加数三位十进制数的个位转换得到的四位BCD码与被加数三位十进制数的个位转换得到的四位BCD码相加,串入到第一个74LS283的接线端,得到一个四位8421BCD码。同理,原加数和被加数的十位转换得到的四位BCD码相加也得到一个8421BCD码。同理,百位也是如此。需要注意的是:由于这12位BCD码是由三位十进制数转换过来的,因此在用加法器相加时,要逢10进一。于是通过一些与非门、非门和加法器构成一个新的加法器,使该加法器能对这十二位BCD码进行计算,并且逢10进1,这样得到一个十二位BCD码,即相加结果三位十进制数所对应的BCD码,再通过7447数字显示译码器将这十二位8421BCD码还原成一个三位十进制数,用数码管显示出来,得到一个三位十进制数,即为所求的结果。另外,本次设计不仅可以适用加数和被加数是000到255的数字,同时也适用于加数和被加数是000到999的任何一个数,这是本次设计的创新之处。2.关键字:二-十进制编码器、四位超前进位并行加法器、7447七段数码显示译码器、逢十进一、数码管。3.设计要求:1.八位二进制加数与被加数的输入;2.三位数码管显示;3.三位十进制加数与被加数的输入。4.正文:第一章系统概述本次设计的目的是实现两个八位二进制数的相加,那么我们如何实现呢?通常在实际中输入的是三位十进制数,而要求是八位二进制数,八位二进制数换算成三位十进制数最大为255,也就是说要输入两个000到255之间的数。要实现它们的相加,我们想到了三种思路,下面我说一下这三种思路。第一种,当输入两个三位十进制数时,由于在数字电路中运算所用到的是二进制数,因此我们必须首先将十进制数转换为二进制数,于是一个问题出现了,那就是,我们如何实现十进制数到二进制数的转换,通过查阅相关资料,我们发现二-十进制编码器(也叫8421BCD码编码器,在实际中通常指74LS147)可以实现从十进制数到二进制数的转换,于是我们通过二-十进制编码器来实现上述的转换。由于二-十进制编码器可以实现一位十进制数到四位二进制数的转换,而题目中的是两个三位十进制数,因此我们就需要用到6个二-十进制编码器,分别将三位十进制数的个位、十位、百位转换为其各自对应的8421BCD码,于是我们得到了两个十二位的8421BCD码。于是如何实现两个三位十进制数的相加这个问题就变成了如何实现两个十二位的8421BCD码相加这个新问题。那么,如何实现呢?我们想到了加法器,常用的加法器74LS283能够实现四位二进制数的相加,于是我们就要将74LS283进行串联,实现十二位数的相加,但加法器74LS283的进位是逢16进1,而这两个十二位的8421BCD码相加时的进位是逢10进1,那么就要对加法器74LS283的二进制和数进行修正,即加上一个6(0110),让其产生一个进位。于是把大于9的项画在卡诺图里,另外考虑到若相加产生进位,则同样出现大于9的情况。综合考虑,得到修正和数的条件,用与非门和与门来实现,得到了一个新的加法器,它可以实现逢10进1这个条件。将这两个十二位的8421BCD码分别接到三个新的加法器的输入端,得到一个新的十二位的8421BCD码。由于结果要得到一个三位十进制数,因此再将这个十二位的8421BCD码通过三个7447七段显示译码器转换为一个三位十进制数,通过数码管将它显示出来,即为所求的结果。第二种,当输入的不是三位十进制数而是八位二进制数时,我们如何实现它们的相加呢?我们知道,超前进位并行加法器74LS283可以实现四位二进制数的相加,于是,我们需要两个74LS283进行串联,这样我们就得到一个新的九位二进制数,其范围在000到510之间。那么我们如何实现从九位二进制数到三位十进制数的转换呢?由于三位十进制数的个位、十位、百位分别对应一个四位8421BCD码,也就是说一个三位十进制数对应一个十二位的8421BCD码。于是,问题就是,如何实现九位二进制数到十二位8421BCD码的转换?这样,我们就想到了译码器,通过4线-16线译码器74LS154来实现字码的转换。这样,就得到了一个新的十二位8421BCD码,再通过7447七段数码显示译码器来实现8421BCD码到三位十进制数的转换,最后通过数码管显示出来,得到的就是所要求的的八位二进制数的和。第三种,通过上述两种思路,我们会要进一步想到,能不能同时实现八位二进制数和三位十进制数的相加呢?那么我们可以对上述的思路加以扩展,假设输入的是三位十进制数,我们可以设法将其转换为八位二进制数,再通过加法器输出。这样,我们既可以输入三位十进制数,也可以输入八位二进制数。那么三位十进制数如何转换为八位二进制数呢?我们想到了二-十进制编码器,一个二-十进制编码器可以实现一位十进制数到四位二进制数的转换,那么我们就可以将一个二-十进制编码器和一些与非门组成一个新的二-十进制编码器来实现这个三位十进制数的十位到8421BCD码的转换;同理,三位十进制数的百位也可以这样转换。于是三位十进制数就转换到了八位二进制数,接着,我们就可以用第二种思路来实现八位二进制数的相加。通过这三种思路,经过分析验证,我们发现,由于在实际中我们遇到的往往是三位十进制数(范围主要在000到255之间),那么我们重点研究三位十进制的相加。在实践论证中我们发现,由于第一种思路所用的元件少,且个位、十位、百位各自对称,因此在连接上方便可行,不易出错。同时由于原理清晰,一旦出现错误,我们可以尽快发现问题并加以改正。在论证第二种思路时,我们发现,在使用译码器时,由于使用的是4线-16线译码器74LS154,因此它有16个出线端。而我们要实现九位二进制数到十二位BCD码的转换,就要有512个出线端,也就是512除以16,即32个译码器。由于所用到的译码器数量冗长,在连接上容易出错。因此并不采纳。同理,第三种思路也是如此。通过分析,可以得到各功能块的划分与组成。首先我们看到的是控制电路,控制电路控制的是总体部分的工作和关闭,控制电路由开关组成,通过开关来实现总电路的控制。在本次设计中,由开关来实现键盘的功能,通过九个开关来实现0到9的控制。设计中一共用到54个开关。接着,我们进入编码电路,编码电路,顾名思义,就是十进制数到二进制数的转换。那么如何实现十进制数到二进制数的转换呢?于是我们就通过二-十进制编码器(也就是8421BCD编码器)把十进制数转换成了控制电路编码电路码电路加法电路译码电路输出电路8421BCD码。然后我们进入了加法电路,由编码器出来的两个12位8421BCD码要通过加法器74LS283来实现两个8421BCD码的相加,由于加法器只能实现二进制数的相加,不能实现这两个8421BCD码的相加,这是因为这两个8421BCD码是由十进制数转换过来的,因此它们是逢十进一,这与74LS283加法器的逢十六进一相互冲突,于是我们就要改进加法器,在原有的基础上对二进制和数进行修正(即加上6,让其产生进位),得到一个新的加法器,使其实现8421BCD码的相加,,得到一个新的8421BCD码。紧接着,我们进入了译码电路,所谓译码,就是说把这个新的12位8421BCD码再译成三位十进制数,要实现它,就要用到7447七段数码显示译码器,这样就得到了一个新的三位二进制数,也就是所要求的和。而要求是要将这个三位二进制数用数码显示出来,那么就要进入最后一个部分输出电路,这就要用到数码管,通过数码管将这个三位十进制数(本次设计中可以实现和是四位十进制数的数码)显示出来,这样就完成了八位二进制数加法器的原理设计。第二章单元电路设计与分析①控制电路:图1控制电路是总体电路的枢纽,是控制电路开启和关闭的部分。电路的控制可以采用多种方式,诸如开关、脉冲等。在本次设计中,我们采用开关来实现电路的控制,但问题是,如何用开关实现电路的控制呢?本次设计主要侧重于三位十进制数(000到255)的输入,那么我们就可以用开关(开关的一头接地)来实现,当开关打开时,表示高电平;当开关闭合时,表示低电平,如此便可以实现1和0的输入,但是在模拟验证时,我们发现,在开关打开时,也就是悬空,这时并不是高电平,那么我们如何实现开关的控制呢?我们想到了另一种思路,那就是通过一个双掷开关来实现高低电平的输入,双掷开关的另外两头一个接高电平5伏电压,一个接地,通过开关的开和关来实现1和0的输入,这样就实现了电路的控制。本次设计一共用到54个双掷开关,其型号为SPDT。开关从下往上、从左往右依次来表示二进制数1到9的输入,其中开关都断开表示0的输入。在如图所示的部分开关电路中,J1到J8分别表示8、7、6、5、4、3、2、1,J27表示9。这样就实现了0到9的输入。②编码电路:图2编码电路是总体电路的第二部分,其主要作用是实现十进制数到二进制数的转换,那么我们如何实现呢?我们想到了编码器,常用的编码器有8线-3线优先编码器74LS148、10线-4线优先编码器74LS147。在本次设计中要用到的是10线-4线优先编码器74LS147,通过输入一个十进制数转换到了四位二进制数,由于74LS147的输入和输出都是低电平有效,因此输出的是四位十进制数的反码,而后面要进行计算,则此时必须将输出的四个数接到非门,然后输出,这次设计中用到的非门为74LS05,可以实现反码的转换。关于74LS147的引脚图如下图所示:引脚图中,11、12、13、1、2、3、4、5、10为74LS147的输入端,9、7、6、14作为74LS147的输出端,其中74LS147的真值表如上图所示。③加法电路:图3加法电路是总电路的第三部分,也是总电路的中心环节,其作用至关重要。加法电路是输入信号输出信号I9I8I7I6I5I4I3I2I1I0Y3Y2Y1Y00×××××××××011010××××××××0111110×××××××10001110××××××100111110×××××1010111110××××10111111110×××110011111110××1101111111110×111011111111101111我此次设计的负责部分,因此我着重介绍加法电路的设计过程。既然用到加法电路,那么我们自然要用到加法器,常用的加法器分为串行进位加法器和超前进位加法器,串行进位加法器的优点是电路简单,连接方便,缺点是运算速度低;而超前进位加法器则解决了这个问题,因此在加法器的选择上我选用了74LS283。74LS283是中规模四位二进制超前进位加法器,它实现的是四位二进制数的相加,但是题目中要设计的是12位BCD码的相加,这样就需要用到3个加法器。但是,一个问题出现了,那就是如何实现BCD码到二进制数的转换。我们知道,BCD码是用4位二进制数表示1位十进制数,4位二进制数内部为二进制,BCD码之间是十进制,即逢10进1。而四位二进制加法器是按四位二进制数进行计算,即逢十六进一,二者进位关系不同。当和数大于9时,8421BCD码即产生进位,而此时十六进制则不一定产生进位,因此需要对二进制数进行修正,即加上6(0110),让其产生一个进位,当和数小于9时,则不需要修正。将大于9的最小项列在卡诺图里,同时,还要考虑到,若相加产生进位,则同样出现大于9的结果,综合考虑,可得卡诺图为:S1S0S3S20001111000011110通过上述的卡诺图,可得到修正和数的条件为L=C3+S3S2+S3S1,于是可通过一个非门(74LS05)、三个与非门(74LS00和74LS10)和两个加法器来74LS283来构建成一个新的加法器,这个新的加法器就可以实
本文标题:8位二进制加法器
链接地址:https://www.777doc.com/doc-4222546 .html