单片机一个按键控制多状态的问题

2019-07-15 17:29发布

void keyscan()
{if(k==0)
   {delay(10);
    if(k==0)
      {sec++;
       if(sec>=60)
       sec=0;
       }
  while(k==0)
  display();}
  if(kmin==0)
    {delay(10);
     if(kmin==0)
       {min++;
        if(min>=60)
        min=0;
        }
  while(kmin==0)
  display();
     }
  if(khour==0)
    {delay(10);
     if(khour==0)
       {hour++;
        if(hour>=60)
        hour=0;
        }
  while(khour==0)
  display();
  }
}
我的问题是本段使用了三个按键k,kmin,khour。有没有那位朋友可以帮忙修改下,使用k一个按钮控制这三个功能,例如按下的时间长短,按次数等。修改好后,本人将共享该套数字时钟程序。谢谢各位啦。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
Jack315
1楼-- · 2019-07-15 22:40
LZ 或可考虑使用状态机。具体的思路是软件监视按键的状态,在按键有动作时,向状态机发出按下、长时间按下以及释放等事件。这些事件触发状态机状态的改变,并执行相应的功能……

提示:
状态机部分的代码可使用 IAR 的 visualState 工具来完成。
爱的意义
2楼-- · 2019-07-16 02:22
谢谢分享了。。。。

一周热门 更多>