用电磁继电器实现逻辑门

上节 我们利用串并联等电路知识,实现了布尔逻辑运算。由于普通开关只能手工掰动,用做运算输入就不太方便了。我们无法直接将一个运算的结果,作为另一个运算的输入,运算组合能力大大受限。

那么,该怎么办呢?

电磁继电器

好的运算器,操作数应该以电信号的形式输入,结果同样通过电信号输出。普通开关只能手工控制,无法用电控制。但您可能想到了,我们可以用电磁铁来控制开关:

如上图,开关弹性闸刀平时连接 b 点。电磁铁通电后产生磁性,将闸刀吸到 c 点,这时灯泡连通。电磁铁断电后,闸刀失去吸引力而复原,这时灯泡熄灭。点击控制上图左边电路开关,可以看看效果。

这就是 电磁继电器 ,通过线圈电流控制来另一个电路的电流。

您可能会有疑问:直接将电流送给灯泡不行吗?何必多此一举呢?

其实,电磁继电器的主要作用是:通过小电流来控制大电流。例如大型水泵通常需要高电压和大电流,如果直接通过开关控制,操作起来不安全。这时电磁继电器就派上用场了:用小电流控制电磁铁,间接地控制大电流开关,以此保证安全性。

接地

上图中有两个回路,需要画不少线,但我们可以通过接地符号进行简化:

电工学中的接地,表示跟大地连接,以大地为导线。大地是一个巨大的电子库,只要有电压,大地中的电子可以流入导线;并从另一端流回大地,从而在电路中产生电流。

以左边电路为例,电池正极吸引电子,而负极排斥电子。当开关闭合后,正极开始从大地中吸收电子;而负极中的电子则流入大地,进而在电路中产生电流。

电源电压

电路中的电池仍显得有些累赘,它的作用只是给导线加上电压而已。我们用字母 V 表示加上电压:

这样,电路图看上去就清爽多了!后续,专栏中的图示均采用接地和电压符号来表示。

同门

电子元器件通常将线缆分为:供电输入input )和 输出output )三部分。我们将电磁继电器 d 点作为输入,c 点作为输出,而 ae 点作为供电:

由此,得到一个最简单的电子元器件!麻雀虽小,五脏俱全!

我们给输入端加上电压,输出端就有电压;将输入端电压撤销,输出端电压也会消失。输出总是跟输入保持同步,这是最简单的逻辑门—— 同门yes gate ),又称为 缓冲门buffer gate )。

我们通常用一个三角形来表示同门,并且省略供电部分,以突显输入输出逻辑。以高电平为 1 ,零电平为 0 ,便得到二进制位版本的同门,如上图右下部分所示。

非门

我们将灯泡接到电磁继电器的 b 端,这时继电器的输出跟上面例子刚好相反:

电磁铁没通电时,灯泡与电源是连通的,因此会亮。当我们给输入端 d 加上电压,电磁铁通电吸引闸刀脱离 b 端,灯泡因断开电源立马熄灭。这个元器件输入和输出刚好相反,因而被称为 非门not gate )。

同样,我们可以通过一个抽象的图形来表示非门。以同门图形为基础,并在输出端加上一个圆圈。

与门

利用串联电路原理,我们将一个继电器的输出接到另一个继电器作为电源,即可实现逻辑与运算:

如上图,合上开关给第一个继电器输入电压后,它也输出电压,第二个继电器因而有了电源;再合上开关给第二个继电器输入电压,它也输出电压,灯泡因而亮了;任意一个开关断开,灯泡都不亮。

这个电路作为整体,有两个输入和一个输出,是一个典型的二元器件。仅当两个输入都有电压时,输出端才有电压。由此,我们实现了逻辑与运算,得到一个 与门and gate )。

三输入与门

我们可以串联多一个继电器,得到一个三输入与门,也称为 三元与门ternary and gate ):

  • 只有三个开关都合上,灯泡才会亮;
  • 只有三个输入都有电压,输出端才有电压;
  • 只有三个输入都是真(高电压),输出才为真,否则为假(逻辑与运算);
  • 只有三个输入都是 1(高电压),输出才为 1 ,否则为 0按位与运算);

同样,我们可以通过串联更多继电器,得到 n 输入与门,细节不再赘述。

与非门

在与门电路后接一个非门,将与门的输出作为非门的输入,即可构造一个跟与门刚好相反的逻辑门:

仅当两个开关同时闭合,即两个输入均有电压时,输出才会失去电压。这种跟与门输出刚好相反的逻辑门称为 与非门nand gate ),图形同样在与门的基础加上一个圆圈。

现在见识组合运算的强大能力了吧?只要对逻辑门稍加组合,便能实现新的运算逻辑。这就是我们选择电磁继电器来实现逻辑门的原因,输入输出均由电压来表达可以带来极大的灵活性。

实际上,我们可以对上面的与非门电路进行简化。只要将与门电路中的串联改成并联,并将输出端口由 c 改成 b 即可:

动动手指点击开关,看看效果是不是跟上个电路完全一样呢?

或门

同样,利用并联电路原理,我们并联两个继电器,将它们的输出接到一起,即可实现逻辑或运算:

如上图,只要合上任一个开关给对应的继电器输入电压,输出就会有电压,灯泡就亮。当两个开关都断开,继电器都没有输入电压,输出电压就为零,灯泡就熄灭。

这个电路作为整体,有两个输入和一个输出,也是二元器件。只要任一输入有电压时,输出端就有电压。由此,我们实现了逻辑或运算,得到一个 或门or gate )。

或非门

同样,我们可以制作一个跟或门刚好相反的逻辑门,只需将并联改成串联,将输出由 c 点改为 b 点:

如上图,两个开关都断开时,第一个继电器输出电压,并作为第二个继电器的电源;任意一个开关闭合,都会导致输出端失去电压,电灯熄灭。这种跟或门刚好相反的逻辑门,称为 或非门nor gate )。

异或门

下面这种接法,灵感来自双开关电路。只有当其中一个继电器输入电压,电路才会向灯泡输出电压:

换句话讲,当两个输入不同时,电路就会输出电压;当两个输入相同时(开关同时断开或闭合),电路就不会输出电压。因此,这个电路可以用来制作 异或门xor gate ),实现逻辑异或运算。

异或的精髓在于“”字,两个输入不同才会有输出。

异或非门

同样,我们对上面电路稍作修改,即可实现与异或门刚好相反的逻辑门:

这种逻辑门称为 异或非门xnor gate ),当两个输入一样时才会有输出。

总结

本节,我们利用电磁继电器,制作了基本的逻辑门,包括:同门、非门、与门、与非门、或门、或非门、异或门以及异或非门。用电磁继电器实现的逻辑门更为灵活,输入输出均可通过电压表达,组合运算能力大大增强。

接下来,我们将学习如何利用这些逻辑门来制造计算机!下节我们先制作一个加法器练练手,有点迫不及待了呢!

小菜自制计算机】系列文章首发于公众号【小菜学编程】,敬请关注:

【自制计算机】系列文章首发于公众号【小菜学编程】,敬请关注: