找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机矩阵键盘这部分程序,请问是我理解的这样吗?

查看数: 1948 | 评论数: 12 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-6-1 18:04

正文摘要:

最近在看51单片机,矩阵键盘这部分我有点问题,想问问大家。 就是说,我给这个P2口写了0xf0,那这个值是不是写入了这个P2口的锁存器里?其相应的IO口会表现出1111 0000,应该是这样的吧? 然后按键输入会拉低IO口的 ...

回复

ID:1061677 发表于 2024-6-3 22:13
188610329 发表于 2024-6-3 12:49
你就这样理解, P2  寄存器 有两个,  一个 只读  一个只写。
当你读 P2 的时候,就获得  IO 当前的真实电 ...

OK,这样说感觉也对。
ID:624769 发表于 2024-6-3 12:49
你就这样理解, P2  寄存器 有两个,  一个 只读  一个只写。
当你读 P2 的时候,就获得  IO 当前的真实电平状态。
当你写 P2 的时候,就是让你 P2口  输出你期望的电平状态, 但是受限于IO驱动能力有限,IO口的实际电平会被外部电路影响有所改变, 所以 通过写P2 和 读P2 这个组合动作,可以用来 分析距阵键盘的按键情况。
ID:1109793 发表于 2024-6-3 10:56
yzw846562238 发表于 2024-6-3 08:48
也可以是6个输出2个输入、5个输出3个输入等等组合哦,矩阵很多样式的,也有2*2、2*3等等

2*2有意义?四个IO,直接用4个按键接地可以不
ID:1061677 发表于 2024-6-3 10:05
wswkaishi 发表于 2024-6-2 20:30
矩阵键盘的原理是八个引脚有4个是输入,四个是输出。然后让这四个输出一次输出高电平,然后检测四个输入哪 ...

这样理解好像确实没啥问题,但是这个51它又不想stm32可以用程序设置IO口为输入模式还是输出模式。所以我想问的是给P2赋值0xf0是不是就是意味着把这个值写在了锁存器中,然后switch(P2)应该是读外部引脚的值。
ID:458247 发表于 2024-6-3 08:48
wswkaishi 发表于 2024-6-2 20:30
矩阵键盘的原理是八个引脚有4个是输入,四个是输出。然后让这四个输出一次输出高电平,然后检测四个输入哪 ...

也可以是6个输出2个输入、5个输出3个输入等等组合哦,矩阵很多样式的,也有2*2、2*3等等
ID:1123420 发表于 2024-6-2 21:42
写没写入锁存器要看原理图是否有连接的有,你这种情况一般不可能将锁存器和按键放在同一个IO口,你可以去看看原理图的按键IO口在哪里
ID:1122373 发表于 2024-6-2 21:11
你这个相当于只判断行了。
以这个为例,它用的是行列式扫描法,先判断列,在判断行。
先判断第一列,令P13为0,其他引脚为1。当S1按下时,P17被P13拉为低电平,否则P17为高电平,以此类推判断S5、S9和S13。(延时的作用是为了消抖)

屏幕截图 2024-06-02 210122.png (198.84 KB, 下载次数: 23)

屏幕截图 2024-06-02 210122.png

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:1122373 发表于 2024-6-2 20:59
你这个只能判断行吧
ID:619694 发表于 2024-6-2 20:30
矩阵键盘的原理是八个引脚有4个是输入,四个是输出。然后让这四个输出一次输出高电平,然后检测四个输入哪个是高电平,这样就可以对应出是按下的哪个按键。个人理解
ID:1109793 发表于 2024-6-2 12:42
只有这点就是每个IO接了一个开关,不是啥矩阵

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

Powered by 单片机教程网

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