linuxtest 发表于 2022-10-7 23:47:03

动态数码管0-10显示有问题

在做动态显示数码管的时候 利用for循环进行 0-10的数码管显示

但是在到9的时候 突然就显示0了



#include <REGX52.H>
unsigned char code table[]={0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 0x39 , 0x5e , 0x79 , 0x71 ,0x00 } ;

void time(int num){
        int i,j;
        for(i=0;i<num;i++)
        for(j=0;j<120;j++)
        ;

}

//void choice(char LEDnum,num){
//        switch(LEDnum){
//                case 1:P2_4=1;P2_3=1;P2_2=1;break;//左边第一个数码管 Y7
//                case 2:P2_4=1;P2_3=1;P2_2=0;break;//左边第一个数码管 Y6
//                case 3:P2_4=1;P2_3=0;P2_2=1;break;//左边第一个数码管 Y5
//                case 4:P2_4=1;P2_3=0;P2_2=0;break;//左边第一个数码管 Y4
//                case 5:P2_4=0;P2_3=1;P2_2=1;break;//左边第一个数码管 Y3
//                case 6:P2_4=0;P2_3=1;P2_2=0;break;//左边第一个数码管 Y2
//                case 7:P2_4=0;P2_3=0;P2_2=1;break;//左边第一个数码管 Y1
//                case 8:P2_4=0;P2_3=0;P2_2=0;break;//左边第一个数码管 Y0
//               
//                P0=table;
//                time(10);
//               
//        }

//}

void choice(char LEDnum,num){
                switch (LEDnum){
                        case 8:P2_4=0;P2_3=0;P2_2=0;break;//LED1 Y0
                        case 7:P2_4=0;P2_3=0;P2_2=1;break;//LED2 Y1
                        case 6:P2_4=0;P2_3=1;P2_2=0;break;//LED3 Y2
                        case 5:P2_4=0;P2_3=1;P2_2=1;break;//LED4 Y3
                        case 4:P2_4=1;P2_3=0;P2_2=0;break;//LED5 Y4
                        case 3:P2_4=1;P2_3=0;P2_2=1;break;//LED6 Y5
                        case 2:P2_4=1;P2_3=1;P2_2=0;break;//LED7 Y6
                        case 1:P2_4=1;P2_3=1;P2_2=1;break;//LED8 Y7
                }
                P0=table;
//                time(1);
//                P0=0x00;
               
               
                }

void main(){
                int i,j,o;
                while(1){
                        for(i=0;i<2;i++){
                                        for(j<=0;j<10;j++){
                                                        for(o=0;o<10;o++){
                                                                choice(2,j%10);
                                                                time(50);
                                                                choice(1,i/10);
                                                                time(50);
                                                               
                                                                }

                                       
                                               
                                        }
                        }
                       
                }
               
}

页: [1]
查看完整版本: 动态数码管0-10显示有问题