找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 28|回复: 3
打印 上一主题 下一主题
收起左侧

单片机 8位数码管动态扫描,前7位亮度不够,怎么解决?

[复制链接]
跳转到指定楼层
楼主
问题如帖子标题,跪求大神解决!程序实现的时数码管跑跑秒显示,没有用到定时器,单片机代码如下
  1. while(1){
  2.                         /*
  3.                         DataPort=LedWei[0];                //先要给P0口赋值,否则出现残影                        
  4.                         WEI=1;
  5.                         WEI=0;
  6.                         DataPort=LedDuan[0];
  7.                         DUAN=1;
  8.                         DUAN=0;
  9.                         Delay(1000);  //延时刷新频率,太高了抖动,太低了有拖影
  10.                         
  11.                         DataPort=LedWei[1];
  12.                         WEI=1;
  13.                         WEI=0;
  14.                         DataPort=LedDuan[1];
  15.                         DUAN=1;
  16.                         DUAN=0;
  17.                         Delay1000();
  18.                         */                        
  19.                         t++;
  20.                         if(t>5){
  21.                                 num++;
  22.                                 t=0;
  23.                         }
  24.                         /*if(num==10){
  25.                                 num=0;        
  26.                         }*/
  27.                         
  28.                         Temp[0]=LedDuan[num/10000000];
  29.                         Temp[1]=LedDuan[(num%10000000)/1000000];
  30.                         Temp[2]=LedDuan[((num%10000000)%1000000)/100000];
  31.                         Temp[3]=LedDuan[(((num%10000000)%1000000)%100000)/10000];
  32.                         Temp[4]=LedDuan[((((num%10000000)%1000000)%100000)%10000)/1000];
  33.                         Temp[5]=LedDuan[(((((num%10000000)%1000000)%100000)%10000)%1000)/100];
  34.                         Temp[6]=LedDuan[((((((num%10000000)%1000000)%100000)%10000)%1000)%100)/10];
  35.                         Temp[7]=LedDuan[((((((num%10000000)%1000000)%100000)%10000)%1000)%100)%10];
  36.                         
  37.                         for(i=0;i<8;i++){
  38.                                 DataPort=0x00;  //把段数据清零,清除残影
  39.                                 DUAN=1;
  40.                                 DUAN=0;
  41.                                 Delay(0);
  42.                                 DataPort=LedWei[i];
  43.                                 WEI=1;
  44.                                 WEI=0;
  45.                                 Delay(0);
  46.                                 DataPort=Temp[i];
  47.                                 DUAN=1;
  48.                                 DUAN=0;
  49.                                 Delay(60);
  50.                                 
  51.                         }
  52.                         


  53.                 }
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1109793 发表于 2024-10-30 14:45 | 只看该作者
为何不用定时器?
回复

使用道具 举报

板凳
ID:161164 发表于 2024-10-30 14:49 | 只看该作者

回复

使用道具 举报

地板
ID:712493 发表于 2024-10-30 15:36 | 只看该作者
                        Temp[0]=LedDuan[num/10000000];
                        Temp[1]=LedDuan[(num%10000000)/1000000];
                        Temp[2]=LedDuan[((num%10000000)%1000000)/100000];
                        Temp[3]=LedDuan[(((num%10000000)%1000000)%100000)/10000];
                        Temp[4]=LedDuan[((((num%10000000)%1000000)%100000)%10000)/1000];
                        Temp[5]=LedDuan[(((((num%10000000)%1000000)%100000)%10000)%1000)/100];
                        Temp[6]=LedDuan[((((((num%10000000)%1000000)%100000)%10000)%1000)%100)/10];
                        Temp[7]=LedDuan[((((((num%10000000)%1000000)%100000)%10000)%1000)%100)%10];这部分计算会很久?
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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