打印
[应用方案]

C语言程序检测按键的几种用法

[复制链接]
595|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
rosemoore|  楼主 | 2023-7-15 22:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按键,有多种用法,
1. 独立按键:按一个,对应一个动作,可以用扫描,也可用 中断方式;2. 矩阵按键:常用的 4*4 = 16, 3*8 = 24,... 主要在于将小数按键进行组合,达到 以少生多 的控制效果,节约 IO 控制端口;
3. 长按 短按:这个,是目前较为常用的一种思路,一个按键形成 多个 用途:给出MCU C语言代码框架,方便大家使用;


void Key()
{
      uchar count_x;                   // 定义 临时 变量,用于统计按键的 计时长度;
     if( !K1 )                               // 按键 按下;
    {
         Delay_Nms(30);               // 防抖;
         if(!K1)                           // 确定 按键 真实 按下;
         {
               count_x = 0;           // 记数清 0;
              do{     
                   count_x ++;        // 记录 长按 短按;
                  Delay_Nms(10);
                   if( count_x >= 20) break;    // 记到 20就封顶;
               } while(!K1);          // 设计到 1000ms ,就松手,就退出 计数;

      // 长按 短按 的 时间分界点:(0----20---30)
      if(count_x <= 20)  // 短按;   
       {
          ;         //短按对应 程序体1;
       }
       else      // 长按;
      {
           ;        //长按对应 程序体2;
        }
      }
    }
}

4. 计数按键:这个,通常会结合定时器使用,按下去后,在一个指时时间类,计下按下按键的次数,当时间停止后,对应按键次数,进入对应的 指定模块运行;

使用特权

评论回复
沙发
中国龙芯CDX| | 2023-7-24 13:19 | 只看该作者
检测按键其实就是检测高低电平,一般得消抖处理

使用特权

评论回复
板凳
LOVEEVER| | 2023-7-25 07:48 | 只看该作者
楼主这个还是按键的应用挺全的

使用特权

评论回复
地板
小小蚂蚁举千斤| | 2023-7-25 08:31 | 只看该作者
按键是最基本的IO控制

使用特权

评论回复
5
szt1993| | 2023-7-25 11:22 | 只看该作者
矩阵键盘还是利用逐行扫面进行识别的

使用特权

评论回复
6
小夏天的大西瓜| | 2023-7-25 12:22 | 只看该作者
采用定时中断进行按键状态检测。

使用特权

评论回复
7
AdaMaYun| | 2023-7-26 13:13 | 只看该作者
按键其实就是控制IO的过程

使用特权

评论回复
8
chenci2013| | 2023-8-7 07:33 | 只看该作者
硬件按键扫描是一种直接检测按键状态的方法,通过连接按键到单片机的输入引脚,然后通过读取输入引脚的电平状态来检测按键的按下和释放状态。

使用特权

评论回复
9
benjaminka| | 2023-8-7 08:18 | 只看该作者
中断方法利用硬件中断来检测按键状态的变化。

使用特权

评论回复
10
jackcat| | 2023-8-7 16:34 | 只看该作者
使用硬件中断来检测按键 。通常需要配置中断触发条件和中断处理函数。

使用特权

评论回复
11
iyoum| | 2023-8-7 17:45 | 只看该作者
当按键被按下或释放时,会触发一个中断,程序可以在中断处理函数中进行相应的操作。

使用特权

评论回复
12
averyleigh| | 2023-8-7 18:10 | 只看该作者
通过计时器来检测按键状态的方法              

使用特权

评论回复
13
ingramward| | 2023-8-7 22:39 | 只看该作者
软件按键扫描的优点是代码简单,但是需要对按键的按下和释放时间进行精确计算。

使用特权

评论回复
14
ccook11| | 2023-8-14 10:56 | 只看该作者
轮询方式               

使用特权

评论回复
15
lzbf| | 2023-8-14 22:51 | 只看该作者
在C语言程序中,可以使用硬件按键扫描、软件按键扫描和键盘事件处理等方法来检测按键的按下和释放状态

使用特权

评论回复
16
loutin| | 2023-8-15 20:08 | 只看该作者
可以使用外部库来简化按键检测的过程。

使用特权

评论回复
17
iyoum| | 2023-8-15 20:45 | 只看该作者
通过设置一个计时器,在按键按下和释放时计时器的时间差不同,从而判断按键的状态。

使用特权

评论回复
18
bestwell| | 2023-8-17 17:58 | 只看该作者
使用软件延时来检测按键状态。通过在循环中添加适当的延时,然后使用函数 来检查键盘缓冲区的状态

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

1332

帖子

2

粉丝