首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

lcd多级菜单小问,该如何解决

2013-01-27 
lcd多级菜单小问本帖最后由 hy512 于 2012-12-31 23:21:36 编辑请问单片机在lcd上实现菜单结构体中的索引

lcd多级菜单小问
本帖最后由 hy512 于 2012-12-31 23:21:36 编辑 请问单片机在lcd上实现菜单结构体中的索引号是怎么确定的?程序:

typedef st ruct
{ uchar  KeyStateIndex ;   / / 当前状态索引号
uchar  KeyDnState ;   / / 按下“向下”键时转向的状态索引号 
uchar  KeyUpState ;   / / 按下“向上”键时转向的状态索引号 
uchar  KeyCrState ;   / / 按下“回车”键时转向的状态索引号 
uchar  KeyBackState ;   / / 按下“退回”键时转向的状态索引号
void  ( 3 CurrentOperate) ( ) ; / / 当前状态应该执行的功能操作}  KbdTabSt ruct ;
# define SIZE - OF KEYBD - MENU 55   / / 菜单总长度
KbdTabSt ruct code KeyTab[ SIZE - OF - KEYBD - MENU ] =
{ 
     {0 ,0 ,0 ,1 ,0 , ( 3 MainJob1) } , 
     {1 ,7 ,2 ,8 ,0 , ( 3 Dsp Point) } ,   / / 第一层 
     {2 ,1 ,3 ,8 ,0 , ( 3 DspCurve) ) ,   / / 第一层 
     {3 ,2 ,4 ,36 ,0 , ( 3 Dsp Kout) } ,   / / 第一层 
     {4 ,3 ,5 ,50 ,0 , ( 3 DisCloseDown) } ,   / / 第一层    
     {5 ,4 ,6 ,8 ,0 , ( 3 ModifyPoint) } ,   / / 第一层 
    {6 ,5 ,7 ,52 ,0 , ( 3 SetCloseDown) } ,   / / 第一层 
        {7 ,6 ,1 ,0 ,0 , ( 3 Cancel) } ,   / / 第一层 … … 
      {52 ,53 ,53 ,0 ,1 , ( 3 OkSetCloseDown1) } , 
    {53 ,52 ,52 ,0 ,1 , ( 3 OkSetCloseDown2) } , 
    {54 ,0 ,0 ,0 ,0 , ( 3 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 ;    ret urn ;   / / 错误的处理    break ;   }  KeyFuncPt r = KeyTab[ KeyFuncIndex ] . CurrentOperate ;  ( 3 KeyFuncPt r) () ;   / / 执行当前按键的操作}

[解决办法]
不同的菜单,实现逻辑不一样,你得根据你的程序中是如何用索引的,来确定索引的含义。这玩意哪有通用的。我自己做的一个嵌入式系统上的菜单,就是自己开发的一个独立控件,跟你的什么索引机制完全不同。
[解决办法]
索引是自己定的。根据自己项目中的实际需求来定。
[解决办法]
找KbdTabStruct的typedef
------解决方案--------------------


LCD的翻页操作比较麻烦

热点排行