zoukankan      html  css  js  c++  java
  • 移位寄存器

    //转载自: http://dig.phy.ccnu.edu.cn/%D4%DA%CF%DF%BD%CC%D1%A75.files/jiaoxue5frame.files/5-4.htm

    寄存器是计算机和其它数字系统中用来存储代码或数据的逻辑部件。它的主要组成部分是触发器。一个触发器能存储1位二进制代码,所以要存储n位二进制代码的寄存器就须要用n个触发器组成。一个4位的集成寄存器74LS175的逻辑电路图和引脚图分别如图8.7.1(a)、(b)所看到的。当中,RD是异步清零控制端。在往寄存器中寄存数据或代码之前,必须先将寄存器清零,否则有可能出错。1D~4D 是数据输入端,在CP 脉冲上升沿作用下,1D~4D端的数据被并行地存入寄存器。输出数据能够并行从1Q~4Q 端引出,也能够并行从1Q~4Q 端引出反码输出。

    1



     


    74LS175的功能如表8.7.1所看到的。

    1


     




    上面介绍的寄存器仅仅有寄存数据或代码的功能。有时为了处理数据,须要将寄存器中的各位数据在移位控制信号作用下,依次向高位或向低位移动1位。具有移位功能的寄存器称为移位寄存器。

    移位寄存器:

    移位寄存器的工作原理:

    把若干个触发器串接起来,就能够构成一个移位寄存器。由4个边沿D 触发器构成的4位移位寄存器逻辑电路如图8.8.1所看到的。数据从串行输入端D1输入。左边触发器的输出作为右邻触发器的数据输入。如果移位寄存器的初始状态为0000,现将数码D3D2D1D0(1101)从高位(D3)至低位依次送到D1端,经过第一个时钟脉冲后,Q0=D3。因为尾随数码D3后面的数码是D2,则经过第二个时钟脉冲后,触发器FF0的状态移入触发器FF1,而FF0变为新的状态,即Q1=D3,Q0=D2。依此类推,可得4位右向移位寄存器的状态, 如表8.8.1所看到的。

    1


     



    由表可知,输入数码依次地由低位触发器移到高位触发器,作右向移动。经过4个时钟脉冲后,4个触发器的输出状态Q3Q2Q1Q0与输入数码D3D2D1D0相相应。为了加深理解,在图8.8.2中画出了数码1101(相当于D3=1,D2=1,D1=0 ,D0=1)在寄存器中移位的波形,经过了4个时钟脉冲后,1101出如今寄存器的输出端Q3Q2Q1Q0。这样,就可将串行输入(从D1端输入)的数码转换为并行输出(从Q3、Q2、Q1、Q0端输出)的数码。这样的转换方式特别适用于将接收到的串行输入信号转换为并行输出信号,以便于打印或由计算机处理。

    1



    在图8.8.3中还画出了第5到第8个时钟脉冲作用下,输入数码在寄存器中移位的波形(如图8.8.2所看到的)。由图可见,在第8个时钟脉冲作用后,数码从Q3端已所有移出寄存器。这说明存入该寄存器中的数码也能够从Q端串行输出。依据须要,可用很多其它的触发器组成多位移位寄存器。

    除了用边沿D 触发器外,还可用其它类型的触发器来组成移位寄存器,比如,用主从JK 触发器来组成移位寄存器,其级间连接方式如图8.8.3所看到的。依据JK触发器的特征方程,由图8.8.3可得:

    2



     



    FF2和FF3的接法与FF1全然相似,所以各JK 触发器均以D 触发器的功能工作,图8.8.3和图8.8.1所看到的电路具有同样的功能。

    1




    双向移位寄存器:

    若将图8.8.1所看到的电路中各触发器间的连接顺序调换一下,让右边触发器的输出作为左邻触发器的数据输入,则可构成左向移位寄存器。若再增添一些控制门,则可构成既能右移(由低位向高位)、又能左移(由高位至低位)的双向移位寄存器。图8.8.4是双向移位寄存器的一种方案,它是利用边沿D 触发器组成的,每一个触发器的数据输入端D 同与或非门组成的转换控制门相连,移位方向取决于移位控制端S的状态。

    1


     



    当S=1时,D0=DSR,D1=Q0,即FF0的D0端与右移串行输入端DSR接通,FF1的D1端与Q0接通,在时钟脉冲CP 作用下,由DSR端输入的数据将作右向移位;反之,当S=0时,D0=Q1 ,D1=Q2,在时钟脉冲CP作用下,Q2、 Q1的状态将作左向移位。同理,能够分析其它两位触发器间的移位情况。由此可见,图8.8.4所看到的寄存器可作双向移位。当S=1时,数据作右向移位;当S=0时,数据作左向移位。可实现串行输入——串行输出(由DOR 或DOL 输出)、串行输入――并行输出工作方式(由Q3~Q0 输出)。

    有时要求在移位过程中数据不要丢失,仍然保持在寄存器中。仅仅要将移位寄存器的最高位的输出接至最低位的输入端,或将最低位的输出接至最高位的输入端。这样的移位寄存器称为循环移位寄存器,它也能够作为计数器用,称为环行计数器。

  • 相关阅读:
    解析大型.NET ERP系统 20条数据库设计规范
    vi显示行号
    shell awk
    Linux使用Shell脚本实现ftp的自动上传下载
    MySQL Replication的Reset slave重置命令
    怎么样调整FreeBSD时区问题
    Basic Memory Structures
    States of Integrity Constraints
    Merging into a Table: Example
    oracle 单独开始一个事物的写法 。
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4083909.html
Copyright © 2011-2022 走看看