• 编码:隐匿在计算机软硬件背后的语言(6)--反馈与触发器


    反向器是一个简单的器件,用一个继电器就可以实现。当我们把反向器的输出连接到输入时,会发生什么呢?


    当输入为0时,输出为1;输出连接到输入上,此时输入又变成1,输出值变成0;如此反复。需要特别指出的是,反向器实际上是一个继电器,而继电器从一个状态转换到另一个状态是需要时间的。所以,即使输入和输出是相等的,输出也会很快地改变,成为输入的倒置(当然,随即输出也就改变了输入,如此反复)。

    这种电路称为振荡器(oscillator)。

    振荡器又常被称为时钟,因为它的输出在0、1之间按固有的规律交替变化。

    振荡器从一个初始状态经过一段时间又回到这个状态;这个时间间隔定义为振荡器的一个循环,又叫周期。如下图所示


    周期的倒数就是频率,也就是每秒钟振荡器产生循环的次数。

    第一个图所示的连接方式叫做反馈,系统的输出反馈给输入。


    下面看一个电路图


    上图由两个或非门组成。实际上这就是一个R-S触发器。其真值表如下所示


    S是置位,R是复位。当R为1时,Q为0,Q非为1;当S为1时,Q非为0,Q为1;当两者都为0时,输出状态保持不变。两者同时为1的情况是不允许存在的,一定要避免这种情况。

    R-S触发器的好处是可以记忆电路:Q的状态反映了输入端的状态。例如此时S和R均为0,、Q为1,那我们就知道S之前为1,R为0。

    但有时我们需要记忆功能更强大的电路,于是有了下面的电路。


    其真值表为


    当保持位为1时,它实际上就是一个R-S触发器;当保持位为0时,置位和复位段数值无论是什么,对输出都没有影响。我们就可以控制输出的记忆时间等。但我们需要两个输入,现在有三个。首先我们知道R-S触发器两个输入端不能同时为1;而且两个输入端同时为0,也没有意义,因为保持位为0已经包含这种情况。因此将电路图改为以下形式


    当保持位为1时,Q反映了数据端的数值,数据端就相当于置位。当保持位为0时,输入端对输出端没有任何影响。此时R-S触发器处于记忆状态。

    这个电路又叫电平触发的D型触发器,电平触发是指当数据端电平为1或者为0时就会影响输出。D代表输入端(数据端),其真值表如下


    这个电路也叫D锁存器,实际上就是1位存储器,多个1位存储器可以构成多位存储器。

    由以上内容可知,每个锁存器包括两个或非门、两个与门和一个反向器。


    对某些应用而言,上面的电平触发器就够用了,但对另外一些来说,边沿触发器则更有效。对于边沿触发器,只有当电平从0->1或者从1->0时数据才会改变。边沿触发器可以由两级R-S触发器连接而成,如下所示


    上面的电路在上升沿触发,下面分析一下。这里时钟同时控制着第一级和第二级R-S触发器。进一步分析,假设初始状态数据和时钟均为0,Q也为0。现在数据端变为1,此时第一级触发器的输出变为0,但是由于时钟为0,此时第一级触发器的输出对第二级触发器没有影响。然后,时钟从0变为1。在时钟从0->1的瞬间,第一级的输入对第二级的输出产生影响,使Q的值变为1;也就是上升沿触发。此时时钟为1,数据端的改变对第一级也不会有影响。边沿D触发器的真值表如下所示


    符号为,其中小三角表示边沿触发。


    回到本文开始的振荡器,现在将振荡器和上面的边沿D触发器连在一起


    反馈接着反馈。假设初始状态时钟为0,Q也为0,Q非为1。当时钟从0变为1,Q输出与D相同,也就是Q非,值为1,Q非变为0,也就是D此时也变为0,此时时钟为1。

    当时钟从1变为0时,由于是上升沿触发,此时对输出没有影响,时钟变为0。现在时钟再次从0变为1,由于此时D为0,所以Q变为0,Q非变为1,D变为1。如此反复。过程如下图



    整个过程用下图也可以说明


    这种电路称为分频器,可以看出输出Q的频率是时钟的一半。我们现在将三个这样的分频器连在一起


    然后在输出的信号上标上0和1,


    将上图顺时针旋转90度,然后把每一行0和1连起来,就会发现,他们分别对应了0000-1111这16个二进制数。将输出Q1、Q2和Q3逆序连起来就组成了一个三位计数器。在时钟的每个上升沿这个计数器就会加1。


    将8个这样的边沿D触发器连在一起就组成一个8位的计数器。称为“8位行波计数器”。这样我们就拥有了一个8位计数器。

  • 相关阅读:
    [BAT]cmd命令之 cd /d %~dp0
    用Fiddler抓到的报文Content-Type: application/x-www-form-urlencoded,怎样解析?
    HDU 2646 栈的应用 STL
    Codeforces Round #332 (Div. 2)B. Spongebob and Joke
    Codeforces Round #311 (Div. 2)B. Pasha and Tea二分
    HDU4022 Bombing STL
    Codeforces Round #331 (Div. 2) C. Wilbur and Points
    Codeforces Round #331 (Div. 2) B. Wilbur and Array
    Codeforces Round #331 (Div. 2) A
    HDU5533(水不水?)
  • 原文地址:https://www.cnblogs.com/hitfredrick/p/6403008.html
Copyright © 2020-2023  润新知