第 32卷
32
第 l6期
№ 16
计 算 机 工 程
Com puter Engineering
2006年 8月
August 2006
·
开发研究与设计技术 - 文章一号t 1000 ̄3428(2006)16-.--0259----02 文■标识码t A 中圈分类号t TP311
一
种建立单片机应用 系统菜单的新 方法
李t适,张战目
(西 北农林科技大学机 电学院 ,杨凌 712100)
l 耍 :提出 了一种用一维线性数组实现树形拓扑结构多级菜单的方法 ,并 用 C5 1语言编程验证了这种方法的可行性。该方法对存储资源
的利用效率高 ,逻辑关系清晰 ,且菜单的建立和修改方便 ,适合在单片机应用系统 中使 用。
关t曩 :多级菜单 ;一维线性数组 ;C5l
A New M ethod of Designing M enu of Single·chip System
LI M intong,ZHANG Zhanguo
(College of Mechanical and Electrical Engineering,Northwest A & F University,Yangling 7 1 2 1 O0)
[Abstractl This paper presents a new method of designing the menu of the tree—like topological structure with linear array of one dimension.This
method has high effi ciency in using the memory,and has a simple and clear logic relation.In addition,the setting—up and mod ification of the menu is
very convenient.The new method is suitable for the application system of the single—chip computer.
[Key wordsl Multistage menu;Linear array of the one dimension;C5 1
l概述
随着图形点阵液 晶显示器 (LCD)模块在 各行 各业的逐
步应用,单片机系统人机界面变得越来越直 观 ,尤其对于大
多数需要有汉字和图形显示的用户来说,人机交互用户界 面
的友好与否 ,将直接影响到其产品的形象和市场竞争力 。中
文菜单就是一种很好 的人机交互用户界面。采用中文菜单人
机交互 用户界面 ,可直接对屏幕上的对象进行操作,方便 用
户使用 ,同时也可以减少系统的按键数量。
菜单设计的常用方法是树形拓扑结构法。菜单的树形拓
扑结构是多叉树 ,对于多叉树结构 的菜单 ,为了表示菜单之
间的相互关系 ,必须表示其所有的下级菜单节点。由于每 个
菜单的下级菜单个数不同,难以用统一的数据结构来描述这
种相互关系 ,因此这里将 多叉树表示成二叉树形式,对菜单
的下级菜单只表示其 “长子” 菜单,同时增加其 “兄弟”菜
单表示,图 1所示为二叉树描述的菜单关系和菜单编号(ID)。
圈 1莱年j-I
树形拓扑结构的实现一般采用链表法 ' ,这时每 个节点
中除了要存有用的信息以外 ,还要有兄弟指针、孩子 指针、
父亲指针 等,而这 些指针只是为 了维持树形结构而 已。其
数据结构如 下:
struct menu f
struct menu code parent; //父亲指针
struct menu code child; //孩 子指 针
struct menu code brother;//兄弟指针
…
;)
采用指针链表法实现树形拓扑结构,主要缺点是对单片
机存储资源利用率低,也不便于用汇编语 言实现。例如:一
个菜 单有 60个选项,这意味着那些只是为了维持树形结构而
存在 的指针就有 了 180个。 因此 ,本文提 出采 用一 维线性数
组实现菜单树形结构的新方法,它对存储资源的利用效率高,
而且思路清晰 ,适合在 单片机应 用系统中使用。
2用效组设计菜单的方法及工作原理
设计菜单时,菜单 中每个选项都有一个唯一 的编号 ,称
为菜 单值 menu。用一维线性数组实现菜单的树形结构 ,就是
菜单数组 中只存菜单值 ,而维持树形结构所需的指针都 用“虚
拟的指针 ”即逻辑 关系来代 替。
本文将菜单 的处理分为两部分:第 2部分 用于处理用户
对菜单的操作,此部分由 MenuProcess0函数完成,用户对菜
单的操作 只需用以下 4个按键:UP,DOWN,ENTER,ESC
键。各键的功能如下:
ESC:回到其上级菜 单 ;
ENTER:根据 当前菜单 的光标位置 ,进入相应选项的下
级菜 单,或选中某个功能选项 ;
UP:本菜单 窗中的光标 上移一行 ;
DOWN:本菜单窗中的光标下移一行。
显示菜单时 ,需把光标放在菜单的第一选项处,当要选
择其它选项时 ,按动光标移动键(UP或 DOWN),使光标移到
待选项处,再按回车键,便进人下一级菜单。当要返回上一
级菜单时,按返回键(ESC) ̄p可。
作者骱 :李敏通(1968一),男,副教授、在职博士生,主研方向:
测试和信号处理 ;张战 国,硕士
收藕日期:2005—09—15 E-mail:lmtyd@126.corn
维普资讯 http://www.cqvip.com