前言:
我们已经实现了加减法,如果计算机要计算1+2+3,必须得先计算1+2,然后再把1+2得结果存起来,在去计算3+3.
那么如何保存这个临时数据呢?
1.触发器:
触发器(Flip Flop)是一种可以存储电路状态的电子元件。最简单的是由两个或非门,两个输入端和两个输出端组成的RS触发器。
触发器的电路图由逻辑门组合而成,其结构均由R-S锁存器派生而来(广义的触发器包括锁存器)。触发器可以处理输入、输出信号和时钟频率之间的相互影响。
我们得设计一个电路来让计算机保存这些临时数据:
如下图,有两个或非门,或非门就是或门再取反,既只要输入端有1,结果就为0。输入全为0,输出才为1.
观察该电路,红线表示输出为1。其实这个电路红线部分可以是0,也可以是1
如果是1,那么灯泡灭,如果是0,则灯泡亮的。这里刚好用灯泡灭来做演示,也可以按着红线输出为0来推演,那么灯泡是亮的。
当两个输入端V都为0时,先看右边的或非门,上面输入为1,下面为0,那么根据或非门,输出为0,灯泡灭,同时输出传递到左边的或非门,左边的或非门两个输入都为0,输出为1
这种两个门的输出都作为另一个门的输入的连接方式称之为反馈。
现在闭合上面的开关:
或非门的特点,输入有1时,输出为0,那么左边的或非门输出为0,右边的或非门两个输入都是0,则输出为1,灯泡亮。同时将输出带到左边的或非门的输入中
然后将上面的开关再打开:
因为上面的输入为1,所以导致灯泡还是亮。这个图和第一个图是一样的,但是灯泡却不一样。
这就是反馈和或非门结合的结果,此时不管再怎么操作上面的开关,灯泡永远都是亮的,因为或非门的特点:左边的或非门输入有1,则输出为0
这个状态时,下面的开关不动,不管你如何操作上面的开关,输出永远是不变的
假如此时闭合下面的开关:
输入有1,输出既为0,灯泡灭,然后左边的两个输入为0,输出是1,使得右边的上面的输入变为1,灯泡依旧灭
然后在打开下面的开关:
由于上面的输入为1,所以灯泡还是灭的
此时,不管你如何操作下面的开关,灯泡都是灭的,因为或非门的特点,输入有1,则输出为0。
而这个状态就是第一幅图的状态。
这个状态时,上面的开关不动,不管你如何操作下面的开关,输出永远是不变的。
总结下这个电路:
接通上面的开关,灯泡亮,断开此开关,灯泡依然亮着
接通下面的开关,灯泡灭,断开此快开,灯泡依然灭着
尽管看起来这个电路很神奇,但是很难总结出什么有用的信息,我们只须要记住,这种连接形式,能让电路记住某些信息
接下来我们把这个电路绘制方式稍微改变一下,其实还是刚刚的电路,只不过把左边或非门的输出也画了出来,用_Q代表下面那个符号(因为那个符号打不出来)
这个电路和上面的电路一样,被称为R-S触发器(Reset-Set)
根据或非门的特点,当R=1时,Q为0;当S为1时,_Q为0。这个很容易推断出来
当R=1时,Q为0,同时,S的上输入也为0,若S为1,那么不用看了,_Q必定为0,所以看S=0时,两个输入都为0,_Q为1
既 R=1,S=0; Q=0,_Q=1
反之也一样 R=0,S=1; Q=1,_Q=0
把4种可能的结果变成表格,就变成了R-S功能表:如下图:
这里的禁止只是因为本身设定了Q和_Q是相反的,但是若R,S都等于1的话,则Q和_Q都为0,那就违背了设定,所以R-S触发器要避免两个输入都为1。
其中最关键的是R=0,S=0时,Q=Q,_Q=_Q,这个意思是输出保持上一次的结果,既不变。
这个结论其实我们已经在最上面的5副图中论证过了
不管是从S=1&#