74HC595 驱动原理 + STM32 控制代码。
试验环境:
- 8 位数码管(3641BS x 2 + 74HC595 x 2)
- 主控芯片:STM32F103C6T6A
74HC595 驱动原理
电路分析
3461BS
3461BS 是一个 4 位数码管,有 4 位数字,每个数字由 8 个 LED(发光二极管) 的亮灭控制显示。
由于发光二极管具有单向导电性,所以多位数码管分为 共阳(3461BS) 和 共阴(3461AS)2 种类型。
共阳则设置 6/8/9/12 为高电平,对应 LED 为低电平时,LED 发光。共阴则高低电平相反。
数字示例:数字 0:只有 g、h 为 1,其余全为 0;数字 1:只有 b、c 为 0,其余全为 1。
Tips:本篇电路图示中的 h=DF=DP
。
74HC595
74HC595 连接 3461xS 的电路:
如上所示,如果想要第一位数码管显示数字0,则需要U14 的输出为 0xC0(从高位到低位扫描:1100 0000),设置 U13 的输出为:0x01。
74HC595 是一个由 16 个 D型触发器 组成的 CMOS 移位寄存器。内部电路如下:
- D触发器是指一种具有数据(D)输入端、时钟(CLK)输入端和输出端(Q)的电路。它在时钟信号的上升沿到来时,将数据端的值锁存到输出端,其他时间保持输出状态不变。
- $Q_0 - Q_7$ 对应 $QA - QH$。
由于多位触发器按位存入,先入者在高位,所以按照时序将 0xC0 存入 U14 的时序如下:
按时序将 0xC0 存入 U14 动画如下:
物理连接
STM32 | 数码管 |
---|---|
3.3V | VCC |
GND | GND |
PA7 | DIO |
PA4 | RCLK |
PA5 | SCLK |
STM32 驱动
1 | // 关键函数 |
实际运行效果: