移位寄存器的工作原理,移位

移位寄存器有不同的版本,可用于各种各样的应用程序。本文将向您介绍移位寄存器并说明它们的工作原理。此外,它还将解释如何将它们用于将多条并行数据线转换为单个串行连接。

什么是移位寄存器?

移位寄存器是存储单个数据字的同步器件,可以对这些位执行逻辑移位操作。逻辑移位将字的每个位向左或向右移动。空格通常用零填充:

上图显示了向左的逻辑移位。右移以类似的方式工作。

移位寄存器由几个单位锁存器组成它们以串行菊花链方式连接,以便一个锁存器的输出连接到下一个输入:

有些变速器允许您选择这些位将被移动。

移位寄存器的类型

通常,有四种不同类型的移位寄存器可用数据输入和输出设备的方式不同:

串行输入,串行输出

串行输入,并行输出

并行输入,串行输出

并行输入,并行输出

串行和并行类型通常同步运行,因此您需要时钟信号处理数据。

支持串行和并行输入的寄存器,如以及串行和并行输出,被称为通用移位寄存器。

基本操作

我们假设我们有以下理论4位移位寄存器同时具有串行输入和输出以及并行输出:

如您所见,每个位从右侧的串行输入加载到移位寄存器的D锁存器中。

第一个时钟周期将其加载到锁存器A中。然后锁存器的输出具有加载到寄存器中的值。 。下一个时钟周期设置第二个锁存器值并将一个新位加载到第一个锁存器中,从而将位从右向左移位。这与所有寄存器同时发生。最后一个锁存器输出是移位寄存器的串行输出。

因此,串行移位器可以用作缓冲器。上面的移位器也可用于将串行信号转换为四条并行数据线。

与串行转换并行

此技术可用于减少从并行总线读取值所需的输入数量。例如,您可以利用它将来自计算机键盘的信号转换为USB控制器可以理解的单个串行信号。在本例中,我使用DIP开关来模拟8位数据总线,并使用Arduino Uno上的单个GPIO引脚读取8个值:

请注意,橙色和黄色总线实际上可能无法连接成一条线。我决定以这种方式代表他们以使图像更容易理解:

Arduino控制移位寄存器,产生时钟信号,并读取8位。然后输出值:

结论

移位寄存器是一个由几个D锁存器组成的同步器件,它实现了数字电路中的逻辑移位功能。这些IC可用于各种应用。然而,它们通常用于将串行数据线转换为并行总线,反之亦然。使用它们时,您必须记住,有不同类型可用于不同目的。

相关推荐

相关文章