qq_36230750
我叫赵怡彬
采纳率85.7%
2016-10-09 00:38

单片机编程问题,键盘按键问题

已采纳

用51写个程序按不同的按键会实现不同的功能。那把表示判断按键的if语句一定要放在包涵整个主函数的while语句里吗?不过这样的话,实行不同功能,也是要用到while(1)的,这样while里面嵌套while可以吗?会不会进了一个while之后,出不来了?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • px_528 Max的杂物仓 5年前

    其实,我刚才说的思想是可以解决这个问题的,也就是说,每个循环里面,都先读取一次按键值,并且用一个变量存储起来,这样在每个循环的后面的阶段,就不用再读取按键值了,而只是对这个变量的值进行判断就知道案按下的按键了。

    然后后面的事情如何一直做,可以用状态切换来做,用一个变量表示状态,根据这个变量的不同值进入不同状态执行,切换界面模式,所以
    while(1)
    {
    读取按键值并保存到变量x;(代表了所有按键的情况,不会的话可以用多个变量存储,k1,k2,k3……)

    然后对存在变量中的值进行判断
    
    确定一个状态y
    
    根据y
    执行对应操作
    

    }

    点赞 1 评论 复制链接分享
  • px_528 Max的杂物仓 5年前

    在while中读取按键值,用一个变量表示读取的值,然后用if或者switch来更具不同的值来写不同的操作就可以了,不用多个while。
    所以结构就是
    while(1)
    {
    x=读取按键;
    switch(x)
    {
    case 1:

    case 2:
    
    case 3:
    ……
    }
    

    }

    点赞 评论 复制链接分享

相关推荐