搜索
bottom↓
回复: 593

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

  [复制链接]
(355408124)

出0入0汤圆

发表于 2010-4-27 17:03:56 | 显示全部楼层 |阅读模式
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上发技术性的帖子,不知道这样够不够详细,如有疑问,请指出,定补充
(355406873)

出0入0汤圆

 楼主| 发表于 2010-4-27 17:24:47 | 显示全部楼层
沙发自己坐了
(355406802)

出0入0汤圆

发表于 2010-4-27 17:25:58 | 显示全部楼层
mark
(355406777)

出0入0汤圆

发表于 2010-4-27 17:26:23 | 显示全部楼层
我也有几个这样的屏 有空去试试
(355406518)

出0入0汤圆

发表于 2010-4-27 17:30:42 | 显示全部楼层
好资料。顶。
(355405084)

出0入0汤圆

发表于 2010-4-27 17:54:36 | 显示全部楼层
多谢。
(355404270)

出0入0汤圆

发表于 2010-4-27 18:08:10 | 显示全部楼层
mark,thanks.
(355404104)

出0入0汤圆

发表于 2010-4-27 18:10:56 | 显示全部楼层
mark
(355403736)

出0入0汤圆

发表于 2010-4-27 18:17:04 | 显示全部楼层
学习了
(355402987)

出0入0汤圆

发表于 2010-4-27 18:29:33 | 显示全部楼层
支持,顶楼主。
(355400763)

出0入0汤圆

发表于 2010-4-27 19:06:37 | 显示全部楼层
支持
(355400655)

出0入0汤圆

发表于 2010-4-27 19:08:25 | 显示全部楼层
哈哈,这种方法,早就有人在这里发过了!
(355399902)

出0入239汤圆

发表于 2010-4-27 19:20:58 | 显示全部楼层
谢谢。
(355398606)

出0入0汤圆

发表于 2010-4-27 19:42:34 | 显示全部楼层
mark
(355398281)

出0入0汤圆

发表于 2010-4-27 19:47:59 | 显示全部楼层
mark
(355396752)

出0入4汤圆

发表于 2010-4-27 20:13:28 | 显示全部楼层
make
(355396652)

出0入0汤圆

发表于 2010-4-27 20:15:08 | 显示全部楼层
先mark, 再谢楼主
(355396338)

出0入0汤圆

发表于 2010-4-27 20:20:22 | 显示全部楼层
mark
(355395583)

出0入0汤圆

发表于 2010-4-27 20:32:57 | 显示全部楼层
Good
(355394507)

出0入0汤圆

发表于 2010-4-27 20:50:53 | 显示全部楼层
mark
(355394459)

出0入0汤圆

发表于 2010-4-27 20:51:41 | 显示全部楼层
好人
(355387155)

出0入0汤圆

发表于 2010-4-27 22:53:25 | 显示全部楼层
记号
(355385758)

出0入0汤圆

发表于 2010-4-27 23:16:42 | 显示全部楼层
收藏了,肯定能用到!
(355385311)

出0入0汤圆

发表于 2010-4-27 23:24:09 | 显示全部楼层
谢谢LZ
(355384990)

出0入0汤圆

发表于 2010-4-27 23:29:30 | 显示全部楼层
mark
(355383530)

出0入0汤圆

发表于 2010-4-27 23:53:50 | 显示全部楼层
mark
(355380531)

出0入0汤圆

发表于 2010-4-28 00:43:49 | 显示全部楼层
谢楼主分享
(355345171)

出0入0汤圆

 楼主| 发表于 2010-4-28 10:33:09 | 显示全部楼层
刚刚看到有人问液晶菜单的设计方法,怎么没有参考我这个呢,挺好用,自己顶一个
(355344356)

出0入0汤圆

发表于 2010-4-28 10:46:44 | 显示全部楼层
mark
(355330599)

出0入0汤圆

发表于 2010-4-28 14:36:01 | 显示全部楼层
E早就用过了,还可以。。就是有变化的话,改动比较大啊。。
(355315420)

出0入0汤圆

发表于 2010-4-28 18:49:00 | 显示全部楼层
收下了,谢谢~~
(355312621)

出0入20汤圆

发表于 2010-4-28 19:35:39 | 显示全部楼层
支持一下
(355305151)

出0入0汤圆

发表于 2010-4-28 21:40:09 | 显示全部楼层
支持一下
(355293146)

出0入0汤圆

发表于 2010-4-29 01:00:14 | 显示全部楼层
能解释一下自动对比度调节的原理吗?
(355267344)

出0入0汤圆

发表于 2010-4-29 08:10:16 | 显示全部楼层
mark
(355266358)

出0入0汤圆

发表于 2010-4-29 08:26:42 | 显示全部楼层
mark
(355266295)

出0入0汤圆

发表于 2010-4-29 08:27:45 | 显示全部楼层
Mark
(355264408)

出0入0汤圆

