| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 496 人关注过本帖
标题:究竟哪点错了,纠结啊
只看楼主 加入收藏
我的世界123
Rank: 1
等 级:新手上路
帖 子:43
专家分:1
注 册:2013-10-14
结帖率:81.82%
收藏
已结贴  问题点数:18 回复次数:4 
究竟哪点错了,纠结啊
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit key0=P0^0;
sbit key1=P0^1;
sbit key2=P0^2;
sbit key3=P0^3;
sbit b1=P0^4;
sbit k1=P2^4;
sbit k2=P2^3;
sbit k3=P2^2;
sbit k4=P2^1;
sbit k5=P2^0;
void delay_ms (uint z)
{
 uint x,y;
 for (x=z;x>0;x--)
  for (y=110;y>0;y--);
}
void timer()
{
 TMOD|=0x01;
 TH0=0xd8;
 TL0=0xf0;
 IE=0X82;
 ET0=1;
 TR0=1;
 }
uchar ControlFlag=0;
   void EXTI1_IRQHandler(void)
{
  uchar data i;
 delay_ms(30);//消抖
 if(key0 == 1)
 {
#ifdef _DEVICEFLAG_
  
 for(i=0;i<2;i++)
 {
  delay_ms(1000);
 }
 if(key0 == 0)  //按键2
 {
  ControlFlag = 2;
 }
 else if(key0 == 1)
 {
  ControlFlag = 1;
 }   
#else
 if(key0 == 1)
 {
  ControlFlag = 1;
 }
#endif
}
 TL0=0;  //清除LINE1上的中断标志位  
}
//外部中断2服务程序  复位开关2
void EXTI2_IRQHandler(void)
{ uchar data i;
 delay_ms(30);
 if(key1 == 1)
 {
 for(i=0;i<2;i++)
 {
  delay_ms(1000);
 }
 if(key1 == 0)
 {
  ControlFlag = 6;
 }
 else if (key1 == 1)
 {
  ControlFlag = 5;
 }
 }
 TL0=0;  //清除LINE2上的中断标志位
}
//外部中断3服务程序 复位开关1
void EXTI3_IRQHandler(void)
{ uchar data i;
 delay_ms(30);
 if(key2 == 1)
 {
 for(i=0;i<2;i++)
 {
  delay_ms(1000);
 }
 if(key2 == 0)
 {
  ControlFlag = 4;
 }
 else if(key2 == 1)
 {
  ControlFlag = 3;
 }
 }
 TL0=0;  //清除LINE3上的中断标志位
}
main()
{
    k1=0;
    k2=0;
    k3=0;
    k4=0;
    k5=0;

 while(1)
 {
#ifdef _DEVICEFLAG_            
 if((b1==1)||(key3 == 1))
 {
  k5 = 1;
 }
 else if ((b1 == 0)&&(key3 == 0))
 {
  k5 = 0;
 }
/*************************************************************
*************************************************************/
#ifdef _DEVICEFLAG_   
       case 1:         //机器总开关长按
       if(key3 == 0)      //服务器+5V为0时
     {
         if(b1 == 0)     //K1断开时
      {
       k1 = 1;
       k4 = 1;
       delay_ms(1000);
       k4 = 0;
      }
        else if (b1== 1)                   //K1闭合时
        {
          k1 = 0;
        }
     }
     else if(key3 ==1)       //服务器+5V为1时
     {
        if(b1 == 0)                    //K1断开时
        {
          k4 =1;
        delay_ms(1000);
       delay_ms(1000);
       delay_ms(1000);
       delay_ms(1000);
       k4 = 0;

        }
        else if(b1 ==1)                         //K1闭合时   
        {
          k4 = 1;
       delay_ms(1000);
       delay_ms(1000);
       delay_ms(1000);
       k1= 0;
       delay_ms(1000);
       k4 = 0;
        }
     }
     ControlFlag = 0;         
     break;
   case 2:                //机器总开关短按
     if(key3 == 0)      //服务器+5V为0时
     {
      if(b1 ==0)     //K1为断开时
      {
       k1 = 1;
       k4 = 1;
       delay_ms(1000);
       k4 = 0;
      }
        else if (b1 == 1)                  //K1为闭合时
        {
          k4 = 1;
       delay_ms(1000);
       k4 = 0;
        }
     }
     else if(key3 ==1)      //服务器+5V为1时
     {
        if(b1 == 0)                   //K1断开时
        {
          k1 = 1;                  

        }
        else if(b1 ==1)                       //K1闭合时                 
        {
       ;
        }
     }
     ControlFlag = 0;
     break;
   case 3:              //复位开关1长按
     if(b1 == 1)                             //K1闭合时
     {
      k2 = 1;
      delay_ms(1000);
      delay_ms(1000);
      delay_ms(1000);
      k2 = 0;   
     }
     ControlFlag = 0;
     break;
   case 4:               //复位开关1短按
     if(b1 == 1)                              //K1闭合时
     {
      k1 = 0;
      delay_ms(1000);
      k1 = 1;
     }
     ControlFlag = 0;
     break;
   case 5:                            //复位开关2长按
     if(key3== 1)
     {
      k3= 1;
      delay_ms(1000);
      k3 = 0;
     }
     ControlFlag = 0;        
     break;
   case 6:                                                //复位开关2短按
           if(key3 == 1)
     {
      k3 = 1;
      delay_ms(1000);
      k3 = 0;
     }
     ControlFlag = 0;
     break;
 }
}

这是错误:

compiling 112.c...
112.C(32): warning C280: 'i': unreferenced local variable
112.c(234): warning C316: unterminated conditionals
112.C(234): error C141: syntax error near ''
112.c - 1 Error(s), 2 Warning(s).
究竟哪点错了啊

搜索更多相关主题的帖子: include 
2013-11-11 15:14
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:8 
234行应该是你的代码的最末行   看看是否有全角字符  或者花括号不匹配的

DO IT YOURSELF !
2013-11-11 15:26
我的世界123
Rank: 1
等 级:新手上路
帖 子:43
专家分:1
注 册:2013-10-14
收藏
得分:0 
好的,谢谢啊
2013-11-11 15:48
我的世界123
Rank: 1
等 级:新手上路
帖 子:43
专家分:1
注 册:2013-10-14
收藏
得分:0 
回复 2楼 wp231957
查过了,没有错的啊,这到底是怎么回事啊?
2013-11-11 15:51
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
这单片机的代码  偶也帮不了你  还是你自己查吧

compiling 112.c...
112.C(32): warning C280: 'i': unreferenced local variable
112.c(234): warning C316: unterminated conditionals
112.C(234): error C141: syntax error near ''
112.c - 1 Error(s), 2 Warning(s).

这提示信息也比较明显了

DO IT YOURSELF !
2013-11-11 16:03
快速回复:究竟哪点错了,纠结啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.095458 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved