| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1226 人关注过本帖
标题:本人第一次用keil编的程序,为什么编译的时候说i,j未定义呢,我明明在主函 ...
只看楼主 加入收藏
flyfx1989
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2010-12-1
结帖率:85.71%
收藏
已结贴  问题点数:0 回复次数:6 
本人第一次用keil编的程序,为什么编译的时候说i,j未定义呢,我明明在主函数定义了啊,请高手帮帮忙
# include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit dawr=P3^6;
sbit dacs=P3^2;
sbit P10=P1^0;  //LED represent 1310nm
sbit P11=P1^1;  //LED represent 1490nm
sbit P12=P1^2;  //LED represent 1550nm
sbit P13=P1^3;  //LED represent com
sbit P20=P2^0;  //com
sbit P21=P2^1;  //1550nm
sbit P22=P2^2;  //1490nm
sbit P23=P2^3;  //1310nm

void main()
{uchar val;
 dula=0;
 wela=0;
 dacs=0;
 dawr=0;
 while(1)       //设定一个2.5V的参考电压
 {P0=130;
  }      

NORM:unit i,j,k,ll;
    i=j=k=ll=0;
    while(i<256&&j<256&&k<256)
{
     val=P20*1000+P21*100+P22*10+P23;
     switch(val)
    {case 0001:
      case 0000: goto ERRO_1;
      case 1000: goto ERRO_2;
      case 1001: i++;j=k=0;break;
      case 1010: j++;i=k=0;break;
      case 1011: i++;j++;k=0;break;
      case 1100: k++;i=0;j=0;break;
      case 1101: i++;k++;j=0;break;
      case 1110: j++;k++;i=0;break;
      case 1111:
      default:   i=j=k=0;break;
    }

}
ERRO:  if (i==256&&j==256)  //failure in 1550nm
          {while(1)
            {P13=1;
                P12=1;
               P11=0;
               P10=1;
              }
          }
            else if (i==256&&k==256)   //failure in 1490nm
                  {while(1)
                       {P13=1;
                           P12=0;
                          P11=1;
                          P10=1;
                         }
                   }
                else if (j==256&&k==256)   //failure in 1310nm
                       {while(1)
                       {P13=1;
                           P12=1;
                          P11=1;
                          P10=0;
                         }
                   }
        else goto NORM;

ERRO_1:if (P20==0&&P23==1)//failure in com port
         while (1)
       {
        P13=0;
        P12=1;
        P11=1;
        P10=1;
        }
        else ll++
           {if(ll<256) goto NORM;
           else while(1) //failure in both 1310nm port and com port  
           { P13=0;
             P12=0;
             P11=0;
             P10=0;
             }
           }
ERRO_2:unit i,j,k,ll;
       i=j=k=0;
       while (i<256&&j<256)
      { if (P21==1&&P22==1)//故障排除
       goto NORM
       if (P21==0&&P22==1) i++;j=0;
       if (P21==0&&P22==1) j++;i=0;
       else i++;j++;
         }
     if (i==256)      //failure in 1490nm
        {while(1)
            {P13=1;
             P12=0;
             P11=1;
             P10=1;
            }
         }
    else if (j==256)  //failure in 1550nm
        {while(1)
            {P13=1;
             P12=1;
             P11=0;
             P10=1;
            }
         }
}

[ 本帖最后由 flyfx1989 于 2011-7-1 22:04 编辑 ]
搜索更多相关主题的帖子: represent include 
2011-07-01 21:57
flyfx1989
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2010-12-1
收藏
得分:0 
刚发现了我把 uint 给写错了,可是还是不对啊,怎么办呢
2011-07-01 22:00
沙漠孤狼
Rank: 2
等 级:论坛游民
帖 子:1
专家分:10
注 册:2011-7-8
收藏
得分:10 
可以在主函数数前面定义一下看看
2011-07-08 06:22
yusanbao
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2011-7-9
收藏
得分:10 
把NORM:移到下一行就行了。
2011-07-10 08:01
Dionysos
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-9-9
收藏
得分:0 
在51编程中,所有的定义,均必须放在函数前面,最好main下面就定义数据
2011-07-28 00:24
lzt9929
Rank: 3Rank: 3
来 自:临沂
等 级:论坛游侠
帖 子:59
专家分:136
注 册:2011-7-23
收藏
得分:0 
你这个函数里,定义要在主函数前。
2011-07-28 07:05
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
以上各位的建议简单来讲,就是这样定义:
void main(){
    uint i, j;    // 紧接 main()
    // ...

女侠,约吗?
2012-03-29 16:18
快速回复:本人第一次用keil编的程序,为什么编译的时候说i,j未定义呢,我明明在 ...
数据加载中...
 
   



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

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