寄存器是用来存储数据位的设备。存储在这些寄存器中的位可以通过应用时钟脉冲在寄存器内和/或寄存器内/寄存器外移动。这样的寄存器称为移位寄存器。一个n位移位寄存器可以由n个触发器级联而成拖鞋存储单一的信息(图1)。这里,清除线用于重置每个触发器,又可以清除整个寄存器。
转移寄存器可以根据数据移动的类型进行分类。
- 第一类:取决于数据转移的方向
- 第二类:视乎数据输入或输出的模式而定
第一类:取决于数据转移的方向
单向移位寄存器
在这种类型中,寄存器内的数据位只能向一个方向移动,即向左或向右移动,因此它们被称为左移寄存器或右移寄存器(图2)。
双向或可逆移位寄存器
双向移位寄存器(图3)是移位寄存器能够在任一方向上移动数据,即朝向左(由绿色箭头表示)以及右侧(由红色箭头表示)。这是通过通过提供包括控制(黑色)线的某些附加电路来修改单向移位寄存器的电路来实现,这有助于选择数据移位的方向。
第二类:视乎数据输入或输出的模式而定
串行输入串行输出(SISO)移位寄存器
在的情况下串行输入串行输出移位寄存器(图4a),数据加载和数据检索过程都是以逐位方式串行执行的。这里每一个时钟脉冲都有三个功能,
- 一位数据进入寄存器,
- 寄存器内的数据向左或向右移动一位,
- 一个数据位将从移位寄存器出来。
然而,需要注意的是,有效的数据位只有在应用n个时钟脉冲后才会从n位SISO寄存器出来。进一步需要提供额外的n个时钟脉冲来检索整个n位输入字。
串行进并行出(SIPO)移位寄存器
在串行进并行出移位寄存器(图4b),数据以并行方式检索到备用寄存器比特位。在这种情况下,在每个时钟脉冲
- 一位数据进入寄存器,
- 寄存器内的数据向左或向右移动一位。
同时,输出位可以被并行读出,每个单独的寄存器成分都有一个位。此外,值得注意的是,有效的n位数据字来自于n位SIPO注册刚经过n个时钟脉冲。
串行输出(PISO)移位寄存器
在的情况下并行入串行出移位寄存器(图4c),数据加载以并行方式进行,而数据检索本质上是串行的。在这里,整个输入字在一个时钟周期内进入移位寄存器。从那时起,为每个时钟周期。
- 寄存器内的数据向左或向右移动一位
- 一位退出寄存器。
这意味着输入字的数据位是在PISO输出中逐位获得的。这表明,为了获得整个n位输入字,必须等待额外的n个时钟周期。
并行进并行出(PIPO)移位寄存器
在并行入并行出移位寄存器(图3d)数据加载和数据检索过程在本质上是并行的。这意味着整个数据字可以在一个时钟滴答时进入寄存器。类似地,只要再提供一个时钟脉冲,就可以在单个寄存器组件的输出引脚处获得整个数据字。然而,值得注意的是,这些类型的移位寄存器也能够将数据位向右或向左移动。
更进一步,如果移位寄存器的数据输出引脚被重新连接到数据输入引脚,那么输入字的位就会在寄存器内循环而不会丢失。
转移寄存器在需要用较少的控制引脚数量来完成特定任务时使用。16 . aLED,人们需要16个微控制器的单个线路。然而,由于可用通用输入输出数量有限(GPIO)引脚,这将是不可行的。在这种情况下,两个移位寄存器的系列组合将有助于帮助,因为它可以使用4个I / O引脚完成任务。
此外,移位寄存器广泛用于将串行数据流转换为并行形式,反之亦然。