找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2140|回复: 2
打印 上一主题 下一主题
收起左侧

基于单片机菜单界面代码

[复制链接]
跳转到指定楼层
楼主
ID:860337 发表于 2021-5-22 13:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于单片机菜单界面代码
  1. typedef struct
  2.    {
  3.         uchar current;//项
  4.         uchar up;
  5.         uchar down;
  6.         uchar enter;
  7.         uchar esc;
  8.         void (*p)();
  9.         } key_table;

  10. key_table code table[100]=
  11. {

  12. /*
  13. 0,上,下,确,回,()*fun,*/

  14. {0,3,1,4,0,(*fun1)},//向下到fun2,向上到fun4,确定到下一级菜单,返回到主菜单
  15. {1,0,2,11,1,(*fun2)},//向下到fun3,向上到fun1,确定到下一级菜单,返回到主菜单
  16. {2,1,3,33,2,(*fun3)},//向下到fun4,向上到fun2,确定到下一级菜单,返回到主菜单
  17. {3,2,0,79,3,(*fun4)},//向下到fun1,向上到fun3,确定到下一级菜单,返回到主菜单

  18. {4,6,5,29,7,(*fun5)},//向下到fun7,向上到fun6,确定到下一级菜单,返回到主菜单一
  19. {5,4,6,29,7,(*fun6)},//向下到fun6,向上到fun7,确定到下一级菜单,返回到主菜单一
  20. {6,5,4,29,7,(*fun7)},//向下到fun5,向上到fun5,确定到下一级菜单,返回到主菜单一

  21. {7,3,1,4,0,(*fun00)},//回主菜单一
  22. {8,0,2,11,1,(*fun01)},//回主菜单二
  23. {9,1,3,33,2,(*fun02)},//回主菜单三
  24. {10,2,0,79,3,(*fun03)},//回主菜单四

  25. {11,17,12,11,8,(*fun8)},//向下到fun14,向上到fun9,确定到下一级菜单,返回到主菜单二
  26. {12,28,13,59,8,(*fun9)},//向下到fun8,向上到fun10,确定到下一级菜单,返回到主菜单二
  27. {13,12,14,13,8,(*fun10)},//向下到fun9,向上到fun11,确定到下一级菜单,返回到主菜单二
  28. {14,13,15,67,8,(*fun11)},//向下到fun10,向上到fun12,确定到下一级菜单,返回到主菜单二
  29. {15,26,16,15,8,(*fun12)},//向下到fun22,向上到fun13,确定到下一级菜单,返回到主菜单二
  30. {16,18,11,16,8,(*fun13)},//向下到fun12,向上到fun8,确定到下一级菜单,返回到主菜单二

  31. {17,18,28,17,8,(*fun13)},//向下到fun15,向上到fun8,确定到下一级菜单,返回到主菜单二
  32. {18,19,17,18,8,(*fun14)},//向下到fun16,向上到fun14,确定到下一级菜单,返回到主菜单二
  33. {19,20,18,75,8,(*fun15)},//向下到fun17,向上到fun15,确定到下一级菜单,返回到主菜单二
  34. {20,21,19,20,8,(*fun16)},//向下到fun18,向上到fun16,确定到下一级菜单,返回到主菜单二
  35. {21,23,25,63,8,(*fun17)},//向下到fun19,向上到fun21,确定到下一级菜单,返回到主菜单二

  36. {22,17,12,22,8,(*fun21)},//向下到fun14,向上到fun13,确定到下一级菜单,返回到主菜单二
  37. {23,17,12,22,8,(*fun21)},//向下到fun14,向上到fun9,确定到下一级菜单,返回到主菜单二
  38. {24,18,16,24,8,(*fun14)},//向下到fun15,向上到fun13,确定到下一级菜单,返回到主菜单二

  39. {25,21,26,25,8,(*fun18)},//向下到fun20,向上到fun22,确定到下一级菜单,返回到主菜单二
  40. {26,25,27,63,8,(*fun19)},//向下到fun19,向上到fun21,确定到下一级菜单,返回到主菜单二
  41. {27,26,16,71,8,(*fun20)},//向下到fun21,向上到fun23,确定到下一级菜单,返回到主菜单二
  42. {28,17,12,28,8,(*fun21)},//向下到fun22,向上到fun8,确定到下一级菜单,返回到主菜单二

  43. {29,31,31,32,7,(*fun22)},//测量

  44. {30,31,31,32,7,(*fun23)},
  45. {31,30,30,7,7,(*fun24)},//时间调整

  46. {32,32,32,7,7,(*fun25)},//调整日期

  47. {33,36,34,37,45,(*fun26)},
  48. {34,33,35,38,45,(*fun27)},
  49. {35,34,36,39,45,(*fun28)},
  50. {36,35,33,40,45,(*fun29)},

  51. {37,37,37,41,33,(*fun30)},
  52. {38,38,38,42,34,(*fun31)},
  53. {39,39,39,43,35,(*fun32)},
  54. {40,40,40,44,36,(*fun33)},

  55. {41,41,41,41,33,(*fun34)},
  56. {42,42,42,42,34,(*fun34)},
  57. {43,43,43,43,35,(*fun34)},
  58. {44,44,44,44,36,(*fun34)},

  59. {45,1,3,33,45,(*fun02)},
  60. /*{33,34,35,33,31,(*fun26)},//秒调整
  61. {34,35,33,41,31,(*fun27)},//分调整
  62. {35,33,34,45,31,(*fun28)},//时调整

  63. {36,37,38,49,32,(*fun29)},//日调整
  64. {37,38,36,53,32,(*fun30)},//月调整
  65. {38,36,37,57,32,(*fun31)},//年调整cur=2

  66. ///***************调整分************
  67. {39,39,40,42,31,(*fun32)},
  68. {40,39,40,42,31,(*fun33)},
  69. {41,39,40,31,31,(*fun34)},
  70. {42,42,42,31,31,(*fun35)},

  71. ///*****************调整时*********
  72. {43,43,44,46,31,(*fun36)},
  73. {44,43,44,46,31,(*fun37)},
  74. {45,43,44,31,31,(*fun38)},
  75. {46,46,46,31,31,(*fun39)},

  76. ///****************调整日***********
  77. {47,47,48,50,32,(*fun40)},
  78. {48,47,48,50,32,(*fun41)},
  79. {49,47,48,32,32,(*fun42)},
  80. {50,50,50,32,32,(*fun43)},

  81. ///***************调整月*************
  82. {51,51,52,54,32,(*fun44)},
  83. {52,51,52,54,32,(*fun45)},
  84. {53,51,52,32,32,(*fun46)},
  85. {54,54,54,32,32,(*fun47)},

  86. ///***************调整年*************
  87. {55,55,56,58,32,(*fun48)},
  88. {56,55,56,58,32,(*fun49)},
  89. {57,55,56,32,32,(*fun50)},
  90. {58,58,58,32,32,(*fun51)},

  91. {59,60,61,12,12,(*fun54)},
  92. {60,60,61,62,12,(*fun52)},
  93. {61,60,61,62,12,(*fun53)},
  94. {62,62,62,12,12,(*fun55)},

  95. {63,64,65,21,21,(*fun56)},
  96. {64,64,65,66,21,(*fun57)},
  97. {65,64,65,66,21,(*fun58)},
  98. {66,66,66,21,21,(*fun55)},

  99. {67,69,70,14,14,(*fun59)},
  100. {68,68,68,14,14,(*fun62)},
  101. {69,69,70,68,14,(*fun63)},//-
  102. {70,69,70,68,14,(*fun64)},//+

  103. {71,73,74,27,27,(*fun60)},
  104. {72,72,72,27,27,(*fun62)},
  105. {73,73,74,72,27,(*fun65)},//-
  106. {74,73,74,72,27,(*fun66)},//+

  107. {75,77,78,19,19,(*fun61)},
  108. {76,76,76,19,19,(*fun62)},
  109. {77,77,78,76,19,(*fun67)},//-
  110. {78,77,78,76,19,(*fun68)},//+

  111. {79,79,79,79,10,(*fun69)},//+
  112. {80,80,80,80,4,(*fun69)},//+
  113. {81,81,81,81,5,(*fun69)},//+
  114. {82,82,82,82,6,(*fun69)},//+*/

  115. };



  116. void get_key()
  117. {
  118. if((keyup==0)||(keydown==0)||(keyenter==0)||(keyesc==0))
  119. {
  120. delayes(10);
  121. if(keyup==0)
  122. {
  123. //count2=0;
  124. while(!keyup);
  125. func=table[func].up;    //向上翻
  126. }
  127. if(keydown==0)
  128. {
  129. //count2=0;
  130. while(!keydown);
  131. func=table[func].down;
  132. }
  133. if(keyenter==0)
  134. {

  135. while(!keyenter);
  136. func=table[func].enter;
  137. //key=1;
  138. //key1=0;
  139. }
  140. if(keyesc==0)
  141. {
  142. while(!keyesc);
  143. func=table[func].esc;
  144. //key1=1;
  145. }

  146. dangqian=table[func].p;

  147. (*dangqian)();//执行当前操作函数
  148. }
  149. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:451718 发表于 2021-5-22 16:49 | 只看该作者
RAM 真富有!!!  界面呢?怎么整?
回复

使用道具 举报

板凳
ID:885416 发表于 2022-2-25 03:49 来自手机 | 只看该作者
robinsonlin 发表于 2021-5-22 16:49
RAM 真富有!!!  界面呢?怎么整?

这个表是固定的一般加个const放到flash就行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表