搜索
bottom↓
回复: 20

谁能把编写LCD多级菜单的流程给我讲一下啊?我看不懂傻孩子那程序啊(我仔细了)。

[复制链接]

出0入0汤圆

发表于 2008-1-8 15:24:32 | 显示全部楼层 |阅读模式
谁能把编写LCD多级菜单的流程给我讲一下啊?我看不懂傻孩子那程序啊(我仔细了)。但我有想用结构加指针的方法。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2008-1-8 16:15:18 | 显示全部楼层
大家可以说说自己的实现方法啊。谢谢了

出0入0汤圆

发表于 2008-1-8 16:32:59 | 显示全部楼层
我的程序也是参考网站上的程序弄得,有可能是完全一样 呵呵
菜单是实现了,我是12864的屏幕,大家可以讨论一下  ,我也看了傻孩子的程序了,我看了好几天 才有了头绪,本人比较笨  呵呵
void CheckKey(void)
{

    unsigned char Key;
    Key = KeyCode;
    switch(Key){
        case JINGHAOKEYCODE:{ //向上键,找出新的菜单状态编号
            KeyFuncIndex=KeyTab[KeyFuncIndex].KeyUpState;
            KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
            (*KeyFuncPtr)();//执行当前按键的操作
            break;
        }
        case XINHAOKEYCODE:{ //向下键,找出新的菜单状态编号

            KeyFuncIndex=KeyTab[KeyFuncIndex].KeyDnState;
            KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
            (*KeyFuncPtr)();//执行当前按键的操作
            break;
        }
        case EIGHTKEYCODE:{ //向左键,找出新的菜单状态编号
            KeyFuncIndex=KeyTab[KeyFuncIndex].KeyLState;
            KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
            (*KeyFuncPtr)();//执行当前按键的操作
            break;
        }
        case ZEROKEYCODE:{ //向右键,找出新的菜单状态编号
            KeyFuncIndex=KeyTab[KeyFuncIndex].KeyRState;
            KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
            (*KeyFuncPtr)();//执行当前按键的操作  
            break;
        case 0xaa:
        {
               KeyFuncPtr=KeyTab[MainMenuIndex].CurrentOperate;
               (*KeyFuncPtr)();
        }
            break;   
        default:break;
           
        }
        }
        KeyCode=0;
        }








  struct KbdTabStruct
{
        unsigned char KeyStateIndex; //当前状态索引号
        unsigned char KeyUpState; //按下"向上"键时转向的状态索引号
        unsigned char KeyDnState; //按下"向下"键时转向的状态索引号
        unsigned char KeyLState;  //按下"向左"键时转向的状态索引号
        unsigned char KeyRState;  //按下"向右"键时转向的状态索引号
        void (*CurrentOperate)(); //当前状态应该执行的功能操作
}KeyTab[60]@0x2d0; //

出0入0汤圆

 楼主| 发表于 2008-1-8 16:42:20 | 显示全部楼层
谢谢啊。

出0入0汤圆

 楼主| 发表于 2008-1-8 16:56:53 | 显示全部楼层
KeyTab[60]@0x2d0;这句的]@0x2d0是什么意思啊?用这种结构体,会不会占用很多的内存啊。

出0入0汤圆

发表于 2008-1-8 17:18:21 | 显示全部楼层
是占用不少内存,但是函数的指针只能放在RAM中,@0x2d0定义了该结构体在内存中的起始地址

出0入0汤圆

 楼主| 发表于 2008-1-8 17:33:30 | 显示全部楼层
哦,谢谢。你的这个程序我看明白了。你这个和傻孩子的编程方法不一样,虽然都用的结构体。但结构体里定义的量不一样。

出0入0汤圆

发表于 2008-1-8 17:39:42 | 显示全部楼层
呵呵  恭喜哦,该下班了

出0入0汤圆

发表于 2008-1-8 17:50:55 | 显示全部楼层
typedef struct MenuItem_t     
{  
    uint8_t Size;  
    uint8_t * Str;  
    void (*Sub)(void);  
    struct MenuItem_t * Child;  
    struct MenuItem_t * Parent;  
}MenuItem_t;  


傻孩子的电子菜单程序很好啊。
我刚开始学AVR电子菜单实验完全参照傻孩子大人的电子菜单程序。
唯一改动的地方就是定义菜单结构题的时候完成对菜单的初始化。

楼主哪里不明白?

出0入0汤圆

 楼主| 发表于 2008-1-8 18:07:27 | 显示全部楼层
uint8_t Size;这一句的作用不知道是用来做什么的。还有uint8_t * Str; 是显示的字符串,我要显示汉字是不是的相应的定义成void (*Display)(void);啊?

出0入0汤圆

发表于 2008-1-8 19:06:55 | 显示全部楼层
Size是本级菜单(具有共同父菜单)包含菜单的个数。

出0入0汤圆

发表于 2008-1-9 07:53:06 | 显示全部楼层
傻孩子的哪个贴子?

出0入0汤圆

 楼主| 发表于 2008-1-9 08:19:27 | 显示全部楼层
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=457580&bbs_page_no=1&search_mode=1&search_text=菜单&bbs_id=1000

出0入0汤圆

发表于 2008-7-1 20:19:09 | 显示全部楼层
标记

出75入4汤圆

发表于 2008-7-2 19:22:21 | 显示全部楼层
mark下下。

出0入0汤圆

发表于 2008-7-2 19:43:27 | 显示全部楼层
分析你PC的GUI
想想各个控件的属性
想想窗口的概念
自然就搞定了
就是一个封装过程
不过从头开始自己做GUI很烦的

出0入0汤圆

发表于 2009-1-11 01:31:22 | 显示全部楼层
好东西,标记一下

出0入0汤圆

发表于 2008-11-25 18:09:24 | 显示全部楼层
学习。MARK

出210入8汤圆

发表于 2008-11-25 18:00:33 | 显示全部楼层
正在研究,记一下。

出0入0汤圆

发表于 2008-11-25 17:08:43 | 显示全部楼层
记一下

出0入0汤圆

发表于 2019-6-17 22:51:59 | 显示全部楼层
可以看一下这个贴
https://www.amobbs.com/forum.php ... B%E8%8F%9C%E5%8D%95
贴主写了一个PPT介绍傻孩子菜单的结构
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 01:17

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

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