?? keydeal.c.txt
字號:
/******************************************************************************
** 鍵盤處理
******************************************************************************/
void KeyDeal()
{
KeyValue=PORTB; //0:up(10); 1:fan(20); 2:mode(40) 3:power(80) 4:set(04) 5:dowm(08)//tset
/*//test
if(AuxFlag.flag2==0)
{KeyValue=0x80; AuxFlag.flag2=1;}
else
{
KeyValue=0x10;
} */
//test
KeyValue=KeyValue&0xfc;
w0=KeySignL;
w1=KeySignH;
/*-----------控制POWER OFF狀態-------------*/
if((KeySignH&0x01)==0x00)
{
if(KeyValue==KEY_NONE){AuxFlag.power=0; }
/* POWER 鍵處理 */
if(KeyValue==KEY_POWER)
{
if(AuxFlag.power==0)
{
AuxFlag.power=1;
KeySignH=KeySignH|0x01;
if(CtrlFlagByte.ONAUTO==1)
{
CtrlFlagByte.ONAUTODZ=1;
CtrlFlagByte.OFFAUTODZ=0;
}
switch(w0&0x03) //剛上電寫mode的狀態
{
case 0x01:
ClearMode();
lcdx6.lcd6bits.lc4=1;
lcdx7.lcd7bits.lc0=1;
break;
case 0x02:
ClearMode();
lcdx3.lcd3bits.lc4=1;
lcdx4.lcd4bits.lc4=1;
lcdx4.lcd4bits.lc0=1;
break;
case 0x03:
ClearMode();
lcdx7.lcd7bits.lc4=1;
lcdx12.lcd12bits.lc0=1;
lcdx12.lcd12bits.lc4=1;
lcdx13.lcd13bits.lc0=1;
break;
default:
ClearMode();
lcdx6.lcd6bits.lc4=1;
lcdx7.lcd7bits.lc0=1;
break;
}
w0=KeySignL; //剛上電寫fan狀態
switch(w0&0x0c)
{
case 0x00:
ClearFan();
lcdx5.lcd5bits.lc0=1;
lcdx6.lcd6bits.lc0=1;
break;
case 0x04:
ClearFan();
lcdx5.lcd5bits.lc0=1;
lcdx6.lcd6bits.lc0=1;
break;
case 0x08:
ClearFan();
lcdx5.lcd5bits.lc0=1;
lcdx5.lcd5bits.lc4=1;
lcdx6.lcd6bits.lc0=1; //大風
break;
case 0x0c:
ClearFan();
lcdx2.lcd2bits.lc0=1;
lcdx2.lcd2bits.lc4=1;
lcdx3.lcd3bits.lc0=1;
break;
}
}
}
}
/*---------power鍵 ON 狀態,電源打開--------*/
else
{
/* ----------鍵盤鎖定狀態-------------*/
if(KeyFlag.lock==1)
{
if(KeyValue==KEY_SET)
{
if(KeyFlag.setdz==0)
{
LockDelay=LockDelay+1;
if(LockDelay>30){LockDelay=0; KeyFlag.lock=0; KeyFlag.setdz=1; lcdx5.lcd5bits.lc3=0;}
}
}
else
{
if(KeyValue==0x00) {KeyFlag.setdz=0;}
}
}
/* -------------鍵盤解鎖狀態 --------------*/
else
{
switch(KeyValue)
{
/* FAN 按鍵 : 切換風強度 */
case KEY_FAN:
AuxFlag.exitte=0;
KeyHoldCount=0;
nokeyyanshi=0;
CtrlFlagByte.ONAUTODZ=0;
switch(w0&0x0c)
{
case 0x00://小風->中風
KeySignL=KeySignL|0x04;
ClearFan();
lcdx5.lcd5bits.lc0=1;
lcdx6.lcd6bits.lc0=1;
break;
case 0x04://中風->大風
KeySignL=KeySignL&0xfb;
KeySignL=KeySignL|0x08;
ClearFan();
lcdx5.lcd5bits.lc0=1;
lcdx5.lcd5bits.lc4=1;
lcdx6.lcd6bits.lc0=1;
break;
case 0x08://大風->自動風
KeySignL=KeySignL|0x0c;
ClearFan();
lcdx2.lcd2bits.lc0=1;
lcdx2.lcd2bits.lc4=1;
lcdx3.lcd3bits.lc0=1;
break;
case 0x0c: //自動風->小風
KeySignL=KeySignL&0xf3;
ClearFan();
lcdx5.lcd5bits.lc0=1;
lcdx6.lcd6bits.lc0=1;
break;
}
break;
/* UP按鍵處理 */
case KEY_UP: //up
CtrlFlagByte.ONAUTODZ=0;
nokeyyanshi=0;
KeyHoldCount=KeyHoldCount+1;
/* 設定定時開時間 */
if((KeySignL&0x30)==0x10)
{
if(KeyHoldCount>6)
{
if(ontimeh==24) {ontimeh=0;}
else
{
if(ontimeh==23) {ontimeh=24; ontimem=0;}
else {ontimeh=ontimeh+1;}
}
}
else
{
if(KeyHoldCount>3)
{
if(ontimeh==24) {ontimeh=0;}
if(ontimem>56)
{
ontimem=ontimem+3;
ontimem=ontimem-60;
if(ontimeh==23) {ontimeh=24; ontimem=0;}
else {ontimeh=ontimeh+1;}
}
else {ontimem=ontimem+3;}
}
else
{
if(KeyHoldCount<=3)
{
if(ontimeh==24) {ontimeh=0;}
if(ontimem==59)
{
ontimem=0;
if(ontimeh==24) {ontimeh=0;}
if(ontimeh==23) {ontimeh=24; ontimem=0;}
else {ontimeh=ontimeh+1;}
}
else {ontimem=ontimem+1;}
}
}
}
TimeWrite(ontimeh,ontimem);
}
/* 設定定時關時間 */
if((KeySignL&0x30)==0x20)
{
if(KeyHoldCount>6)
{
if(offtimeh==24) {offtimeh=0;}
if(offtimeh==23){offtimeh=24;offtimem=0;}
else {offtimeh=offtimeh+1;}
}
else
{
if(KeyHoldCount>3)
{
if(offtimeh==24) {offtimeh=0;}
if(offtimem>56)
{
offtimem=offtimem+3;
offtimem=offtimem-60;
if(offtimeh==23) {offtimeh=24;offtimem=0;}
else {offtimeh=offtimeh+1;}
}
else {offtimem=offtimem+3;}
}
else
{
if(KeyHoldCount<=3)
{
if(offtimeh==24) {offtimeh=0;}
if(offtimem==59)
{
offtimem=0;
if(offtimeh==23) {offtimeh=24;offtimem=0;}
else {offtimeh=offtimeh+1;}
}
else {offtimem=offtimem+1;}
}
}
}
TimeWrite(offtimeh,offtimem);
}
/* 設定當前時間 */
if((KeySignL&0x30)==0x30)
{
if(KeyHoldCount>6)
{
if(shenowtimeh==23){shenowtimeh=0; shenowtimem=0;}
else {shenowtimeh=shenowtimeh+1;}
}
else
{
if(KeyHoldCount>3)
{
if(shenowtimem>56)
{
shenowtimem=shenowtimem+3;
shenowtimem=shenowtimem-60;
if(shenowtimeh==23) {shenowtimeh=0;}
else {shenowtimeh=shenowtimeh+1;}
}
else {shenowtimem=shenowtimem+3;}
}
else
{
if(KeyHoldCount<=3)
{
if(shenowtimem==59)
{
shenowtimem=0;
if(shenowtimeh==23) {shenowtimeh=0;}
else {shenowtimeh=shenowtimeh+1;}
}
else {shenowtimem=shenowtimem+1;}
}
}
}
TimeWrite(shenowtimeh,shenowtimem);
SetTime();
}
/* 設定溫度設定值 */
if((KeySignL&0x30)==0x00)
{
AuxFlag.exitte=1;
if(KeyHoldCount>5)
{
if(TemperatureSetVal>68){TemperatureSetVal=70;}
else {TemperatureSetVal=TemperatureSetVal+2;}
}
else
{
if(TemperatureSetVal>69){TemperatureSetVal=70;}
else {TemperatureSetVal=TemperatureSetVal+1;}
}
TemperatureWrite(TemperatureSetVal);
}
break;
/* DOWN 按鍵處理 */
case KEY_DOWN: //down
CtrlFlagByte.ONAUTODZ=0;
nokeyyanshi=0;
KeyHoldCount=KeyHoldCount+1;
/* 定時開時間設定 */
if((KeySignL&0x30)==0x10)
{
if(KeyHoldCount>6)
{
if(ontimeh==0) {ontimeh=24; ontimem=0;}
else {ontimeh=ontimeh-1;}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -