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

按键识别

[复制链接]
  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 183 天

    [LV.7]常住居民III

    18

    主题

    609

    回帖

    793

    积分

    高级会员

    打工人

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

    使用道具 举报

  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 183 天

    [LV.7]常住居民III

    18

    主题

    609

    回帖

    793

    积分

    高级会员

    打工人

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

    使用道具 举报

    该用户从未签到

    567

    主题

    9987

    回帖

    1万

    积分

    管理员

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

    使用道具 举报

  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 183 天

    [LV.7]常住居民III

    18

    主题

    609

    回帖

    793

    积分

    高级会员

    打工人

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

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

    使用道具 举报

  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 183 天

    [LV.7]常住居民III

    18

    主题

    609

    回帖

    793

    积分

    高级会员

    打工人

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

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

    使用道具 举报

  • TA的每日心情
    擦汗
    17 小时前
  • 签到天数: 185 天

    [LV.7]常住居民III

    10

    主题

    318

    回帖

    1216

    积分

    金牌会员

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    9 小时前
  • 签到天数: 170 天

    [LV.7]常住居民III

    21

    主题

    1254

    回帖

    3057

    积分

    论坛元老

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

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

    使用道具 举报

  • TA的每日心情
    奋斗
    9 小时前
  • 签到天数: 165 天

    [LV.7]常住居民III

    27

    主题

    1457

    回帖

    4536

    积分

    论坛元老

    积分
    4536
    发表于 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, 下载次数: 30

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    12 小时前
  • 签到天数: 153 天

    [LV.7]常住居民III

    29

    主题

    560

    回帖

    2208

    积分

    荣誉版主

    积分
    2208
    发表于 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的每日心情
    擦汗
    17 小时前
  • 签到天数: 185 天

    [LV.7]常住居民III

    10

    主题

    318

    回帖

    1216

    积分

    金牌会员

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-17 18:32 , Processed in 0.076672 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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