找回密码
 立即注册
楼主: pluto1000

数码管显示怎样才能不闪烁

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-04-25 16:31:21
已绑定手机

14

主题

600

回帖

2199

积分

荣誉版主

积分
2199
发表于 2024-5-12 15:28:57 | 显示全部楼层
人眼26帧,刷8个的话,轮流刷,那是26*8=208,
也就是一秒钟要扫208次,算250次,定时4m,挨个刷,绝对不会闪.
还有就是,数码管刷新下一位之前,全部段码根据工阴共阳,让他全灭,然后再开启,保证效果棒棒滴.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-04-25 16:31:21
已绑定手机

14

主题

600

回帖

2199

积分

荣誉版主

积分
2199
发表于 2024-5-12 15:30:51 | 显示全部楼层
wangxi*** 发表于 2024-3-31 07:06
8个数码管中断里面多长时间刷新一次合适,
频率低了有频闪,频率高了亮度骤降……求指导 ...

做产品,第一件事解决闪,,不闪了,试着把电阻改小,如果还不够亮,加三极管驱动,实在不行,直接上LED专用芯片,一劳永逸了.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2024-5-12 16:47:09 | 显示全部楼层
把显示处理交给TM1637或带数码管驱动的STC8。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:488
  • 最近打卡:2025-05-02 07:02:30
已绑定手机

27

主题

693

回帖

1954

积分

金牌会员

打工人

积分
1954
发表于 2024-5-14 03:42:59 | 显示全部楼层
加驱动芯片
打工人
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:395
  • 最近打卡:2025-05-02 05:31:55

16

主题

702

回帖

2474

积分

金牌会员

积分
2474
发表于 2024-5-14 07:42:37 | 显示全部楼层
每个数码管,最低保证每秒刷新60Hz以上,人眼就不会看出来有闪烁现象,75Hz会更好
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-5-14 11:43:36 | 显示全部楼层
用定时器中断里面放状态机,周期性刷数码管,保证流畅不闪,随便给你贴个参考代码,别60Hz不闪,我直接干到300多Hz对单片机也没任何负担
  1. //刷数码管定时器 1000Hz  三个数码管平均333Hz
  2. void Timer2_Isr(void) interrupt 12
  3. {
  4.         static u8 sta;
  5.         COM1 = 0; COM2 = 0; COM3 = 0;   //关闭数码管
  6.         switch (sta)
  7.         {
  8.                 case 1:
  9.                         P1 = number[0];   
  10.                         COM1 = 1;        //百位
  11.                         sta = 2;
  12.                         break;
  13.                 case 2:
  14.                         P1 = number[1];
  15.                         COM2 = 1;                 //十位       
  16.                         sta = 3;
  17.                         break;
  18.                 case 3:
  19.                         P1 = number[2];
  20.                         COM3 = 1;                 //个位       
  21.                         sta = 1;
  22.                         break;
  23.                 default:
  24.                         sta = 1;
  25.                         break;
  26.         }
  27. }
  28. 调用方法,直接赋值即可:
  29.         number[0] = display[tmp_now / 100];       //拆分出十位
  30.         number[1] = display[(tmp_now % 100) / 10]&0x7F;  //拆分出个位
  31.         number[2] = display[tmp_now % 10];        //拆分出小数点后一位
复制代码



睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2024-5-14 12:30:33 | 显示全部楼层
上TM1633 还是什么的, 忘了 那个数码管的芯片
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-01-27 08:02:36

23

主题

36

回帖

284

积分

中级会员

积分
284
发表于 2024-5-19 21:50:21 | 显示全部楼层
多谢各位大佬,用定时器可以
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:103
  • 最近打卡:2025-05-01 05:00:32
已绑定手机

0

主题

3

回帖

438

积分

中级会员

积分
438
发表于 2025-1-5 15:03:20 | 显示全部楼层
求大神贴个TM1637四位led模块的例程,谢谢了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:419
  • 最近打卡:2025-05-02 06:28:49

24

主题

108

回帖

452

积分

中级会员

积分
452
发表于 2025-1-5 16:28:54 | 显示全部楼层
用一毫秒定时器刷新一个数码管,不能在main函数里面刷新数码管。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 13:19 , Processed in 0.145487 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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