当前位置:网站首页>单片机人机交互--矩阵按键
单片机人机交互--矩阵按键
2022-08-11 00:23:00 【an520_】
按键是一种常开型按钮开关,与单片机的常见接法如图所示。按键未按下时两个触点断开,单片机I/O口输入高电平;当按键闭合时,I/O口输入低电平。
一、按键讲解
当I/O口为P0口时,由于没有内部上拉电阻,所以必须外接上拉电阻,当I/O口为P1、P2和P3口时,由于内部已有上拉电阻,因此可省略外接的上拉电阻。
二、按键消抖
单片机系统中所使用的键盘都是机械式的弹性按键,因为存在机械触点的弹性作用,在按键闭合和弹起的瞬间都会出现抖动,如图所示。按键抖动一般会持续5~10ms,为使一次按键仅被处理一次,必须消除按键抖动。消除按键抖动可以采用软件消抖或硬件消抖。
软件消抖指在检测到有按键闭合时,延时一小段时间之后再次检测,如果仍然检测到按键闭合,则认为按键真正闭合。
硬件消抖方法
1.R-S触发器
一旦有键按下,触发器立即反转,触点的抖动便不会再对输出产生影响,按键释放时也一样。
2.电容滤波
将电容并联在按键的两端,利用电容放电的延时特性,将产生抖动的电平通过电容吸收掉,从而达到消抖的作用;
三、独立按键
独立键盘指每个按键都占据一个独立的引脚。
四、矩阵按键
同一行上的所有按键都连接到一个引脚,同一列上的所有按键都连接到一个引脚。
(1)列扫描方式
所有行线都输出高电平,列线依次输出低电平;查询该列上行的值,若为0,则说明该行上的按键被按下;若该列上所有行的值都为1,则进行下一列行值的查询;循环往复。
(2)反转法
所有行线都输出0,查询列线上的值,若某列线上的值为0,则说明该列线上的按键被按下;然后所有列线都输出0,查询行线上的值,若某行线上的值为0,则说明该行线上的按键被按下;从而确定某行某列的按键被按下。
五、程序举例
【学习技术大群:197416462】
【网盘免费资料包,大家需要的自行领取】:
嵌入式物联网 22个STM32项目、大赛作品,【华清远见发放资料包】http://makerschool.mikecrm.com/f4wjYBB【下方分享一些免费教程资料,大家感兴趣的可以看一下】:
边栏推荐
- Dump文件生成,内容,以及分析
- 盘点美军的无人机家底
- [Excel知识技能] 将“假“日期转为“真“日期格式
- 【考虫 六级英语】语法课笔记
- Lens filter---about day and night dual-pass filter
- 分库分表ShardingSphere-JDBC笔记整理
- The Missing Semester of Your CS Education
- 两个链表的第一个公共节点——LeetCode
- [Excel knowledge and skills] Convert "false" date to "true" date format
- electron -autoUpdater 更新
猜你喜欢
随机推荐
Volatile和CAS
2022.8.10-----leetcode.640
Based on the SSM to reach the phone sales mall system
云原生-FRP内网穿透(详解)使用云服务器将内网集群服务暴露至公网(二)
微信小程序强制更新版本
UOJ#749-[UNR #6]稳健型选手【贪心,分治,主席树】
Special class and type conversion
【C语言】探索数据的存储(整形篇)
Design and implementation of flower online sales management system
12. 处理 JSON
Jvm.分析工具(jconsole,jvisualvm,arthas,jprofiler,mat)
NOR FLASH闪存芯片ID应用之软件保护场景
App regression testing, what are the efficient testing methods?
"NIO Cup" 2022 Nioke Summer Multi-School Training Camp 2 DGHJKL Problem Solution
Call activity of Activiti7 sub-process
力扣每日一题-第52天-387. 字符串中的第一个唯一字符
【mysql】mysql分别按年/月/日/周分组统计数据
91.(cesium之家)cesium火箭发射模拟
如何利用原生JS实现回到顶部以及吸顶效果
Qt入门(六)——抽奖系统的实现