void LedOn2(int i,int j){ switch(i){ case(0): LSA=0;LSB=0;LSC=0; break;//显示第0位 case(1): LSA=1;LSB=0;LSC=0; break;//显示第1位 case(2): LSA=0;LSB=1;LSC=0; break;//显示第2位 case(3): LSA=1;LSB=1;LSC=0; break;//显示第3位 case(4): LSA=0;LSB=0;LSC=1; break;//显示第4位 case(5): LSA=1;LSB=0;LSC=1; break;//显示第5位 case(6): LSA=0;LSB=1;LSC=1; break;//显示第6位 case(7): LSA=1;LSB=1;LSC=1; break;//显示第7位 } DIG = DIG_CODEHEX[j]; j = 10; while(j--); DIG=0x00;}
个中LSA、LSB、LSC代表着138译码器的sbit,可以根据须要自己定义对应的GPIO口。末了一行是为了消隐,防止当前代码显示到其他的数码管上,可以自己做实验不雅观察差别。
附录数码管位码:

unsigned char code DIG_CODEHEX[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};








