打印

其中a=bcd(sum)返回数组的值,为什么不行!

[复制链接]
1385|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小李志|  楼主 | 2007-3-18 17:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
BCD, se, FOR, TE, GIT
#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)返回数组首地址的值,为什么不行!

相关帖子

沙发
平常人| | 2007-3-18 17:51 | 只看该作者

函数中的局部变量在函数结束后就没有意义了

返回函数bcd中的局部变量car当然不行了。

另外,你写程序是不能只图自己看,也要尊重别人;所有东西挤在一堆,换行符都这么吝啬,实在不是好的习惯。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

151

主题

727

帖子

3

粉丝