教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

一种用C51实现的单片机系统菜单管理方案

来源:网络收集 时间:2026-09-05
导读: C51实现的单片机系统菜单管理 第3卷第3 0期yo’ o l3№ 3 计 算机 工 程 2 0年2 04月Fe r ar 0 b u y 2 04 Co pu e gi e r n m t rEn n e i g 开发研究与设计技术 文缩 o _4 (0 o— l— 2 章号t o 3 8o ) 9 l 2243 l一 文识 蜊示码t A 中分号 P1圈类 t 3l T

C51实现的单片机系统菜单管理

第3卷第3 0期yo’ o l3№ 3

算机

2 0年2 04月Fe r ar 0 b u y 2 04

Co pu e gi e r n m t rEn n e i g

开发研究与设计技术 文缩 o _4 (0 o— l— 2 章号t o 3 8o ) 9 l 2243 l一

文识 蜊示码t A

中分号 P1圈类 t 3l T

种用C 1 5实现的单片机系统菜单管理方案黄声野,陈秀华},王东生.

(.清华大学精密仪器系,北京 l0 8;2北京汉王科技有限公司,北京 l0 8 ) 1 00 4 . 0 04接要:介绍的菜单管理方案灵活应用C5中的指针和结构体数据类型,使得菜单程序和主程序之间、各级菜单之间相对独立,实现了方便 l地修改菜单的同时不会对主程序有任何影响。文中详细描述和举例说明了这种菜单管理方案,并说明了菜单修改的方法。 关t词:菜单;C l 5;指针变量

A i g e h p S se M e u M a a e n a i e t 1 S n l c i y t m n n g me t Re l d wih C5 zH UANG h n y。 CHEN Xi h a, W ANG n s e g S e g e, u u2 Do g h n '

(.D p. f I T ig H nvri, e ig0 0 4 2 B in a w n i t .B in 0 0 4 1 e to M, s h a U ies y B in 10 8; . e i P n t j j gH n a gLmiCo, e igl0 8 ) j| sr c】T ep prnrd csau i ra adpat a meh 0 n s ng B sn one dsrcueo l ge ti nv l n Ab la! h ae t ue nv sl n rci l to rr i o e c d me u ae. yu igP itr n t tr f la u.hs o e me u ma a u C5 n ma a e n U C S f l e a ae h nu p o r m fo t e m an p o r m,a d ma e h u me u n e e d n i m a h o h r n g me tS C E SuI s p r t s t e me r g a y r m h i r g a n k s t e s b n s i d p n e tt o e c t e De a l a d - ti n s

ca l,s la n d i me o r

rvdd x mpe a l me umo母 s we s t da po ie. h e 【 ywo d lMe u C5: one ai i Ke r s n; l P itr r t n v ao

l概述采用单片机系统的仪器设备中经常采用菜单的方式进行

菜单环境;如果当前处于最末一级,对它的确认就是执行某项任务,那么“进入下级菜单”操作应运行执行程序来完成

人机对话在采用汇编语言单片机应用系统中,用制表的…方法可以较好地编写菜单程序。但是汇编语言本身可读性和移植性较差。单片机高级语言c 不仅能够克服汇编语言 5的这些缺点,在编写菜单程序时,还可以使用C语的各种指针和数据结构灵活地实现菜单管理 J常情况下,。通菜单数据的全部或部分往往被直接写在主程序中,导致程序错综复杂,难以进行多级菜单的维护和扩展。本文介绍的菜单管理方案将菜单程序和主程序分开,而用指针变量将二者联系起来,即使有很多级的菜单也能方便地修改或扩展。I ki U n}

某项具体的任务。基于这种理解,首先定义如下结构体数据类型 s u t n,其成员是3 t c meu r 个函数指针。s r tm e tuc nu

