[求助] 求助,急求,谢谢

wo1440017950   2017-6-1 22:39 楼主
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
main()
{
  int  a,P1,TMOD,ET0,ET1,led7;
  P1=0xff;
  TMOD=0x11;//定时器0和定时器1同时工作在模式0;
  ET0=1; //打开内部中断0
  ET1=1; //打开内部中断1
  led7=0;
  while(d=0)
  {
          shao_maio();
    if(b==1200)//b=20刚好1秒
        {
          b=0;
          m=m-1;
          if(m<0)
           {
             m=0;
           }
        if(t<0)
           {
             t=0;
           }
          shao_maio();          //扫描数码管
        }
/*************进水控制****************************/
   shao_maio();
   if(b1==1200)
   {
           b1=0;
           jins_time=jins_time-1;
   }
   if(jins_time==0)
    {
           sw1=1;//关闭水龙头
           jins_time=1;
           EX0=1;        //开外部中断0
           EA=1;//开总中断
           TMOD=0x11;
           jins_time=1;
           TH0=(65536-50000)/256; //定时50毫秒
        TL0=(65536-50000)%256;
           ET0=1;   //打开内部中断0
        TR0=1;
            if(x==4)
                {
                  sn1=0;//4         点亮洗衣剩余时间指示灯
               sn2=1;//2
               sn3=1;//1
                  ET0=1;   //打开内部中断0
           TR0=1;
                  
                }
           //if(x==3)//洗衣剩余时间  
                 else   
                 {
                   sn1=0;        //4
                sn2=1;        //2
                sn3=1;//1
                   x=3;
                   ET0=1;   //打开内部中断0
            TR0=1;
                 }
                          if(led6==0&&led7==1) //弱洗
                  {
                    if(b>=0&&b<200||(b>=600&&b<800))//10m
                    {q2=1;q3=1;
            q1=0;q4=0;
                        }
            if(b>=400&&b<600||(b>=800&&b<1000))
                        {q1=1;q4=1;
            q2=0;q3=0;
                        }
                  }
                  if(led6==1&&led7==0) //强洗
                  {
                         q1=0;
                         q4=0;
                         q2=1;
                         q3=1;
                  }
        }
/*****************开始脱水************************/
if(m==0)
{
    sw1=1;//关水龙头1
    sw2=0;//开水龙头2
    EX0=0;//关外部中断0
    ET0=0;//关定时器中断0
    TR0=0;
    EA=1;//开总中断
    TMOD=0x11;
    TH1=(65536-50000)/256; //定时50毫秒
    TL1=(65536-50000)%256;
    ET1=1;   //打开内部中断0
    TR1=1;
    EX1=1;         //外部中断1打开为放水准备
    sn1=0;        //4        脱水剩余时间指示灯亮
    sn2=0;        //2
    sn3=1;//1
    x=5;//显示脱水剩余时间
}            
        if(tuo_s==1200)
       {
               tuo_s=0;
               t=t-1;
           }
        if(t<=0)
        {
          jins_time=jins_time1;
          m=m1;
          t=t;
          d=d-1;
          x=0;
       xi_di=1;//判断是否跳转
        }
           if(d<=0)
      {
           EA=0;//关总中断
           sw2=1;//关水龙头2
           sm1=sm2=0;//数码管熄灭
           sn1=sn2=sn3=1;//LED熄灭
           q1=q2=q3=q4=1;//电动机停止
           feng_m_qi=0;//蜂鸣器响
           delay(2);//延时5秒
          feng_m_qi=1;//蜂鸣器停止
      }
         else
             goto start;


/************强洗弱洗选择***********************/
        if(sb2==0&&x==0)//弱洗
        {
          for(a=0;a<140;a++)        //按键去抖
            {
                   shao_maio();          //扫描数码管
            }
          if(sb2==0&&x==0)
          {
                   led6=0;
             led7=1;
          }
        }
        if(sb3==0&&x==0)//强洗
        {
          for(a=0;a<140;a++)        //按键去抖
            {
                   shao_maio();          //扫描数码管
            }
          if(sb3==0&&x==0)
          {
                   led6=1;
             led7=0;
          }
        }
/****************功能选择*************************/
  if(sb1==0)
  {
           EA=0;
         for(a=0;a<130;a++)        //按键去抖
            {
                   shao_maio();          //扫描数码管
            }
          if(sb1==0)
       {
                  x=x+1;
            if(x==1)//洗涤次数设置
                {
                 sn1=1;        //4
                 sn2=0;        //2
                 sn3=1;//1
                }
         if(x==2)//        洗衣定时
         {
             sn1=1;        //4
             sn2=0;        //2
             sn3=0;//1               
          }
              if(x==3)//洗衣剩余时间
                  {
                    sn1=0;        //4
                 sn2=1;        //2
                 sn3=1;//1
                  }
                      if(x==4)//脱水定时时间
                    {
                      sn1=0;        //4
                   sn2=1;        //2
                   sn3=0;//1
                  }
                if(x==5)//脱水剩余时间
                {
                    sn1=0;        //4
                 sn2=0;        //2
                 sn3=1;//1
                }
                  if(x==6)//进水时间
                  {
                   sn1=0;        //4
                sn2=0;        //2
                sn3=0;//1
                  }       
                if(x==7)//强洗
                  {
                    x=0;
                    led6=1;
                    led7=0;
                  }
        }
       
}
/****************增加设置*****************/
        if(sb2==0&&x==1)  //洗涤次数增加
        {  //EA=0;
          for(a=0;a<130;a++)        //按键去抖
            {
                   shao_maio();          //扫描数码管
            }
                if(sb2==0&&x==1)
                {
                  d=d+1;
                   if(d>99)
                   {
                    d=0;
                   }
                }
       
        }
/*****************************************/
if(sb2==0&&x==2)  //洗衣定时增加
{  
          for(a=0;a<130;a++)        //按键去抖
            {
                   shao_maio();          //扫描数码管
            }
        if(sb2==0&&x==2)
        {
                m=m+1;
                m1=m;
                if(m>99)
                {
                 m=0;
                }
        }
       
}
/************************************************/
if(sb2==0&&x==4)//脱水定时增加
        {
          for(a=0;a<130;a++)        //按键去抖
            {
                   shao_maio();          //扫描数码管
            }
                if(sb2==0&&x==4)
                {
                  t=t+1;
                  t1=t;
                   if(t>99)
                   {
                    t=0;
                   }

                }
       
         }
/************************************************/
if(sb2==0&&x==6)//进水水定时增加
{
          for(a=0;a<130;a++)        //按键去抖
            {
                   shao_maio();          //扫描数码管
            }
        if(sb2==0&&x==6)
        {
                  jins_time=jins_time+1;
                  jins_time1=jins_time;
                   if(jins_time>99)
                   {
                    jins_time=0;
                   }

         }
       
}

/***************减少设置***********************/
      if(sb3==0&x==1)//洗涤次数减少
         {         EA=0;
            for(a=0;a<130;a++)        //按键去抖
             {
                   shao_maio();          //扫描数码管
             }
           if(sb3==0&x==1)
          {
                  d=d-1;
                   if(d<0)
                   {
                    d=0;
                   }
           }
       
         }
/***************************************************/
         if(sb3==0&x==2)//洗衣定时减少
         {         EA=0;
            for(a=0;a<130;a++)        //按键去抖
             {
                   shao_maio();          //扫描数码管
             }
           if(sb3==0&x==2)
          {
                  m=m-1;
                  m1=m;
                   if(m<0)
                   {
                    m=m1;
                   }
           }
       
    }
/**************************************************/
if(sb3==0&&x==4) //脱水定时减少
{       
     EA=0;
        for(a=0;a<130;a++)        //按键去抖
        {
           shao_maio();          //扫描数码管
          }
   if(sb3==0&&x==4)
    {
       t=t-1;
           t1=t;
          shao_maio();
          if(t<0)
          {
            t=0;
          }
    }
}
/**************************************************/
   if(sb3==0&&x==6) //进水定时减少
   {            EA=0;
            for(a=0;a<130;a++)        //按键去抖
             {
                   shao_maio();          //扫描数码管
             }
           if(sb3==0&&x==6)
          {
                  jins_time=jins_time-1;
                  jins_time1=jins_time;
                  shao_maio();
                   if(jins_time<0)
                   {
                   jins_time=0;
                   }
           }
   }
/*****************启动******************************/

          if(sb4==0&&x>0)
          {         
start:   
           xi_di=0;//如果洗涤次数不到重新赋值
                   for(a=0;a<130;a++)        //按键去抖
             {
                   shao_maio();          //扫描数码管
             }
           if(sb4==0&&x>0)
                {
                 EA=1;//开总中断
                 EX0=1;        //开外部中断0
                 sw1=0;//开水龙头1
                 sw2=1;
                 TMOD=0x11;
                 TH1=(65536-50000)/256; //定时50毫秒
         TL1=(65536-50000)%256;
                 ET1=1;   //打开内部中断0
         TR1=1;
                 x=6;
                 sn1=0;        //4
             sn2=0;        //2
             sn3=0;//1

                }  

         }

   }
}
void   ds1zhong_duan()   interrupt   3 //定时器1中断
                                     //进水水和脱水时间
{
         //shaomaio();          //扫描数码管
         TH1=(65536-50000)/256;//高8位
         TL1=(65536-50000)%256;//低8位
        if(EX0==1)
         {
         b1=b1+1;
         }        //记录中断次,数每次中断50ms
         else
         {
           tuo_s=tuo_s+1;
         }
}
void   wai0_zhong_duan()   interrupt   0//外部中断0
{
              sw1=1;//关闭水龙头
           jins_time==1;
            if(led6==0&&led7==1) //弱洗
                  {
                   void dian_zf();
                  }
                  if(led6==1&&led7==0) //强洗
                  {
                   led6=1;
                   led7=0;
                  }          
                 sw1=0;//关闭水龙头1
              EA=1;//开总中断
                 TMOD=0x11;
                 jins_time=1;
                 TH0=(65536-50000)/256; //定时50毫秒
           TL0=(65536-50000)%256;
                 ET0=1;   //打开内部中断0
           TR0=1;
            if(x==4)
                {
                 sn1=0;        //4         点亮脱水剩余时间指示灯
              sn2=1;        //2
              sn3=1;//1
                 ET0=1;   //打开内部中断0
           TR0=1;
                  
                }
                 else   
                 {sn1=0;        //4
                sn2=1;        //2
                sn3=1;//1
                   x=3;
                   ET0=1;   //打开内部中断0
            TR0=1;
                        }
                 if(led6==0&&led7==1) //弱洗
                  {
                    if(b>=0&&b<200||(b>=600&&b<800))//10m
                    {q2=1;q3=1;
             q1=0;q4=0;
                        }
            if(b>=400&&b<600||(b>=800&&b<1000))
                        {q1=1;q4=1;
            q2=0;q3=0;
                        }
                  }
                  if(led6==1&&led7==0) //强洗
                  {
                         q1=0;
                         q4=0;
                         q2=1;
                         q3=1;
                  }
}
void   ds0zhong_duan()  interrupt  1 //定时器0中断  洗衣时间
{
                  TH0=(65536-50000)/256;//高8位
         TL0=(65536-50000)%256;//低8位
         b=b+1;        //记录中断次,数每次中断50ms
         
}
void   wai1_zhong_duan()   interrupt   2//外部中断1
{
   q1=0;//电动机正转脱水
   q4=0;
   q2=1;
   q3=1;
}

