📄 5588.c
字号:
Display(Cartoon);
break;
}
if(CartoonCount>600)
{
CartoonCount=0;
}
if(SamplingComplete)
{
SamplingComplete=0;
for(i=0;i<121;i++)//test water temperature
{
if((T0CountVal>=(WaterTemperatureList[i]+WaterTemperatureList[i+1])/2)&&(T0CountVal<WaterTemperatureList[i+1]))
{
ObjectBuf[WaterTemperature]=i+1;
if(SamplingCount==5)
{
ObjectBuf[EnvTemperature]=ObjectBuf[WaterTemperature];
}
break;
}
else if((T0CountVal<=(WaterTemperatureList[i]+WaterTemperatureList[i+1])/2)&&(T0CountVal>WaterTemperatureList[i]))
{
ObjectBuf[WaterTemperature]=i;
if(SamplingCount==5)
{
ObjectBuf[EnvTemperature]=ObjectBuf[WaterTemperature];
}
break;
}
}
for(i=0;i<14;i++)
{
if((T1CountVal>=(EnvHumidityList[i]+EnvHumidityList[i+1])/2)&&(T1CountVal<EnvHumidityList[i+1]))
{
ObjectBuf[EnvHumidity]=(i+1)*5+20;
break;
}
else if((T1CountVal<=(EnvHumidityList[i]+EnvHumidityList[i+1])/2)&&(T1CountVal>EnvHumidityList[i]))
{
ObjectBuf[EnvHumidity]=i*5+20;
break;
}
else if(T1CountVal<EnvHumidityList[0])
{
ObjectBuf[EnvHumidity]=10;
}
else if(T1CountVal>EnvHumidityList[14])
{
ObjectBuf[EnvHumidity]=95;
}
}
}
//采集旋转编码器数据
CoderVal=(P0&0x03);
if(CoderVal!=SaveVal)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
// _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
// _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
// _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
// _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
// _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
CoderVal=(P0&0x03);
switch(SaveVal)
{
case 0x03: if((CoderVal==0x01))
{
Direct=1;
CombiteVal<<=2;
CombiteVal|=CoderVal;
SaveVal=CoderVal;
}
else if((CoderVal==0x02))
{
Direct=0;
CombiteVal<<=2;
CombiteVal|=CoderVal;
SaveVal=CoderVal;
}
break;
case 0x01:
if(Direct&&(CoderVal==0x00))
{
CombiteVal<<=2;
CombiteVal|=CoderVal;
SaveVal=CoderVal;
}
else if(Direct&&(CoderVal==0x03))
{
CombiteVal>>=2;
SaveVal=CoderVal;
}
else if(!Direct&&(CoderVal==0x03))
{
CombiteVal<<=2;
CombiteVal|=CoderVal;
SaveVal=CoderVal;
}
else if(!Direct&&(CoderVal==0x00))
{
CombiteVal>>=2;
SaveVal=CoderVal;
}
break;
case 0x02:
if(!Direct&&(CoderVal==0x00))
{
CombiteVal<<=2;
CombiteVal|=CoderVal;
SaveVal=CoderVal;
}
else if(!Direct&&(CoderVal==0x03))
{
CombiteVal>>=2;
SaveVal=CoderVal;
}
else if(Direct&&(CoderVal==0x03))
{
CombiteVal<<=2;
CombiteVal|=CoderVal;
SaveVal=CoderVal;
}
else if(Direct&&(CoderVal==0x00))
{
CombiteVal>>=2;
SaveVal=CoderVal;
}
break;
case 0x00:
if(Direct&&(CoderVal==0x02))
{
CombiteVal<<=2;
CombiteVal|=CoderVal;
SaveVal=CoderVal;
}
else if(Direct&&(CoderVal==0x01))
{
CombiteVal>>=2;
SaveVal=CoderVal;
}
else if(!Direct&&(CoderVal==0x01))
{
CombiteVal<<=2;
CombiteVal|=CoderVal;
SaveVal=CoderVal;
}
else if(!Direct&&(CoderVal==0x02))
{
CombiteVal>>=2;
SaveVal=CoderVal;
}
}
}
if(CombiteVal==0x87)
{
CombiteVal=0x00;
switch(OperateMode)
{
case MainMenuMode:
ObjectBuf[MainKey]++;
if(ObjectBuf[MainKey]>7)
{
ObjectBuf[MainKey]=1;
}
break;
case SetWaterTemperatureMode:
ObjectBuf[WaterTemperatureSet]++;
if(ObjectBuf[WaterTemperatureSet]>45)//20~45度
{
ObjectBuf[WaterTemperatureSet]=20;
}
break;
case SetHourMode:
ObjectBuf[Hour]++;
if(ObjectBuf[Hour]>23)
{
ObjectBuf[Hour]=0;
}
break;
case SetMinMode:
ObjectBuf[Minute]++;
if(ObjectBuf[Minute]>59)
{
ObjectBuf[Minute]=0;
}
}
}
else if(CombiteVal==0x4b)
{
CombiteVal=0x00;
switch(OperateMode)
{
case MainMenuMode:
ObjectBuf[MainKey]--;
if(ObjectBuf[MainKey]<1)
{
ObjectBuf[MainKey]=7;
}
break;
case SetWaterTemperatureMode:
ObjectBuf[WaterTemperatureSet]--;
if(ObjectBuf[WaterTemperatureSet]<20)//20~45度
{
ObjectBuf[WaterTemperatureSet]=45;
}
break;
case SetHourMode:
ObjectBuf[Hour]--;
if(ObjectBuf[Hour]>23)
{
ObjectBuf[Hour]=23;
}
break;
case SetMinMode:
ObjectBuf[Minute]--;
if(ObjectBuf[Minute]>59)
{
ObjectBuf[Minute]=59;
}
}
}
LowFreCoderVal=(P0&0x0C)>>2;
if(LowFreCoderVal!=LowFreSaveVal)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
// _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
// _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
// _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
// _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
// _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
LowFreCoderVal=(P0&0x0C)>>2;
switch(LowFreSaveVal)
{
case 0x03: if((LowFreCoderVal==0x01))
{
LowFreDirect=1;
LowFreCombiteVal<<=2;
LowFreCombiteVal|=LowFreCoderVal;
LowFreSaveVal=LowFreCoderVal;
}
else if((LowFreCoderVal==0x02))
{
LowFreDirect=0;
LowFreCombiteVal<<=2;
LowFreCombiteVal|=LowFreCoderVal;
LowFreSaveVal=LowFreCoderVal;
}
break;
case 0x01:
if(LowFreDirect&&(LowFreCoderVal==0x00))
{
LowFreCombiteVal<<=2;
LowFreCombiteVal|=LowFreCoderVal;
LowFreSaveVal=LowFreCoderVal;
}
else if(LowFreDirect&&(LowFreCoderVal==0x03))
{
LowFreCombiteVal>>=2;
LowFreSaveVal=LowFreCoderVal;
}
else if(!LowFreDirect&&(LowFreCoderVal==0x03))
{
LowFreCombiteVal<<=2;
LowFreCombiteVal|=LowFreCoderVal;
LowFreSaveVal=LowFreCoderVal;
}
else if(!LowFreDirect&&(LowFreCoderVal==0x00))
{
LowFreCombiteVal>>=2;
LowFreSaveVal=LowFreCoderVal;
}
break;
case 0x02:
if(!LowFreDirect&&(LowFreCoderVal==0x00))
{
LowFreCombiteVal<<=2;
LowFreCombiteVal|=LowFreCoderVal;
LowFreSaveVal=LowFreCoderVal;
}
else if(!LowFreDirect&&(LowFreCoderVal==0x03))
{
LowFreCombiteVal>>=2;
LowFreSaveVal=LowFreCoderVal;
}
else if(LowFreDirect&&(LowFreCoderVal==0x03))
{
LowFreCombiteVal<<=2;
LowFreCombiteVal|=LowFreCoderVal;
LowFreSaveVal=LowFreCoderVal;
}
else if(LowFreDirect&&(LowFreCoderVal==0x00))
{
LowFreCombiteVal>>=2;
LowFreSaveVal=LowFreCoderVal;
}
break;
case 0x00:
if(LowFreDirect&&(LowFreCoderVal==0x02))
{
LowFreCombiteVal<<=2;
LowFreCombiteVal|=LowFreCoderVal;
LowFreSaveVal=LowFreCoderVal;
}
else if(LowFreDirect&&(LowFreCoderVal==0x01))
{
LowFreCombiteVal>>=2;
LowFreSaveVal=LowFreCoderVal;
}
else if(!LowFreDirect&&(LowFreCoderVal==0x01))
{
LowFreCombiteVal<<=2;
LowFreCombiteVal|=LowFreCoderVal;
LowFreSaveVal=LowFreCoderVal;
}
else if(!LowFreDirect&&(LowFreCoderVal==0x02))
{
LowFreCombiteVal>>=2;
LowFreSaveVal=LowFreCoderVal;
}
}
}
if(LowFreCombiteVal==0x87)
{
LowFreCombiteVal=0x00;
switch(LowFreOperateMode)
{
case LowFreMainMenuMode:
ObjectBuf[LowFreMainKey]++;
if(ObjectBuf[LowFreMainKey]>8)
{
ObjectBuf[LowFreMainKey]=1;
}
TB8=1;
SBUF=0x6;
while(!TI)
{
;
}
TB8=0;
SBUF=ObjectBuf[LowFreMainKey];
while(!TI)
{
;
}
break;
case SetLowFreIntensityMode:
ObjectBuf[LowFreIntensity]++;
if(ObjectBuf[LowFreIntensity]>6)
{
ObjectBuf[LowFreIntensity]=6;
}
}
}
else if(LowFreCombiteVal==0x4b)
{
LowFreCombiteVal=0x00;
switch(LowFreOperateMode)
{
case LowFreMainMenuMode:
ObjectBuf[LowFreMainKey]--;
if(ObjectBuf[LowFreMainKey]<1)
{
ObjectBuf[LowFreMainKey]=8;
}
break;
case SetLowFreIntensityMode:
ObjectBuf[LowFreIntensity]--;
if(ObjectBuf[LowFreIntensity]<1)
{
ObjectBuf[LowFreIntensity]=1;
}
}
}
//处理ENTER键
if(!FootEnter)
{
if(KeyEnable)
{
KeyEnable=0;
delay_ms(20);
if(!FootEnter)//enter键有效
{
beep=0;
switch(OperateMode)
{
case MainMenuMode:
switch(ObjectBuf[MainKey])
{
case 1:
if(!RunMode)
{
RunMode=1;//p1
SetParameterEnable=1;
ObjectBuf[WaterTemperatureSet]=45;//老年
OldWaterTemperatureSetVal=255;
WaterTemperatureShiftFlag=1;
KnockCount=0;
}
break;
case 2:
if(!RunMode)
{
RunMode=2;//p2
SetParameterEnable=1;
ObjectBuf[WaterTemperatureSet]=40;//中年
OldWaterTemperatureSetVal=255;
WaterTemperatureShiftFlag=1;
KnockCount=0;
}
break;
case 3:
if(!RunMode)
{
RunMode=3;//p3
SetParameterEnable=1;
ObjectBuf[WaterTemperatureSet]=37;//青年
WaterTemperatureShiftFlag=1;
OldWaterTemperatureSetVal=255;
KnockCount=0;
}
break;
case 4:
KnockPause=!KnockPause;
KnockCount=0;
Display(Knock);
break;
case 5:
if(!RunMode)
{
OperateMode=SetWaterTemperatureMode;//water temperature
ObjectBuf[WaterTemperatureSet]=30;
RunMode=0;
}
break;
case 6:
RunMode=0;
HoldTemperature=0;
KnockOut=0;
KnockCount=0;
WrongState=0;
DelayStopWaterCountEnable=1;
DelayStopWaterCount=0;
LowWaterTemperatureFlag=1;
if(!HeatPin)
{
HeatPin=OFF;
}
ObjectBuf[Timer]=0;
break;
case 7:
if(!RunMode)
{
OperateMode=SetHourMode;//clock
RunMode=0;
}
}
break;
case SetWaterTemperatureMode:
OperateMode=MainMenuMode;
ObjectBuf[MainKey]=5;
WaterTemperatureShiftFlag=1;
if(!RunMode)
{
SetParameterEnable=1;
RunMode=4;
KnockCount=0;
}
break;
case SetHourMode:
ClockBuf[0]=ObjectBuf[Hour]/10;
ClockBuf[0]<<=4;
ClockBuf[0]=ClockBuf[0]+ObjectBuf[Hour]%10;
WriteClockChip(Hour,1);
OperateMode=SetMinMode;
break;
case SetMinMode:
ClockBuf[0]=ObjectBuf[Minute]/10;
ClockBuf[0]<<=4;
ClockBuf[0]=ClockBuf[0]+ObjectBuf[Minute]%10;
WriteClockChip(Minute,1);
OperateMode=MainMenuMode;
ObjectBuf[MainKey]=7;
}
}
}
}
else KeyEnable=1;
if(!LowFreEnter)
{
if(LowFreKeyEnable)
{
LowFreKeyEnable=0;
delay_ms(20);
if(!LowFreEnter)//enter键有效
{
beep=0;
switch(LowFreOperateMode)
{
case LowFreMainMenuMode:
switch(ObjectBuf[LowFreMainKey])
{
case 1:
ObjectBuf[LowFreIntensity]=3;
ObjectBuf[LowFreTimer]=15;
LowFreRunMode=1;
LowFreCommand=P2;
LowFreCommand&=0xf0;
P2=LowFreCommand|0x01;
delay_ms(20);
P2=LowFreCommand|0x0f;
break;
case 2:
ObjectBuf[LowFreIntensity]=3;
ObjectBuf[LowFreTimer]=15;
LowFreRunMode=2;
LowFreCommand=P2;
LowFreCommand&=0xf0;
P2=LowFreCommand|0x02;
delay_ms(20);
P2=LowFreCommand|0x0f;
break;
case 3:
ObjectBuf[LowFreIntensity]=3;
ObjectBuf[LowFreTimer]=15;
LowFreRunMode=3;
LowFreCommand=P2;
LowFreCommand&=0xf0;
P2=LowFreCommand|0x03;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -