| 
 
| #include<reg51.h> 
 #define uchar unsigned char
 void delay()
 {
 uchar i,j,k;
 for(i=0;i<10;i++)
 for(j=0;j<100;j++)
 for(k=0;k<6;k++)
 { ;}
 }
 uchar conv(uchar digit)
 {uchar mid;
 switch(digit)
 {case  0:mid=0x3f;
 break;
 case  1:mid=0x06;
 break;
 case  2:mid=0x5b;
 break;
 case  3:mid=0x4f;
 break;
 case  4:mid=0x66;
 break;
 case  5:mid=0x6d;
 break;
 case  6:mid=0x7d;
 break;
 case  7:mid=0x07;
 break;
 case  8:mid=0x7f;
 break;
 
 case  9:mid=0x6f;
 break;
 default:break;
 }
 return mid;
 }
 uchar *bcd(uchar k)
 {uchar car[4];
 car[0]=k%10;
 k=k/10;
 if(car[0]>9)
 { car[0]=car[0]-10;
 k=k+1;}
 car[1]=k%10;
 k=k/10;
 if(car[1]>9)
 { car[1]=car[1]-10;
 k=k+1;}
 car[2]=k%10;
 k=k/10;
 if(car[2]>9)
 { car[2]=car[2]-10;
 k=k+1;}
 car[3]=k%10;
 k=k/10;
 if(car[3]>9)
 { car[3]=car[3]-10;
 k=k+1;}
 return car;}
 void main(void)
 { uchar xdata temp[10];
 uchar i,j;
 uchar a[4];
 int sum=0;
 
 for(i=0;i<3;i++)
 temp=i+1;
 for(j=0;j<3;j++)
 sum=temp[j]+sum;
 
 for( ; ;)
 {a=bcd(sum);
 P3=0x01;
 for(i=0;i<4;i++)
 {P1=conv(a);
 delay2();
 P3=P3<<1;}
 }
 其中a=bcd(sum)返回数组首地址的值,为什么不行!
 | 
 |