基于单片机的索引菜单查询方式的软件设计应用

时间:2024-04-02 点赞:47412 浏览:95826 作者原创标记本站原创

本文是一篇软件设计论文范文,软件设计类有关在职研究生毕业论文,关于基于单片机的索引菜单查询方式的软件设计应用相关学士学位论文范文。适合软件设计及产品设计及函数方面的的大学硕士和本科毕业论文以及软件设计相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:本文介绍一种在单片机设计软件中基于索引的多层次,多级别的菜单查询的软件设计方法.

关 键 词:单片机;索引;菜单

0引言

在单片机系统设计中,按键控制.屏幕显示.数据采集等系统都是较为常用的硬件系统,在其软件的设计过程中,基本都是基于C语言的过程设计,在设计中往往对于按键控制,屏幕显示控制等变成较为繁琐,标志位,信号量等参数多而且复杂,既占用过多的RAM,又使得整体程序可读性差.可移植性差.本文介绍的设计方法具有易读,方便维护,可移植性高和可靠性高的特点.本方法已经成功运用到多款产品中.

1硬件环境设计

随着电子技术的发展,单片机应用已经非常成熟,但是随着应用的广泛,单片机本身的RAM,ROM已经不能够满足设计需求,而过多的外部存储器也同样会带来设计体积增大,硬件成本增加等问题,这样,为了即能够不增加外设,也能够充分利用单片机本身资源的设计方式,也需要提高软件设计的高效性.

一个基本的单片机硬件环境一般有单片机,显示部分,按键操作,信号采集等部分,本文介绍的是一个带有6个功能按键.2个四位显示数码管.以及其他的信号采集设备系统.其功能如下:

(1)6种按键功能:1)“向上”键:查询本层菜单的向上操作索引值,本程序执行对显示值的递增函数;2)“向下”键:查询本层菜单的向下操作索引值,本程序执行对显示值的递减函数;3)“向左”键:查询本层菜单的向左操作索引值,本程序执行对显示值的左移闪烁函数;4)“向右”键:查询本层菜单的向右操作索引值,本程序执行对显示值的右移闪烁函数;5)“菜单”键:查询本层菜单的菜单操作索引值,本程序执行对显示值的参数调整函数;6)“确认”键:查询本层菜单的确认操作索引值,本程序执行对显示值的返回函数;


(2)2个四位显示数码管;程序执行按键后查询索引值对应的函数,并在四位数码管中显示功能.包括数值的闪烁左移.闪烁右移.字母显示等操作.

(3)数据采集:AD采样转换等操作.本系统按键操作以及数码管显示使用芯片ZLG7290,使用总线通信.

芯片具有设计简单,寄存器功能强大,使用方便等特点.在此不多做介绍.

2软件程序设计

软件设计初始需要定义一个结构,并声明一个结构体变量KeylistStruct,在结构体设计中的结构变量包括当前状态的索引值KeyStateIndex,还有所需按键控制的索引值,以及一个基于函数的指针结构变量,用于对应其指针指向的函数.

函数指针指向的函数也需要在索引中使用函数名指针变量.函数名如下所示:

Voidcaiyang(void);//采样函数;Voidzuoyi(void);//左移函数;Voidyouyi(void);//右移函数;Voidjiafa(void);//加法函数;Voidjianfa(void);//减法函数;Voidcaidan(void);//菜单函数;Voidfanhui(void);//返回函数;

结构体定义根据需要对数据类型进行定义,本文使用无符号整形变量.

结构体所示如下:

Typedefstruct

{

Uint8keystateindex;Uint8keyleftstate;Uint8keyrightstate;Uint8keyupstate;Uint8keydnstate;Uint8keycrstate;Uint8keybackstate;Void(*currentoperate)();}keyliststruct;

Keyliststruct结构体需要构成一个结构数组,在结构数组里每一个菜单项编辑一个独立的函数,并根据菜单的所对应的多层次菜单项的索引号,本级菜单项的上,下卷动的索引号和左,右卷动的索引号,以及菜单索引和返回索引值,使当前状态索引替换成指向的索引值,并根据索引值对应的*currentoperate()函数的操作号,找到其所需操作的函数,执行currentoperate()函数,多层次菜单数组值size_of_menu需要根据菜单单层数来定义.结构体数组定义如下所示:

Keyliststructcodekeytab[size_of_menu]等于

{

{0,0,1,2,3,4,5(*zuoyi)},{1,0,1,2,3,4,5(*youyi)},{2,0,1,2,3,4,5(*jiafa)},{3,0,1,2,3,4,5(*jianfa)},{4,0,1,2,3,4,5(*caidan)},{5,0,1,2,3,4,5(*fanhui)},

等.

等.

};

主程序或中断函数中可对按键值响应,查询索引菜单所对应的索引值,并执行功能函数.

综上所述为单片机使用索引的菜单查询方式实现按键功能软件设计,从上述的介绍可知每个功能函数在编写的时候是不是有相关性的,修改其中一个函数功能并不影响其他函数功能,减少了函数之间的关联,增加了函数的可移植性,可靠性和可读性.

在使用索引菜单查询方式的软件设计时,需要注意以下几个问题:

(1)在使用这种方式中应该尽量减少菜单层数,从而降低单片机ROM的使用.

(2)功能函数在应用中如果需要传递参数,推荐使用全局信号量或全局标志位变量.

(3)在设计中,功能函数的嵌套具体使用方法依据需要修改即可,这里不做详细介绍.

3结束语

硬件系统设计时产品的“筋骨”,高集成化的设计.多系统的设计在越来越多的产品中得到应用,而且产品设计也将更多的任务放在软件设计中,减少了硬件设计负担,提高人力物力资源的利用,因此一个高可靠性.高可读性.高可移植性的软件设计方式则成为一个产品设计与技术人员的高素质要求,本文介绍的索引菜单查询方式的方法并不仅仅应用在按键功能实现上,还可以应用在屏幕显示多级菜单,数据采样,数字信号处理等设计中,也可以方便的移植到其他的硬件设备中,诸如DSP.ARM.FPGA.NIOSⅡ等系统中.

相关论文

煤矿机械维修方式与维修设计

本文是一篇煤矿机电论文范文,煤矿机电类自考毕业论文开题报告,关于煤矿机械维修方式与维修设计相关在职毕业论文范文。适合煤矿机电及煤炭企。