📄 wkq.c
字号:
F_CheckWaterFlag=0;
F_InWaterFlag =0;
OUT_IN_WATER =1;
DelayInWater =0;
}
}
return;
}
void SetHotUp(uchar mode)
{
if(mode)
{
OUT_HOTUP1=!F_HotFlag1;
OUT_HOTUP2=!F_HotFlag2;
if(F_HotFlag1||F_HotFlag2)
F_HotUpingFlag=1;
else
F_HotUpingFlag=0;
}
else
{
OUT_HOTUP1 =1;
OUT_HOTUP2 =1;
F_HotUpingFlag=0;
}
}
void SetWater(uchar mode)
{
if(mode)
{
OUT_WATER =0;
F_OutWaterFlag=1;
}
else
{
OUT_WATER =1;
F_OutWaterFlag=0;
}
}
uchar ScanKey()
{
if(KeyDelay>DefKeyDelay)
{
KeyDelay=0;
OUT_DISP_DATA=0x00;
KEYIN=0x0ff;
KEY_COM1=0;
KEY_COM2=1;
KeyIn=KEYIN;
KeyIn &=0x1f;
if(KeyIn<0x1f)
{
if(KeyCode!=KeyIn)
{
KeyCode=KeyIn;
return KeyIn;
}
else return KEY_NULL;
}
KEYIN=0xff;
KEY_COM2=0;
KEY_COM1=1;
KeyIn=KEYIN;
KeyIn &=0x1f;
KeyIn+=0x10;
if(KeyIn<0x2f)
{
if(KeyCode!=KeyIn)
{
KeyCode=KeyIn;
return KeyIn;
}
else return KEY_NULL;
}
KeyCode=KEY_NULL;
}
return KEY_NULL;
}
void SetDispSub()
{
switch(State)
{
case KEY_SETTEMP:
DispBuf[2]=CurTime.hour%10;
DispBuf[3]=CurTime.hour/10;
DispBuf[4]=CurTime.min%10;
DispBuf[5]=CurTime.min/10;
DispBuf[1]=InData/10;
DispBuf[0]=InData%10;
break;
case KEY_SETTIME:
DispBuf[2]=(InData%60)%10;
DispBuf[3]=(InData%60)/10;
DispBuf[4]=(InData/60)%10;
DispBuf[5]=(InData/60)/10;
DispBuf[1]=SetNum/2+1;
DispBuf[0]=SetNum%2;
break;
default:
if(F_KeyPressHot1Flag)
{
if(F_HotFlag1)
{
DispBuf[5]=0x11;
DispBuf[4]=0x11;
DispBuf[3]=0;
DispBuf[2]=0x10;
}
else
{
DispBuf[5]=0x11;
DispBuf[4]=0;
DispBuf[3]=0x0f;
DispBuf[2]=0x0f;
}
}
else
if(F_KeyPressHot2Flag)
{
if(F_HotFlag2)
{
DispBuf[5]=0x11;
DispBuf[4]=0x11;
DispBuf[3]=0;
DispBuf[2]=0x10;
}
else
{
DispBuf[5]=0x11;
DispBuf[4]=0;
DispBuf[3]=0x0f;
DispBuf[2]=0x0f;
}
}
else
if(F_KeyPressRunFlag)
{
if(!F_WarningFlag)
{
DispBuf[5]=0x11;
DispBuf[4]=0x11;
DispBuf[3]=0;
DispBuf[2]=0x10;
}
else
{
DispBuf[5]=0x11;
DispBuf[4]=0;
DispBuf[3]=0x0f;
DispBuf[2]=0x0f;
}
}
else
{
DispBuf[5]=CurTime.hour/10;
DispBuf[4]=CurTime.hour%10;
DispBuf[3]=CurTime.min/10;
DispBuf[2]=CurTime.min%10;
DispBuf[1]=CurTemp/10;
DispBuf[0]=CurTemp%10;
}
break;
}
DispSub();
}
void DispSub()
{
uchar code DispCode[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x54,0x00};
// 显示代码 0 1 2 3 4 5 6 7 8 9 A b c d E F N off
uchar data i,inicom;
ushort j;
inicom=0x01;
for(i=0;i<6;i++)
{
if((State==KEY_SETTIME||State==KEY_VERIFY_TIME||State==KEY_SETTEMP)&&Offset_Bit==i)
{
if(DispDelay_Bit>DefDispDelay)
{
DispDelay_Bit=0;
Bit_Flag=!Bit_Flag;
}
if(Bit_Flag)
{
OUT_DISP_COM=~(inicom<<i);
if(State!=KEY_SETTIME&&State!=KEY_VERIFY_TIME&&F_DcFlag)
OUT_DISP_DATA=(DispCode[DispBuf[i]]|0X80);
else
OUT_DISP_DATA=DispCode[DispBuf[i]];
for(j=0;j<DefXSTime;j++);
}
}
else
{
OUT_DISP_COM=~(inicom<<i);
if(State!=KEY_SETTIME&&State!=KEY_VERIFY_TIME&&F_DcFlag
&&!F_KeyPressHot1Flag&&!F_KeyPressHot2Flag&&!F_KeyPressRunFlag)
OUT_DISP_DATA=(DispCode[DispBuf[i]]|0X80);
else
OUT_DISP_DATA=DispCode[DispBuf[i]];
for(j=0;j<DefXSTime;j++);
OUT_DISP_DATA=0;
}
}
OUT_DISP_DATA=0;
}
void SetDispBuf(uchar aa)
{
DispBuf[2]=0x11;
DispBuf[3]=0x11;
DispBuf[4]=0x11;
DispBuf[5]=0x11;
DispBuf[1]=SetNum/2+1;
DispBuf[0]=SetNum%2;
}
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
void SetTimeSub()
{
DispDelay=0;
State = KEY_SETTIME;
Offset_Bit = 5;
SetNum = 0;
//SetTime = SetTimeBuf[SetNum];
ReadRam(1,0x02);
F_TimeChange = 1;
while(DispDelay<40)
SetDispBuf(SetNum);
while(1)
{
KeyIn=ScanKey();
switch(KeyIn)
{
case KEY_RST:
return;
break;
case KEY_SETTIME:
// write_clock(0xc1|address,d);
WriteRam(SetNum*3+1,*SetTime,0x02);
SetNum++;
if(SetNum>=8)
return;
ReadRam(SetNum*3+1,0x02);
Offset_Bit= 5;
break;
case KEY_INC:
switch(Offset_Bit)
{
case 5:
if((SetTime.hour/10)<2)
SetTime.hour+=10;
else
SetTime.hour%=10;
break;
case 4:
if((SetTime.hour/10)==2)
{
if((SetTime.hour%10)<3)
SetTime.hour++;
else
SetTime.hour=20;
}
else
{
if((SetTime.hour%10)<9)
SetTime.hour++;
else
SetTime.hour-=9;
}
break;
case 3:
if((SetTime.min/10)<5)
SetTime.min+=10;
else
SetTime.min=SetTime.min%10;
break;
case 2:
if((SetTime.min%10)<9)
SetTime.min++;
else
SetTime.min-=9;
break;
}
break;
case KEY_OFFSET:
if(Offset_Bit>2)
Offset_Bit--;
else
Offset_Bit=5;
break;
case KEY_SETTEMP:
=SetTempSub();
State = KEY_SETTIME;
Offset_Bit= 5;
wk=0;
break;*/
default:
break;
}
SetDispSub();
}
}
void SetChangTimeSub()
{
State=KEY_VERIFY_TIME;
SetTime = CurTime;
Offset_Bit = 5;
F_TimeChange= 1;
while(1)
{
KeyIn=ScanKey();
switch(KeyIn)
{
case KEY_RST:
return;
break;
case KEY_VERIFY_TIME:
CurTime=TimeData;
return;
break;
case KEY_INC:
switch(Offset_Bit)
{
case 5:
if((SetTime.hour/10)<2)
SetTime.hour+=10;
else
SetTime.hour%=10;
break;
case 4:
if((SetTime.hour/10)==2)
{
if((SetTime.hour%10)<3)
SetTime.hour++;
else
SetTime.hour=20;
}
else
{
if((SetTime.hour%10)<9)
SetTime.hour++;
else
SetTime.hour-=9;
}
break;
case 3:
if((SetTime.min/10)<5)
SetTime.min+=10;
else
SetTime.min=SetTime.min%10;
break;
case 2:
if((SetTime.min%10)<9)
SetTime.min++;
else
SetTime.min-=9;
break;
}
break;
case KEY_OFFSET:
if(Offset_Bit>2)
Offset_Bit--;
else
Offset_Bit=5;
break;
default:
break;
}
SetDispSub();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -