用移位寄存器来扩展 8位移位寄存器( 三 )


输出使能(引脚 13)控制三态总线,如果它为低电平,则输出总线被使能 。
74HC165 – 8 位并行输入 – 串行输出该74HC165是具有串行输出的8位并行负载移位寄存器 。它具有互补输出,其中一个可以连接到另一个 74HC165 以将它们级联 。
该器件用于并行到串行数据转换,具有以下引脚排列:

用移位寄存器来扩展 8位移位寄存器


与 74HC595 一样,这是一种非常常见的集成电路,您几乎可以从任何电子供应商处获得它 。
74HC595 的额外输出端口我们将从 74HC595 SIPO(串行输入-并行输出)移位寄存器开始我们的实验 。
74HC595 允许我们扩展 Arduino 上的数字 I/O 端口的数量 。在这些实验中,我们将使用它来驱动一些 LED,我们将使用 Arduino 控制这些 LED 。
Arduino & 74HC595 连接以下是我们将 74HC595 连接到 Arduino 和八个 LED 的方法 。
用移位寄存器来扩展 8位移位寄存器


请注意在电源两端添加了一个去耦电容器,当使用 74HC595 等 TTL 芯片时,这是一个好主意 。我使用了一个 100uf 的电容器,但 10uf 以上的任何值都可以正常工作 。确保您观察电容器的极性 。
在我的面包板上,我用一个 82220 欧姆的电阻阵列替换了八个降压电阻 。当您需要大量相同的电阻器时,这是一个方便的组件 。当然,如果您没有阵列,您可以使用分立电阻器 。
这里有很多电线,所以请仔细检查您的接线 。您可以先连接 LED 降压电阻器组合,然后向电阻器施加 5 伏电压,如果接线正确,您将点亮 LED 。对所有八个电阻-LED 对重复测试 。在连接 74HC595 和 Arduino 之前执行此操作 。
一旦全部连接好,您就可以继续前进并编写一些代码以使其全部工作 。
Arduino shiftOut() 函数有几种方法可以使用 Arduino 与移位寄存器“对话” 。一种方法是使用 SPI 总线,它允许您利用现有库来简化代码编写 。
另一种方法是使用 Arduino 上的任何标准 I/O 引脚来创建时钟并交换串行数据 。这是我们将用于处理 74HC595 移位寄存器的方法 。
Arduino 提供了一个shiftOut()函数来简化串行连接上的数据移动 。它可以获取一个字节值并以串行格式与另一个引脚上的时钟脉冲同步输出 。可以选择两个方向输出数据 。