非门
在前面, 曾多次谈到 反向控制, 并联控制, 串联控制, 而且知道了可以有多种方式实现这些控制, 比如继电器方式的实现, 晶体管方式的实现, 而晶体管方面还可以细分为更多不同类型的, 此外则还有诸如电子真空管之类的实现, 这个我们没有介绍过, 但历史上是曾经有过的.
这些实现具体原理上各有不同, 但从功能逻辑上看却是一致的, 很多时候, 我们会说, 这里我需要一个反向, 但有哪些器件能够实现这个反向, 以及它们实现反向的原理, 我们并不关心, 只要它能反向就行了.
当把这种控制逻辑从具体的实现方式中抽象出来时, 就得到了所谓的 非门(Not Gate) 这种数字电路器件.
非门 通常又叫 反相器(Inverter).
在模拟器中, 通过 菜单--绘制--逻辑门, 输入和输出--添加非门
可以添加一个非门.
或是按快捷键
1
(数字 1).
图案
一个非门有一个输入端 A(左侧) 和一个输出端 Y(右侧):
非门的形状是一个三角形加一个小圆点(位于输出端).
另: IEEE 和 IEC 还认可另一种矩形框形式表示的非门, 读者可自行网上搜索了解, 此处从略.
真值表
其行为模式则如下图所示:
非门 两种情况 在线可互动操作示例
输入低电平, 就输出高电平; 反之, 输入高电平, 就输出低电平. 其真值表如下:
A | Y |
---|---|
0 | 1 |
1 | 0 |
内部实现
至于你要问, 为啥输入低电平还能输出高电平呢? 这是不是无中生有? 显然, 我想你应该能猜到, 它也是自带电源的, 事实上可以认为它是对以下电路的一个封装与抽象:
这里用继电器, 因为它比较形象, 自然, 里面也可以是晶体管实现. 一般来说, 基本是晶体管, 但前面说了, 之所以弄出非门这玩意, 就是想达到不关心内部实现, 简化电路, 从而聚焦到功能逻辑上的目的.
所以这样的一个组件它连电源, 接地等细节都封装了, 你都不用去关心这些了, 你把它当做一个 有源元件 来用就行了, 把你所有注意力放在输入与输出的关系之上, 放在你想要实现的功能上.
当然了, 实际上, 内部通常不会真的包含一个独立电源.
一般来说, 对同一块电路板上的多个有源元件来说, 通常是通过导线连接到公共电源上, 接地同理. 所有的有源元件共享一个公共电源和公共接地.
符号表示
非的逻辑用符号表示, 可以用一个上划线的形式:
比如
A
.事实上, 在逻辑代数(也称布尔代数)中, 逻辑非 也称为 逻辑取反.
因为一般的文本中不支持上划线, 在能支持的地方输入也麻烦, 有时会使用波浪符号 ~
置于字母的前面:
比如
~A
.
或是使用撇号 `, 置于字母的后面:
比如
A`
.
编程语言中表达非的逻辑一般使用感叹符号 !
置于字母的前面:
比如
!A
.
或者是直接使用英文单词 not
比如
not A
.
如果是中文, 也可以直接使用 非
:
比如
非A
.