首页 > 教育

subscriptonnon-arrayortoomanydimensions

更新时间2021-07-11 09:18:25

#include "reg52.h"
//#include "intrins.h"
#define uchar unsigned char
#define uint unsigned 
sbit IN=P1^0;            //红外接收
sbit CNTROL=P1^1;
const uchar tab1[]={
0x18,0x00,0x18,0x00,0x08,0x20,0xF8,0x3F,0xF8,0x3F,0x08,0x20,0x18,0x00,0x18,0x00,
/*"T",0*/
0x08,0x20,0xF8,0x3F,0xF8,0x3F,0x88,0x20,0x88,0x20,0xF8,0x31,0x70,0x1F,0x00,0x0E,
/*"I",1*/
0x10,0x04,0x10,0x07,0xD0,0x03,0xFF,0xFF,0xFF,0xFF,0xD0,0x04,0x94,0x06,0x04,0x03,
0x84,0x01,0xE4,0xFF,0xFC,0xFF,0x9C,0x00,0x84,0x01,0x04,0x07,0x04,0x06,0x04,0x00,
/*"杯",2*/
};
const uchar  tab2[]={
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f
};                   // 同心圆
/***************************************************************************
延时函数
***************************************************************************/
void delay(uint k)
{               //延时k*1ms
uint m,n,b;
for(m=0;m<k;m++)
{   
    b=0;
for(n=0;n<120;n++)
b=1;
    }
 }
/***************************************************************************
TI杯函数
***************************************************************************/
void TIT(tab1)
{
    uchar j,i,q=0;
    while(1)
{          //等待标志杆到了开始显示
IN=1;
if(IN==0)
{
IN=1;
break;
    }
 
}
while (1)          //循环滚屏显示TI杯

  P0=0xff; 
  P2=0xff;
 for (i=0;i<20;i++)
 { 
for(j=q;IN==1;j++) 
{  
   if(q==7)
{
P2=tab1[j%64];
delay(20);
}
else
{
P0=tab1[j%64];
delay(20);

        }
}
   }
    if(CNTROL!=1); break;         //功能键下不是1跳出函数
q=q+2;                      //显示下一屏内容
 }
/***************************************************************************
同心圆函数
***************************************************************************/
void circle(tab2)
{
 uchar j,i,q=0;
 while(1)
 {            // 等待标志杆到来开始显示同心圆
IN=1;
if(IN==0)
{
IN=1;
break;
    }
}
 while (1)

  P0=0xff; 
  P2=0xff;
      for (i=0;i<20;i++)
  {
  for(j=q;IN==1;j++)      //外层起显示一圈同心圆

if(q==7)
{
    P0=tab2[j/16];
        delay(20);
            }
          else
            {
              P2=tab2[j/16];
  delay(20);
}
      } 
   }  
 
 }
     if(CNTROL!=0) ; break;   
    q=q+1;
 }
 
void main (void )
{
  uchar i;
{   
   for (i=0;i<16;i++)
  {
if 
(i!=7) 
P2=tab2[i];
     else 
  P1=tab2[i];
      }
  while(1) 
{
switch(CNTROL)
{
case 0 :circle(tab2 ) ; break;  // 显示TI杯
     case 1 :  TIT(tab1) ; break;   // 显示同心圆
default : break;
}
}
  }
}
编译
LED.C(58): error C216: subscript on non-array or too many dimensions
LED.C(69): error C171: 'break': missing enclosing loop
LED.C(109): error C171: 'break': missing enclosing loop

改好可以编译通过的程序如下。不作解释了,因为单片机的程序你必须自己理解及配置相应的硬件才能运行的,参考别人的程序基本没意义。

#include "reg52.h" //#include "intrins.h" #define uchar unsigned char #define uint unsigned sbit IN=P1^0;            //红外接收 sbit CNTROL=P1^1; const uchar tab1[]= {    0x18,0x00,0x18,0x00,0x08,0x20,0xF8,0x3F,0xF8,0x3F,0x08,0x20,0x18,0x00,0x18,0x00,    /*"T",0*/    0x08,0x20,0xF8,0x3F,0xF8,0x3F,0x88,0x20,0x88,0x20,0xF8,0x31,0x70,0x1F,0x00,0x0E,    /*"I",1*/    0x10,0x04,0x10,0x07,0xD0,0x03,0xFF,0xFF,0xFF,0xFF,0xD0,0x04,0x94,0x06,0x04,0x03,    0x84,0x01,0xE4,0xFF,0xFC,0xFF,0x9C,0x00,0x84,0x01,0x04,0x07,0x04,0x06,0x04,0x00,    /*"杯",2*/ }; const uchar  tab2[]= {    0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f };                   // 同心圆 /*************************************************************************** 延时函数 ***************************************************************************/ void delay(uint k) {   //延时k*1ms    uint m,n,b;    for(m=0; m<k; m++)    {        b=0;        for(n=0; n<120; n++)            b=1;    } } /*************************************************************************** TI杯函数 ***************************************************************************/ void TIT() {    uchar j,i,q=0;    while(1)    {   //等待标志杆到了开始显示        IN=1;        if(IN==0)        {            IN=1;            break;        }    }    while (1)          //循环滚屏显示TI杯    {        P0=0xff;        P2=0xff;        for (i=0; i<20; i++)        {            for(j=q; IN==1; j++)            {                if(q==7)                {                    P2=tab1[j%64];                    delay(20);                }                else                {                    P0=tab1[j%64];                    delay(20);                }            }        }        if(CNTROL!=1)            break;         //功能键下不是1跳出函数    }    q=q+2;                      //显示下一屏内容 } /*************************************************************************** 同心圆函数 ***************************************************************************/ void circle() {    uchar j,i,q=0;    while(1)    {   // 等待标志杆到来开始显示同心圆        IN=1;        if(IN==0)        {            IN=1;            break;        }    }    while (1)    {        P0=0xff;        P2=0xff;        for (i=0; i<20; i++)        {            for(j=q; IN==1; j++)    //外层起显示一圈同心圆            {                if(q==7)                {                    P0=tab2[j/16];                    delay(20);                }                else                {                    P2=tab2[j/16];                    delay(20);                }            }        }        if(CNTROL!=0)            break;    }    q=q+1; } void main (void ) {    uchar i;    {        for (i=0; i<16; i++)        {            if            (i!=7)                P2=tab2[i];            else                P1=tab2[i];        }        while(1)        {            switch((int)CNTROL)            {            case 0 :                circle() ;                break;  // 显示TI杯            case 1 :                TIT() ;                break;   // 显示同心圆            default :                break;            }        }    } }

上一篇:env:Windows,mp,1.05.2106300;lib:2.18.0这是什么意思

下一篇:drake是我们班上唯一有宠物蛇的学生怎么翻译