错误:AAA.C(9): error C216: subscript on non-array or too many dimensions,
错误那行我已经红色标出来了(在开头部分)
单片机源程序如下:
void LED_display(unsigned char x)
{ unsigned char LEDscan;
unsigned char LED_scan;
unsigned char LEDdata;
unsigned char display;
unsigned int J;
unsigned int I;
LEDscan=0xff;
LEDdata=LED_data[display[1]];
if(I==x&&J==1)
LEDscan=0xff;
else
LEDscan=LED_scan[ I];
I++;
I&=3;
delay1ms(1);
}
unsigned char KEY_scan()
{
if(K_jian==0)
{
delay1ms(20);
if(K_jian=0)
{
while(!K_jian);
return(1);
}
}
else if(K_jia==0)
{
delay1ms(20);
if(K_jia==0)
{
while(!K_jia);
return(2);
}
}
else if(K_ok==0)
{
delay1ms(20);
if(K_ok==0)
{
while(!K_ok);
return(3);
}
}
else if(K_clear==0)
{
delay1ms(20);
if(K_clear==0)
{
while(!K_clear);
return(4);
}
}
else
return(0);
}
void main()
{
unsigned char i;
TMOD=0x01;
TH0=15536/256;
TL0=15536%256;
EA=1;
ET0=1;
TR0=1;
Workmode=read_addr(0x00);
if(Workmode!=0)
{
Time_tian=read_addr(0x01);
Time_xiaoshi=read_addr(0x02);
Time_fen=read_addr(0x03);
switch(Workmode)
{
case 1:
wendu_yu=Work_data1[0];
Time_yu=Work_data1[1]*1440+Work_data1[2]*60+Work_data1[3];
Time_sashui=Work_data1[4]*60+Work_data1[5];
break;
case 2:
wendu_yu=Work_data2[0];
Time_yu=Work_data2[1]*1440+Work_data2[2]*60+Work_data2[3];
Time_sashui=Work_data2[4]*60+Work_data2[5];
break;
case 3:
wendu_yu=Work_data3[0];
Time_yu=Work_data3[1]*1440+Work_data3[2]*60+Work_data3[3];
Time_sashui=Work_data3[4]*60+Work_data3[5];
break;
case 4:
for(i=0;i<6;i++)
{
Work_data4[ i]=read_addr(0x10|i);
}
wendu_yu=Work_data4[0];
Time_yu=Work_data4[1]*1440+Work_data4[2]*60+Work_data4[3];
Time_sashui=Work_data4[4]*60+Work_data4[5];
break;
default:break;
}
}
else //??緵???ж?????ι???????????????????????ù???
{
display[0]=10;
display[1]=10;
display[2]=10;
display[3]=10; //4??LED??????????----??
while(1)
{
if(J==0&&Workmode==0) //LED????????----??
LEDscan=0xff;
else
LED_display(4);
K=KEY_scan(); //??????裨???ù???????
if(K==1) //???????
{
if(Workmode<=1)
Workmode=4;
else
Workmode--;
display[3]=Workmode;
}
if(K==2) //????????
{
Workmode++;
if(Workmode>=5)
Workmode=1;
display[3]=Workmode;
}
if(K==3) //????????
{
if(Workmode!=0)
{
display[3]=Workmode;
write_addr(Workmode,0x00);
switch(Workmode) //???????ú????????????????????
{
case 1:
wendu_yu=Work_data1[0];
Time_yu=Work_data1[1]*1440+Work_data1[2]*60+Work_data1[3];
Time_sashui=Work_data1[4]*60+Work_data1[5];
break;
case 2:
wendu_yu=Work_data2[0];
Time_yu=Work_data2[1]*1440+Work_data2[2]*60+Work_data2[3];
Time_sashui=Work_data2[4]*60+Work_data2[5];
break;
case 3:
wendu_yu=Work_data3[0];
Time_yu=Work_data3[1]*1440+Work_data3[2]*60+Work_data3[3];
Time_sashui=Work_data3[4]*60+Work_data3[5];
break;
case 4: //??????????
wendu(); //???????????
tian(); //????????????
xiaoshi(); //????С???????
sashui(); // ?????????????
wendu_yu=Work_data4[0];
Time_yu=Work_data4[1]*1440+Work_data4[2]*60+Work_data4[3];
Time_sashui=Work_data4[4]*60+Work_data4[5];
break;
default:break;
}
break;
}
}
}
}
while(1) //??????
{
LED_display(4);//LED???
K=KEY_scan();//???????
switch(K) //???????????
{
case 1:
if(Light_flag==0)
Light_flag=3;
else
Light_flag--;
break;
case 2:
if(Light_flag==3)
Light_flag=0;
else
Light_flag++;
break;
case 4: //?????????????£???????????
Workmode=0;Time_yu=0;Time_sashui=0;wendu_yu=0;
Time_shi=0;JDQ_motor=1;JDQ_PTC=1;
Light_wendu=1;Light_tian=1;Light_xiaoshi=1;Light_sashui=1;
for(i=0;i<4;i++)
{
write_addr(0,i); //???24C02?е????????
delaylms(1);
}
break;
default:break;
}
switch(Light_flag) //?????????????(Light_flag) ?????????????
{
case 0:
P1=0xff;Light_wendu=0;//????????????????????????
for(i=0;i<4;i++) {display[ i]=WD_data[ i];
if(I==3)DIN=0;}
break;
case 1:
P1=0xff;Light_tian=0;
display[0]=Time_tian/10;display[1]=Time_tian%10;
display[2]=11;display[3]=11;
break;
case 2:
P1=0xff;Light_xiaoshi=0;
display[0]=Time_xiaoshi/10;display[1]=Time_xiaoshi%10;
display[2]=Time_fen/10;display[3]=Time_fen%10;
if(J==0&&I==2)DIN=0;
break;
case 3:
P1=0xff;Light_sashui=0;
display[0]=Time_sashui/600;display[1]=Time_sashui%600/60;
display[2]=Time_sashui%60/10;display[3]=Time_sashui%10;
if(I==2)DIN=0;
break;
}
if(K==4)break;
if(Time_yu<=Time_shi)
{
if(wendu_yu>=wendu_shi+1)//???????С???????????????????????PTC???????
JDQ_PTC=0;//????
if(wendu_yu<=wendu_shi-1)//??????????????????????????PTC??????
JDQ_PTC=1;//??????
if(Time_shi% Time_sashui==0)
JDQ_motor=0; //????????????????ù???
else
JDQ_motor=1; //??????????????????ù???
}
if(Time_shi>=Time_yu&&Time_miao==0)//??????????????????????????????????????Σ???????????
{
JDQ_moyor=1; //?????ò?????
JDQ_PTC=1; //PTC??????
Beep();
}
}
}
void zhongduan()interrupt 1
{
unsigned int j;
Counter++;
if(Couter==20) //1??
{
Couter=0;
J=~J;
Time_miao++;
Time_shi=Time_tian*1440+Time_xiaoshi*60+Time_fen;
}
if(Workmode!=0)
{
if(Time_miao==60)
{
Time_miao=0;
Time_fen++;
write_addr(Time_fen,0x03);//?洢??????????
}
if(Time_fen==60)
{
Time_fen=0;
Time_xiaoshi++;
write_addr(Time_xiaoshi,0x02);
}
if(Time_xiaoshi==24)
{
Time_xiaoshi=0;
Time_tian++;
write_addr(Time_tian,0x01);
}
if(Counter==1)
Ready_wendu();
if(Counter==16)
{
Read_wendu();
wendu_huansuan();
}
}
TH0=15536/256;
TL0=15536%256;
}
|