天天看点

前两个月总结

蓝桥杯第三届售水机,我的主要部分代码

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();		 
	    }
	  }	  
   }
           

这一篇标志位相比于上一篇复杂了。好像是多了一个,但是我觉得我还没做好,有点乱。

妈呀,我两个月才写了两道题目。。。