74HC595 移位寄存器驱动小程序

74HC595 移位寄存器简介
74HC595 是一款常用的串行输入、并行输出(SIPO)移位寄存器,由德州仪器等厂商生产,属于高速 CMOS 器件。它的核心功能是将少量的串行数据转换为多位数的并行数据,广泛应用于节省微控制器(如 STM32、Arduino)的 GPIO 资源,尤其适合驱动多位 LED 显示、矩阵键盘、LED 点阵等场景。
核心特性
引脚功能(16 引脚 DIP/SOP 封装):
串行输入引脚:
SER(Pin 14):串行数据输入,逐位接收数据。
SRCLK(Pin 11):移位寄存器时钟,每输入一个时钟脉冲,数据向高位移动一位。
RCLK(Pin 12):存储寄存器时钟(锁存信号),当该引脚产生脉冲时,移位寄存器中的数据将被锁存到并行输出寄存器。
并行输出引脚:
Q0~Q7(Pin 15、1~7):8 位并行数据输出端,可直接驱动外部设备(需注意限流,如接 LED 时串联电阻)。
Q7’(Pin 9):串行数据输出,用于级联多个 74HC595(将该引脚连接到下一级的 SER,实现扩展超过 8 位的输出)。
控制引脚:
OE(Pin 13):输出使能,低电平有效(接地时输出有效,接高电平时输出高阻态)。
SRCLR(Pin 10):移位寄存器清零,低电平有效(接地时清空移位寄存器数据,通常接高电平禁用)。
电源引脚:VCC(Pin 16,供电 2~6V)、GND(Pin 8)。
工作原理:
数据通过 SER 引脚逐位输入,每触发一次 SRCLK 时钟,数据左移一位(例如,先输入的 bit0 最终会移到 Q0,bit7 移到 Q7)。
8 位数据全部输入后,触发 RCLK 时钟,移位寄存器中的 8 位数据会被 “锁存” 到并行输出寄存器,Q0~Q7 同时输出对应电平。
若需扩展输出位数(如 16 位、24 位),可将多个 74HC595 级联:前一级的 Q7’ 连接到后一级的 SER,共用 SRCLK 和 RCLK。
优势:
节省 GPIO:仅需 3 个 GPIO(控制 SER、SRCLK、RCLK)即可扩展出 8 位(或级联更多)并行输出。
高速特性:HC 系列支持较高的时钟频率(典型值 25MHz),适合快速刷新显示。
级联灵活:通过 Q7’ 可无限级联(受时钟频率和延迟影响),轻松扩展输出位数。
典型应用:
驱动多位数码管(如 4 位共阴 / 共阳 LED 显示)。
控制大量 LED 灯(如跑马灯、LED 点阵屏)。
扩展微控制器的输出端口,控制继电器、蜂鸣器等外设。

以下是简单驱动程序实现:

#include "main.h"
//SCK(Pin 11):移位寄存器时钟引脚
#define HC595_CLK_H		HAL_GPIO_WritePin(GPIOD,GPIO_PIN_1,GPIO_PIN_SET)
#define
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值