文章目录[隐藏]
本文介绍如何用arduino控制74hc595
1.知识预览
- 对74hc595寄存器进行介绍
- shiftOut()函数介绍
- 对控制程序进行介绍
2.仿真预览
点击74hc595开始仿真
3.74hc595芯片介绍
8位串行输入并行输出(SIPO)移位寄存器
74hc595 和74hc165 的区别在于
74hc165是8位并行输入串行输出(PISO)移位寄存器(输入),而74hc595 8位串行输入并行输出(SIPO)移位寄存器
使用74HC595移位寄存器扩展微控制器上的输出引脚数。有关输入移位寄存器(例如,使用单个输入引脚读取多个按钮),请参阅wokwi-74hc165。
引脚名称
针 | 描述 |
---|---|
DS | 串行输入 |
SHCP | 串行时钟 |
STCP | 存储(闩锁)引脚 |
OE | 输出使能,低电平有效。如果未使用,请连接到 GND。 |
Q0…Q7 | 并行输出 |
Q7S | 串行输出* |
MR | 复位(清除),低电平有效。如果未使用,请连接到 VCC |
GND | 地 |
VCC | 电源电压 |
*使用 Q7S 将多个 74HC595 设备链接在一起。将 Q7S 连接到链中下一个 74HC595 芯片的 DS 引脚。
连接到 Arduino
您需要将至少 3 个引脚连接到微控制器:DS、SHCP 和 STCP。
OE引脚可用于禁用移位寄存器的输出。如果需要该功能,请将其连接到微控制器。否则,请将其连接到地面以永久启用输出。
移位寄存器Q0至Q7的输出引脚通常连接到LED或7段显示器。
下面的代码示例假定您将 DS 连接到 Arduino 引脚 2,SHCP 连接到 Arduino 引脚 3,并将 STCP 连接到 Arduino 引脚 4。它输出一个每秒反转两次的 8 位模式:
const int dataPin = 2; /* DS */
const int clockPin = 3; /* SHCP */
const int latchPin = 4; /* STCP */
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
int pattern = 0b10101010;
void loop() {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(500);
pattern = ~pattern; // Invert the pattern
}
4.代码介绍
shiftOut()
说明
将一个字节的数据通过移位输出的方式逐位输出。数据可以从最高位(最左位)或从最低位(最右位)输出。在输出数据时,当一位数据写入数据输出引脚时,时钟引脚将输出脉冲信号,指示该位数据已被写入数据输出引脚等待读取。
语法
shiftOut(dataPin, clockPin, bitOrder, value)
参数
dataPin
– 数据引脚
clockPin
– 时钟引脚
bitOrder
– 移位顺序 ( 高位先出MSBFIRST
或 低位先出LSBFIRST
)
val
– 数据
返回值
无
注意
使用shiftOut()函数前,数据引脚(dataPin)和时钟引脚(clockPin)必须先通过pinMode()指令设置为输出(OUTPUT)模式。
结束
本来是想吃汤肉味的,不过吃了盐味的之后觉得也不错。虽然搞错了,或许反而挺好。 – 伊坂幸太郎
版权声明:本文为CSDN博主「煤炭的奇妙漂流」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_46152804/article/details/121763131
暂无评论