加急求助!!!
我在用Keil编译程序时出现'main': auto segment too large的报错,请各位大侠看看这是怎么一回事?
#include <AT89X51.H>
void main(void)
{
unsigned char tmp;
unsigned char i,j;
unsigned char m,n;
unsigned char tmp1;
unsigned char temp;
unsigned char count=0;
unsigned char convert=0;
unsigned char temp1,temP2;
unsigned char b[256]={0};
unsigned char a[3]={0x00,0x00,0x00};
SCON=0x50;
PCON=0x80;
TMOD=0x20;
PSW=0x00;
TH1=0xff;
TL1=0xff;
SP=0x60;
P0=0xff;
P1=0xff;
P2=0x00;
TR1=1;
TI=1;
while(1)
{
P2|=0x0f;
P2&=0xfe;
temp=P0;
temp=temp & 0x1f;
if (temp!=0x1f)
{
for(i=50;i> 0;i--)
for(j=200;j> 0;j--);
temp=P0;
temp=temp & 0x1f;
if (temp!=0x1f)
{
temp=P0;
temp=temp & 0x1f;
tmp1=a[0];
tmp1|=0x3f;
tmp1|=0xc0;
if(temp==0x0f)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0xc0;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=0;count++;}
else if(count==1)
{P1=0xc0;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=0;a[2]=b[m+n];count++;}
else count=0;
}
else{a[0]=(a[0]&0x3f)|0x40;temp1=0xfe;P1=temp1;P2|=0xf0;P2&=0x0f;P2|=0xf0;P2&=0xef;}
}
else if(temp==0x17)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0xf9;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=16;count++;}
else if(count==1)
{P1=0xf9;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=1;a[2]=b[m+n];count++;}
else count=0;
}
else{a[0]=(a[0]&0x3f)|0x80;temp1=0xdf;P1=temp1;P2|=0xf0;P2&=0x0f;P2|=0xf0;P2&=0xef;}
}
else if(temp==0x1b)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0xa4;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=32;count++;}
else if(count==1)
{P1=0xa4;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=2;a[2]=b[m+n];count++;}
else count=0;
}
else{a[0]=(a[0]&0x3f)|0xc0;temP2=0xf7;P1=temP2;P2|=0xf0;P2&=0x8f;P2|=0xf0;P2&=0xef;}
}
else if(temp==0x1d)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0xb0;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=48;count++;}
else if(count==1)
{P1=0xb0;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=3;a[2]=b[m+n];count++;}
else count=0;
}
else{a[0]^=0x20;temP2^=0x20;P1=temP2;P2|=0xf0;P2&=0x8f;P2|=0xf0;P2&=0xef;}
}
else if(temp==0x1e)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0x99;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=64;count++;}
else if(count==1)
{P1=0x99;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=4;a[2]=b[m+n];count++;}
else count=0;
}
else{a[0]^=0x10;temp1^=0x02;P1=temp1;P2|=0xf0;P2&=0x0f;P2|=0xf0;P2&=0xef;}
}
else a[0]=a[1]=a[2]=0x00;
temp=P0;
temp=temp & 0x1f;
while(temp!=0x1f)
{
temp=P0;
temp=temp & 0x1f;
}
}
}
P2|=0x0f;
P2&=0xfd;
temp=P0;
temp=temp & 0x1f;
if (temp!=0x1f)
{
for(i=50;i> 0;i--)
for(j=200;j> 0;j--);
temp=P0;
temp=temp & 0x1f;
if (temp!=0x1f)
{
temp=P0;
temp=temp & 0x1f;
tmp1=a[0];
tmp1|=0x3f;
tmp1|=0xc0;
if(temp==0x0f)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0x92;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=80;count++;}
else if(count==1)
{P1=0x92;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=5;a[2]=b[m+n];count++;}
else count=0;
}
else{a[0]^=0x08;temp1^=0x40;P1=temp1;P2|=0xf0;P2&=0x0f;P2|=0xf0;P2&=0xef;}
}
else if(temp==0x17)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0x82;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=96;count++;}
else if(count==1)
{P1=0x82;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=6;a[2]=b[m+n];count++;}
else count=0;
}
else{a[0]^=0x04;temP2^=0x10;P1=temP2;P2|=0xf0;P2&=0x8f;P2|=0xf0;P2&=0xef;}
}
else if(temp==0x1b)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0xf8;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=112;count++;}
else if(count==1)
{P1=0xf8;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=7;a[2]=b[m+n];count++;}
else count=0;
}
else{a[0]^=0x02;temp1^=0x04;P1=temp1;P2|=0xf0;P2&=0x0f;P2|=0xf0;P2&=0xef;}
}
else if(temp==0x1d)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0x80;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=128;count++;}
else if(count==1)
{P1=0x80;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=8;a[2]=b[m+n];count++;}
else count=0;
}
else{a[0]^=0x01;temP2^=0x01;P1=temP2;P2|=0xf0;P2&=0x8f;P2|=0xf0;P2&=0xef;}
}
else if(temp==0x1e)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0x90;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=144;count++;}
else if(count==1)
{P1=0x90;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=9;a[2]=b[m+n];count++;}
else count=0;
}
else{a[1]^=0x80;temP2^=0x02;P1=temP2;P2|=0xf0;P2&=0x8f;P2|=0xf0;P2&=0xef;}
}
else a[0]=a[1]=a[2]=0x00;
temp=P0;
temp=temp & 0x1f;
while(temp!=0x1f)
{
temp=P0;
temp=temp & 0x1f;
}
}
}
P2|=0x0f;
P2&=0xfb;
temp=P0;
temp=temp & 0x1f;
if (temp!=0x1f)
{
for(i=50;i> 0;i--)
for(j=200;j> 0;j--);
temp=P0;
temp=temp & 0x1f;
if (temp!=0x1f)
{
temp=P0;
temp=temp & 0x1f;
tmp1=a[0];
tmp1|=0x3f;
tmp1|=0xc0;
if(temp==0x0f)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0x88;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=160;count++;}
else if(count==1)
{P1=0x88;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=10;a[2]=b[m+n];count++;}
else count=0;
}
else{a[1]^=0x40;temp1^=0x08;P1=temp1;P2|=0xf0;P2&=0x0f;P2|=0xf0;P2&=0xef;}
}
else if(temp==0x17)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0x83;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=176;count++;}
else if(count==1)
{P1=0x83;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=12;a[2]=b[m+n];count++;}
else count=0;
}
else{temP2^=0x40;P1=temP2;P2|=0xf0;P2&=0x8f;P2|=0xf0;P2&=0xef;tmp=0x00;}
}
else if(temp==0x1b)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0xc6;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=192;count++;}
else if(count==1)
{P1=0xc6;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=13;a[2]=b[m+n];count++;}
else count=0;
}
else{temp1^=0x10;P1=temp1;P2|=0xf0;P2&=0x0f;P2|=0xf0;P2&=0xef;tmp=0xff;}
}
else if(temp==0x1d)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0xa7;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=208;count++;}
else if(count==1)
{P1=0xa7;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=14;a[2]=b[m+n];count++;}
else count=0;
}
else
{
if(tmp==0x00)
{a[1]&=0xf0;a[1]|=0x08;}
else if(tmp==0xff)
{a[1]&=0xf0;a[1]|=0x02;}
else a[1]&=0xf0;
}
}
else if(temp==0x1e)
{
if((convert==1)&&(tmp1==0x00))
{
if(count==0)
{P1=0xc6;P2|=0xf0;P2&=0x2f;P2|=0xf0;P2&=0xef;m=192;count++;}
else if(count==1)
{P1=0xc6;P2|=0xf0;P2&=0x4f;P2|=0xf0;P2&=0xef;n=13;a[2]=b[m+n];count++;}
else count=0;
}
else
{
if(tmp==0x00)
{a[1]&=0xf0;a[1]|=0x0c;}
else if(tmp==0xff)
{a[1]&=0xf0;a[1]|=0x03;}
else a[1]&=0xf0;
}
}
else a[0]=a[1]=a[2]=0x00;
temp=P0;
temp=temp & 0x1f;
while(temp!=0x1f)
{
temp=P0;
temp=temp & 0x1f;
}
}
}
while(!TI);
SBUF = a[0];
while(!TI);
SBUF = a[1];
while(!TI);
SBUF = a[2];
}
}
发表时间:2005年1月27日9:33:56