仪器仪表多功能菜单设计与按钮操作

       仪器仪表在设计中少不了用户界面的设计,菜单界面作为人机交互的重要方式,在设计中也需要慎重考虑。

下面以实际设计为例,介绍几种设计多功能菜单的设计模式。

背景: 电力监控仪器是常见的工控设备,常见用于家庭电费电能计量、机场、工业生产基地、国家智能电网等众多场合。现在需要设计一款智能电表,如应用在国家电网上面,就需要对三相线电压、相电压、三相电流、功率(有功、无功、视在功率)、高次谐波、功率因素、不平衡度、电压合格率、输入输出(I/O)、参数最值、频率等众多参数进行检测并上传至用户界面进行人机交互。

工具: 常见的液晶LCD或者段码液晶(定制好的那种款式)。在这里说明一下为什么不用那种触摸屏或者比较智能化的屏幕。在工业用地环境仪器容易受到电磁干扰,会使触摸屏操作不灵敏或者出现不可控现象,因此在工业应用环境目前大多数还是使用普通液晶屏。另外一项工具就是普通按键。

1.一级菜单划分

       首先对功能进行划分,大致分为多少个GUI界面,在上面的实际问题中,可以分为 GUI初始化I界面,电流菜单、电压菜单、功率因素菜单、谐波菜单等一些列的菜单。分别对这些菜单进行GUI赋值。将初始菜单开始标记:GUI=0。电流菜单GUI=1,电压菜单GUI=2,功率菜单GUI=3。这样一直赋值下去,进行标记,大致能够分出多少个一级菜单了。

2. 按键复用方式菜单切换

       我们在使用不同的仪表仪器时或者在我们使用手机也是一样的效果,同一个按键在不同菜单下作用不同。就像windows的一些按键在一个软件里一个功能,在另外的软件里功能也不一样,这就是一种多态。(扯得有点远了)我们可以理解成这就是按键的功能复用,在本示例中,比如在电压菜单下是负责进入有功功率菜单的,但是此按键在谐波菜单下就是数值键入,从主控部分获取高次谐波的数值。具体怎么实现的呢?可以这么理解:假设一共有3个按键可以使用,分别为key1、key2、key3。采用中断的方式获取键值,对应的键值分别为keyval=1、keyval=2、keyval=3。通过keyavl数值区分不同按键,而在菜单函数里面可以根据keyval数值进行下一步动作。代码如下:

void App_Key1_ISR(void)
{
    keyval=1;
}
void App_Key2_ISR(void)
{
    keyval=2;
}
void App_Key3_ISR(void)
{
    keyval=3;
}

在一级菜单里面进行keyval数值判断:比如在功率菜单里面,代码如下:

void GUI_P(void)
{  
   flag=0;
   clearLCD();
    while(1)
    {
        displayInitU();
        switch(keyval)
        {
            case 1: flag=1;keyval=0;DisplayKW();break;//显示有功或者重新给GUI赋值进入下一级才菜单或者返回等操作(keyval记得及时清零)
            case 2: flag=1;keyval=0;DisplayKVAR();break;//显示无功功率其它功能同上
            case 3:flag=1; keyval=0;DisplayKV()  ;break;
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值