搜索
bottom↓
回复: 215
打印 上一主题 下一主题

基于二叉树的多层的液晶菜单界面设计 && 资料集锦下载(t6963C、菜单界面设计

  [复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2011-9-21 01:53:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
工作需要写一个菜单界面运行在240*128点阵的液晶上,有上、下、确定、返回4个按键。
一、功能分析
        1. 菜单需要完成的功能是:
        实时显示环境A中的若干传感器值(传感器数量大于液晶可以显示的最大值时,还需要翻页功能),实时显示环境B中的若干传感器值,时间显示和设置,系统信息和帮助信息。
        2. 菜单界面的布局
        目前分为3种:
                (1) 主菜单停留在屏幕上,下级菜单被选中后显示;
                (2) 下级菜单显示时,上级菜单消失;
                (3) 图形文字结合显示;
                由于240*128点阵的液晶,行最多显示15个16*16汉字,列最多显示8个汉字,液晶可显示8行15列,采用布局(1),
                如图示:
液晶界面基本布局图 (原文件名:液晶界面基本布局图.png)
        3. 从功能需求上看,这是一个简单的界面,配有简单的按键操作:
                (1) “上”、“下”键在“环境A传感器值”,“环境B传感器值”,“时间设置”,“系统信息”4个菜单之间切换;
                (2) “确定键”进入下级(子级)菜单,这里是显示信息,设置时间等;
                (3) “返回键”返回上级(父级)菜单;
                (4) “确定键”进入“时间设置”菜单后,“上下键”设置时间,“确定键”在年月日时分秒间切换,“返回键”完成时间设置;
        基本功能完成后,进一步完善:
                (5) 对于“系统信息”和“传感器值”这种类型的菜单,对应的子菜单只是显示某些信息,没有第二级需要继续选择的菜单项,故,当“当前菜单”为此类型时,不通过“确定键”直接显示相应的信息;
                (6) 当“环境A”的传感器个数>8时,需要分2页显示,此时,按“确定键”翻页;

这份界面经历了3个版本,每次都有主要参考的代码资料。(说借鉴或着抄都可以,但也有我自己的构思,尤其是最后一个版本)

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

来自 136楼
 楼主| 发表于 2013-3-12 01:34:10 | 只看该作者
之前的代码有部分和界面无关的代码注释(是和当时的项目有关)

帖子还有人回复
——于是就动了更改的念头
和之前比并没有多大改进,主要是整洁了些
另外这个菜单很简单,主要适用于蓝白液晶屏之类的少量显示,复杂些的搞不出来啦

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

216
发表于 2021-1-19 12:30:30 来自手机 | 只看该作者
最近打算玩一下

出0入0汤圆

215
发表于 2020-12-22 09:18:30 | 只看该作者
先mark,后面学习

出0入0汤圆

214
发表于 2020-5-31 14:00:16 | 只看该作者
优秀帖子,帮顶,MARK!

出0入0汤圆

213
发表于 2020-5-31 13:59:26 | 只看该作者
帮顶!

出130入0汤圆

212
发表于 2018-1-11 14:59:04 来自手机 | 只看该作者
最近在看单色屏gui

出100入101汤圆

211
发表于 2017-12-31 13:15:52 | 只看该作者
菜单,二叉树

出0入0汤圆

210
发表于 2017-12-31 10:56:35 | 只看该作者
很好的资料,谢谢分享!

出0入0汤圆

209
发表于 2016-3-29 09:20:21 | 只看该作者
学习学习

出0入0汤圆

208
发表于 2015-7-20 11:07:40 | 只看该作者
这个菜单 不错

出0入0汤圆

207
发表于 2015-6-26 10:46:33 | 只看该作者
不错哟                                

出0入0汤圆

206
发表于 2015-6-26 10:40:26 | 只看该作者
厉害

出0入0汤圆

205
发表于 2015-6-9 15:01:26 | 只看该作者
支持一个啊........不错啊...

出0入0汤圆

204
发表于 2015-5-27 09:49:02 | 只看该作者
不错,必须要顶

出0入0汤圆

203
发表于 2014-8-14 19:56:44 | 只看该作者
顶顶!!!!!!!!!!!!!!!

出0入0汤圆

202
发表于 2014-6-5 16:47:30 | 只看该作者
mark

出0入0汤圆

201
发表于 2014-5-31 15:45:42 | 只看该作者
MARK 基于二叉树的多层的液晶菜单界面设计

出0入0汤圆

200
发表于 2014-5-30 13:09:38 | 只看该作者
感谢分享!

出0入0汤圆

199
发表于 2014-5-24 12:18:20 | 只看该作者
支持lz   

出0入0汤圆

198
发表于 2014-5-22 15:51:53 | 只看该作者
学习一下...

出0入0汤圆

197
发表于 2014-5-22 15:40:57 | 只看该作者
看下,有空试下

出0入0汤圆

196
发表于 2014-5-22 15:23:16 | 只看该作者
mark一下,

出0入0汤圆

195
发表于 2014-5-22 13:54:28 | 只看该作者
先下来,慢慢研究

出0入0汤圆

194
发表于 2014-4-25 16:01:33 | 只看该作者
基于二叉树的多层的液晶菜单界面设计 && 资料集锦下载(t6963C、菜单界面设计  

出0入0汤圆

193
发表于 2014-4-13 15:51:09 来自手机 | 只看该作者
谢谢分享

出0入0汤圆

192
发表于 2014-4-13 15:50:55 | 只看该作者
楼主的精神,就是白求恩的精神。

出0入0汤圆

191
发表于 2014-4-13 15:50:43 来自手机 | 只看该作者
leekp 发表于 2011-9-21 02:01  四、结束啦  上述提到的所有资料我放在了我的共享空间 http://goo.gl/4N1EQ  包括 1. 主题为“多层菜单界面 ...

谢谢分享

出0入0汤圆

190
发表于 2014-4-13 15:49:47 来自手机 | 只看该作者
leekp 发表于 2011-9-21 02:01  四、结束啦  上述提到的所有资料我放在了我的共享空间 http://goo.gl/4N1EQ  包括 1. 主题为“多层菜单界面 ...

谢谢分享

出0入0汤圆

189
发表于 2014-4-13 15:49:13 来自手机 | 只看该作者
leekp 发表于 2011-9-21 02:01  四、结束啦  上述提到的所有资料我放在了我的共享空间 http://goo.gl/4N1EQ  包括 1. 主题为“多层菜单界面 ...

谢谢分享

出0入0汤圆

188
发表于 2014-4-13 07:32:53 来自手机 | 只看该作者
樓主辛苦,谢谢

出0入0汤圆

187
发表于 2014-4-12 22:42:46 | 只看该作者
记号。收藏

出0入0汤圆

186
发表于 2014-4-2 21:52:32 | 只看该作者
强贴标记,楼主厉害

出0入0汤圆

185
 楼主| 发表于 2014-4-2 20:49:08 | 只看该作者
abc63620292 发表于 2014-4-1 13:53
楼主,你这个框架下能修改浮点型的参数嘛,单位也可修改,一个四个通道。在它的选项上按enter,光标移动到 ...

你的需求有些复杂,我的菜单只能修改整数,而且不能逐位修改.想了一会,也没想出好的解决办法 

出0入0汤圆

184
发表于 2014-4-2 13:03:01 来自手机 | 只看该作者
好帖,收藏了

出0入0汤圆

183
发表于 2014-4-1 13:53:09 | 只看该作者
楼主,你这个框架下能修改浮点型的参数嘛,单位也可修改,一个四个通道。在它的选项上按enter,光标移动到第一通道的个位,按上下可以修改个位参数,光标可以左右移动到各个位,也能移动到单位上修改单位。往下按,光标移动到第二通道的个位。按home,光标返回选项标题上。。。在你的框架上,如何实现,这些参数还要控制硬件,这类界面真心烦啊。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

182
发表于 2014-4-1 10:58:34 | 只看该作者
真好的帖子,今天看到了,菜单设计收藏下

出0入0汤圆

181
发表于 2014-4-1 10:14:15 | 只看该作者
学习一下,多谢

出0入0汤圆

180
发表于 2014-3-31 13:33:11 | 只看该作者
莫友,http://www.amobbs.com/forum.php? ... 5039&highlight=液晶%2B界面    这个帖子的界面求靠谱意见

出0入0汤圆

179
发表于 2014-3-26 14:00:18 | 只看该作者
好帖,收藏了

出0入0汤圆

178
发表于 2014-3-26 13:47:24 | 只看该作者
非常棒的工作,非常感谢楼主

出0入0汤圆

177
发表于 2014-2-10 15:22:45 来自手机 | 只看该作者
顶一下,开学了用得上!

出0入0汤圆

176
发表于 2014-2-10 12:54:40 | 只看该作者
这个太cool了,顶

出0入0汤圆

175
发表于 2013-12-3 15:20:33 | 只看该作者
这个要收藏!!!!!!!

出0入0汤圆

174
发表于 2013-11-25 14:35:27 | 只看该作者
这个是很好的学习资料,顶了。

出0入0汤圆

173
发表于 2013-11-25 13:16:09 | 只看该作者
非常好!很受用!谢谢!

出0入0汤圆

172
发表于 2013-11-14 17:23:52 | 只看该作者
学习中!

出0入0汤圆

171
发表于 2013-11-12 13:04:44 | 只看该作者
mark mark mark

出0入0汤圆

170
发表于 2013-10-9 22:33:25 | 只看该作者
dddddddddddddddddddddddddddddddddddddddddd

出0入0汤圆

169
发表于 2013-10-5 20:44:52 | 只看该作者
楼主给力啊

出0入0汤圆

168
发表于 2013-10-5 17:27:17 | 只看该作者
markmarkmark

出0入0汤圆

167
发表于 2013-10-5 15:28:18 | 只看该作者
强烈建议加精,菜单 树

出0入0汤圆

166
发表于 2013-10-4 19:59:30 | 只看该作者
不错的想法!

出0入0汤圆

165
发表于 2013-10-4 14:15:22 | 只看该作者
先MARK下

出0入0汤圆

164
发表于 2013-10-4 07:50:37 | 只看该作者
哇,顶楼主!得好好研究这个了

出0入0汤圆

163
发表于 2013-9-22 20:25:19 | 只看该作者
              Mark

出0入0汤圆

162
发表于 2013-9-22 13:27:48 | 只看该作者
顶一下吧,改天我也上传一个我的做法

出0入0汤圆

161
 楼主| 发表于 2013-9-20 02:32:18 | 只看该作者
tianheyun12 发表于 2013-9-14 19:49
楼主,如果我想把开机后的默认主界面(一个显示函数,比如时间函数界面等)也归类到菜单(设置为根目录), ...

你的意思是:菜单类似于Windows的开始图标,enter弹出,cancel消失?
如果我没理解错的话,你可以在原来的流程上尝试修改:
1. “当前菜单id”初始化为你提到的“默认主界面”,初始化时打印当前菜单,自然你的默认主界面就显示了;
2. “默认主界面”类型可以设置为“执行某种操作”:打印菜单,修改“当前菜单id”;
3. 然后你就可以选择菜单执行后续操作了;
4. 当你在顶层菜单按cancel时,打印默认界面,修改id;

菜单代码好久没碰过了,只有个想法了,你尝试修改,不难的。

出0入0汤圆

160
发表于 2013-9-14 19:49:27 | 只看该作者
本帖最后由 tianheyun12 于 2013-9-14 19:54 编辑

楼主,如果我想把开机后的默认主界面(一个显示函数,比如时间函数界面等)也归类到菜单(设置为根目录),按下enter按键后才进入列表选择菜单,cancel返回到主界面。我应该把主界面定义成什么类型的菜单?

出0入0汤圆

159
发表于 2013-8-13 23:34:58 来自手机 | 只看该作者
好帖,mark

出0入0汤圆

158
发表于 2013-8-13 22:56:35 来自手机 | 只看该作者
mark……
顶一个…

出0入0汤圆

157
发表于 2013-8-8 17:14:53 | 只看该作者
正在学习中,非常感谢

出0入0汤圆

156
发表于 2013-6-30 20:24:14 | 只看该作者
这个很好,正好在做页面呢

出0入0汤圆

155
发表于 2013-6-30 17:34:07 | 只看该作者
chengpiaopiao 发表于 2011-9-21 12:00
帮楼主上传一下吧

点击此处下载 ourdev_678285UDX608.zip(文件大小:9K) (原文件名:menu_code.zip)

这个要顶            

出0入0汤圆

154
发表于 2013-6-30 17:19:26 | 只看该作者
必须马赛克

出0入0汤圆

153
发表于 2013-5-23 20:24:12 | 只看该作者
值得学习

出0入0汤圆

152
发表于 2013-3-18 12:10:46 | 只看该作者
决心好好的理解下层次菜单的写法
现在在用的 是数码管的层次菜单  写的不算好也不算差,我想看看用上数据结构后的层次菜单,有什么奇妙的思路

出0入17汤圆

151
发表于 2013-3-18 10:04:40 | 只看该作者
MARK,有时间学习学习~~~~~~

出0入0汤圆

150
发表于 2013-3-17 16:28:38 | 只看该作者
“由于深刻和直接地体会到阅读没有注释的代码的痛苦和难耐,我在自己的代码里写了挺多注释,并且努力保持注释和代码的一致性;同样的原因,我也没有直接贴上代码了事,而是分析了我写代码的思路、程序的流程,留给自己,也留给需要的人;真心认为程序的流程远比代码本身更重要。

单凭这句话就应该挺楼主!!!!
下载学习中。。。

出0入0汤圆

149
发表于 2013-3-13 20:23:42 | 只看该作者

出0入0汤圆

148
发表于 2013-3-13 10:00:16 | 只看该作者
leekp 发表于 2013-3-12 21:08
你说的“动态修改某项菜单值”指的是设置参数吗?
如果是的话,按确定进入这个菜单项后,执行该菜单项对 ...

非常谢谢,按照你说的弄了下,可以简单的实现动态的修改菜单值了。

出0入0汤圆

147
 楼主| 发表于 2013-3-12 21:08:29 | 只看该作者
creep 发表于 2013-3-12 11:22
移植第一个思路那个菜单,但不知道该怎么动态修改某项菜单的值?

你说的“动态修改某项菜单值”指的是设置参数吗?
如果是的话,按确定进入这个菜单项后,执行该菜单项对应的参数设置函数,
大概是:
_user_parameter_set()
{
    //这里只是在按确定或者取消的时候才从参数设置的while(1)中退出,
    //你也可以while(没有超时)
    while (1) {
        key = get_key();

        if (key == up) {
            参数+;
        } else if (key == down) {
            参数-;
        }
        
        if (key == enter) {
            保存参数; return;
        } else if (key == cancle) {
            取消修改; return;
        } else {
            continue;
        }
    }
}

出0入0汤圆

146
发表于 2013-3-12 11:22:20 | 只看该作者
移植第一个思路那个菜单,但不知道该怎么动态修改某项菜单的值?

出0入0汤圆

145
发表于 2013-3-12 02:28:46 | 只看该作者
MarkMark

出0入0汤圆

144
 楼主| 发表于 2013-3-12 01:48:42 | 只看该作者
masai1985 发表于 2012-4-19 14:09
楼主厚道,很多时候我们需要的不是代码,而是思路

思路+注释。看没注释的代码老痛苦了。。。。

出0入0汤圆

143
 楼主| 发表于 2013-3-12 01:47:46 | 只看该作者
111111000 发表于 2012-3-24 01:23
当时我分析了ucGUI的源代码,从中得到启发做出了新模式,感觉那样做出来变化性更强,适应各类不同页面 ...

ucGUI源码嵌套的太深了,看不懂,后来干脆就没在用过了。。。

出0入0汤圆

142
 楼主| 发表于 2013-3-12 01:46:30 | 只看该作者
shh_hqss 发表于 2012-11-10 14:27
楼主的字写得真好,自成一体!

嘻嘻。。。慧眼。。。

出0入0汤圆

141
 楼主| 发表于 2013-3-12 01:43:19 | 只看该作者
embeddev 发表于 2011-9-21 11:43
上个pp瞅瞅啥样

pp上的太晚了,还能用得着不?。。。

出0入0汤圆

140
 楼主| 发表于 2013-3-12 01:42:08 | 只看该作者
z421868436 发表于 2011-9-21 10:43
莫大会给裤子吗啊?

出0入0汤圆

139
 楼主| 发表于 2013-3-12 01:41:10 | 只看该作者
Excellence 发表于 2011-9-21 11:40
有没有图片看看。谢楼主。

用ucgui模拟演示,比图片还直观的说。

出0入0汤圆

138
 楼主| 发表于 2013-3-12 01:38:51 | 只看该作者
acmilannast 发表于 2012-7-17 15:57
mark mark简陋液晶福音

你关注到了重点,确实只适用于“简陋”液晶。嘿嘿。

出0入0汤圆

137
 楼主| 发表于 2013-3-12 01:35:44 | 只看该作者
DDR2 发表于 2013-1-14 13:32
终于参透了,
Menu_Cur = Menu_Cur->son;  // 进入子项目
for (i = 0; i < item_sn_last; i++ )

完全正确。
有更新了。。。

出0入0汤圆

135
发表于 2013-2-24 20:21:12 | 只看该作者
真实高手啊,刚学几个月就有这水平。

出0入0汤圆

134
发表于 2013-2-3 12:45:48 | 只看该作者
mark一下

出0入0汤圆

133
发表于 2013-1-14 14:08:26 | 只看该作者
COOL,谢谢分享!

出0入0汤圆

132
发表于 2013-1-14 13:32:01 | 只看该作者
终于参透了,
Menu_Cur = Menu_Cur->son;  // 进入子项目
for (i = 0; i < item_sn_last; i++ )
{
          Menu_Cur = Menu_Cur->ybrother;  // 相当于移位至对应项目,解析如下:
}
解析:……A……
         …………B……                // 其中 B=A->ybrother
         ………………C……           // 其中 C=B->ybrother

出0入0汤圆

131
发表于 2013-1-14 12:37:44 | 只看该作者
还没有来的急细看,MARK

出0入0汤圆

130
发表于 2013-1-14 12:06:19 | 只看该作者
楼主还会回复吗?
请教一个问题:
       /*
        * 根据ID编号的原则,计算子菜单ID,使其成为当前菜单,
        * 子菜单ID = (当前菜单ID * 10 +1) + item_sn_last,或者
        * 当前菜单长子menu的第curitemsn_previous个ybrother
        */
                Menu_Cur = Menu_Cur->son;
                for (i = 0; i < item_sn_last; i++ )
                {
                        Menu_Cur = Menu_Cur->ybrother;
                }
这个是“Enter”按键的部分代码,这个位置什么理解呢?
先取到Menu_Cur->son;
接着为何要多次取 Menu_Cur->ybrother;呢?
还关注被贴的话,望能详细解答一下~~~~
谢谢了!

出0入0汤圆

129
发表于 2013-1-6 09:51:46 | 只看该作者
菜单的设计,好与否,移植方便与否都设计很多东西,楼主是在是有心人啊.辛苦了.

出0入0汤圆

128
发表于 2013-1-5 13:53:42 | 只看该作者
分析的很好,感谢分享

出0入0汤圆

127
发表于 2013-1-2 15:57:35 | 只看该作者
一直觉得这个做的不合心意,标记一下

出0入0汤圆

126
发表于 2013-1-1 18:24:50 | 只看该作者
看了介绍很有启发,也照着思路自己写了一个菜单。

出0入0汤圆

125
发表于 2012-12-24 12:50:22 | 只看该作者

强帖!

出0入0汤圆

124
发表于 2012-12-17 23:42:50 | 只看该作者
这个厉害

出0入0汤圆

123
发表于 2012-12-17 23:23:53 | 只看该作者
“楼主厚道,很多时候我们需要的不是代码,而是思路”,同感。

出0入0汤圆

122
发表于 2012-11-20 17:49:29 | 只看该作者
这个  这个   

出0入0汤圆

121
发表于 2012-11-16 16:12:07 | 只看该作者
很好很好,下了。

出0入0汤圆

120
发表于 2012-11-10 14:27:21 | 只看该作者
楼主的字写得真好,自成一体!

出0入0汤圆

119
发表于 2012-11-7 20:06:09 | 只看该作者
!!mark

出0入0汤圆

118
发表于 2012-10-19 12:47:06 | 只看该作者
楼主很棒,向你学习!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-27 10:10

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

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