?? main.c
字號:
{
State_temp=State;
State=MENUMODIFY;
MenuShow(State);
break;
}
else // No modify
{
State=MENUSELALARM;
MenuShow(State);
break;
}
case MOVECURSOR:
SetPoint++;
Xpos++;
if(Xpos==15)
{Xpos=13;SetPoint=0;}
LcdMoveCursor(Xpos,Ypos);
break;
case INCREASE:SetCompare(State);
LcdDisBuf1[SetPoint]++;
if(LcdDisBuf1[SetPoint]>Max_temp)
LcdDisBuf1[SetPoint]=Min_temp;
ACC_temp=LcdDisBuf1[SetPoint]|0x30;
LcdUpdateBit(Xpos,Ypos,ACC_temp);
LcdMoveCursor(Xpos,Ypos);
break;
default: MenuShow(State);break;
}
break;
case MENUSELALARM:
switch(KeyValue)
{
case NEXT:State=MENUMAIN;MenuShow(State);break;
case TURNON:AlarmSwitch=ON;State=MENUSETALARM;MenuShow(State);break;
case TURNOFF:AlarmSwitch=OFF;State=MENUMAIN;MenuShow(State);break;
default: MenuShow(State);break;
}
break;
case MENUSETALARM:
switch(KeyValue)
{
case NEXT:
if(CompareModify()) // Yes modify
{
State_temp=State;
State=MENUMODIFY;
MenuShow(State);
break;
}
else // No modify
{
State=MENUMAIN;
MenuShow(State);
break;
}
case MOVECURSOR:
SetPoint++;
Xpos++;
if(Xpos==13)
{Xpos=14;}
if(Xpos==16)
{Xpos=11;SetPoint=0;}
LcdMoveCursor(Xpos,Ypos);
break;
case INCREASE:
SetCompare(State);
LcdDisBuf1[SetPoint]++;
if(LcdDisBuf1[SetPoint]>Max_temp)
LcdDisBuf1[SetPoint]=Min_temp;
ACC_temp=LcdDisBuf1[SetPoint]|0x30;
LcdUpdateBit(Xpos,Ypos,ACC_temp);
LcdMoveCursor(Xpos,Ypos);
break;
default: MenuShow(State);break;
}
break;
case MENUMODIFY:
switch(KeyValue)
{
case RETURN:
State=State_temp;MenuShow(State);break; // retrun without save
case SAVE:State=State_temp; // save and return
SaveModify(State);
State_temp=State;
State=MENUSAVEOK;
MenuShow(State);
Beep=0;
delayXms(500);
Beep=1;
State=State_temp+1;
if(State>MENUSETALARM)
State=MENUMAIN;
MenuShow(State);break;
case EXIT:State=MENUMAIN;MenuShow(State);break; // back to the MainMenu withour save
default: MenuShow(State);break;
}
break;
case MENUDISABLEALARM:
switch(KeyValue)
{
case NEXT:AlarmRunning=OFF;Beep=1;State=State_temp;MenuShow(State);break;
case MOVECURSOR:
AlarmRunning=OFF;Beep=1;State=State_temp;MenuShow(State);break;
case INCREASE:
AlarmRunning=OFF;Beep=1;State=State_temp;MenuShow(State);break;
default: MenuShow(State);break;
}
break;
case MENUSAVEOK:MenuShow(State);break;
}
// 以下為循環檢測按鍵和軟中斷,若有軟中斷或者按鍵按下則跳出for(;;),然后回到上面的while(1)
for(;;)
{
if(IRQ==1)
{
KeyValue=0;IRQ=0;TickMainMenu=2400;break;
}
if(KEY1==0)
{
delayXms(30);
if(KEY1==0)
{
Beep=BEEPON;
delayXms(30);
Beep=BEEPOFF;
while(!KEY1);
KeyValue=NEXT;
Lcd_led=LEDON;
TickBackLight=200;
TickMainMenu=2400;
break;
}
}
if(KEY2==0)
{
delayXms(30);
if(KEY2==0)
{
Beep=BEEPON;
delayXms(30);
Beep=BEEPOFF;
while(!KEY2);
KeyValue=MOVECURSOR;
Lcd_led=LEDON;
TickBackLight=200;
TickMainMenu=2400;
break;
}
}
if(KEY3==0)
{
delayXms(30);
if(KEY3==0)
{
Beep=BEEPON;
delayXms(30);
Beep=BEEPOFF;
while(!KEY3);
KeyValue=INCREASE;
Lcd_led=LEDON;
TickBackLight=200;
TickMainMenu=2400;
break;
}
}
}
//返回while(1)
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -