标题:
关于51单片机多级菜单的一点点心得
[打印本页]
作者:
二十出头
时间:
2015-6-9 21:53
标题:
关于51单片机多级菜单的一点点心得
用了4天做了个简单的电子钟。MCU:STC89C52RC,自带字库的12864液晶显示,没用画图功能。前三天都在痛苦的折腾二级菜单,从网上找了大量的资料,大部分都说用数据结构里的树来实现。无奈水平有限,看不懂,也不可能短时间内搞明白什么链表,树。终于在昨天下午想出来怎么用简单的switch case分支实现。
简单来说就是先确定你有几个界面,比如我的开机后显示时间,是界面0,按菜单键后出来菜单界面,是界面2,3个选项,分别对应界面3,4,5。然后用个大的switch()case语句。我用cur_level定义界面编号,switch(cur_level){}判断在不同界面下执行不同的函数。比如我在显示时间的界面时,cur_level=0;
switch(cur_level){
case 0:
key=0;
key=key_scan();
if(key==1)//按下菜单键
{
main_menu();//执行菜单显示函数,只执行一次
cur_level=1;//跳到菜单界面
}
break;
case 1:
key=0;
key=key_scan();//在菜单界面扫描按键
switch(key){
case 1://1为确定键,跳入菜单界面选项一
chang_time();//执行修改时间的函数
cur_level=2;//跳到界面2,主要执行修改时间的函数
break;//12864液晶跳转页面需要清屏,使用时需注意
//还有其他细节东西,需要自己根据实际情况进行调节
... ...
... ...
}
break;
}
//简单的举了个例子,不同界面之间就像这样跳转,比什么链表的容易理解多了。当然如果以后学会高端的会不屑这样,但我觉得对新手来说,
能用这种方法解决实际问题也是很大的收获。
这算是技术贴吧,第一次发,写的不好请见谅。
作者:
二十出头
时间:
2015-6-10 09:48
昨天图没传上来,今天补上~
作者:
xuwei
时间:
2015-6-12 01:17
二十出头 发表于 2015-6-10 09:48
昨天图没传上来,今天补上~
楼主大师你的经验很值得我学习 期待您的图片,,编辑原来的帖子 或者在回帖框的右侧 点击“高级模式” 可以上图呢。。
作者:
血一
时间:
2015-10-1 22:31
最近也在为多级菜单如何实现而烦恼,求指教啊
作者:
lalafly
时间:
2016-3-10 13:11
二十出头 发表于 2015-6-10 09:48
昨天图没传上来,今天补上~
求完整的程序
作者:
xiaoquan888
时间:
2017-7-16 01:27
恩。感觉可以用。
作者:
yekai_yh
时间:
2018-8-31 12:18
有没有具体项目发上来学习学习
作者:
644490612
时间:
2018-11-1 19:55
有完整程序吗?
作者:
starry999
时间:
2018-11-27 11:40
大概能懂,再详细点就更好了
作者:
hedongdony
时间:
2018-12-6 14:07
求完整程序 谢谢楼主
作者:
yuyi.709
时间:
2020-5-24 13:13
求程序谢谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1