转自:https://www.amobbs.com/forum.php?mod=viewthread&tid=4001689

typedef struct
{
 uchar  KeyStateIndex ;   / / 当前状态索引号
 uchar  KeyDnState ;   / / 按下“向下”键时转向的状态索引号
 uchar  KeyUpState ;   / / 按下“向上”键时转向的状态索引号
 uchar  KeyCrState ;   / / 按下“回车”键时转向的状态索引号
 uchar  KeyBackState ;   / / 按下“退回”键时转向的状态索引号
 void   (*CurrentOperate)( ) ;   / / 当前状态应该执行的功能操作
}  KbdTabSt ruct ;
# define SIZE - OF KEYBD - MENU 55   / / 菜单总长度
KbdTabSt ruct code KeyTab[ SIZE - OF - KEYBD - MENU ] =
{
 {0 ,0 ,0 ,1 ,0 , MainJob1 } ,
 {1 ,7 ,2 ,8 ,0 , Dsp Point} ,   / / 第一层
 {2 ,1 ,3 ,8 ,0 , DspCurve},   / / 第一层
 {3 ,2 ,4 ,36 ,0 ,Dsp Kout} ,   / / 第一层
 {4 ,3 ,5 ,50 ,0 , DisCloseDown } ,   / / 第一层

 {5 ,4 ,6 ,8 ,0 ,  ModifyPoint} ,   / / 第一层
 {6 ,5 ,7 ,52 ,0 , SetCloseDown } ,   / / 第一层
 {7 ,6 ,1 ,0 ,0 , Cancel} ,   / / 第一层
 …
 …
 {52 ,53 ,53 ,0 ,1 ,  OkSetCloseDown1} ,
 {53 ,52 ,52 ,0 ,1 , OkSetCloseDown2} ,
 {54 ,0 ,0 ,0 ,0 , Disable} ,
  …
  …
} ;
 void Get Keylnput (void)
{
 switch ( status &0xf0)
  {
  case 0xe0 :/ / 回车键,找出新的菜单状态编号
   …
        KeyFuncIndex = KeyTab[ KeyFuncIndex ] . KeyCrState ;
   …
   break ;
  case 0xb0 :/ / 向下键,找出新的菜单状态编号
   …
    KeyFuncIndex = KeyTab [ KeyFuncIndex ] . KeyDn2State ;
   …
  break ;
   case 0xd0 :/ / 向上键,找出新的菜单状态编号

   …
    KeyFuncIndex = KeyTab [ KeyFuncIndex ] . KeyUp2State ;
   …
   break ;
  case 0x70 :/ / 回退键,找出新的菜单状态编号
   …
    KeyFuncIndex = KeyTab [ KeyFuncIndex ] . KeyBack2State ;
   …
   break ;
  case 0 ;
    return ;   / / 错误的处理
    break ;
   }
  KeyFuncPt r = KeyTab[ KeyFuncIndex ] . CurrentOperate ;
  ( * KeyFuncPt r) () ;   / / 执行当前按键的操作
}

以上是框架结构,下面是应用此方法的应用。
平台,AT91RM9200,LINUX2.6.13,arm-linux-gcc3.3.2


按键接线图 (原文件名:按键接线图.jpg)


液晶接线图 (原文件名:液晶接线图.jpg)

按键驱动程序ourdev_549702.rar(文件大小:10K) (原文件名:keyboard.rar) 
320*240液晶驱动程序,RA8835控制器(完全兼容SED1335)ourdev_549703.rar(文件大小:10K) (原文件名:LCD320_240.rar) 
液晶应用程序ourdev_549718.rar(文件大小:36K) (原文件名:ui.rar)

OURDEV让我成长了不少,所以,以后有好东西一定会和大家分享。

顺便借此机会向阿莫致歉,曾经发帖发了几句牢骚,没有恶意,都是年轻惹的祸,请见谅。

第一次在OURDEV上发技术性的帖子,不知道这样够不够详细,如有疑问,请指出,定补充