发表于 2010-4-29 08:59:12 | 显示全部楼层
hao
(355264385)

出0入0汤圆

发表于 2010-4-29 08:59:35 | 显示全部楼层
Mark
(355259216)

出0入0汤圆

发表于 2010-4-29 10:25:44 | 显示全部楼层
支持下
(355121596)

出0入0汤圆

发表于 2010-5-1 00:39:24 | 显示全部楼层
MARK
(355120904)

出0入0汤圆

发表于 2010-5-1 00:50:56 | 显示全部楼层
好野。收藏咯。
(355120497)

出0入0汤圆

发表于 2010-5-1 00:57:43 | 显示全部楼层
做个记号收藏
(355084265)

出0入0汤圆

发表于 2010-5-1 11:01:35 | 显示全部楼层
顶一下,原来楼主也是做电表的
(355071670)

出0入0汤圆

发表于 2010-5-1 14:31:30 | 显示全部楼层
先mark, 再谢楼主
(355070043)

出0入0汤圆

发表于 2010-5-1 14:58:37 | 显示全部楼层
mark
(355059337)

出0入0汤圆

发表于 2010-5-1 17:57:03 | 显示全部楼层
标记
(355058470)

出0入0汤圆

发表于 2010-5-1 18:11:30 | 显示全部楼层
up~~

欢迎此类行业技术贴,很多行业,即使是很简单的问题,也有不少在闭门造车
(355055594)

出0入0汤圆

发表于 2010-5-1 18:59:26 | 显示全部楼层
MARK
(355053976)

出0入0汤圆

发表于 2010-5-1 19:26:24 | 显示全部楼层
MARK
(355044858)

出0入0汤圆

发表于 2010-5-1 21:58:22 | 显示全部楼层
大家一起讨论一下啊

typedef struct
{
 uchar  KeyStateIndex ;   / / 当前状态索引号
 uchar  KeyDnState ;   / / 按下“向下”键时转向的状态索引号
 uchar  KeyUpState ;   / / 按下“向上”键时转向的状态索引号
 uchar  KeyCrState ;   / / 按下“回车”键时转向的状态索引号
 uchar  KeyBackState ;   / / 按下“退回”键时转向的状态索引号
 void   (*CurrentOperate)( ) ;   / / 当前状态应该执行的功能操作
}  KbdTabSt ruct ;


这样的话,改动一个状态那么全部状态索引号都要改动了
(355044049)

出0入0汤圆

发表于 2010-5-1 22:11:51 | 显示全部楼层
mark
(355041289)

出0入0汤圆

发表于 2010-5-1 22:57:51 | 显示全部楼层
先mark, 再谢楼主
(355037979)

出0入0汤圆

发表于 2010-5-1 23:53:01 | 显示全部楼层
谢谢
(354831104)

出0入0汤圆

 楼主| 发表于 2010-5-4 09:20:56 | 显示全部楼层
回复【51楼】cyr_hongfeng
-----------------------------------------------------------------------

并不是所有索引号都要改,只要添加索引页,并修改此索引号的上级索引号,当需删除某索引页的时候,只需将上级索引页对应按键索引号指向自身即可。

详情可以参照我的附件应用。
(354735075)

出0入0汤圆

发表于 2010-5-5 12:01:25 | 显示全部楼层
楼主还能把实现的 LCD图片 放上来看看啊?


      楼主还能把实现的 LCD图片 放上来看看啊?


            楼主还能把实现的 LCD图片 放上来看看啊?
(354562924)

出0入0汤圆

 楼主| 发表于 2010-5-7 11:50:36 | 显示全部楼层
回复【56楼】ljt8015
-----------------------------------------------------------------------

等等,我吃过饭用手机拍几张,让大家看看~~~~
(354561019)

出0入0汤圆

 楼主| 发表于 2010-5-7 12:22:21 | 显示全部楼层
上几张效果图,手机拍的,不是很清楚,而且液晶隔着产品外壳。


(原文件名:照片-0001.jpg)


(原文件名:照片-0002.jpg)


(原文件名:照片-0004.jpg)


(原文件名:照片-0005.jpg)
(354557062)

出0入0汤圆

发表于 2010-5-7 13:28:18 | 显示全部楼层
谢谢楼主共享。
(354554568)

出0入0汤圆

发表于 2010-5-7 14:09:52 | 显示全部楼层
MARK
(354553740)

出0入0汤圆

发表于 2010-5-7 14:23:40 | 显示全部楼层
这个要mark之。。。。。
(354549321)

出0入0汤圆

发表于 2010-5-7 15:37:19 | 显示全部楼层
mark
(354548497)

出0入0汤圆

发表于 2010-5-7 15:51:03 | 显示全部楼层
赞一个!好样的.LZ!
(354392705)

出0入0汤圆

 楼主| 发表于 2010-5-9 11:07:35 | 显示全部楼层
顶一下
(353357431)

出0入50汤圆

发表于 2010-5-21 10:42:09 | 显示全部楼层
mark
(353357268)

