找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3297|回复: 5
打印 上一主题 下一主题
收起左侧

同一个按键分别控制4个灯,编译不通过,求大神指教

[复制链接]
跳转到指定楼层
楼主
ID:108715 发表于 2016-5-17 18:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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文件

跪求大神指点哪里写错了,我是新手,所以求写出正确程序,谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:108715 发表于 2016-5-18 22:25 来自手机 | 只看该作者
网上找了好多资料,终于给我找到毛病了。case后面要空一格,延时程序里是--,不是++
回复

使用道具 举报

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

一个好习惯是case: 然后另起一行
回复

使用道具 举报

地板
ID:121908 发表于 2016-5-19 11:06 | 只看该作者
default :  break;  最好也加上,这是习惯问题!
回复

使用道具 举报

5#
ID:108715 发表于 2016-5-19 12:29 来自手机 | 只看该作者
ouwan 发表于 2016-5-19 11:06
default :  break;  最好也加上,这是习惯问题!

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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