| 写了一个计数的程序,用数码管显示的,可是问题出现了,两个数码管只有一个是正常的,另一个数码管 该灭的地方倒不灭了,程序如下,求高手指点:
 #include <reg52.h>
 #include <intrins.h>
 sbit LS138A=P2^2;
 sbit LS138B=P2^3;
 sbit LS138C=P2^4;
 sbit LED8_1=P1^1;
 unsigned char table[]={
 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
 };
 unsigned int i,n ,DelayCNT;
 unsigned char m;
 void delay()
 {
 {
 
 for(n; n > 0; n--)
 for(m = 2000; m > 0; m--);
 }
 }
 void main()
 {
 unsigned int i,LedNumVal=1 ;
 unsigned int LedOut[10];
 
 DelayCNT=0;
 while(1)  //进入循环状态
 {
 if(++DelayCNT>=500)
 {
 DelayCNT=0;     //延时计数 每扫描一次加一次
 ++LedNumVal;       //每隔50个扫描周期加一次
 }
 LedOut[6]=table[LedNumVal%10];     //十位
 LedOut[7]=table[LedNumVal%100/10];
 
 for(i=0;i<9;i++)
 {
 P0=LedOut[i];
 switch(i)
 {
 case 0:
 case 1:
 case 2:;
 case 3:
 case 4:
 case 5:
 case 6: LS138A=0; LS138B=1; LS138C=1; LED8_1=1; break;
 case 7: LS138A=1; LS138B=1; LS138C=1; LED8_1=1; break;;
 }
 delay();
 }
 }
 }
 
 |