找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4151|回复: 2
收起左侧

error C216: subscript on non-array or too many dimensions keil4单片机出现问题

[复制链接]
ID:728467 发表于 2020-4-13 20:07 | 显示全部楼层 |阅读模式
错误: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;
}


回复

使用道具 举报

ID:584814 发表于 2020-4-14 09:44 | 显示全部楼层
LED_data未定义,display未定义成数组。
回复

使用道具 举报

ID:728467 发表于 2020-4-15 10:47 | 显示全部楼层
man1234567 发表于 2020-4-14 09:44
LED_data未定义,display未定义成数组。

问一下 该怎么改好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表