天天看點

前兩個月總結

藍橋杯第三屆售水機,我的主要部分代碼

while(1)
	{
	   	temp=Get_ad();
		if(temp>65) CLOSEL1 
		else      OPENL1
		keyscan();
		
	 if(trg&0x01)
	 {	
		anxia=0;
	 } 	 		
	 if(trg&0x02)
	 {
		anxia=1;
	 }

	 if(!anxia)
	 {
	    chushui();
	    openrelay
    	if(flag>=50)
        {
			shui++;
			flag=0;
			if(shui>=9999)
			{
				closerelay
				tingshui();	  //這兩句可以換成anxia=1;
			}
     	}
	 }
	 else if(anxia)
	 {
	 	closerelay
		tingshui();
	 }
 

	}
           

設定一個标志量anxia,暫時是這個邏輯,期待之後會發現更好的寫法。

while(1)
   {
	  keyscan();
	  temp=adc_pcf8591();
	  shi=Read_Ds1302(0x85);
	  fen=Read_Ds1302(0x83);	  
	  
	  if(trg&0x01)	cont=~cont;
	  if(cont)			//shoudong
	  {	 
	    OPENL2
		zidong();
	    if(trg&0x02) cont1=~cont1;
		if(cont1) closebb
	    else
		{
			if(temp>=yuzhi)	closebb
	    	else openbb
		}
		if(trg&0x04) openrelay
		if(trg&0x08) closerelay 
	  }else          	//自動
	  {
	    OPENL1
		if(temp>=yuzhi)	closerelay
		else openrelay

	  	if(trg&0x02) cont2=~cont2;
	    if(cont2) 
	    {
  		dis[0]=11;
		dis[1]=11;
		dis[2]=10;
		dis[3]=10;		
		dis[4]=10;		
		dis[5]=10;
		dis[6]=yuzhi/10;
		dis[7]=yuzhi%10;
		if(trg&0x04) yuzhi++;
		if(trg&0x08) yuzhi--;
		wreeprom(39,temp);
	    }
	    else 
	    {
	    	zidong();		 
	    }
	  }	  
   }
           

這一篇标志位相比于上一篇複雜了。好像是多了一個,但是我覺得我還沒做好,有點亂。

媽呀,我兩個月才寫了兩道題目。。。