12864显示菜单处理编程

最近费了一些时间,终于会用结构体写一些多级菜单了。

void (*current_operation_index)();
uchar func_index=0;

 这是我定义的结构体:

typedef struct
{
uchar current;        //当前状态
uchar up;          //这是向上翻页
uchar down;         //向下翻页

uchar enter;         //选中确定

uchar cancel;        //后退
void (*current_operation)(); //要执行的函数
}key_table;

接下的各层数字要自己根据所写的函数自己排序,分清逻辑就很好弄的。

key_table code table[10]=
{
{0,1,0,1,0,(*display0)}, //current up down enter cancel
{1,3,2,1,0,(*display1)},
{2,1,3,2,0,(*display2)},
{3,2,4,3,0,(*display3)},
{4,3,5,4,0,(*display4)},
{5,4,1,6,0,(*display5)},
{6,6,6,6,5,(*display6)},

..........
};

主函数里:

keynum=newkeyscan();
switch(keynum)
{
case 0: func_index=table[func_index].enter;lcd_fill(); break; //回车
case 1: func_index=table[func_index].cancel;lcd_fill(); break;//后退
case 2: func_index=table[func_index].down;lcd_fill(); break; //向下翻
case 3: func_index=table[func_index].up;lcd_fill(); break; //向上翻
case 4:
case 5:
case 6:
case 7:
default: break;
}

current_operation_index=table[func_index].current_operation;
(*current_operation_index)(); //执行当前操作函数

 

好了,有了这些基本的其他的就很好写了。

 

 

转载于:https://www.cnblogs.com/ht-beyond/p/3801725.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值