El 74HC595芯片顾名思义,它是一种在内部实现CMOS电路的印刷电路。 具体来说,它是一个移位寄存器。 对于那些仍然不知道这些寄存器的人来说,它基本上是一个顺序数字电路,也就是说,其在输出中的值仅取决于输入的值和存储的先前值。
这使它们与组合区别开来,即输出仅取决于输入的值。 该寄存器由一系列D型触发器或由时钟信号命令的触发器组成。 那些 拖鞋是回忆 保持先前的值。 每个存储一点,从其名称,您还可以推断出它可以移动它们。 通过从一侧到另一侧运行这些位,我们可以进行非常有趣的数字操作。
移位寄存器类型
根据 排量类型 就像它们在存储的位上所做的那样,寄存器可以是各种类型的。 它们能够左右移动,有些是双向的,但是顺序是决定类型的原因,即使在其他情况下,它们也会根据输入和输出的方式进行分类:
- 系列-系列:那些只有第一个触发器接收数据的寄存器,它们依次串联直到填满完整的寄存器。 最后一个触发器是直接连接到输出并通过其退出寄存器的触发器。
- 并联系列:这些位并行输入以同时存储在所有触发器中,但随后又串行输出。 它们可用于从串联转换为并联,反之亦然。
- 串并联:与上一个相似,所有输出可同时从所有触发器访问。 但是数据只能按第一个序列输入。
- 平行平行-数据并行进行,并行进行。
在最知名的电路中,我们拥有 74HC595、74HC164、74HC165、74HC194, 等等。 194是通用的,可以根据需要配置。 另一方面,我们还有其他双向对象,例如165和164,因此它按照方向控制信号的指定向左或向右移动,但是它们只有一种配置:并行输入和串行输出,以及串行输入和并行输出。
什么是移位寄存器?
为什么要移位位? 移位数据位可能非常实用。 原因之一是您需要为特定目的移动值。 但是移位还涉及对存储的位执行一些操作。 例如,将一组位向左移动就像将它们乘以2。向右移动就如同将其除以2。因此,进行二进制乘法和除法它们可能非常实用...
它们还用于生成伪随机值,用于在模拟/数字转换器中广泛使用的逐次逼近,延迟等。 在中的用途 逻辑数字电路 这是很常见的,因此在某些项目中必须使用它们并不罕见。
74HC595特性
El 74HC595是相当简单的集成电路。 它是一个8位移位寄存器,也就是说,它具有8个触发器来存储8位。 可以在上图中看到该芯片的引脚或引脚,其中Vcc和GND为电源,然后标记为Q的是数据。 其余部分对应于时钟/控制信号。
该 输入具有串联,输出并联。 因此,使用单个输入,可以同时控制这8个输出。 您只需要使用过的微控制器(例如Arduino)的三个引脚即可驱动它。 这些是锁存器,时钟和数据。 在这种情况下,锁存器是引脚13,尽管它可能会有所不同,所以您应该查阅制造商的数据表。 时钟可以是11或其他,数据位是14。
La 时钟标志 它将为电路供电,以决定其工作的节奏或节奏。 数据输出将改变芯片的行为。 例如,当从LOW变为HIGH并通过将时钟从HIGH变为LOW来生成新的时钟脉冲时,所实现的是记录位移所在的当前位置,即该数据引脚输入的值。 如果重复此8次,则将记录所有8个位置并存储一个字节(Q0-Q7)。
与Arduino一起使用
为了更清楚一点,也许 Arduino的一个例子 与开始发布理论数据相比,它以更直观和图形化的方式向您解释。 例如,您可以使用Arduino和74HC595移位寄存器创建一个简单的电路,以使用某些灯光或LED。 另一个更好和更简单的选择是使用7段显示器从寄存器中读取值。
该图是您在上图中看到的图,一旦Arduino以这种方式连接到 74HC595和显示器, 仅需使用Arduino IDE对其进行编程,我们将看到移位寄存器的可能性。 代码如下,带有一系列二进制代码0bxxxxxxxx,其中x位:
const int latchPin = 8; // Pin conectado al Pin 12 del 74HC595 (Latch) const int dataPin = 9; // Pin conectado al Pin 14 del 74HC595 (Data) const int clockPin = 10; // Pin conectado al Pin 11 del 74HC595 (Clock) int i =0; const byte numeros[16] = { 0b11111100, 0b01100000, 0b11011010, 0b11110010, 0b01100110, 0b10110110, 0b10111110, 0b11100000, 0b11111110, 0b11100110, 0b11101110, 0b00111110, 0b10011100, 0b01111010, 0b10011110, 0b10001110 }; void setup() { Serial.begin(9600); pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { for (i=0;i<16;i++) { delay(1000); digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, numeros[i]); digitalWrite(latchPin, HIGH); } }
产品规格书
在市场上您会发现 来自不同制造商的不同74HC595芯片。 其中之一就是神话般的德州仪器(TI)或Ti,但无论如何,每个制造商都应向您提供数据表以供下载。 从其官方网站。 您还可以找到其他一些像 ON Semiconductor, 英国威廉希尔, 意法半导体,恩智浦等