/************************************************************************************************************************** * * ]@@@@@[ ]@@@@@@ [@@@@@] * )zzzzz, .zzzzz,)zzzzzz._zabzL, ._zzd@@zzL_ ea@@@@@@ze @@@@@@[ @@@@@@[ ._zabzL]@@@@@@ _zzz@@zzL_ * `]@@@@, )@@@@[']@@@@@@a@@@@@@b ]@@@@@@@@@@@L,]@@@@@@@@[ @@@@@@[ @@@@@@[ .a@@@@@@@@@@@@@ ]@@@@@[ .d@@@@@@@@@@L, * `@@@@L a@@@@' ]@@@@@@']@@@@@@ a@@@@[']@@@@@,"]@@@@@[~" @@@@@@[ @@@@@@[ )@@@@@@']@@@@@@ ]@@@@@[ d@@@@@[]@@@@@b * ]@@@@_@@@@[ ]@@@@@@ ]@@@@@@ @@@@@L,`~~~~~' ]@@@@@[ @@@@@@[ @@@@@@[ ]@@@@@@ ]@@@@@@ ]@@@@@[ a@@@@@[]@@@@@@ * `]@@@@@@@[' ]@@@@@@ ]@@@@@@ `@@@@@@bz_, ]@@@@@[ @@@@@@[ @@@@@@[ ]@@@@@@ ]@@@@@@ ]@@@@@[ @@@@@@[]@@@@@@ * ]@@@@@@@L ]@@@@@@ ]@@@@@@ "~@@@@@@@@z_ ]@@@@@[ @@@@@@[ @@@@@@[ ]@@@@@@ ]@@@@@@ ]@@@@@[ @@@@@@[]@@@@@@ * .a@@@@@@@@, ]@@@@@@ ]@@@@@@ `"~-@@@@@@, ]@@@@@[ @@@@@@[ @@@@@@[ ]@@@@@@ ]@@@@@@ ]@@@@@[ @@@@@@[]@@@@@@ * d@@@@~@@@@b ]@@@@@@ ]@@@@@@ @@@@@@[`@@@@@[ ]@@@@@[ @@@@@@[ @@@@@@[ ]@@@@@@ ]@@@@@@ ]@@@@@[ @@@@@@[]@@@@@[ * )@@@@[ ]@@@@, ]@@@@@@,]@@@@@[ ]@@@@@[.@@@@@[ q@@@@@[_ @@@@@@[.@@@@@@[ `@@@@@@,]@@@@@@ ]@@@@@[ ]@@@@@[]@@@@@P * .a@@@@' `@@@@@,]@@@@@@@@@@@@@P `@@@@@@@@@@@@' `@@@@@@@@ q@@@@@@@@@@@@@[ `@@@@@@@@@@@@@@ ]@@@@@[ `@@@@@@@@@@@r' * `~~~~~' `~~~~~']@@@@@@`~~@@~~' `~~~~@@~~~"' `~~~~~~~ `~~-@~~'~~~~~~' `~~@@~~`~~~~~~ `~~~~~' `~~~~@@~~~" * ]@@@@@@ * ]@@@@@@ Copy Right 2003-2010 * ]@@@@@@ * ]@@@@@@ http://xpstudio2003.blog.163.com TEL:13066023776 * ]@@@@@@ http://shop36386933.taobao.com Q Q:155137572 * `~~~~~~ * ***************************************************************************************************************************/ #include "..\xpHFL.h" #include "..\lcd5110\Lcd.h" #include "..\keyborad\key.h" #include "interface.h" INT8U SysKey; //系统按键. INT8U KeyDir = FROM_FATHER; //用来各个界面之间的切换时传递参数. //============================================================== //系统界面函数声明区.(一定要声明!) void UI_Idle(void); void UI_Help(void); void (*pUI)()=UI_Idle; //界面指针初始化为IDLE函数. #define UI_GOTO(index) {pUI=(index);} #define UI_GOTO_CHILD(index) {pUI=(index); KeyDir=GOTO_CHILD;} #define UI_GOTO_FATHER(index) {pUI=(index); KeyDir=GOTO_FATHER;} //======================================================================== //以下是各个界面的函数实现.每个函数都要在上面声明! //空闲状态下的循环. void UI_Idle() { static INT8U SysSclt=0; switch(SysKey) { //进入菜单. case FROM_FATHER: case FROM_CHILD: LcdClrScrn(); #define IDLE_MENU_MAX 4 ShowLine(0,"1.Burn HEX"); ShowLine(1,"2.Read TXT"); ShowLine(2,"3.Play GAME"); ShowLine(3,"4.Set SYS"); ShowLine(4,"5.Copy@Right"); ShowARROW(SysSclt); break; //上移 case KEY_DOWN | KEY_1: case KEY_HOLD | KEY_1: case KEY_BURST| KEY_1: DisShowARROW(SysSclt); if(SysSclt==0)SysSclt=IDLE_MENU_MAX; else SysSclt--; ShowARROW(SysSclt); break; //下移 case KEY_DOWN | KEY_3: case KEY_HOLD | KEY_3: case KEY_BURST| KEY_3: DisShowARROW(SysSclt); SysSclt++; if(SysSclt>IDLE_MENU_MAX)SysSclt=0; ShowARROW(SysSclt); break; case KEY_DOWN | KEY_2: if(SysSclt == 4) { UI_GOTO_CHILD(UI_Help); //KeyDir = GOTO_CHILD; break; } default:break; }//switch } void UI_Help() { switch(SysKey) { //进入菜单. case FROM_FATHER: LcdClrScrn(); ShowLine(0, "Copy Right"); ShowLine(2, "xpstudio2010"); ShowLine(5, " back>"); break; case KEY_DOWN | KEY_4: UI_GOTO_FATHER(UI_Idle); break; default:break; }//switch } //系统的大循环. void Interface(void) { //=============================================== //以下为按键的处理. SysKey = GetKey(); if(KeyDir!=0) {//建立一种传递信息的变量. SysKey = KeyDir; KeyDir = 0; } //=============================================== //以下为界面的相互调用 pUI(); }