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

按键识别

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:488
  • 最近打卡:2025-05-02 07:02:30
已绑定手机

27

主题

693

回帖

1954

积分

金牌会员

打工人

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:488
  • 最近打卡:2025-05-02 07:02:30
已绑定手机

27

主题

693

回帖

1954

积分

金牌会员

打工人

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:488
  • 最近打卡:2025-05-02 07:02:30
已绑定手机

27

主题

693

回帖

1954

积分

金牌会员

打工人

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:488
  • 最近打卡:2025-05-02 07:02:30
已绑定手机

27

主题

693

回帖

1954

积分

金牌会员

打工人

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-12-19 19:01:14 | 显示全部楼层
本帖最后由 乘风飞扬 于 2023-12-19 19:09 编辑
zhude*** 发表于 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, 下载次数: 132

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 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)

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 00:47 , Processed in 0.172522 second(s), 107 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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