在keil里面编的程序调试显示compiling 3.c...
3.C(14): error C202: 'd': undefined identifier
3.c - 1 Error(s), 0 Warning(s).求解怎么修改对这个比较菜,求教个详细方法
  

回复评论 (14)

2推荐 低调的路人 

第十四行 参数 d 没有定义,定义一下,int d=0;
点赞  2017-6-1 23:14
引用: 低调的路人 发表于 2017-6-1 23:14
第十四行 参数 d 没有定义,定义一下,int d=0;

谢谢
点赞  2017-6-2 18:39
引用: 低调的路人 发表于 2017-6-1 23:14
第十四行 参数 d 没有定义,定义一下,int d=0;

加了之后还是提示未定
点赞  2017-6-2 18:53
引用: wo1440017950 发表于 2017-6-2 18:53
加了之后还是提示未定

截图看看
点赞  2017-6-2 20:22


这个就是你有qq或者微信么我加你一下
  • N@N[6)VDT5LTC$A6D4MI9D3.png
点赞  2017-6-2 20:53
引用: wo1440017950 发表于 2017-6-2 20:53
这个就是你有qq或者微信么我加你一下

大兄弟  int d =0;呀 ,你只写 d=0;机器还是不认识呀,我的天。。。
点赞  2017-6-2 20:58
int d=0; 我也试了
点赞  2017-6-2 21:02
compiling 1.c...
1.C(17): warning C206: 'shao_maio': missing function-prototype
1.C(18): error C202: 'b': undefined identifier
1.C(20): error C202: 'b': undefined identifier
1.C(21): error C202: 'm': undefined identifier
1.C(22): error C202: 'm': undefined identifier
1.C(24): error C202: 'm': undefined identifier
1.C(26): error C202: 't': undefined identifier
1.C(28): error C202: 't': undefined identifier
1.C(34): error C202: 'b1': undefined identifier
1.C(36): error C202: 'b1': undefined identifier
1.C(37): error C202: 'jins_time': undefined identifier
1.C(39): error C202: 'jins_time': undefined identifier
1.C(41): error C202: 'sw1': undefined identifier
1.C(42): error C202: 'jins_time': undefined identifier
1.C(46): error C202: 'jins_time': undefined identifier
1.C(51): error C202: 'x': undefined identifier
1.C(53): error C202: 'sn1': undefined identifier
1.C(54): error C202: 'sn2': undefined identifier
1.C(55): error C202: 'sn3': undefined identifier
1.C(63): error C202: 'sn1': undefined identifier
1.C(64): error C202: 'sn2': undefined identifier
1.C(65): error C202: 'sn3': undefined identifier
1.C(66): error C202: 'x': undefined identifier
1.C(70): error C202: 'led6': undefined identifier
1.C(72): error C202: 'b': undefined identifier
1.C(73): error C202: 'q2': undefined identifier
1.C(73): error C202: 'q3': undefined identifier
1.C(74): error C202: 'q1': undefined identifier
1.C(74): error C202: 'q4': undefined identifier
1.C(76): error C202: 'b': undefined identifier
1.C(77): error C202: 'q1': undefined identifier
1.C(77): error C202: 'q4': undefined identifier
1.C(78): error C202: 'q2': undefined identifier
1.C(78): error C202: 'q3': undefined identifier
1.C(81): error C202: 'led6': undefined identifier
1.C(83): error C202: 'q1': undefined identifier
1.C(84): error C202: 'q4': undefined identifier
1.C(85): error C202: 'q2': undefined identifier
1.C(86): error C202: 'q3': undefined identifier
1.C(90): error C202: 'm': undefined identifier
1.C(92): error C202: 'sw1': undefined identifier
1.C(93): error C202: 'sw2': undefined identifier
1.C(104): error C202: 'sn1': undefined identifier
1.C(105): error C202: 'sn2': undefined identifier
1.C(106): error C202: 'sn3': undefined identifier
1.C(107): error C202: 'x': undefined identifier
1.C(109): error C202: 'tuo_s': undefined identifier
1.C(111): error C202: 'tuo_s': undefined identifier
1.C(112): error C202: 't': undefined identifier
1.C(114): error C202: 't': undefined identifier
1.C(116): error C202: 'jins_time': undefined identifier
1.C(117): error C202: 'm': undefined identifier
1.C(118): error C202: 't': undefined identifier
1.C(120): error C202: 'x': undefined identifier
1.C(121): error C202: 'xi_di': undefined identifier
1.C(126): error C202: 'sw2': undefined identifier
1.C(127): error C202: 'sm1': undefined identifier
1.C(128): error C202: 'sn1': undefined identifier
1.C(129): error C202: 'q1': undefined identifier
1.C(130): error C202: 'feng_m_qi': undefined identifier
1.c - 59 Error(s), 1 Warning(s).
点赞  2017-6-2 21:04
然后直接这样了
点赞  2017-6-2 21:04
引用: wo1440017950 发表于 2017-6-2 21:04
然后直接这样了

