guoyt 发表于 2022-4-17 21:35

数码管显示999-0;个位闪烁

数码管显示999-0;个位为什么闪烁?如何改善?现附程序如下,请大神指点!!!!!!!!
sbit shi=P1^2;
sbit bai=P1^1;
unsigned int a,b,c, j;
#define uint unsigned int
void delay(uint x)
{
      for(a=x;a>0;a--)
                for(b=110;b>0;b--);
}
main()
{         while(1)
      {
               
               
                for(c=999;c>0;c--)
      
                        {
                            //delay(100);
                                 bai=0;
                              P0=shizhong ;
                              delay(8);
                              P0=0xff;
                              bai=1;

                                  shi=0;
                              P0=shizhong ;
                              delay(8);
                              P0=0xff;
                              shi=1;
               
                              ge=0;
                              P0=shizhong;
                              delay(24);
                              P0=0xff;
                            ge=1;
                        }

         

      }
}

llljh 发表于 2022-4-17 21:38

P0=0xff; 都去掉,delay(8),小点,或去掉试试

dingy 发表于 2022-4-17 21:44

P0=0xff; 都去掉,delay(8),小点,不能去掉 不然可能有重影你把晶振频率调大一点让程序刷新的快一点

dengdc 发表于 2022-4-17 21:46


sbit shi=P1^2;
sbit bai=P1^1;

#define uint unsigned int

void delay(uint x)
{
      unsigned int a,b;

      for(a=x;a>0;a--){
                for(b=110;b>0;b--){

                }
      }
}

void main(void)
{
      while(1)
      {
                U8 c2;
                int c1;

                for(c=999; c>=0; c--){
                        for(c2=0; c2<100; c2++){
                              //delay(100);
                              bai=0;
                              P0=shizhong ;
                              delay(8);
                              P0=0xff;
                              bai=1;

                              shi=0;
                              P0=shizhong ;
                              delay(8);
                              P0=0xff;
                              shi=1;

                              ge=0;
                              P0=shizhong;
                              delay(8);
                              P0=0xff;
                              ge=1;
                        }
                }
      }
}

jlyuan 发表于 2022-4-17 21:48

sbit shi=P1^2; sbit bai=P1^1;#define uint unsigned intvoid delay(uint x) {         unsigned int a,b;          for(a=x;a>0;a--){               for(b=110;b>0;b--){                  }         } }void main(void) {         while(1)         {               U8 c2;               int c1;                  for(c=999; c>=0; c--){                         for(c2=0; c2<100; c2++){                                 //delay(100);

stly 发表于 2022-4-17 21:51


sbit shi=P1^2; sbit bai=P1^1;#define uint unsigned intvoid delay(uint x) {         unsigned int a,b;          for(a=x;a>0;a--){               for(b=110;b>0;b--){                  }         } }void main(void) {         while(1)         {               U8 c2;               int c1;                  for(c=999; c>=0; c--){                         for(c2=0; c2<100; c2++){                                 //delay(100);                                 bai=0;                                 P0=shizhong ;                                 delay(8);                                 P0=0xff;                                 bai=1;                                  shi=0;                                 P0=shizhong ;                                 delay(8);                                 P0=0xff;                                 shi=1;                                  ge=0;                                 P0=shizhong;                                 delay(8);                                 P0=0xff;                                 ge=1;                         }               }         } }

guoyt 发表于 2022-4-17 21:54

嗯,预料中的结果,多谢大家啦
页: [1]
查看完整版本: 数码管显示999-0;个位闪烁