出0入0汤圆

发表于 2010-5-21 10:44:52 | 显示全部楼层
mark
(353337399)

出0入8汤圆

发表于 2010-5-21 16:16:01 | 显示全部楼层
好贴啊,这个我肯定要学学
(353316769)

出0入0汤圆

发表于 2010-5-21 21:59:51 | 显示全部楼层
谢谢,有时间学习下
(353307800)

出0入0汤圆

发表于 2010-5-22 00:29:20 | 显示全部楼层
mark
(351450057)

出0入0汤圆

发表于 2010-6-12 12:31:43 | 显示全部楼层
强烈MARK
(351449442)

出0入0汤圆

发表于 2010-6-12 12:41:58 | 显示全部楼层
收藏
(351448605)

出0入0汤圆

发表于 2010-6-12 12:55:55 | 显示全部楼层
搜藏
(351448595)

出0入0汤圆

发表于 2010-6-12 12:56:05 | 显示全部楼层
搜藏
(351444338)

出0入0汤圆

发表于 2010-6-12 14:07:02 | 显示全部楼层
mark
(348864362)

出0入0汤圆

发表于 2010-7-12 10:46:38 | 显示全部楼层
收藏////
(348863571)

出20入0汤圆

发表于 2010-7-12 10:59:49 | 显示全部楼层
又一个电力行业的
(348851983)

出0入0汤圆

发表于 2010-7-12 14:12:57 | 显示全部楼层
收藏了,谢谢!
(348600666)

出0入0汤圆

发表于 2010-7-15 12:01:34 | 显示全部楼层
楼主伟大啊
(348590399)

出0入0汤圆

发表于 2010-7-15 14:52:41 | 显示全部楼层
mark
(348509243)

出0入0汤圆

发表于 2010-7-16 13:25:17 | 显示全部楼层
收藏
(346253831)

出0入0汤圆

发表于 2010-8-11 15:55:29 | 显示全部楼层
mark
(346168209)

出0入0汤圆

发表于 2010-8-12 15:42:31 | 显示全部楼层
我看了,这个是个论文,原文如下:


(原文件名:单片机C语言下LCD多级菜单的一种实现方法_页面_1.jpg)

(原文件名:单片机C语言下LCD多级菜单的一种实现方法_页面_2.jpg)


(原文件名:单片机C语言下LCD多级菜单的一种实现方法_页面_3.jpg)
(346168112)

出0入0汤圆

发表于 2010-8-12 15:44:08 | 显示全部楼层
这个是论文源文件

单片机C语言下LCD多级菜单的一种实现方法.pdf

点击此处下载 ourdev_574579.pdf(文件大小:149K) (原文件名:单片机C语言下LCD多级菜单的一种实现方法.pdf)
(346166399)

出0入0汤圆

发表于 2010-8-12 16:12:41 | 显示全部楼层
mark
(344954925)

出0入0汤圆

发表于 2010-8-26 16:43:55 | 显示全部楼层
mark,以后可以借鉴。谢谢楼主!
(344545161)

出0入0汤圆

发表于 2010-8-31 10:33:19 | 显示全部楼层
对于这样的菜单程序,我一直都没有搞懂那些数值时怎么来取值的!????望高手指点!!!!!!!!!
(344544986)

出0入0汤圆

发表于 2010-8-31 10:36:14 | 显示全部楼层
mark
(344544948)

出0入0汤圆

发表于 2010-8-31 10:36:52 | 显示全部楼层
mark 好东西
(344542172)

出0入0汤圆

发表于 2010-8-31 11:23:08 | 显示全部楼层
tks,mark!
(344535888)

出0入0汤圆

发表于 2010-8-31 13:07:52 | 显示全部楼层
mark
(344425330)

出0入0汤圆

发表于 2010-9-1 19:50:30 | 显示全部楼层
mark
(344411827)

出0入0汤圆

发表于 2010-9-1 23:35:33 | 显示全部楼层
mark
(344379290)

出0入0汤圆

发表于 2010-9-2 08:37:50 | 显示全部楼层
mark
(344378455)

出0入0汤圆

发表于 2010-9-2 08:51:45 | 显示全部楼层
mark、
(344357637)

出0入0汤圆

发表于 2010-9-2 14:38:43 | 显示全部楼层
马克思
(338143579)

出0入0汤圆

发表于 2010-11-13 12:46:21 | 显示全部楼层
标记一下,过段时间参考哈
(338142352)

出0入0汤圆

发表于 2010-11-13 13:06:48 | 显示全部楼层
MARK一下!
(338136644)

出0入0汤圆

发表于 2010-11-13 14:41:56 | 显示全部楼层
好样的
(338134566)

出0入0汤圆

发表于 2010-11-13 15:16:34 | 显示全部楼层
mark
(338133784)

出0入0汤圆

发表于 2010-11-13 15:29:36 | 显示全部楼层
MARK~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2021-8-1 05:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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