在数字电路中,移位寄存器(英语:shift register)是一种在若干相同时刻脉冲下作业的以触发器为根底的器材,数据以并行或串行的办法输入到该器材中,然后每个时刻脉冲顺次向左或右移动一个比特,在输出端进行输出。这种移位寄存器是一维的,事实上还有多维的移位寄存器,即输入、输出的数据自身便是一些列位。完成这种多维移位寄存器的办法可所以将几个具有相同位数的移位寄存器并联起来。
移位寄存器内的数据能够在移位脉冲(时钟信号)的效果下顺次左移或右移。移位寄存器不只能够存储数据,还能够用来完成数据的串并转化、分频,构成序列码发生器、序列码检测器,进行数值运算以及数据处理等,它也是数字体系中运用十分广泛的时序逻辑部件之一。
了解移位寄存器,包含它们怎么作业以将并行衔接转化为串行衔接。
所需的组件
● Arduino Uno开发板
● 74HC165
● 跳线电缆
移位寄存器有不同的版别,可用于各种运用。本文将向您介绍移位寄存器并阐明它们的作业原理。此外,它还将解说怎么运用它们将多条并行数据线转化为单个串行衔接。
什么是移位寄存器?
移位寄存器是存储单个数据字的同步设备,而且能够对这些位履行逻辑移位操作。逻辑移位将字的每个位向左或向右移动。空格一般用零填充:
上图显现了向左的逻辑移位。右移以相似的办法作业。
移位寄存器由几个单位锁存器组成,这些锁存器以串行菊花链办法衔接,以便一个锁存器的输出衔接到下一个输入:
一些移位器答应您挑选位移动的方向。
移位寄存器的类型
一般,有四种不同类型的移位寄存器,它们在数据输入和输出设备的办法上有所不同:
● 串行输入,串行输出
● 串行输入,并行输出
● 并行输入,串行输出
● 并行输入,并行输出
串行和并行类型一般同步运转,因而您需求一个时钟信号来处理数据。
支撑串行和并行输入以及串行和并行输出的寄存器称为通用移位寄存器。
根本操作
假定咱们有以下理论的4位移位寄存器,它具有串行输入和输出以及并行输出:
4位移位寄存器D锁存器
如您所见,每个位都从右侧的串行输入加载到移位寄存器的D锁存器中。
第一个时钟周期将其加载到锁存器A.然后,锁存器的输出具有加载到寄存器中的值。下一个时钟周期设置第二个锁存器值并将一个新位加载到第一个锁存器中,从而将位从右向左移位。这与一切寄存器同时发生。最终一个锁存器输出是移位寄存器的串行输出。
因而,串行移位器可用作缓冲器。上面的移位器也可用于将串行信号转化为四条并行数据线。
并行输入转化串行输出
该技能可用于削减从并行总线读取值所需的输入数量。例如,您能够利用它将来自计算机键盘的信号转化为USB操控器能够了解的单个串行信号。在本例中,我运用DIP开关来模仿8位数据总线,并运用Arduino Uno上的单个GPIO引脚读取8个值:
并行输入转化串行输出
请注意,实际上橙色和黄色总线或许无法衔接成一条线。我决议以这种办法代表他们以使图画更简单了解:
Arduino操控移位寄存器,发生时钟信号,并读取8位。然后输出值:
总结
移位寄存器是由几个D锁存器组成的同步器材,它完成了数字电路中的逻辑移位功用。这些IC可用于各种运用。但是,它们一般用于将串行数据线转化为并行总线,反之亦然。运用它们时,您有必要记住,有不同的类型可用于不同的意图。