找回密码
 立即注册
查看: 145|回复: 14

stc8h4k32tl驱动100个led亮度不够,请问该如何处理?

[复制链接]

14

主题

38

回帖

1763

积分

金牌会员

积分
1763
发表于 2026-8-24 13:05:59 | 显示全部楼层 |阅读模式
如题,stc8h4k32tl单片机驱动100颗LED白色灯珠,采用共阳的模式,每个seg里面穿了100R的电阻,实际使用的时候亮度没有专用的LED驱动芯片的亮,请问该如何整改?
初始化函数如下:
  1. void bsp_StcLedInit(void)
  2. {
  3.     /*
  4.     所有使用到的COM口配置成高阻态
  5.     */
  6.     P2_MODE_OUT_PP(GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6); // COM0~COM6
  7.     /*
  8.     所有使用到的SEG口配置成高阻态
  9.     */
  10.     P4_MODE_OUT_PP(GPIO_Pin_All);  // SEG0~SEG7
  11.     P0_MODE_OUT_PP(GPIO_Pin_LOW);  // seg8~seg11 P0.0-P0.3
  12.     P3_MODE_OUT_PP(GPIO_Pin_HIGH); // seg12~seg15 P3.4-P3.7
  13.     /*
  14.     COM 使能寄存器(COMEN)
  15.     0:不使能 COMn,仍然为 GPIO
  16.     1:使能 COM/O 在 LEDON/O 在 LEDON=1 时输出 COM 的驱动波形。
  17.     比如此处只用到了 COM0-COM6,所以此寄存器配置为 0x7F(0x0b0111111)
  18.     */
  19.     COMEN = 0x7F; // 使能COM0~COM6
  20.     /*
  21.     SEG 使能寄存器(SEGEN)
  22.     SEGENL:控制 SEG0-SEG7
  23.     SEGENH:控制 SEG8-SEG15
  24.     0:不使能 SEGn,仍然为 GPIO
  25.     1:使能 SEGn,对应的 I/O 在 LEDON=1 时输出 SEG 的驱动波形。
  26.     */
  27.     SEGENL = 0xFF; // 使能SEG0~SEG7
  28.     SEGENH = 0xFF; // 使能SEG8~SEG15
  29.     /*
  30.     LED 控制寄存器(LEDCTRL)
  31.     bit7: LEDON:LED驱动器使能控制
  32.             0:关闭 LED 驱动器
  33.             1:使能 LED 驱动器。
  34.     bit6: NC
  35.     bit5-bit4:LEDMODE[1:0]:LED驱动模式
  36.                 00 共阴模式
  37.                 01 共阳模式
  38.                 10 共阴/共阳模式
  39.                 11 保留
  40.     bit3: NC
  41.     bit2-bit0: LED灰度调节
  42.                 LEDDUTY[2:0] LED占空比 LED亮度
  43.                 000             8/8     100%
  44.                 001             7/8     87.5%
  45.                 010             6/8     75%
  46.                 011             5/8     62.5%
  47.                 100             4/8     50%
  48.                 101             3/8     37.5%
  49.                 110             2/8     25%
  50.                 111             1/8     12.5%
  51.     */
  52.     // LEDCTRL=0x80;        //使能LED驱动器,共阴模式,亮度100%
  53.     LEDCTRL = 0x90; // 使能LED驱动器,共阳模式,亮度100%
  54.     /*
  55.     LED 时钟分频寄存器(LEDCKS)
  56.     寄存器 LEDCKS 的值若设置太大,会导致 LED 产生闪烁现象,一般 LED 刷新频率大于或等于 75Hz 则不会有明显的闪烁
  57.     */
  58.     LEDCKS = 0x00;
  59. }
复制代码









截图202608241243207735.jpg
截图202608241244094582.jpg
截图202608241244473730.jpg
回复

使用道具 举报 送花

已绑定手机

10

主题

409

回帖

1119

积分

金牌会员

积分
1119
发表于 2026-8-24 13:41:42 | 显示全部楼层
stc8h4k32使用矩阵方式驱动100颗LED无法满足高亮度要求,只能加放大器或专用LED驱动芯片。
回复

