当前位置:网站首页>单片机人机交互--矩阵按键
单片机人机交互--矩阵按键
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【下方分享一些免费教程资料,大家感兴趣的可以看一下】:
边栏推荐
猜你喜欢
地下管廊可视化管理系统搭建
SQL injection base
如何便捷获取参考文献的引用格式?
Dump file generation, content, and analysis
[Data Visualization] Chart Design Principles
Volatile和CAS
盘点美军的无人机家底
EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monocular Object Pose Est...
WebView2 通过 PuppeteerSharp 实现RPA获取壁纸 (案例版)
如何做专利挖掘,关键是寻找专利点,其实并不太难
随机推荐
Web APIs BOM- 操作浏览器之综合案例
Is there a way out in the testing industry if it is purely business testing?
"NIO Cup" 2022 Nioke Summer Multi-School Training Camp 3 DF Problem Solving
力扣------使用最小花费爬楼梯
11. Custom Converter
微信小程序获取当前页面的url和参数
NOR FLASH闪存芯片ID应用之软件保护场景
Server Tips
Design and implementation of flower online sales management system
【考虫 六级英语】语法课笔记
Based on the SSM to reach the phone sales mall system
9. Rest style request processing
图片懒加载(纯手写)
力扣------用栈操作构建数组
全排列思路详解
线上突然查询变慢怎么核查
【.NET Core】使用 NPOI 读写Excel 文件
web 性能提升(将持续更新……)
leetcode 前K个高频单词
分布式.性能优化