找回密码
 立即注册
楼主: plut***

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

[复制链接]
  • TA的每日心情
    慵懒
    昨天 00:25
  • 签到天数: 111 天

    [LV.6]常住居民II

    12

    主题

    508

    回帖

    1544

    积分

    荣誉版主

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

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 00:25
  • 签到天数: 111 天

    [LV.6]常住居民II

    12

    主题

    508

    回帖

    1544

    积分

    荣誉版主

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

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

    使用道具 举报

  • TA的每日心情
    开心
    半小时前
  • 签到天数: 202 天

    [LV.7]常住居民III

    67

    主题

    913

    回帖

    3110

    积分

    论坛元老

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

    使用道具 举报

  • TA的每日心情
    奋斗
    1 小时前
  • 签到天数: 182 天

    [LV.7]常住居民III

    18

    主题

    609

    回帖

    789

    积分

    高级会员

    打工人

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

    使用道具 举报

  • TA的每日心情

    昨天 07:16
  • 签到天数: 104 天

    [LV.6]常住居民II

    4

    主题

    551

    回帖

    1545

    积分

    金牌会员

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

    使用道具 举报

  • TA的每日心情
    奋斗
    8 小时前
  • 签到天数: 129 天

    [LV.7]常住居民III

    18

    主题

    541

    回帖

    833

    积分

    荣誉版主

    热心市民

    积分
    833
    发表于 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];        //拆分出小数点后一位
    复制代码



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

    使用道具 举报

  • TA的每日心情
    无聊
    8 小时前
  • 签到天数: 184 天

    [LV.7]常住居民III

    10

    主题

    316

    回帖

    1208

    积分

    金牌会员

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-30 10:22
  • 签到天数: 2 天

    [LV.1]初来乍到

    14

    主题

    21

    回帖

    152

    积分

    注册会员

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-16 09:01 , Processed in 0.072618 second(s), 55 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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