标题: 同一个按键分别控制4个灯,编译不通过,求大神指教 [打印本页]

作者: 啦啦啦1234    时间: 2016-5-17 18:19
标题: 同一个按键分别控制4个灯,编译不通过,求大神指教
#include<reg52.h>
#define uint unsigned int
sbit key=P1^0;     //按键
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
int i;
void delay(uint z)
{
    uint x,y;
    for(x=z;x>0;x++)
    for(y=110;y>0;y++);
}

void anjian()
{
      if(key==0)
     {
        delay(10);
        if(key==0)
        {
           i++;
           if(i==4)
           {
             i=0;
             while(!key);
           }
       }
    }
   switch(i)
   {
     case0:led1=0;break;
     case1:led2=0;break;
     case2:led3=0;break;
     case3:led4=0;break;
   }
}

void main()
{
     led1=1;
     led2=1;
     led3=1;
     led4=1;
     while(1)
    {
     anjian();
    }
}

编译出现4个警告
c280: case1:unreferenced  label  
c280: case2:unreferenced  label  
c280: case3:unreferenced  label  
未生成HEX文件

跪求大神指点哪里写错了,我是新手,所以求写出正确程序,谢谢。

作者: 啦啦啦1234    时间: 2016-5-18 22:25
网上找了好多资料,终于给我找到毛病了。case后面要空一格,延时程序里是--,不是++
作者: luoluoluo136    时间: 2016-5-19 08:47
啦啦啦1234 发表于 2016-5-18 22:25
网上找了好多资料,终于给我找到毛病了。case后面要空一格,延时程序里是--,不是++

一个好习惯是case: 然后另起一行
作者: ouwan    时间: 2016-5-19 11:06
default :  break;  最好也加上,这是习惯问题!
作者: 啦啦啦1234    时间: 2016-5-19 12:29
ouwan 发表于 2016-5-19 11:06
default :  break;  最好也加上,这是习惯问题!

嗯,我是第一次用switch语句,谢谢提醒。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1