基于单片机菜单界面代码- typedef struct
- {
- uchar current;//项
- uchar up;
- uchar down;
- uchar enter;
- uchar esc;
- void (*p)();
- } key_table;
- key_table code table[100]=
- {
- /*
- 0,上,下,确,回,()*fun,*/
- {0,3,1,4,0,(*fun1)},//向下到fun2,向上到fun4,确定到下一级菜单,返回到主菜单
- {1,0,2,11,1,(*fun2)},//向下到fun3,向上到fun1,确定到下一级菜单,返回到主菜单
- {2,1,3,33,2,(*fun3)},//向下到fun4,向上到fun2,确定到下一级菜单,返回到主菜单
- {3,2,0,79,3,(*fun4)},//向下到fun1,向上到fun3,确定到下一级菜单,返回到主菜单
- {4,6,5,29,7,(*fun5)},//向下到fun7,向上到fun6,确定到下一级菜单,返回到主菜单一
- {5,4,6,29,7,(*fun6)},//向下到fun6,向上到fun7,确定到下一级菜单,返回到主菜单一
- {6,5,4,29,7,(*fun7)},//向下到fun5,向上到fun5,确定到下一级菜单,返回到主菜单一
- {7,3,1,4,0,(*fun00)},//回主菜单一
- {8,0,2,11,1,(*fun01)},//回主菜单二
- {9,1,3,33,2,(*fun02)},//回主菜单三
- {10,2,0,79,3,(*fun03)},//回主菜单四
- {11,17,12,11,8,(*fun8)},//向下到fun14,向上到fun9,确定到下一级菜单,返回到主菜单二
- {12,28,13,59,8,(*fun9)},//向下到fun8,向上到fun10,确定到下一级菜单,返回到主菜单二
- {13,12,14,13,8,(*fun10)},//向下到fun9,向上到fun11,确定到下一级菜单,返回到主菜单二
- {14,13,15,67,8,(*fun11)},//向下到fun10,向上到fun12,确定到下一级菜单,返回到主菜单二
- {15,26,16,15,8,(*fun12)},//向下到fun22,向上到fun13,确定到下一级菜单,返回到主菜单二
- {16,18,11,16,8,(*fun13)},//向下到fun12,向上到fun8,确定到下一级菜单,返回到主菜单二
- {17,18,28,17,8,(*fun13)},//向下到fun15,向上到fun8,确定到下一级菜单,返回到主菜单二
- {18,19,17,18,8,(*fun14)},//向下到fun16,向上到fun14,确定到下一级菜单,返回到主菜单二
- {19,20,18,75,8,(*fun15)},//向下到fun17,向上到fun15,确定到下一级菜单,返回到主菜单二
- {20,21,19,20,8,(*fun16)},//向下到fun18,向上到fun16,确定到下一级菜单,返回到主菜单二
- {21,23,25,63,8,(*fun17)},//向下到fun19,向上到fun21,确定到下一级菜单,返回到主菜单二
- {22,17,12,22,8,(*fun21)},//向下到fun14,向上到fun13,确定到下一级菜单,返回到主菜单二
- {23,17,12,22,8,(*fun21)},//向下到fun14,向上到fun9,确定到下一级菜单,返回到主菜单二
- {24,18,16,24,8,(*fun14)},//向下到fun15,向上到fun13,确定到下一级菜单,返回到主菜单二
- {25,21,26,25,8,(*fun18)},//向下到fun20,向上到fun22,确定到下一级菜单,返回到主菜单二
- {26,25,27,63,8,(*fun19)},//向下到fun19,向上到fun21,确定到下一级菜单,返回到主菜单二
- {27,26,16,71,8,(*fun20)},//向下到fun21,向上到fun23,确定到下一级菜单,返回到主菜单二
- {28,17,12,28,8,(*fun21)},//向下到fun22,向上到fun8,确定到下一级菜单,返回到主菜单二
- {29,31,31,32,7,(*fun22)},//测量
- {30,31,31,32,7,(*fun23)},
- {31,30,30,7,7,(*fun24)},//时间调整
- {32,32,32,7,7,(*fun25)},//调整日期
- {33,36,34,37,45,(*fun26)},
- {34,33,35,38,45,(*fun27)},
- {35,34,36,39,45,(*fun28)},
- {36,35,33,40,45,(*fun29)},
- {37,37,37,41,33,(*fun30)},
- {38,38,38,42,34,(*fun31)},
- {39,39,39,43,35,(*fun32)},
- {40,40,40,44,36,(*fun33)},
- {41,41,41,41,33,(*fun34)},
- {42,42,42,42,34,(*fun34)},
- {43,43,43,43,35,(*fun34)},
- {44,44,44,44,36,(*fun34)},
- {45,1,3,33,45,(*fun02)},
- /*{33,34,35,33,31,(*fun26)},//秒调整
- {34,35,33,41,31,(*fun27)},//分调整
- {35,33,34,45,31,(*fun28)},//时调整
- {36,37,38,49,32,(*fun29)},//日调整
- {37,38,36,53,32,(*fun30)},//月调整
- {38,36,37,57,32,(*fun31)},//年调整cur=2
- ///***************调整分************
- {39,39,40,42,31,(*fun32)},
- {40,39,40,42,31,(*fun33)},
- {41,39,40,31,31,(*fun34)},
- {42,42,42,31,31,(*fun35)},
- ///*****************调整时*********
- {43,43,44,46,31,(*fun36)},
- {44,43,44,46,31,(*fun37)},
- {45,43,44,31,31,(*fun38)},
- {46,46,46,31,31,(*fun39)},
- ///****************调整日***********
- {47,47,48,50,32,(*fun40)},
- {48,47,48,50,32,(*fun41)},
- {49,47,48,32,32,(*fun42)},
- {50,50,50,32,32,(*fun43)},
- ///***************调整月*************
- {51,51,52,54,32,(*fun44)},
- {52,51,52,54,32,(*fun45)},
- {53,51,52,32,32,(*fun46)},
- {54,54,54,32,32,(*fun47)},
- ///***************调整年*************
- {55,55,56,58,32,(*fun48)},
- {56,55,56,58,32,(*fun49)},
- {57,55,56,32,32,(*fun50)},
- {58,58,58,32,32,(*fun51)},
- {59,60,61,12,12,(*fun54)},
- {60,60,61,62,12,(*fun52)},
- {61,60,61,62,12,(*fun53)},
- {62,62,62,12,12,(*fun55)},
- {63,64,65,21,21,(*fun56)},
- {64,64,65,66,21,(*fun57)},
- {65,64,65,66,21,(*fun58)},
- {66,66,66,21,21,(*fun55)},
- {67,69,70,14,14,(*fun59)},
- {68,68,68,14,14,(*fun62)},
- {69,69,70,68,14,(*fun63)},//-
- {70,69,70,68,14,(*fun64)},//+
- {71,73,74,27,27,(*fun60)},
- {72,72,72,27,27,(*fun62)},
- {73,73,74,72,27,(*fun65)},//-
- {74,73,74,72,27,(*fun66)},//+
- {75,77,78,19,19,(*fun61)},
- {76,76,76,19,19,(*fun62)},
- {77,77,78,76,19,(*fun67)},//-
- {78,77,78,76,19,(*fun68)},//+
- {79,79,79,79,10,(*fun69)},//+
- {80,80,80,80,4,(*fun69)},//+
- {81,81,81,81,5,(*fun69)},//+
- {82,82,82,82,6,(*fun69)},//+*/
- };
- void get_key()
- {
- if((keyup==0)||(keydown==0)||(keyenter==0)||(keyesc==0))
- {
- delayes(10);
- if(keyup==0)
- {
- //count2=0;
- while(!keyup);
- func=table[func].up; //向上翻
- }
- if(keydown==0)
- {
- //count2=0;
- while(!keydown);
- func=table[func].down;
- }
- if(keyenter==0)
- {
- while(!keyenter);
- func=table[func].enter;
- //key=1;
- //key1=0;
- }
- if(keyesc==0)
- {
- while(!keyesc);
- func=table[func].esc;
- //key1=1;
- }
- dangqian=table[func].p;
- (*dangqian)();//执行当前操作函数
- }
- }
复制代码
|