触发器

    1981年,埃克尔斯和乔丹发明了一种具有记忆功能的电路。这个电路的核心是两个电子三极管,之所以让人觉的新奇,是因为它能记住你刚才对它做了什么手脚。不过这东西很有意思,但在当时却没有什么用处。直到有过了很长时间之后,因为要制造电子计算机,工程师们才又发现了它。

        触发器_触发器

            两个或非门首位相连形成两个反馈

    把上面的电路接上开关和灯泡,如下:

        触发器_触发器_02

                    验证或非门反馈功能的完整电路

    分析上面电路闭合R就等于R=1,于是不管Q以前是亮还是灭,它现在一定不会发光,即Q=0;

因为有反馈存在,Q=0紧接着被送到下面。同时,因为S也为0,所以经或门和非门后,灯泡Q'因为被通上了电而发光,也就是说Q’=1;然后Q'=1又被反馈到上面。但是,因为R已经给或门提供了“1”,所以Q的状态不会受到影响,整个电路就因此出于稳定状态不在改变。这个电路能保存最开始那个开关的开关状态,换句话说最开始那一下子是最重要的。

上面的电路称为触发器。触发器符号如下图:

        触发器_触发器_03

              R-S触发器符号

    这是最早的也是最基本一种触发器,我们一般称它为R-S触发器。触发器有两个截然相反的输出,不过多数情况下我们只需要一个输出就已经足够。因此,一直以来就把Q作为触发器的输出。

在触发器正常工作前提下。Q的输出和S的输入总是一致的,S=0则Q=0;S=1则Q=1。这意味着可以通过设置S的值,使得Q的输出和S保持一致,这就是S的由来(在英语里,S是单词“Set"的第一个字母,这个单词的意思是"设置")。不管Q以前是什么,比如Q=0,我们可以通过让S=1来使Q变成1。但是当R=1的话,Q又变回0,这等于将Q打回原形,这称为"复位",R就是这么来的(R取自英语单词”Reset“的第一个字母)。


用触发器保存一比特

    

         触发器_触发器_04 

      使用非门使R与S总是相反,解决用触发器保存1比特的问题

    为了验证它是否能保存"0"或者一个"1",设计如下电路:

触发器_触发器_05

            使用触发器保存比特"0"的过程

    如图所示,S=0,R=1,触发器动作Q=0,灯泡不亮。表明目前触发器中保存的是"0"。用手摁一下开关,电路被接通,相当于输入为"1",这个时候,S=1,R=0,触发器保存这个比特,于是灯泡亮了。当我们撤手,你会发现一旦按键开关弹开,灯泡马上就不亮了。这个电路并不能保存"1"。分析原因,当开关弹开,相当于输入的比特是"0",于是触发器又把这个"0"保存起来,灯泡自然就不亮了。

 改装电路,在输入端增加两个与门,两个与门都用控制端CP控制。如下图:

    触发器_触发器_06

          经过改进的触发器,增加了一个控制端


    上面电路当CP=0,就是不想保存数据,这时,因为与门的关系,不管D上是什么,S和R都为0,所以触发器保持原有的内容不变,当控制端为0时,触发器不接收D端的比特,也就是说,CP=0是希望触发器不被外面的数据干扰,继续保持原先保存的哪个比特。

    分析上面电路,如果D=0,而且CP=1,则S=0而R=1,于是"0"就会被保存到了触发器里(Q=0)。

如果D=1,而且CP=1,那么S=1而R=0,于是"1"就被保存到触发器里(Q=1)。

不管是“0”、“1”,当它成功地进入触发器之后,CP=0,于是S和R都会一直为0,触发器将一直维持刚才保存的比特不变。触发器将一直维持刚才保存的比特不变。这种触发器称为D触发器,如图

            触发器_触发器_07



由上图可知,在CP=1期间,只要D端的比特改变了,触发器就会随时触发。所以一定要把想保存的比特放到D端,等CP从0变为1时摁住输入D端比特,等待CP从1变为0之后才松手。为了解决上面问题,我们设计一种上升沿触发器。如图:

       触发器_触发器_08 

                      上升沿触发器的原理

    这个大触发器实际上由两个小的D触发器首位相连而成,前一个触发器的输出是后一个触发器的输入。


乒乓触发器/反复触发器

        

        触发器_触发器_09

                        反复按动开关,灯泡就会在明灭之间交替变化