这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 坤创E-Geek/天科大新电社 » 关于蓝桥杯智能灌溉系统(6)

共3条 1/1 1 跳转至

关于蓝桥杯智能灌溉系统(6)

菜鸟
2019-03-23 21:18:23     打赏

最后一天了  ,也看了好多好多思路和想法。在这分享一下往届题目的思路。这次是第四届的智能灌溉系统,逻辑很重要,理清楚以后做题会快很多。

只是主要的函数 ,重点在思路。

 void main()

 {

  init();

  ds1302init();

       yuzhi=e2prom_read(0x10);

  while(1)

  {

   ds1302read();

   shidu=(AD_read(0x03)*0.38);

   keyscan();

   work();

      display1(yi,er);

    display2(san,si);

     display3(wu,liu);

     display4(qi,ba);

  }

 }
void keyscan()
 {
  if(P30==0)
  {
   delayms(110);
   if(P30==0)
   {
    mode=~mode;
   }while(!P30);
  }
  if(mode==0)
  {
   if(P31==0)
   {
    delayms(100);
    if(P31==0)
    {
     yuzhi1=~yuzhi1;
    }while(!P31);e2prom_write(0x10,yuzhi);
   }
   if(yuzhi1==1)
   {
    if(P32==0)
    {
     delayms(100);
     if(P32==0)
     {jia=1;}while(!P32);
    }
    else if(P33==0)
    {
     delayms(100);
     if(P33==0)
     {jian=1;}while(!P33);
     }
  }
 }
  else
  {
   if(P31==0)
    {
    delayms(100);
    if(P31==0)
    {
     bee=~bee;
    }while(!P31);
   }
   else if(P32==0)
    {
    delayms(100);
    if(P32==0)
    {
     water=1;
    }while(!P32);
   }
    else if(P33==0)
    {
    delayms(100);
    if(P33==0)
    {
     water=0;
    }while(!P33);
   }
  }
 }
 void work()
 {
  if(mode==0)
  {
   P2=0x80;P0=0xfe;
   yi=TIME[2]/10;er=TIME[2]%10;san=10;
   si=TIME[1]/10;wu=TIME[1]%10;liu=11;
   qi=shidu/10;ba=shidu%10;
   if(shidu<yuzhi)
   {
    P2=0xa0;P0=0x10;
   }
   else{P2=0xa0;P0=0x00;}
   if(yuzhi1==1)
   {
    yi=yuzhi/10;er=yuzhi%10;san=11;si=11;wu=11;liu=11;qi=shidu/10;ba=shidu%10;
    if(jia==1){jia=0;yuzhi++;if(yuzhi==99)yuzhi=99;}
    if(jian==1){jian=0;yuzhi--;if(yuzhi==0)yuzhi=0;}
   }
  }
  else{
   yi=TIME[2]/10;er=TIME[2]%10;san=10;
   si=TIME[1]/10;wu=TIME[1]%10;liu=11;
   qi=shidu/10;ba=shidu%10;
    P2=0x80;P0=0xfd;
   if(water==0)
      {
       if((bee==1)&&(bee1==1))
        {
        P2=0xa0;P0=0x40;
        }
        else {P2=0xa0;P0=0x00;}
      }
   else
     {
      if((bee==1)&&(bee1==1))
        {
      P2=0xa0;P0=0x50;
       }
       else {P2=0xa0;P0=0x00;}
     }
   if((bee==1)&&(bee1==1))
   {
    if(water==1)
     {P2=0xa0;P0=0x50;}
     else{P2=0xa0;P0=0x40;}
   }
   else
   {
    if(water==1)
     {P2=0xa0;P0=0x10;}
     else{P2=0xa0;P0=0x00;}
   }
      if(yuzhi>shidu)
    bee1=1;
   else bee1=0;
  }
 }

 




关键词: 蓝桥    

院士
2019-03-24 10:18:46     打赏
2楼

这个哪里呈现了智能啊

只是按键然后work()



菜鸟
2019-03-25 12:48:02     打赏
3楼

因为按照题目要求,做题思路主要将主函数分成两个大块,keyscan()是处理按键和标志位,work()负责处理要求功能 ,尽可能的让main()函数变得简洁。在work()里可以明显看出来是手动操作及自动操作两个操作模式,以及不同模式下的按键功能也有所差别。如果问这样的设置怎么智能了.....人家的项目名称就是这样,我也想直接叫它灌溉机。


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]