找回密码
 立即注册
查看: 725|回复: 16

按键识别

[复制链接]
  • TA的每日心情
    奋斗
    昨天 08:17
  • 签到天数: 154 天

    [LV.7]常住居民III

    18

    主题

    602

    回帖

    663

    积分

    高级会员

    打工人

    积分
    663
    发表于 2023-12-19 16:32:34 | 显示全部楼层 |阅读模式
    有没有好点的按键识别程序可以借鉴一下。既不过多占用CPU时间,又能快速响应的。
    打工人
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:17
  • 签到天数: 154 天

    [LV.7]常住居民III

    18

    主题

    602

    回帖

    663

    积分

    高级会员

    打工人

    积分
    663
     楼主| 发表于 2023-12-19 16:34:54 | 显示全部楼层
    顶一下,希望有人分享成熟代码
    打工人
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9499

    回帖

    1万

    积分

    管理员

    积分
    14075
    发表于 2023-12-19 16:37:22 | 显示全部楼层
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:17
  • 签到天数: 154 天

    [LV.7]常住居民III

    18

    主题

    602

    回帖

    663

    积分

    高级会员

    打工人

    积分
    663
     楼主| 发表于 2023-12-19 16:38:48 | 显示全部楼层

    实验箱例程里有?谢谢!我下载看看
    打工人
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:17
  • 签到天数: 154 天

    [LV.7]常住居民III

    18

    主题

    602

    回帖

    663

    积分

    高级会员

    打工人

    积分
    663
     楼主| 发表于 2023-12-19 16:44:57 | 显示全部楼层

    可能我没说清楚,我是想看看独立按键的识别程序。网上也找了好多例程,绝大多数多少判定-延时消抖-再判定的模式,有点浪费CPU时间。想找个其他思路的程序借鉴一下。实验箱里的按键识别程序是矩阵键盘。和独立按键不太一样
    打工人
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情

    7 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    10

    主题

    289

    回帖

    1050

    积分

    金牌会员

    积分
    1050
    发表于 2023-12-19 17:35:57 | 显示全部楼层
    zhudean11 发表于 2023-12-19 16:44
    可能我没说清楚,我是想看看独立按键的识别程序。网上也找了好多例程,绝大多数多少判定-延时消抖-再判定 ...

    一样的,都是需要CPU扫描的,你如果矩阵较小的话可以看看用中断也行
    自信就会温和,温和就会坚定!
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:37
  • 签到天数: 143 天

    [LV.7]常住居民III

    20

    主题

    1093

    回帖

    2603

    积分

    金牌会员

    积分
    2603
    发表于 2023-12-19 18:57:54 | 显示全部楼层
    zhudean11 发表于 2023-12-19 16:44
    可能我没说清楚,我是想看看独立按键的识别程序。网上也找了好多例程,绝大多数多少判定-延时消抖-再判定 ...

    你可以看看安富莱有一个按键例程,通过定时器定时扫描,避免了软件延时消抖,用过几次还不错,支持按键按下 弹起 点击 双击 组合键 之类的事件.只不过那个是基于STM32单片机的例程,,弄懂原理了移植一下就可以了
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-12-19 19:01:14 | 显示全部楼层
    本帖最后由 乘风飞扬 于 2023-12-19 19:09 编辑
    zhudean11 发表于 2023-12-19 16:34
    顶一下,希望有人分享成熟代码
    附件例程供参考,定时每毫秒检测一次按键状态,有按键累加计数器,没有按键清除计数器,连续计数50次表明按键按下并保持50ms,设置状态标志。
    1.         if(!KEY1)
    2.         {
    3.                 if(!Key1_Flag)    //防止重复触发
    4.                 {
    5.                         Key1_cnt++;
    6.                         if(Key1_cnt >= 50)      //50ms防抖
    7.                         {
    8.                                 Key1_Flag = 1;    //设置按键状态,防止重复触发
    9.                                 Key1_Function = 1;
    10.                         }
    11.                 }
    12.         }
    13.         else
    14.         {
    15.                 Key1_cnt = 0;
    16.                 Key1_Flag = 0;
    17.         }
    复制代码

    P1口做按键扫描.zip

    9.26 KB, 下载次数: 17

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-5 08:35
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2140

    积分

    荣誉版主

    积分
    2140
    发表于 2023-12-19 22:22:26 | 显示全部楼层
    本帖最后由 gentleman 于 2023-12-19 22:27 编辑

    我vga信号发生器v0.2 版本写过一个  独立按键扫描

    按键计数    键值判断     

    因为用的是定时器调度  所以几乎感觉和其他任务同时进行的

    截图202312192219307409.jpg


    PWM做 简易 VGA信号发生器 - PWM/144MHz时钟源的PWM/45路PWM+3路CCP/7组不同周期的PWM/DAC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情

    7 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    10

    主题

    289

    回帖

    1050

    积分

    金牌会员

    积分
    1050
    发表于 2023-12-19 23:33:18 | 显示全部楼层
    我又回来了,想了想,布丁橘长那个多功能按键也挺有意思的,你可以借鉴一下
    自信就会温和,温和就会坚定!
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-19 08:07 , Processed in 0.099757 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表