在之前的文章里,曾经多次提到过二进制加法的数字电路,这里详细说说它的细节。
二进制运算的电路基础是逻辑电路(门电路),常用有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.
这个方程组是自然哲学视角下的,实际还是拿万用表去量电压。
-
逻辑电路
+关注
关注
13文章
494浏览量
42568 -
C语言
+关注
关注
180文章
7597浏览量
136117 -
门电路
+关注
关注
7文章
199浏览量
40122 -
逻辑运算
+关注
关注
0文章
56浏览量
9752 -
二进制加法
+关注
关注
0文章
4浏览量
1737
发布评论请先 登录
相关推荐
评论