最后一天了 ,也看了好多好多思路和想法。在这分享一下往届题目的思路。这次是第四届的智能灌溉系统,逻辑很重要,理清楚以后做题会快很多。
只是主要的函数 ,重点在思路。
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;
}
}
我要赚赏金
