当前位置:首页 > 经验 >

移位寄存器的工作原理(八位循环移位寄存器工作原理)

来源:原点资讯(www.yd166.com)时间:2022-11-06 07:23:36作者:YD166手机阅读>>

该图的“MUX”部分实际上由许多分立的逻辑门组成,它们用于在正确的时间将数据馈入相关的触发器。

这很重要,因为 PISO 移位寄存器需要单独计时并行数据的每一位。这意味着并行输入上的数据在读取时不能更改,同样,大多数实际设计采用缓冲区来保存并行数据。

级联移位寄存器

移位寄存器按其处理的位数进行分类,前面插图中显示的那些是 4 位寄存器,而我们今天将使用的两个移位寄存器都是 8 位设备。

如果您需要增加可以使用移位寄存器处理的并行数据量,您可以将其与另一个移位寄存器级联。所以两个 8 位移位寄存器可以支持 16 位,再加一个支持 24 位,等等。

您不需要额外连接到微控制器来级联移位寄存器,因此这是驱动大量 LED 或读取大量开关而不使用大量端口的好方法。

74HC575 & 74HC165 移位寄存器

今天我们将使用两个非常常见且容易获得的移位寄存器,即 74HC595 SIPO 和 74HC165 PISO。让我们仔细看看这些芯片。

74HC595——8位串行输入——并行输出

该74HC575是一个8级串行移位寄存器,它也具有一个内部存储寄存器。存储寄存器缓冲输出数据并且可以独立于移位寄存器计时。这可以防止数据在加载时发生变化。

74HC595 具有“三态”输出。这意味着并行数据输出上的引脚可以处于三种不同的状态。

OFF 状态是高阻态,有效断开芯片的输出。这种技术允许多个三态芯片驱动同一条总线,在任何给定时间只有其中一个处于活动状态。

DIP 封装中 74HC575 的引脚排列如下所示:

移位寄存器的工作原理,八位循环移位寄存器工作原理(13)

串行数据在 DS 引脚(引脚 14)上输入。您可以使用 Q7' 引脚来级联这些设备,以增加您可以控制的并行输出数量。

输出使能(引脚 13)控制三态总线,如果它为低电平,则输出总线被使能。

74HC165 – 8 位并行输入 – 串行输出

该74HC165是具有串行输出的8位并行负载移位寄存器。它具有互补输出,其中一个可以连接到另一个 74HC165 以将它们级联。

该器件用于并行到串行数据转换,具有以下引脚排列:

移位寄存器的工作原理,八位循环移位寄存器工作原理(14)

与 74HC595 一样,这是一种非常常见的集成电路,您几乎可以从任何电子供应商处获得它。

74HC595 的额外输出端口

我们将从 74HC595 SIPO(串行输入-并行输出)移位寄存器开始我们的实验。

74HC595 允许我们扩展 Arduino 上的数字 I/O 端口的数量。在这些实验中,我们将使用它来驱动一些 LED,我们将使用 Arduino 控制这些 LED。

Arduino & 74HC595 连接

以下是我们将 74HC595 连接到 Arduino 和八个 LED 的方法。

移位寄存器的工作原理,八位循环移位寄存器工作原理(15)

请注意在电源两端添加了一个去耦电容器,当使用 74HC595 等 TTL 芯片时,这是一个好主意。我使用了一个 100uf 的电容器,但 10uf 以上的任何值都可以正常工作。确保您观察电容器的极性。

在我的面包板上,我用一个 8×2220 欧姆的电阻阵列替换了八个降压电阻。当您需要大量相同的电阻器时,这是一个方便的组件。当然,如果您没有阵列,您可以使用分立电阻器。

这里有很多电线,所以请仔细检查您的接线。您可以先连接 LED 降压电阻器组合,然后向电阻器施加 5 伏电压,如果接线正确,您将点亮 LED。对所有八个电阻-LED 对重复测试。在连接 74HC595 和 Arduino 之前执行此操作。

一旦全部连接好,您就可以继续前进并编写一些代码以使其全部工作。

Arduino shiftOut() 函数

有几种方法可以使用 Arduino 与移位寄存器“对话”。一种方法是使用 SPI 总线,它允许您利用现有库来简化代码编写。

另一种方法是使用 Arduino 上的任何标准 I/O 引脚来创建时钟并交换串行数据。这是我们将用于处理 74HC595 移位寄存器的方法。

Arduino 提供了一个shiftOut()函数来简化串行连接上的数据移动。它可以获取一个字节值并以串行格式与另一个引脚上的时钟脉冲同步输出。可以选择两个方向输出数据。

  • MSB First– 最高位在前。所以二进制数 10110010 将以“101”开始,或者从左到右,一次输出一位。
  • LSB First – 最低有效位在前。在这种情况下,二进制数 10110010 将以“010”开始,或从右到左,一次输出一位。

