标题:
基于单片机菜单界面代码
[打印本页]
作者:
yang2020011
时间:
2021-5-22 13:59
标题:
基于单片机菜单界面代码
基于单片机菜单界面代码
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)();//执行当前操作函数
}
}
复制代码
作者:
robinsonlin
时间:
2021-5-22 16:49
RAM 真富有!!! 界面呢?怎么整?
作者:
azjdly
时间:
2022-2-25 03:49
robinsonlin 发表于 2021-5-22 16:49
RAM 真富有!!! 界面呢?怎么整?
这个表是固定的一般加个const放到flash就行
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1