求助,急求,谢谢

2019-03-24 17:15发布

#include <AT89X51.h> #include <intrins.h>#include <stdio.h> #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 identifier3.c - 1 Error(s), 0 Warning(s).求解怎么修改对这个比较菜,求教个详细方法   此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。