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