反馈
先上来一个带反馈的电路。
开关闭合后,
首先继电器线圈有电,电磁铁动作;
动作后,触点被吸下来,继电器线圈断电;
线圈断电后,触点反弹回去;
触点返回后,继电器线圈又有电了;
线圈有电了,电磁铁又动作,触点又被吸下来。。。。。。。
没完没了啦,这就是电铃啊!
可以用简化符号来表示:
这里的重点是,输出信号又被送到输入端,作为输入信号。这就是带“反馈”(feedback)的电路。
可以做成振荡器。
记忆电路
再看一个更高级的,用两个或非门,将最二个或非门的输出又作为第一个或非门的输入。
刚开始,两个开关都断开,灯泡不亮。
然后,闭合上面的开关,灯亮了。
再断开上面的开关,灯还是亮着的。
注意,这时已经回到最初的“两个开关都断开”的状态了,但结果不同。
再闭合下面的开关,灯灭了。
再断开下面的开关,灯还是灭的。
当两个开关都断开时,灯有两种稳定的状态,可能是亮的,也有可能是灭的,这叫“双稳态”。
到底是哪种状态呢?取决于之前曾经做过什么操作。
如果是闭合过上面的开关,(再断开),灯就是亮的;
如果是闭合过下面的开关,(再断开),灯就是灭的。
这种电路具备“记忆”效应,可用于保存信息。
RS触发器
上面用或非门组成的电路,用符号表示为:
真值表为:
特点是:
- 当R和S不同时,各自有效。即R为1时,Q输出为0(Reset);当S为1时,Q输出为1(Set)。
- 当R和S都为0时,状态不变。此时可以保存信息。
- 当R和S都为1时,Q和~Q都是0,没有太大用处,且违背了“Q应该和~Q相反”的原则,应该避免。
D锁存器
为了利用这个特点,可以对电路加以改进:
首先,增加一个“保持位”信号,用两个与门“与”到原来的输入上,这样,只要保持位为0,则输出不变。
其次,为了让R和S不同,则在R和S之间加一个非门,再使用统一的输入信号,称为Data:
这样,就组成了一个电平使能的D触发器。
当保持位(或者叫“使能位”)为1时,输出使能,Q=D;当保持位(即使能位)为0时,输出不变,刚才的输入D被“锁住”。
这就是D锁存器。
可以把8位组合在一起,形成8位锁存器:
清除端
为了方便使用,在D锁存器上增加一个清除端,可以将输出清零:
只要clear信号为高,则Q=0,可将输出Q清零。
8个组合在一起,就组成了8位带清除功能的D锁存器
累加器
有了加法器和锁存器,组合在一起,就可以对很多个数进行相加。
操作方法为:
- 先按下Clear开关,将输出Q清零,再断开。此时加法器的输入B就是0.
- 扳动开关,输入第一个数A1,送到加法器的输入A。输出S=A1。
- 按下Add开关,锁存器将此时的S(记为S1)通过D送到Q。同时也送到加法器的输入B。
- 再断开Add开关,锁住S1.
- 再扳动开关,输入第二个数A2,此时加法器的输出S=S1+A2=A1+A2。
- 按下Add开关,保存此时的S2。S2=S=A1+A2。再断开Add开关。
- 重复第5和第6步,可以不断地对输入的数据进行累加。
这就是“累加器”。
脉冲触发
为了方便系统中的多个电路统一节奏,避免“竞争与冒险”,需要将“电平触发”改为“脉冲触发”,或者叫“边沿触发”。
边沿触发器,当时钟输入为0时,数据端输入的任何改变都不会影响输出;当时钟输入为1时,数据端输入的改变也不会影响输出。只有在时钟输入从0变到1的瞬间,数据端的输入才会影响边沿触发器的输出。
方法是将两个D触发器级联。
对比一下,电平触发的D触发器为:
新的边沿触发的D触发器为:
需要注意的是,第一级的使能位(Hold That Bit)是clock取反后驱动的;第二级则直接由clock控制。
电路分析:
当时钟为0时,第一级RS触发器有效。Data被送到第一级的输出Q1和~Q1.
现在,使数据端输入为1,这改变了第一级的状态;第二级由于时钟信号为0,输出Q仍保持不变。
现在,把时钟输入变为1,这引起了第二级触发器的改变,使Q输出为1.
与前面不同的是,现在无论数据端输入如何变化(比如变为0),它也不会影响Q的输出,因为第一级已经被clock锁定。
Q和~Q端的输出只有在时钟输入从0变到1的瞬间才发生改变。
真值表为:
符号为:
计数器
把振荡器和多个边沿触发的D触发器连在一起,可以对振荡器脉冲进行计数了。
比如,8位行波计数器:
输出结果为: