微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 第78节:多个窗口里移动光标设置参数的液晶屏菜单程序

第78节:多个窗口里移动光标设置参数的液晶屏菜单程序

时间:11-22 来源:互联网 点击:

  1. 0: //无光标显示的状态
  2. ucPart=1; //光标显示第一行,进入设置模式
  3. ucWd1Part1Update=1; //更新显示
  4. break;
  5. case 1: //设置第1行参数
  6. ucPart=0; //无光标显示,退出设置模式
  7. ucWd1Part1Update=1; //更新显示
  8. break;
  9. case 2: //设置第2行参数
  10. ucPart=0; //无光标显示,退出设置模式
  11. ucWd1Part2Update=1; //更新显示
  12. break;
  13. case 3: //设置第3行参数
  14. ucPart=0; //无光标显示,退出设置模式
  15. ucWd1Part3Update=1; //更新显示
  16. break;
  17. case 4: //设置第4行参数
  18. ucPart=0; //无光标显示,退出设置模式
  19. ucWd1Part4Update=1; //更新显示
  20. break;
  21. }
  22. break;
  23. case 2://窗口2
  24. switch(ucPart)//在窗口2下,根据不同的局部变量来设置不同的参数
  25. {
  26. case 0: //无光标显示的状态
  27. ucWd=1; //强行切换到第1个窗口
  28. ucPart=1; //光标显示第一行,进入设置模式
  29. ucWd1Update=1; //窗口1整屏更新
  30. break;
  31. case 1: //设置第1行参数
  32. ucWd=1; //强行切换到第1个窗口
  33. ucPart=0; //无光标显示,退出设置模式
  34. ucWd1Update=1; //窗口1整屏更新
  35. break;
  36. case 2: //设置第2行参数
  37. ucWd=1; //强行切换到第1个窗口
  38. ucPart=0; //无光标显示,退出设置模式
  39. ucWd1Update=1; //窗口1整屏更新
  40. break;
  41. case 3: //设置第3行参数
  42. ucWd=1; //强行切换到第1个窗口
  43. ucPart=0; //无光标显示,退出设置模式
  44. ucWd1Update=1; //窗口1整屏更新
  45. break;
  46. case 4: //设置第4行参数
  47. ucWd=1; //强行切换到第1个窗口
  48. ucPart=0; //无光标显示,退出设置模式
  49. ucWd1Update=1; //窗口1整屏更新
  50. break;
  51. }
  52. break;
  53. }
  54. uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
  55. ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
  56. break;
  57. }
  58. }
  59. unsigned char *number_to_matrix(unsigned charucBitNumber)
  60. {
  61. unsigned char *p_ucAnyNumber;//此指针根据ucBitNumber数值的大小,分别调用不同的字库。
  62. switch(ucBitNumber)//根据ucBitNumber数值的大小,分别调用不同的字库。
  63. {
  64. case 0:
  65. p_ucAnyNumber=Zf816_0;
  66. break;
  67. case 1:
  68. p_ucAnyNumber=Zf816_1;
  69. break;
  70. case 2:
  71. p_ucAnyNumber=Zf816_2;
  72. break;
  73. case 3:
  74. p_ucAnyNumber=Zf816_3;
  75. break;
  76. case 4:
  77. p_ucAnyNumber=Zf816_4;
  78. break;
  79. case 5:
  80. p_ucAnyNumber=Zf816_5;
  81. break;
  82. case 6:
  83. p_ucAnyNumber=Zf816_6;
  84. break;
  85. case 7:
  86. p_ucAnyNumber=Zf816_7;
  87. break;
  88. case 8:
  89. p_ucAnyNumber=Zf816_8;
  90. break;
  91. case 9:
  92. p_ucAnyNumber=Zf816_9;
  93. break;
  94. case 10:
  95. p_ucAnyNumber=Zf816_nc;
  96. break;
  97. default: //如果上面的条件都不符合,那么默认指向空字模
  98. p_ucAnyNumber=Zf816_nc;
  99. break;
  100. }
  101. return p_ucAnyNumber;//返回转换结束后的指针
  102. }
  103. void lcd_display_service(void) //应用层面的液晶屏显示程序
  104. {
  105. switch(ucWd)//本程序的核心变量,窗口显示变量。类似于一级菜单的变量。代表显示不同的窗口。
  106. {
  107. case 1:
  108. wd1();//窗口1显示的内容
  109. break;
  110. case 2:
  111. wd2();//窗口2显示的内容
  112. break;
  113. //本程序只有2个窗口,所以只有一个case 1,如果要增加窗口,就直接增加 case 2, case 3...
  114. }
  115. }
  116. void wd1(void)//窗口1显示的内容
  117. {
  118. unsigned char ucAnyNumber_1; //分解变量的个位
  119. unsigned char ucAnyNumber_10; //分解变量的十位
  120. unsigned char *p_ucAnyNumber_1; //经过数字转换成字模后,分解变量的个位字模首地址
  121. unsigned char *p_ucAnyNumber_10; //经过数字转换成字模后,分解变量的十位字模首地址
  122. unsigne

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top