我们将在我们的代码中使用这个功能。

Arduino 和 74HC595 代码

我们的代码非常简单。该SHIFTOUT函数能将我们的数据发送到移位寄存器和创建时钟信号。

/* 74HC595 Shift Register Demonstration 1 74hc595-demo.ino Count in Binary and display on 8 LEDs Modified from "Hello World" example by Carlyn Maw,Tom Igoe and David A. Mellis DroneBot Workshop 2020 https://dronebotworkshop.com */ // Define Connections to 74HC595 // ST_CP pin 12 const int latchPin = 10; // SH_CP pin 11 const int clockPin = 11; // DS pin 14 const int dataPin = 12; void setup () { // Setup pins as Outputs pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { // Count from 0 to 255 and display in binary for (int numberToDisplay = 0; numberToDisplay < 256; numberToDisplay ) { // ST_CP LOW to keep LEDs from changing while reading serial data digitalWrite(latchPin, LOW); // Shift out the bits shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay); // ST_CP HIGH change LEDs digitalWrite(latchPin, HIGH); delay(500); } }

我们首先为连接到 74HC595 的引脚分配变量名称。然后将所有这些引脚设置为输出。然后我们进入循环。

我们使用 for-next 循环从 0 到 255 计数,递增 1。在每次增量时,我们将计数器值写入移位寄存器。锁存引脚用于在我们准备好之前保存数据,以便在加载移位寄存器时显示不会闪烁。

半秒延迟后,下一个数字被加载。

移位寄存器的工作原理,八位循环移位寄存器工作原理(16)

栏目热文

变频器寄存器通俗解释(变频器作用通俗解释)

变频器寄存器通俗解释(变频器作用通俗解释)

1、系统配置1.1 软件安装 Step7 Micro/Win SMART software(含 Modbus协议库)的P...

2022-11-06 07:27:33查看全文 >>

3分钟看懂时序图(plc时序图通俗解释)

3分钟看懂时序图(plc时序图通俗解释)

操作时序永远使用是任何一片IC芯片的最主要的内容。一个芯片的所有使用细节都会在它的官方器件手册上包含。所以使用一个器件事...

2022-11-06 07:40:21查看全文 >>

plc寄存器基础知识(plc中寄存器有哪几种)

plc寄存器基础知识(plc中寄存器有哪几种)

1、 S7-200将1个字长(16位)数字值按比例转换为电流或电压。可以用区域标识符(AQ)、数据长度(W)及字节的起始...

2022-11-06 06:56:07查看全文 >>

寄存器通俗图解(寄存器编程知识讲解)

寄存器通俗图解(寄存器编程知识讲解)

这些显示电子系统中信号波形的动图,有助于帮助我们理解传输的机理。1SPI传输▲ 图1 SPI 数据传输▲ 图1.2 SP...

2022-11-06 07:09:25查看全文 >>

寄存器仿真原理动画(电路寄存器接口图解)

寄存器仿真原理动画(电路寄存器接口图解)

 仿真器出现的原因1、早期的单片机内部没有ROM,比如8031、8032,这种单片机只能外部扩展紫外擦除的EPROM存储...

2022-11-06 07:39:40查看全文 >>

寄存器的工作原理及逻辑功能(寄存器电路工作原理)

寄存器的工作原理及逻辑功能(寄存器电路工作原理)

序言前段时间,我连续写了十来篇CPU底层系列技术故事文章,有不少读者私信我让我写一下CPU的寄存器。寄存器这个太多太复杂...

2022-11-06 07:33:35查看全文 >>

图解寄存器(寄存器寻址图解)

图解寄存器(寄存器寻址图解)

引言指令计数器即程序计数器。它是计算机处理器中的寄存器,它包含当前正在执行的指令的地址(位置)。当每个指令被获取,指令计...

2022-11-06 07:26:17查看全文 >>

8位移位寄存器原理(8位移位寄存器电路设计)

8位移位寄存器原理(8位移位寄存器电路设计)

Arduino从零开始你将学到什么1、你将学到如何增加arduino uno的数字输出针脚2、你将学到74HC595移位...

2022-11-06 07:03:05查看全文 >>

寄存器通俗解释(单片机寄存器通俗解释)

寄存器通俗解释(单片机寄存器通俗解释)

我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 starhttps://github.com/crisxua...

2022-11-06 07:22:54查看全文 >>

计算机寄存器原理图(计算机中所有的寄存器)

计算机寄存器原理图(计算机中所有的寄存器)

通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什...

2022-11-06 07:20:50查看全文 >>

文档排行