在嵌入式开发和小家电产品设计中,LED 数码管显示是最常见的人机交互方式之一。然而,当需要驱动多位数码管时,直接用 MCU IO 口驱动不仅占用大量引脚,还会增加软件复杂度。今天给大家介绍一款非常实用的 LED 驱动芯片 —— YL1640,它仅需两根线就能驱动 8 段 × 16 位共阴数码管,非常适合电子秤、微波炉、电磁炉、热水器、血压计等产品。
一、芯片概述
YL1640 是由深圳市远乐科技有限公司推出的一款 LED 驱动控制专用电路,内部集成了 MCU 数字接口、数据锁存器、LED 高压驱动等电路,性能优良,质量可靠。
1.1 核心特点
表格
特性 参数
工作电压 2.5V ~ 5.5V(宽电压范围)
显示模式 8 段 × 16 位,支持共阴数码管
通信接口 两线串行接口(CLK + DIN)
亮度调节 8 级占空比可调
振荡方式 内置 RC 振荡(330KHz),无需外部晶振
封装形式 SSOP20、SOP28、SSOP28、QFN28(4×4)
ESD 防护 ≥ ±7000V(HBM 模型)
工作温度 -40°C ~ +85°C
1.2 内置功能
✅ 内置上电复位电路
✅ 采用功率 CMOS 工艺,低功耗
✅ 内置自动消隐电路
✅ 辉度调节电路(占空比 8 级可调)
二、引脚说明
YL1640 提供多种封装,以 28 引脚封装为例,主要引脚功能如下:
2.1 电源与控制引脚
表格
引脚 名称 功能说明
VDD 逻辑电源 5V ± 10% 供电
VSS 逻辑地 接系统地
SCLK 时钟输入 串行时钟,上升沿输入数据
DIN 数据输入 串行数据输入,低位在前高位在后
2.2 驱动输出引脚
SEG1 ~ SEG8:段输出,P 管开漏输出,共 8 路段驱动
GRID1 ~ GRID16:位输出,N 管开漏输出,共 16 路位选驱动
💡 提示:段输出为 P 管开漏(高电平有效),位输出为 N 管开漏(低电平有效),原生支持共阴数码管。
三、电气特性
3.1 极限参数
表格
参数 符号 额定值 单位
电源电压 VCC -0.5 ~ +7.0 V
段驱动输出电流 IO1 -50 mA
位驱动输出电流 IO2 +200 mA
功率损耗 PD 400 mW
工作温度 Topt -40 ~ +85 °C
焊接温度 TL 250(10 秒) °C
⚠️ 注意:超过极限参数可能导致器件永久损坏,请严格按照推荐条件使用。
3.2 推荐使用条件
表格
参数 最小值 典型值 最大值 单位
逻辑电源电压 VDD 2.5 5.0 5.5 V
高电平输入电压 VIH 0.7VDD — VDD V
低电平输入电压 VIL 0 — 0.3VDD V
3.3 直流驱动能力
段输出电流:Vo = VDD – 3V 时,典型值 -30mA,最大值 -50mA
位输出电流:Vo = 0.3V 时,典型值 140mA,最小值 80mA
段间电流一致性:≤ 5%,显示均匀性好
四、通信接口详解
YL1640 采用两线串行接口,接线非常简单,仅需 CLK 和 DIN 两根线即可完成通信。
4.1 传输规则
CLK 高电平时,DIN 信号必须保持不变
CLK 低电平时,DIN 信号才能改变
数据低位在前,高位在后传输
开始条件:CLK 为高电平时,DIN 由高变低
结束条件:CLK 为高电平时,DIN 由低变高
4.2 时序参数
表格
参数 最小值 单位
时钟脉冲宽度 PWCLK 400 ns
数据建立时间 tSETUP 100 ns
数据保持时间 tHOLD 100 ns
最大时钟频率 Fmax 1 MHz
五、指令系统
YL1640 的指令系统分为三类:数据命令、地址命令、显示控制命令。
5.1 指令分类
表格
B7 B6 指令类型 功能
0 1 数据命令 设置数据写入模式
1 1 地址命令 设置显示地址
1 0 显示控制 设置亮度与开关
5.2 数据命令
plaintext
B7 B6 B5 B4 B3 B2 B1 B0
0 1 — — — 0 — — 地址自加模式
0 1 — — — 1 — — 固定地址模式
0 1 — — 0 — — — 普通模式
0 1 — — 1 — — — 测试模式(内部使用)
5.3 地址命令
地址命令用于设置显示 RAM 的起始地址,共 16 个地址(00H ~ 0FH),对应 GRID1 ~ GRID16。
plaintext
B7 B6 B5 B4 B3 B2 B1 B0 显示地址
1 1 — — 0 0 0 0 00H → GRID1
1 1 — — 0 0 0 1 01H → GRID2
…
1 1 — — 1 1 1 1 0FH → GRID16
每个地址的 8 位数据对应 SEG1 ~ SEG8:
表格
数据位 B0 B1 B2 B3 B4 B5 B6 B7
对应段 SEG1 SEG2 SEG3 SEG4 SEG5 SEG6 SEG7 SEG8
⚠️ 重要提示:上电后为避免乱显,请先清显示 RAM(对所有地址写 0),再开显示。
5.4 显示控制命令
亮度调节(8 级)
表格
B3 B2 B1 B0 占空比 亮度等级
1000 1/16 第 1 级(最暗)
1001 2/16 第 2 级
1010 4/16 第 3 级
1011 10/16 第 4 级
1100 11/16 第 5 级
1101 12/16 第 6 级
1110 13/16 第 7 级
1111 14/16 第 8 级(最亮)
显示开关
plaintext
B0 = 0 → 显示关(消隐)
B0 = 1 → 显示开
六、典型应用电路
6.1 共阴数码管电路
这是 YL1640 最常用的接法,原生支持共阴数码管:
plaintext
┌─────────────┐
MCU ───┤ SCLK │
MCU ───┤ DIN │
│ │ ┌──────────┐
SEG1 ──┤ SEG1 GRID1├───┬───┤ 数码管 │
SEG2 ──┤ SEG2 GRID2├───┤ │ 共阴 │
… │ … … │ │ │ │
SEG8 ──┤ SEG8 GRID16├───┘ └──────────┘
│ │
5V ────┤ VDD VSS ├──── GND
└─────────────┘
6.2 硬件设计要点
电源滤波:VDD 与 GND 之间接 104(0.1μF)+ 47μF 滤波电容,靠近芯片放置
电解电容:47μF 建议使用电解电容,加强低频滤波效果
抗干扰:通讯端口建议加上拉 / 限流电阻,提高抗干扰能力
限流电阻:SEG 输出建议串联限流电阻,保护 LED
七、软件驱动示例
以下是一个简化的 YL1640 驱动代码框架(基于 51 单片机):
c
运行
#include <reg52.h>
sbit SCLK = P1^0; // 时钟线
sbit DIN = P1^1; // 数据线
// 共阴数码管段码表 0-9
unsigned char code seg_table[] = {
0x3F, 0x06, 0x5B, 0x4F, 0x66,
0x6D, 0x7D, 0x07, 0x7F, 0x6F
};
// 发送起始信号
void yl1640_start(void) {
SCLK = 1;
DIN = 1;
DIN = 0; // CLK高,DIN由高变低
}
// 发送结束信号
void yl1640_stop(void) {
SCLK = 1;
DIN = 0;
DIN = 1; // CLK高,DIN由低变高
}
// 发送一个字节(低位在前)
void yl1640_send_byte(unsigned char dat) {
unsigned char i;
for(i = 0; i < 8; i++) {
SCLK = 0;
DIN = dat & 0x01; // 低位在前
dat >>= 1;
SCLK = 1; // 上升沿采样
}
}
// 初始化显示
void yl1640_init(void) {
yl1640_start();
yl1640_send_byte(0x40); // 数据命令:地址自加模式
yl1640_stop();
// 清显示 RAM
yl1640_start();
yl1640_send_byte(0xC0); // 地址命令:从00H开始
for(unsigned char i = 0; i < 16; i++) {
yl1640_send_byte(0x00);
}
yl1640_stop();
// 开显示,设置亮度
yl1640_start();
yl1640_send_byte(0x8F); // 显示控制:开显示,最亮
yl1640_stop();
}
// 显示数字
void yl1640_display_num(unsigned char pos, unsigned char num) {
if(pos >= 16 || num >= 10) return;
yl1640_start();
yl1640_send_byte(0x44); // 固定地址模式
yl1640_stop();
yl1640_start();
yl1640_send_byte(0xC0 | pos); // 设置地址
yl1640_send_byte(seg_table[num]); // 发送段码
yl1640_stop();
}
void main(void) {
yl1640_init();
// 在第0位显示数字8
yl1640_display_num(0, 8);
while(1);
}
八、封装选型建议
表格
封装类型 引脚数 本体尺寸 适用场景
QFN28 28 4×4 mm 空间极度受限的产品
SSOP28 28 6.0×3.9 mm 小型化设计,多引脚需求
SSOP20 20 6.0×3.9 mm 引脚需求少,追求小体积
SOP28 28 10.3×7.5 mm 标准封装,易焊接,成本低
选型建议:
追求极致小体积 → QFN28
兼顾体积和成本 → SSOP28
追求低成本、易生产 → SOP28
九、常见问题 FAQ
Q1:上电后数码管乱闪怎么办?
A:请确保上电后先发送清 RAM 命令(所有地址写 0),再发送开显示命令。
Q2:最多可以驱动多少位数码管?
A:YL1640 支持 8 段 × 16 位,最多驱动 16 位共阴数码管。
Q3:可以驱动共阳数码管吗?
A:YL1640 原生支持共阴数码管。共阳数码管需要额外的电平转换电路,建议优先选用共阴方案。
Q4:通信距离有多远?
A:两线串口在 PCB 板内通信稳定可靠,建议板内使用。长距离通信需考虑信号完整性。
Q5:亮度调节范围是多少?
A:8 级亮度调节,占空比从 1/16 到 14/16 可调。
总结
YL1640 是一款性价比极高的 LED 驱动芯片,具有以下优势:
接口简单:仅需两根线,大大节省 MCU IO 资源
驱动能力强:段输出 -50mA,位输出 +200mA,可直接驱动多位数码管
集成度高:内置振荡、复位、消隐电路,外围元件极少
宽电压工作:2.5V ~ 5.5V,适应各种供电场景
多种封装:从 QFN 到 SOP,满足不同空间需求
无论是电子秤、小家电还是工业控制板,YL1640 都是 LED 显示驱动的理想选择。
声明:本文基于 YL1640 产品说明书 Ver02 整理,参数解释权归深圳市远乐科技有限公司所有。本文仅供技术交流参考,实际应用请以官方最新数据手册为准。



