动态数码管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]