- 什么是移位寄存器:
- 数字电子中的寄存器类型
- 1.串行输入-串行输出移位寄存器
- 2.串行输入–并行输出移位寄存器
- 3.并行输入–串行输出移位寄存器
- 4.并行输入–并行输出移位寄存器
- 5.双向移位寄存器
- 6.柜台
- 移位寄存器的应用
什么是移位寄存器:
移位寄存器是顺序逻辑电路,能够存储和传输数据。它们由触发器组成,触发器的连接方式取决于所创建的移位寄存器的类型,一个触发器的输出可以用作另一个触发器的输入。
移位寄存器基本上是一种能够传输(“移位”)数据的寄存器。寄存器通常是通过将特定数量的触发器串联在一起而创建的存储设备,寄存器中可存储的数据量(位数)始终与触发器的数量成正比,因为每次触发器触发器一次只能存储一位。 当寄存器中的触发器以一个触发器的输出变为另一个触发器的输入的方式连接时,将创建一个移位寄存器。
触发器是具有类似于闩锁的操作的设备。可以将其称为双稳态振动器,它可以在两种状态(0或1)之间移动,并且可以按位存储数据。每个时钟周期将新数据读入触发器,并在输出端发送先前的数据。
移位寄存器包括哪些触发器?
但是,这取决于触发器的类型,因为触发器之间的输入,输出和时钟周期关系会发生变化。触发器种类繁多,但创建移位寄存器时最常用的是D(延迟)触发器。
对于D触发器的操作(这使其非常适合移位寄存器),无论何时D触发器的时钟发生变化(上升沿或下降沿,取决于触发器的规格)。输出“ Q”处的数据变为与输入“ D”处的数据相同的数据。触发器的输出“ Q”将保持在该值,直到下一个时钟周期,然后在该时钟周期再次将其更改为输入的值(高或低,1或0)。
现在我们知道什么是Sift寄存器了,我们将继续深入研究触发器的类型及其应用。但是在此之前,为了更实际地了解使用移位寄存器的位置,让我们看一下流行的移位寄存器74HC595,我们将其与不同的微控制器一起使用来连接显示器或LED序列。
- 带Arduino的74HC595移位寄存器以控制LED序列
- 使用ESP32的移位寄存器来连接7段显示
- Raspberry Pi的移位寄存器可控制多个LED
- 带PIC的移位寄存器以控制LED的顺序
数字电子中的寄存器类型
移位寄存器主要按其操作模式(串行或并行)分类。
下面列出了六(6)种基本类型的移位寄存器,尽管其中一些可以根据数据流的方向进一步向右移位或向左移位进行划分。
1.串行输入–串行输出移位寄存器(SISO)
2.串行输入–并行输出移位寄存器(SIPO)
3.并行输入–并行输出移位寄存器(PIPO)
4.并行输入–串行输出移位寄存器(PISO)
5.双向移位寄存器
6.柜台
1.串行输入-串行输出移位寄存器
串行输入–串行输出移位寄存器是移位寄存器,它以串行方式(每个时钟周期一位)流式传输数据,并以相同的方式(一个接一个地)流出数据。
上面显示了一个简单的串行输入-串行输出4位移位寄存器,该寄存器由4个触发器组成,下面解释其工作原理。
启动时,首先清除移位寄存器,将所有触发器的输出强制为零,然后将输入数据一次一次地串行施加到输入。
有两种通过SISO移位寄存器将数据移出的基本方法:
- 无损读数
- 破坏性读出
- 无损读数
基于非破坏性读出的移位寄存器始终具有 读/写 操作模式,并增加了一条额外的线以允许在读和写操作模式之间进行切换。
当设备处于“写入”操作模式时,移位寄存器一次将每个数据移出一位,其行为与破坏性读出版本完全相同,因此数据丢失,但是当操作模式切换为“读取”时,数据在输入端移出的寄存器返回系统,并作为移位寄存器的输入。这有助于确保数据保留更长的时间(只要它保持在读取模式下)
- 破坏性读出
对于破坏性的读数,由于触发器只是将信息转移通过,因此数据会完全丢失。假设上面有4位移位寄存器,我们要发送字“ 1101”。清除移位寄存器后,所有触发器的输出均变为0,因此在第一个时钟周期中,当我们串行应用此数据(1101)时,触发器的输出如下表所示。
第一个时钟周期:
FF0 |
FF1 |
FF2 |
FF3 |
1个 |
0 |
0 |
0 |
第二个时钟周期:
FF0 |
FF1 |
FF2 |
FF3 |
0 |
1个 |
0 |
0 |
第三个时钟周期:
FF0 |
FF1 |
FF2 |
FF3 |
1个 |
0 |
1个 |
0 |
第四个时钟周期:
FF0 |
FF1 |
FF2 |
FF3 |
1个 |
1个 |
0 |
1个 |
2.串行输入–并行输出移位寄存器
我们将考虑的第二种类型的移位寄存器是串行输入-并行输出移位寄存器,也称为SIPO移位寄存器。这些类型的移位寄存器用于将数据从串行转换为并行。数据在每个时钟周期中一个接一个地输入,并且可以移位和替换,或者在每个输出中读取。这意味着当读入数据时,每个读入位在它们各自的输出线上(如下所示的4位移位寄存器的Q0 – Q3)同时变为可用。
下图显示了一个4位串行输入–并行输出移位寄存器。
下表显示了如何将数据从串行输入-并行输出4位移位寄存器中移出,数据输入为1001。
明确 |
FF0 |
FF1 |
FF2 |
FF3 |
1001 |
0 |
0 |
0 |
0 |
1个 |
0 |
0 |
0 |
|
0 |
1个 |
0 |
0 |
|
0 |
0 |
1个 |
0 |
|
1个 |
0 |
0 |
1个 |
串行输入-并行输出移位寄存器的一个很好的例子是74HC164移位寄存器,它是一个8位移位寄存器。
该器件具有两个串行数据输入(DSA和DSB),八个并行数据输出(Q0至Q7)。数据通过DSA或DSB串行输入,并且任一输入可用作通过另一输入进行数据输入的有效HIGH使能。数据在时钟(CP)输入的低电平到高电平转换时移位。主复位输入(MR)上的LOW清除寄存器并强制所有输出为LOW,独立于其他输入。输入包括钳位二极管。这样就可以使用限流电阻将输入接口连接到超过VCC的电压。
3.并行输入–串行输出移位寄存器
在并行输入-串行输出移位寄存器中,数据是并行提供的,例如,考虑以下所示的4位寄存器。
该寄存器可用于存储和移位4位字,写/移位(WS)控制输入控制移位寄存器的工作模式。当WS控制线为低电平(写模式)时,可以通过D0到D3写入数据并输入时钟。为了将数据串行移出,将WS控制线置于HIGH(移位模式),然后寄存器通过时钟输入移出数据。串行并行移位寄存器也称为PISO移位寄存器。
74HC165 8位移位寄存器是并行输入-串行输出移位寄存器的一个很好的例子,尽管它也可以用作串行输入-串行输出移位寄存器。
该器件具有一个串行数据输入(DS),八个并行数据输入(D0至D7)和两个互补的串行输出(Q7和Q7')。当并行加载输入(PL)为低电平时,从D0到D7的数据被异步加载到移位寄存器中。当PL为高电平时,数据通过DS串行进入寄存器。当时钟使能输入(CE)为低电平时,数据在CP输入的低电平到高电平转换时移位。CE上的高电平将禁用CP输入。输入具有15 V的过压耐受能力。这使该器件可用于高电平至低电平电平转换应用。
移位寄存器的功能图如下所示;
该系统的时序图如下图所示;
4.并行输入–并行输出移位寄存器
对于并行输入-并行输出移位寄存器,并行输出上的输出数据在输入数据输入时同时出现。这种类型的移位寄存器也称为PIPO移位寄存器。
器件时钟同时读取D0至D3每个输入引脚上的输入数据,同时从每个输入读取的数据在相应的输出处传出(从Q0输出)。至Q3)。
该74HC195移位寄存器是一个多用途的移位寄存器,其能够在大多数由所有我们已经讨论了迄今尤其是如在一个平行的类型描述的模式的工作-并行输出移位寄存器。
5.双向移位寄存器
移位寄存器可以执行右移或左移数据,或同时执行这两种操作,具体取决于移位寄存器的类型及其配置。在右移操作中,二进制数据被二除。如果此操作相反,则二进制数据将乘以2。通过组合逻辑的适当应用,可以将串行移位寄存器配置为执行两种操作。
考虑下图中的4位寄存器。几个“与非”门被配置为“或”门,并用于控制向右或向左移动的方向。
控制线左/写用于确定数据向右或向左移动的方向。
74HC194双向移位寄存器就是一个很好的例子。该寄存器可以在串行和并行输入或输出的所有模式和变体中运行。74HC194的功能图突出显示了控制线,时钟,输入和输出引脚。
该设备的时序图也如下所示。它将更好地帮助您了解控制线如何控制寄存器的动作。
6.柜台
计数器,有时也称为旋转移位寄存器,基本上是移位寄存器,其输出以产生特定模式的方式反馈到设备中作为输入。这些寄存器由于其显示的模式和顺序而被称为计数器。移位寄存器最流行的类型是环形计数器。
环计数器
环形计数器本质上是一种计数器,其中最高有效位的输出被反馈为最低有效位的输入。下图使用D触发器说明了一个4位环形计数器。
当施加时钟脉冲时,每一级的输出将移至下一级,并且该周期继续进行。当clear变为高电平时,除第一个(设置为1)外的所有触发器都复位为零。
移位寄存器的应用
移位寄存器用于许多应用中,其中一些应用包括:
1.并行到串行转换,它们用于减少线的数量,或减少两个设备之间通信所需的线的数量,因为与并行并行相比,串行通信通常只需要两条线,这取决于要发送的位数。
2.微控制器的IO扩展。在现代电子产品中,微控制器的IO引脚被称为房地产,对于某些应用,一个需求尽可能多,例如使用Arduino或Atmeg328p微控制器打开100个LED或读取100个簧片开关。例如,下面的电路图说明了如何使用仅三个微控制器IO引脚的串行到并行移位寄存器来控制8个LED。
3.它们用于顺序寄存器中使用的状态寄存器。像有限存储机器一样,设备的下一个状态始终通过将新数据移位并将其插入到先前位置来确定。
4.在时间延迟中找到了另一个主要应用。移位寄存器用于设备中的时间延迟,其时间由时钟调整,或者通过级联移位寄存器来增加,或者通过从低有效位获取输出来减少。
通常使用以下公式来计算时间延迟;
t = N *(1 / fc)
N是获取输出的触发器级的数量,Fc是时钟信号的频率,而t所确定的值是输出将被延迟的时间量。
当选择一个移位寄存器用于特定的任务,因为广泛的,并键入其重要,选择一个符合您的特定需求,考虑的东西一样,操作模式,位大小(翻转数触发器),右或左或双向等
一些最受欢迎的移位寄存器是:
- 74HC 194 4位双向通用移位寄存器
- 74HC 198 8位双向通用移位寄存器
- 74HC595串行输入并行输出移位寄存器
- 74HC165并行输入-串行输出移位寄存器
- IC 74291 4位通用移位寄存器,二进制递增/递减计数器,同步。
- IC 74395具有三态输出的4位通用移位寄存器。
- IC 74498具有并行输入和三态输出的8位双向移位寄存器。
- IC 74671 4位双向移位寄存器。
- IC 74673具有输出存储寄存器的16位串行输入串行输出移位寄存器。
- IC 74674具有三态输出的16位并行输入串行输出移位寄存器。
还有更多,您只需要找到最适合您的应用程序即可。
感谢您的阅读,直到下一次。