分享一个按键液晶多级菜单设计方法,工控行业中沿用多年,屡试不爽,附带本人一个调试通过相关推荐

  1. STM32+0.96OLED的多级菜单设计

    硬件 硬件选型 STM32F103C8T6最小核心板 0.96寸四脚OLED屏幕IIC接口 普通按键5个 硬件连线 SCL ---- PA1 SDA ---- PA2 KEY_UP ---- PA4 ...

  2. 基于链表的多级菜单设计

    基于链表的多级菜单设计 前言 主体 前言 最近在做一个简单的界面,需要用到多级菜单,一开始使用的是传统的索引法,在修改时比较乱,在网上有用链表写的,虽然一致都在用c语言,却很少使用链表,于是今天早上便 ...

  3. 12864多级菜单实现方法

    前言        一般来说使用12864进行显示,配合按键作为人机界面交互,如果显示的内容较多的话,往往不能在一个页面显示完全,这里就需要用到多级菜单来进行管理,根据显示内容的不同,将其划分成不同的 ...

  4. java替换最后一个字符_Excel公式技巧23: 同时定位字符串中的第一个和最后一个数字...

    学习Excel技术,关注微信公众号: excelperfect 在很多情况下,我们都面临着需要确定字符串中第一个和最后一个数字的位置的问题,这可能是为了提取包围在这两个边界内的子字符串.然而,通常的公 ...

  5. 数据库设计 一对多 多对多 无限级菜单 设计方法

    设计规范 1.每一个列保持一个原子性,字段不可再划分 2.一个物体描述信息一个表存完 3.每一个字段都是跟主键直接相关的,一条数据只存一次 一对多 如下 通过ID 进行关联 多对多 如下 通过中间表( ...

  6. 基于状态机的LCD多级菜单设计

    文章地址链接1:https://blog.csdn.net/embedded_guzi/article/details/35835755 文章地址链接2:http://eeskill.com/arti ...

  7. #自定义多级菜单_怎么搞定排版中的多级列表问题?

    很多将近毕业的大学生都在赶着毕业论文,但是有很多小伙伴在论文排版中那个多级列表却搞不定,再网上看的教程看似很简单但在实际操作起来却很乱,那我们应该怎么样高效的去设置多级列表呢,最近小编学到了一个好方法 ...

  8. 一个产品级MCU菜单框架设计

    关注+星标公众号,不错过精彩内容 转自 | 嵌入式云IOT技术圈 微信公众号 | 嵌入式专栏 不知道有多少人折腾过液晶显示的菜单,我觉得很多人都应该搞过,我还记得以前大学参加电子设计竞赛获奖的作品,我 ...

  9. 基于STM32F407的简易菜单设计+LCD+按键

    基于STM32F407的简易多级菜单设计+LCD+按键 实现原理 主要使用 双向链表 结构实现的菜单: 结构体包含7个变量,分别是菜单中功能项的个数,当前菜单标题,菜单中各功能项标题,功能项的类型,然 ...

最新文章

  1. Mysql排序后显示排序序号
  2. 输入网址按回车,到底发生了什么
  3. SAP WM初阶移动类型设置里的GR Date
  4. 新书推荐:《追问人工智能:从剑桥到北京》
  5. [BZOJ4553][TJOI2016HEOI2016]序列(CDQ分治)
  6. GC DevKit 快速入门 -- 游戏概览(三)
  7. aix cpu java_AIX cpu理解
  8. 阿里 2 年内市值将赶超苹果;腾讯回应吃鸡下架;滴滴恢复深夜运营 | 极客头条...
  9. Oracle数据库有哪几种启动方式
  10. Luogu2481 SDOI2010 代码拍卖会 DP、组合
  11. Android项目无用文件 BAT批处理 清理
  12. iPhone开发基础
  13. mysql 超卖_MYSQL处理高并发,防止库存超卖(图解)
  14. OpenChannelSSD之六_从OpenChannelSSD到ZNS
  15. html表格填充空白单元格,Excel表格数据录入:怎么快速填充所有空白单元格?
  16. Java 的核心目的和并发编程
  17. iOS 获取手机步数
  18. openresty mysql 批量_OpenResty负载均衡MySQL
  19. 《银行业人工智能实践》
  20. 程序员保护好自己的颈椎

热门文章

  1. matlab使用教程公式求解,泰尔指数及分解公式的计算方法与Matlab实现
  2. 外部排序--归并算法实现
  3. 数据加密 第五篇:非对称密钥
  4. 高一信息技术课件python编程_教科版高中信息技术选修第一章第三节Python入门--奇妙曲线的绘制 课件(22张ppt) 教案 (2份打包)...
  5. 学习《华为基本法》理解企业管理经营框架(1):控制方针
  6. Subway UVA - 10691
  7. vb.net生成随机数,并且统计生成的个数
  8. qq号的正则表达式html,JavaScript中的正则表达式使用及验证qq号码的正则
  9. 甲方项目管理培训课程大纲
  10. 8051单片机基础6:通用指针和定向指针