找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机IO口识别按键的接线方法

查看数: 3349 | 评论数: 13 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-3-8 16:46

正文摘要:

如题所示:打算用STM32单片机的IO口去识别按键是否被按下,按键如图所示:3个按键串联为1组,总共4组12个按键。要求用尽量少的IO口和外围器件去识别按键动作。我自己现在是要用8个按键,感觉还可以再减少,但是想不 ...

回复

ID:544776 发表于 2022-3-13 16:15
188610329 发表于 2022-3-13 15:04
在任何一个实际项目中, 按键应该都是最后考虑的东西, 因为实现方法太多了,应该根据实际有的资源,最后决定 ...

长见识了!!
ID:544776 发表于 2022-3-13 16:14
lkc8210 发表于 2022-3-9 23:56
不加二极管只需6个IO

大哥牛逼
ID:624769 发表于 2022-3-13 15:04
在任何一个实际项目中, 按键应该都是最后考虑的东西, 因为实现方法太多了,应该根据实际有的资源,最后决定按键方案,你其他东西都设计好了,
还剩 12个以上IO 就什么都不要想,直接通通独立按键。
如果 还剩 4~6个IO 就用 板凳的方法,
如果 还剩 1个IO 并且,可以ADC 那么就用10楼的方法。
如果 没有剩余IO, 但是有用 TM1650 之类的 LED 驱动芯片,那么直接用 TM16系列LED芯片自带的 按键识别功能,就可以了。
包括IO复用方案,单IO无DAC,电容充放电方案,等等等等,方法很多很多,单纯的讨论按键实现方法,不考虑应用场景,来确定哪个方案好,没有太大的实际意义。
ID:1009968 发表于 2022-3-12 18:23
矩阵键盘四乘三
ID:1006076 发表于 2022-3-11 17:43
用上个ADC口扫描,可以串到你不想要

Y8FPWR9A24@CJB@)Y%`USLP.png (50.17 KB, 下载次数: 58)

Y8FPWR9A24@CJB@)Y%`USLP.png
ID:1009207 发表于 2022-3-11 14:32
矩阵键盘四乘三,这样不对
ID:879809 发表于 2022-3-10 17:50
串电阻用ADC识别,8个键用两个IO口就能实现。
ID:824490 发表于 2022-3-10 14:41
wulin 发表于 2022-3-8 21:13
12个按键3*4矩阵需要7个IO口

确切的说是3*(3+gnd),只要6个IO
ID:800866 发表于 2022-3-10 14:33
如果按你图上画的3个一组,必须是4组的话,就可以用4个ADC口线引脚;每一组接一个STM32的ADC口线,每个按键上加上不同的电阻,根据采样电压不同,区分不同的按键;理论上一个ADC口线就可以接多个按键(理论上1个ADC口线就可以做出12个按键;当然要看看AD采样的精度和键与键之间的电压余量,尽可能的键与键之间余量多些,这样就不至于把键采集错误);
ID:220066 发表于 2022-3-10 09:32
矩阵扫描键盘 3*4 但不是你这样的接法
ID:844772 发表于 2022-3-10 08:56
lkc8210 发表于 2022-3-9 23:56
不加二极管只需6个IO

当年数理逻辑肯定学的好。
ID:161164 发表于 2022-3-9 23:56
不加二极管只需6个IO



加二极管只需4个IO,但要消耗12颗二极管,不合算

原理是每次单片机只拉低一根脚
然后测量其它脚有没有被拉低

ID:213173 发表于 2022-3-8 21:13
12个按键3*4矩阵需要7个IO口

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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