新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 按键与菜单在嵌入式系统中的设计与应用

按键与菜单在嵌入式系统中的设计与应用

作者:时间:2012-03-21来源:网络收藏

4.采用专用的键盘芯片

采用专用芯片设计的键盘接口电路,具有操作简便,可靠性好等优点,但会提高产品造价,所以在实际使用时可根据需要进行选取。8279作为常用的并口键盘控制芯片可控制8×8的键盘矩阵,但其本身为并口传输,而且控制线较多,所以占用很多外部资源。ZLG7290为新型的I2C通讯的键盘、LED控制芯片,最多可控制8×8的键盘矩阵。由于采用了串行总线的通讯方式,所以占用I/O资源少,效率高。关于采用芯片设计键盘的电路与操作可参考有关数据手册,在此不再赘述。

随着半导体工业的发展,CPLD以其功能强大、开发成本低和保密性好等优点已经成为硬件设计中不可缺少的组成部分之一。在数字电路设计中,设计者完全可以根据自己的实际需要编写一片具有键盘扫描、液晶驱动、打印控制等诸多功能的CPLD芯片。

三、的结构、程序设计模式及键盘的搭配设计

与键盘一起可构成良好的人机交互界面,与LED和其它提示信号相比采用液晶提供的方式可提供给用户更多的帮助信息,更友好的交互方式。但如果菜单的结构设计混乱,提示信息不明确,则可能会让用户不知所措,会比没有菜单的系统更难以使用,所以良好的菜单与程序流程设计是产品成功的重要保障。菜单设计务必要做到结构清晰、功能明确,帮助语句无歧义。良好的菜单设计除包括基本的工作流程选择外,还应包括重要决策的再次确定和功能返回,以防止操作人员的失误。在设计中对不同的功能可根据实际情况分组,采用子菜单方式,以简化人机操作界面。“一键多意”式设计一定要注意区分“抖动”与“双击”——它们的时间间隔有着显著的差别。在事件的处理上也分为检测到事件即进行处理和待按键弹起后再进行处理两种,可根据实际需要进行选取。

具有菜单提示的系统因交互信息丰富可采用两套按键式结构,一套用来执行选择功能即上、下、左、右键,另一套用来输入数据、确定操作。减少按键的数量可降低产品的操作难度,良好的按键、菜单搭配还可防止产品的误操作,屏蔽不应执行的动作,提高产品的容错性。在实际设计中还要采用程序流程图辅助设计。

在裸机编程中,菜单的结构一般与程序的结构相对应,多采用按键事件触发式程序设计结构,在C语言中通常采用的按键散转结构是switch case 结构。值得说明的是嵌入式C语言设计与台式机不同,在没有使用OS的中嵌入式程序为一个超级循环结构,即程序一般一直运行直至系统掉电。所以在执行完散转功能后,程序不是退出而是返回到某个初始状态等待新的命令。为了防止程序受干扰误入不正常的选择状态可在的正常的散转功能后加入 “default : *(void(*)())0)(); ”语句,该语句使程序返回到最初状态,即软复位操作。在不启用的中断入口处,以及检测到某些错误时也可使用“*(void(*)())0)();”语句使系统软复位。

中,与裸机编程相对应的是操作系统的使用,在资源比较丰富的系统中常采用RTOS,在RTOS中按键与菜单的组合常常用来进行任务的切换。使用RTOS的好处主要是堆栈的管理、中断的重入和不同任务之间的切换等问题都由系统来完成,而设计者只专注于任务的设计,可以缩短研发周期。但RTOS的使用并不是没有代价的,首先RTOS的使用并不是免费的,而且操作系统本身也会占用MCU资源,,所以在很多小型单片机上并不适用。

另一种设计模式是时间触发式模式,时间触发式模式是基于定时器中断设计的任务调度模式,它采用函数的指针方式调度满足条件的任务执行。与RTOS相比,时间触发式模式更适合功能较小的小型MCU(如51系列),它有更好的可预测性,占用更少的CPU资源,程序结构更明确、透明度高。在这种模式下,由定时器每隔一定的时间间隔调度刷新函数,确定可执行的函数(功能),再通过主函数中的调度函数根据函数指针依次调用具备条件的函数。在调度器(调度函数)中还可加入设置CPU闲置的语句,可在无任务时使CPU处于idle状态,以降低系统的功耗和提高抗干扰的能力。在这种小型系统中,因功能相对简单,菜单结构也可设计的尽量简单,明确提出可执行的任务,减少CPU在刷新显示上的时间。按键扫描子程可作为一项任务由调度器每隔一定的时间间隔调度,如果两次调用的时间间隔大于5ms则可省略防抖功能。按键信息在这里同样不会引起功能的立即执行(程序的跳转),而是改变某个函数(功能)的条件位,使其在下次调度中得到执行。由于调度器两次调度的时间间隔很短,所以并不会有明显的延误现象,可以满足大多数的应用场合。

四、结束语

针对不同的硬件,本文介绍了在中按键的软、硬件设计及不同设计的优缺点,并讨论了菜单设计和程序模式之间的关系。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