{od( p rn) ) od( bohr) )vi ci (:} v i aet(;v i rte ( od( hl ): d)

然后把每一级菜单定义成meu n结构体的一个变量 (简称 m n变量)。为便于区分和理解,约定meu量以“ eu n变 M”开头。比如主菜单定义为:s ut e uM— i. t c m n Man r 每一级菜单就是一个 m n变量,它拥有3 eu个指向菜单函数的指针成员。菜单函数是实现菜单操作的子程序,每个 meu量都有 3 n变个菜单函数分别对应着前面所说的3菜单种操作。比如M_ i Man菜单的3个菜单操作函数为v i Man ae t ) od Ma B oh r;odMan h l ) od iP rn(; i i rte() i v n v iC i (; d

-- -、~~一~

。一一

扎L 一// "

函数名中的Man i表示这是M— i Ma n下属的操作函数, P rn, rte, hl aetBoh rC i d表示3不同的操作。这样的命名规则种~…—

有助于理解和记忆。

i

,

\t、l- vaie:=S _>- o。 l… I/一一。 I - ,一一 n0 g. .一 一 【 r — I一

~,

!

1

I ;●~,,一

、f n./ iic et:\.I 1 I? d。 c0:ir . l - f l - V衄 u’ o f、~一

~

\

L

}

Can h nel、、

\ . 一2

iCan I . _ hne ,j -" J,●,. II um J¨ S

:“ J fh』 ff f J 、、~

..

/

__ _一 一一

}

主程序中对菜单进行操作时,只需调用相应 m n变量 eu的指针成员所指的菜单函数,至于菜单操作的具体实现,菜单标题的显示等工作都由菜单函数来完成。 主程序中定义了指向结构体类型s ut n的全局指针 t cmeu r 变量 p t u和用于保存当前菜单项编号的全局字符型变 t sr r量 i m . m. t n主程序通过这两个全局变量进行菜单的有关操 e u作,实现了它和菜单程序之间的相对独立性。实际上 im— t e.

/=,F c tl l u1 ̄= d . t u, 1 u a I u I.. .. .

t。

u --v I Vi hne 1‘ o d --an 1 0,

_一一; I l,

一…

一….

n m也起到指针的作用,不同的是,p _t指向一个结构体 u t su r r变量,也就是指向某一级菜单,而 im n m指向该级菜单下 t—u e

的某一菜单项。要实现返回上级和进入下级菜单的操作,就在菜单操作函数中让指针 prs u向上级或下级meu t t指 r n变量;要在本级菜单的菜单项中滚动,就保持 t s u pr t不变, r

\

=、

I}t tlll 1ll i ll 2 - I~一

/= V i h n e 2:‘ odcan l0’ f一一……

田I树状菜单结构

而在操作函数中让im nm本级的几个菜单项的编号之间 t u在 e作者简介:黄声野 ( 7一 ),男,硕士生,主要研究方向:光学 14 9工程;陈秀华,工程师;王东生,教授

菜单的结构为形如图 1的树状结构。菜单的操作有以下3 种:返回上级

菜单,在本级菜单的菜单项中滚动,进入下级菜单。如果当前处于主菜单,“回上级菜单”操作将退出 返

收一日期: 030一 20—l 7 2

Em i uns0@m i.i ha d.l— a:hagy2 ass gu. u l l ltn c C

C51实现的单片机系统菜单管理

循环。在菜单初始化时令指针prs u指向主菜单M— i, t t _r Man且 i m n m=l t e u,指向第一一个菜单项。另外还把每级菜单的—

单项菜单标题。以M S mpe的菜操作为例,在操作函数 a l Smp Prn ) a l ae t中用以下语句实现返 k【 e ( -: '缄的操作:【prsr l t u=& M Man i:i m l l t e l l U l= S m plNum; a e

菜单项总数、菜单项编号、菜单项标题都定义成宏,以便菜单修改。

/歌 l级菜单M Man/: i

2用C 1 5描述一个菜单要用C l 5程序来描述一个菜单,首先定义一个结构体类型,然后为各级菜单定义结构体变量,并声明菜单操作函数,最后对结构体变量进行初始化,让它们的指针成员指向 相应的操作函数。所有这些工作都放在一个头文件meuh n. 里。请注意操作函数在meuh n .中只进行声明,它们的定义放往另一个文件m nfn .。 e uu c中 c用图l所示的菜单为例。这个菜单的第一级是主某单 M Man i,它有两个子项“ a l”和“ an l,表示子项 Smpe Chn e”数目的宏Man u iS m定义为2。给两个子项的编号和标题也部分别在程序中定义了宏。 “ a l Mo e导出二级菜单 M S mpe“ hn e导 Smpe d” a l, C an l”出二级菜单 M hn e. C a n1

/项” a i Moe编号为 S mpe n/子 S mpe d” …… 此处隐藏:6523字,全部文档内容请下载后查看。喜欢就下载吧 ……

一种用C51实现的单片机系统菜单管理方案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1707378.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)