不是我说你,真的,我一细看你的程序,简直 辣眼睛 ,主函数,包括哪些?定时器模式,端口需要定义?各个功能函数怎么定义的,shaomiao?函数在哪里?    建议,好好改改,再来提问。
点赞  2017-6-2 21:31
额,补充一下,ET0/ET1/P1什么的你int了就GG了。。。
点赞  2017-6-3 00:02
C是不支持现定义使用的! 所以需要在函数体里先定义。就像main 然后接的就是定义变量,如果 定义变量以后是一个赋值其它语句 再接个定义变量的就会出错。
自定义的函数,函数体如果在main函数前定义的,那么是不需要函数声明的。反之就需要声明了。
点赞  2017-6-3 07:16
引用: 低调的路人 发表于 2017-6-2 21:31
不是我说你,真的,我一细看你的程序,简直 辣眼睛 ,主函数,包括哪些?定时器模式,端口需要定义?各个 ...

因为这个是在网上摘抄的,对这个几乎没啥研究
点赞  2017-6-3 08:20
引用: ddlxiaoxu 发表于 2017-6-3 07:16
C是不支持现定义使用的! 所以需要在函数体里先定义。就像main 然后接的就是定义变量,如果 定义变量以后是 ...

改完之后功能缺乏未定义
  • 图片1.png
点赞  2017-6-3 08:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复