基于单片机的门禁系统多级菜单设计
摘 要: 为了在无线办公门禁系统中实现通过LCD12864显示屏分屏显示多项内容,采用单片机C语言程序设计了多级菜单,应用结构体数组成员的定义,借助按键来改变菜单项的索引号,进行内容的分屏显示及菜单项之间的切换。在多项显示时,同一屏上显示项处于同一级,涉及的变量少,索引号级数少,系统开支就小。设计简化,按键实时性好,界面简单,操作方便。
关键字: LCD12864; 多级菜单; 结构体数组ฐ成员; 切换机制
0 引 言
在门禁系统中采用的显示设备是LCD12864,此设备在系统中仅显示少量的提示信息,能够满足系统显示需求,但是受显屏显示区域的限制,要显示多项内容,需要分屏显示,在显示的内容之间有上下级和平行级关系,这就需要在显示屏上显示多级操作菜单,每一级菜单都有一些菜单项和对应的按键操作,以及响应各种操作而执行的后续处理程序。需要采用多级菜单来显示与按键进行显示内容的切换。本文根据门禁系统的显示需求,旨在提供一个轻量级的单片机多级菜单实现✞方法,以较少的系统资源消耗和简单方便的方法完成菜单设计。考虑到菜单程序需要具备3个基本要素:
(1) 每个显示界面显示的内容;
(2) 显示界面内菜单项之间切换和显示界面之间的切换机制;
(3) 每个显示界面及菜单项对应的按键定义与响应。
本文首先介绍多级菜单的设计思想,进而采用C语言实现结构体的定义和结构体数组成员的定义,接着介绍菜单项之间的切换机制,最后进行了键盘处理模块的设计。
1 多级菜单的设计♚
多级菜单的基本思想是把多级菜单分层结构,通过索引号贯穿,把全部菜单项拉成一条链,每一个菜单项即为一个结构,而整个菜单即为一结构数组,访问每一个菜单项时,只须获得菜单的索引号,通过索引号找到结构数❤组中和该菜单项相关的项目,由此可以查询到当前菜单项的数据和所要执行的功能函数[1]。
菜单设计的常用方法是树形拓扑结构法。菜单的树形拓扑结构是多叉树,对于多叉树结构的菜单,为了表示菜单之间的相互关系,必须表示其所有的下级菜单节点。在此控制系统中的菜单项比较少,只分为2级,即上一级(称为父项)和下一级(称为子项),其菜单树如图1所示。再由于每个菜单的下级菜单个数不同,难以用统一的数据结构来描述这种相互关系,在此借助硬件4个按键(确认、上翻和下翻按键、返回按键)进行切换。
4 结 语
本文介绍了在门禁系统中多级菜单的设计与切换ต的实现。采用多级菜单设计大大提高了LCD12864的显示功能,提供了多功能的操作显示提示,以方便系统的使用。系统开销小,仅靠几个结构体和几个变量即可维护各显示界面及界面内同级菜单项、上下级菜单项之间切换实现。
参考文献
[3] 谭浩强.C语言程序设计[M].2版.北京:清华大学出版社,2011.
[5] 刘运清.基于单片机的门禁系统的设计与实现[J].中国科技信息,2013(18):80?81.
[6] 黄健,吴永弘,刘乔俊.基于RFID技术的门禁系统的研究[J].数字技术与应用,2014(4):116?118.