使用74HC595D扩展树莓派GPIO控制8颗LED发光二极管
芯片概述
74HC595和74HC595D 电气特性
管脚定义(左:74HC595D 右:74HC595)
管脚符号 | 管脚序号 | 管脚含义 | 备注 |
---|---|---|---|
QA | 15 | 并行数据输出 | 接独立的LED发光二极管 |
QB | 1 | 并行数据输出 | 接独立的LED发光二极管 |
QC | 2 | 并行数据输出 | 接独立的LED发光二极管 |
QD | 3 | 并行数据输出 | 接独立的LED发光二极管 |
QE | 4 | 并行数据输出 | 接独立的LED发光二极管 |
QF | 5 | 并行数据输出 | 接独立的LED发光二极管 |
QG | 6 | 并行数据输出 | 接独立的LED发光二极管 |
QH | 7 | 并行数据输出 | 接独立的LED发光二极管 |
GND | 8 | 接地端 | 接树莓派的GND引脚 |
Vcc | 16 | 电源正极输入 | 接树莓派的5V电源正极引脚 |
SI | 14 | 串行数据输入 | 控制数据的输入。一般接树莓派定义好的GPIO引脚来接收树莓派的高低电平数据 |
G | 13 | 输出使能控制端 | 是否要将数据输出到QA~QH引脚上 |
RCK | 12 | 存储寄存器(锁存器)时钟输入 | 是否要将移位寄存器中的数据拷贝到存储寄存器(锁存器)中。一般接树莓派定义好的GPIO引脚来接收树莓派的数据实现上升沿 |
SCK | 11 | 移位寄存器时钟输入 | 决定何时把SI引脚的数据存入移位寄存器中。一般接树莓派定义好的GPIO引脚来接收树莓派的数据实现上升沿 |
SCLR | 10 | 移位寄存器清零输入 | 决定是否要重置所有的寄存器到初始状态。 |
QH’ | 9 | 串行数据输出 | 接下一个74HC595D的SI引脚实现串联 |
补充表格注释:
树莓派控制74HC595D流程原理图
树莓派GPIO
管脚定义
实验
使用74HC595D扩展树莓派GPIO点亮8个LED二极管
电路图
注意点:
-
74HC595D的编号为14的管脚(SI)接树莓派GPIO 1管脚(物理管脚:12)
-
74HC595D的编号为12的管脚(RCK)接树莓派GPIO 4管脚(物理管脚:16)
-
74HC595D的编号为11的管脚(SCK)接树莓派GPIO 5管脚(物理管脚:28)
-
74HC595D的编号为13的管脚(G)接树莓派GPIO 6管脚(物理管脚:22)
-
LED发光二极管和74HC595D的GND接地端在线路设计上可以共用,无需再接树莓派的其他GND引脚
效果
执行C程序后,会看到LED灯切换亮灭,切换时间为1秒。
程序:
https://gitee.com/stevejrong1024/raspberry-traffic.git
文件:
74hc595d-control.c
遗留问题
- 当执行完一个“开关灯for循环”后,8位数据都传输完毕,数据也都拷贝到锁存器中输出,但有时LED会不亮,有时却正常。