求高人指点按键扫描的思想

2020-01-30 13:57发布

本人是刚接触单片机的菜鸟,现在想做个小模块。
是这样的,有A,B,C三件事,通过一个按键在A,B,C之间选择,当按1下,执行A;再按1下,执行B;再按1下,执行C;再按1下,又回到A.其中有个D函数是A,B,C都得调用它,也就是A要完成A的事要调用D,B要完成B的事要调用D,C要完成C的事要调用D;同时我用马老的状态机原理编了个键盘扫描的程序的程序可以用。
希望高人能指点下实现这些功能应该怎样弄
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
jswd0810
1楼-- · 2020-01-30 18:56
 精彩回答 2  元偷偷看……
xslff
2楼-- · 2020-01-30 20:25
本帖最后由 xslff 于 2013-3-28 22:48 编辑
jswd0810 发表于 2013-3-28 20:15
你将A、B、C、D分别做成函数呀,在设置一个变量Key_num来统计按下1键的次数,当Key_num=4时,Key_num清零
v ...


void main()
{
     while(1)
    {
        key_scan();
        switch(Key_num)
        {
            case 1:
                A();
                D();
            break;
            case 2:
                B();
                D();
            break;
            case 3:
                C();
                D();
            break;
            default:
            break;
         }
     }
}
jswd0810
3楼-- · 2020-01-31 02:23
xslff 发表于 2013-3-28 22:30
void main()
{
     while(1)

呵呵,不好意思,全是A()了,不过,D函数不应该在那儿吧?
xslff
4楼-- · 2020-01-31 06:02
jswd0810 发表于 2013-3-28 22:36
呵呵,不好意思,全是A()了,不过,D函数不应该在那儿吧?

呵呵,初学C,见笑了,已经改过来了,谢谢提醒!
jswd0810
5楼-- · 2020-01-31 07:15
xslff 发表于 2013-3-28 22:49
呵呵,初学C,见笑了,已经改过来了,谢谢提醒!

这种地方也不对
        case 1:
                A();
                D();
            break;
应该是这样吧,这样好理解一些
        case 1:
            {
                 A();
                 D();               
            }
break;
limmy321
6楼-- · 2020-01-31 12:09
 精彩回答 2  元偷偷看……

一周热门 更多>