移位寄存器的工作原理

发布时间:2023/5/18 17:11:47

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

什么是移位寄存器?


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

移位寄存器的工作原理

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

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

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

移位寄存器的类型

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

串行输入,串行输出

串行输入,并行输出

并行输入,串行输出

并行输入,并行输出

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

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

基本操作

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

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

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

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

与串行转换并行

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

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


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


结论

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


下一篇:通过无线网络传输视频