uint arr[]={ 0x7fff,0xffff,0xffff,0xffff},*p=arr
void delay (void)
{
TMOD=0X01
TR0=1
TH0=0X63
TL0=0X18
while(!TF0)
TF0=0
TR0=0
}
void ST595(void)
{
ST=0
_nop_()
_nop_()
ST=1
_nop_()
_nop_()
ST=0
}
void tiaoduan (void)
{
uchar i
}
void main (void)
{
uint x1,i, x3=0x0001
PK8255=0x80
while(1)
{
for(b=0b<64b++)
{
for(c=0c<5c++)
for(a=0a<16a++)
{
for(i=0i<4i++)
{
for(x1=0x1<16x1++)
{
SH=0
DS=p[i]&x3
_nop_()
_nop_()
SH=1
x3=x3<<1|x3>>15
SH=0
}
arr[i]=arr[i]<<15|arr[i]>>1
}
ST595()
PA8255=0x00
PB8255=0x00
if((a+b)<64)
{
PA8255=hzdot[a+b+(a+b)/16*16]
PB8255=hzdot[a+b+(a+b)/16*16+16]
}
else
{
PA8255=hzdot[a+b+(a+b)/16*16-64]
PB8255=hzdot[a+b+(a+b)/16*16-48]
}
}
for(i=0i<4i++)
{
if(p[3]&0x0001==0) //goto LP
{
p[0]=0x7fff
p[3]=0xffff
break
}
if((~p[i]!=0)&&(p[i]&0x0001!=0))
{
p[i]=p[i]<<15|p[i]>>1
}
else if((~p[i]!=0)&&(p[i]&0x0001==0))
{
p[i]=0xffff
p[i+1]=0x7fff
break
}
}
}
// LP:arr[0]=0x7fffarr[1]=0xffff
第三行“#define unscharigned int”写错了吧所以报错。还有,uchar char table[]="I get"也有问题,你的uchar是unsigned char重命名的,按照替换规则这句话就成了unsigned char char,多了个char。个人建议,既然你define没用到,干脆就别用了。