基于单片机的门禁系统多级菜单设计

基于单片机的门禁系统多级菜单设计

ID:25945726

大小:72.00 KB

页数:10页

时间:2018-11-23

基于单片机的门禁系统多级菜单设计_第1页
基于单片机的门禁系统多级菜单设计_第2页
基于单片机的门禁系统多级菜单设计_第3页
基于单片机的门禁系统多级菜单设计_第4页
基于单片机的门禁系统多级菜单设计_第5页
资源描述:

《基于单片机的门禁系统多级菜单设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于单片机的门禁系统多级菜单设计王清珍,董健,杨宇(郑州科技学院信息工程学院,河南郑州450064)摘要:为了在无线办公门禁系统中实现通过LCD12864显示屏分屏显示多项内容,采用单片机C语言程序设计了多级菜单,应用结构体数组成员的定义,借助按键来改变菜单项的索引号,进行内容的分屏显示及菜单项之间的切换。在多项显示时,同一屏上显示项处于同一级,涉及的变量少,索引号级数少,系统开支就小。设计简化,按键实时性好,界面简单,操作方便。关键字:LCD12864;多级菜单;结构体数组成员;切换机制中图分类号:TN911-34;TP3

2、68.2文献标识码:A:1004-373X(2015)12-0055-03收稿日期:2014-10-13基金项目:国家自然科学基金项目(61272392);河南省教育厅科技攻关基金资助项目(12B510032)0引言在门禁系统中采用的显示设备是LCD12864,此设备在系统中仅显示少量的提示信息,能够满足系统显示需求,但是受显屏显示区域的限制,要显示多项内容,需要分屏显示,在显示的内容之间有上下级和平行级关系,这就需要在显示屏上显示多级操作菜单,每一级菜单都有一些菜单项和对应的按键操作,以及响应各种操作而执行的后续处理程序。

3、需要采用多级菜单来显示与按键进行显示内容的切换。本文根据门禁系统的显示需求,旨在提供一个轻量级的单片机多级菜单实现方法,以较少的系统资源消耗和简单方便的方法完成菜单设计。考虑到菜单程序需要具备3个基本要素:(1)每个显示界面显示的内容;(2)显示界面内菜单项之间切换和显示界面之间的切换机制;(3)每个显示界面及菜单项对应的按键定义与响应。本文首先介绍多级菜单的设计思想,进而采用C语言实现结构体的定义和结构体数组成员的定义,接着介绍菜单项之间的切换机制,最后进行了键盘处理模块的设计。1多级菜单的设计多级菜单的基本思想是把多级菜

4、单分层结构,通过索引号贯穿,把全部菜单项拉成一条链,每一个菜单项即为一个结构,而整个菜单即为一结构数组,访问每一个菜单项时,只须获得菜单的索引号,通过索引号找到结构数组中和该菜单项相关的项目,由此可以查询到当前菜单项的数据和所要执行的功能函数[1]。借鉴李敏通教授提出的一种用一维线性数组实现树形拓扑结构多级菜单的方法,并用C51语言编程验证了这种方法的可行性。该方法对存储资源的利用效率高,逻辑关系清晰,且菜单的建立和修改方便,适合在单片机应用系统中使用[2]。菜单设计的常用方法是树形拓扑结构法。菜单的树形拓扑结构是多叉树,对

5、于多叉树结构的菜单,为了表示菜单之间的相互关系,必须表示其所有的下级菜单节点。在此控制系统中的菜单项比较少,只分为2级,即上一级(称为父项)和下一级(称为子项),其菜单树如图1所示。再由于每个菜单的下级菜单个数不同,难以用统一的数据结构来描述这种相互关系,在此借助硬件4个按键(确认、上翻和下翻按键、返回按键)进行切换。树形拓扑结构的实现一般采用链表法[3],这时每个节点中除了要存储有用的信息(即要实现的功能)以外,还要有孩子指针、父亲指针,而这些指针只是为了维持树形结构,其数据结构如下://目录结构体定义structMenu

6、Item//结构体名称{unsignedcharMenuCount;//当前层节点数、每层菜单能显示的条目数unsignedchar*DisplayString;//指向菜单标题的字符串unsignedchar(*Subs)();//指向当前状态应该执行的功能函数structMenuItem*ChildrenMenus;//指向当前菜单的下级菜单structMenuItem*ParentMenus;//指向当前菜单的上级菜单}在结构体中并没有设置兄弟指针,其中兄弟关系是通过结构体数组元素个数来实现。例如:structMenu

7、ItemcodeMainMenu[5]=//结构体主菜单{{5,"找人",find_person,Find,Null},{5,"调整时间",time_change,Null,Null},{5,"调整日期",date_change,Null,Null},{5,"串口传图",Uart_Camera,Null,Null},{5,"无线传图",Nrf24L01_Camera,Null,Null},};structMenuItemcodeFind[7]={{7,"王清珍",person_ui,Null,MainMenu},{7,"杨宇

8、",person_ui,Null,MainMenu},{7,"王小高",person_ui,Null,MainMenu},{7,"杨运森",person_ui,Null,MainMenu},{7,"潭涛",person_ui,Null,MainMenu},{7,"黄子帆",person_u

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。