蓝桥杯第三届售水机,我的主要部分代码
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();
}
}
}
这一篇标志位相比于上一篇复杂了。好像是多了一个,但是我觉得我还没做好,有点乱。
妈呀,我两个月才写了两道题目。。。