二进制加法的实现细节

描述

在之前的文章里,曾经多次提到过二进制加法的数字电路,这里详细说说它的细节。

二进制运算的电路基础是逻辑电路(门电路),常用有3种:与门、或门、非门,跟C语言的逻辑运算符是一致的。

每一种逻辑电路,对应一个二进制位的位运算。

位运算的多个位之间是无关的,而加减乘除的多个位之间是有关的。

加法,因为两个加数是完全对称的,所以实现起来最简单。

下图,是二进制加法的原理图,由1个或门、1个与门、1个非门组成。

0 + 0 = 0,

1 + 0 = 1,

0 + 1 = 1,

这3种运算只使用或门就行:

逻辑运算

数字电路,二进制的加法

这时与门的输出(三极管的b极)是低电位0,三极管截止,c极应该为高电位1;

但是,c极的真正电位取决于或门的那个蓝色电阻R2,它们被一条导线连接着,构成了电路的个位输出。

1,0 + 0 = 0的情况:

2个输入都接到电源负极,2个向右的二极管截止,2个向左的二极管导通,三极管的b极是低电位(截止),十位输出为0;

这时的个位输出电位取决于非门的电阻R1与或门的电阻R2的比值,

只要R1和R2的阻值合适,个位的输出就是0。

2,0 + 1 = 1 + 0 = 1的两种情况,

1个输入接负极,另1个输入接正极,2个向左的二极管导通一个,所以三极管的b极也是低电位(截止),十位输出为0;

2个向右的二极管导通1个,这时的个位输出取决于限流电阻R4和R5与或门电阻R2的比值;

非门电阻R1因为阻值较大,它实际与R4和R5并联,这时几乎不起作用;

只要R4, R5, R1, R2的阻值合适,个位的输出就是1。

3,1 + 1 = 10的情况,

2个输入都接正极,2个向左的二极管截止,2个向右的二极管导通,三极管的b极为高电位(导通),十位输出为1;

个位输出取决于三极管的ce极之间的电压,这个值非常的小,因为e极连接着负极,所以个位输出为0;

三极管的ce之间的内阻Rce,远小于图中的电阻R1, R4, R5, R2;

其中R1, R4, R5的并联发挥上拉电阻的作用,R2与Rce并联(这时R2几乎不起作用)。

以上只是原理图,我在面包板上试验的时候并不成功,没法点亮表示十位输出的发光二极管

三极管导通之后的b极电位太低,因为e极直接连的电源负极,Vbe只有0.7v左右,所以我又给它加了两级放大电路(三极管)。

我今天给的那个视频里的电路,就是下图这个电路:

逻辑运算

加了两级放大器的二进制加法

第1个三极管的b极电压太低,点不亮发光二极管,而它的c极又跟个位输出耦合了,

所以第2个三极管是解耦合的,这样就可以单独处理十位了。

因为三极管是反相放大,所以还需要第3个三极管把它再反相回去,让图中画蓝圈的两个位置的电位相同。

个位发光太弱就把R4和R5调小一点,十位发光太弱就把R6调小一点。

发光二极管与电源正极之间要有电阻隔着,否则容易把它给烧了。

根据自然哲学的中国剩余定理,这个电路里没有电容,而二极管、三极管都是开关(不需要管),所以要想让它跑起来就是调那6个电阻的阻值

也就是求解同余方程组:

x = xi mod 电阻,i = 0, 1, 2, 3, 4, 5, 6.

这个方程组是自然哲学视角下的,实际还是拿万用表去量电压。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分