使用道具 举报 送花

已绑定手机

51

主题

2744

回帖

9547

积分

论坛元老

积分
9547
发表于 2026-8-24 14:26:02 | 显示全部楼层
LED引脚的电流控制寄存器设置增强驱动能力试试

截图202608241425261111.jpg
回复

使用道具 举报 送花

已绑定手机

74

主题

1003

回帖

3653

积分

论坛元老

初出茅庐&无甚本事

积分
3653
发表于 2026-8-24 14:26:36 | 显示全部楼层
支持大几十mA
分开点亮少量可以维持亮度
但占用的点亮时间少会导致亮度低
偶尔看看玩玩
回复

使用道具 举报 送花

83

主题

8219

回帖

1万

积分

超级版主

积分
17644
发表于 2026-8-24 14:44:53 | 显示全部楼层
7个COM,对于高亮的白光LED亮度较高了。是否IO设置不当?示波器看一下100欧姆电阻的电压而推算电流看看是否对了,或者示波器看IO的压降是否过大。
回复

使用道具 举报 送花

14

主题

38

回帖

1763

积分

金牌会员

积分
1763
 楼主| 发表于 2026-8-24 15:00:19 | 显示全部楼层
wul*** 发表于 2026-8-24 13:41
stc8h4k32使用矩阵方式驱动100颗LED无法满足高亮度要求,只能加放大器或专用LED驱动芯片。 ...

配置的不太对,参考二楼的设置,可以显著增加驱动电流,从而增加亮度
回复

使用道具 举报 送花

14

主题

38

回帖

1763

积分

金牌会员

积分
1763
 楼主| 发表于 2026-8-24 15:00:48 | 显示全部楼层
乘风*** 发表于 2026-8-24 14:26
LED引脚的电流控制寄存器设置增强驱动能力试试

感谢陈工
回复

使用道具 举报 送花

14

主题

38

回帖

1763

积分

金牌会员

积分
1763
 楼主| 发表于 2026-8-24 15:01:20 | 显示全部楼层
狂热*** 发表于 2026-8-24 14:26
支持大几十mA
分开点亮少量可以维持亮度
但占用的点亮时间少会导致亮度低 ...

参考二楼的设置,已经解决问题
回复

使用道具 举报 送花

14

主题

38

回帖

1763

积分

金牌会员

积分
1763
 楼主| 发表于 2026-8-24 15:02:27 | 显示全部楼层
梁*** 发表于 2026-8-24 14:44
7个COM,对于高亮的白光LED亮度较高了。是否IO设置不当?示波器看一下100欧姆电阻的电压而推算电流看看是否 ...

感谢回复,fae的陈工指导了一下,设置了一下端口驱动电流控制寄存器之后可以显著增加亮度

点评

你可以测量一个每个段的电流,就可以评估驱动电流了。白光LED的电压大约3V左右。 STC8H4K64TL的IO设置成大电流输出,COM可以有60mA的驱动能力。 STC8H4K64TL有专门的LED驱动模块,最多可以同时驱动16个共阴+16个共阳  详情 回复 发表于 2026-8-24 16:44
回复

使用道具 举报 送花

83

主题

8219

回帖

1万

积分

超级版主

积分
17644
发表于 2026-8-24 16:44:36 | 显示全部楼层
rog*** 发表于 2026-8-24 15:02
感谢回复,fae的陈工指导了一下,设置了一下端口驱动电流控制寄存器之后可以显著增加亮度 ...

你可以测量一个每个段的电流,就可以评估驱动电流了。白光LED的电压大约3V左右。
STC8H4K64TL的IO设置成大电流输出,COM可以有60mA的驱动能力。
STC8H4K64TL有专门的LED驱动模块,最多可以同时驱动16个共阴+16个共阳数码管。
不管是硬件自动扫描驱动,还是软件扫描驱动,驱动N个数码管,每个数码管的显示占空比就是1/N,数码管越多,平均电流就越小,亮度就会越低。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-9-23 16:10 , Processed in 0.089579 second(s), 86 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表