[STC单片机] 本人初学者,卡在了按键这里,希望大神能指点指点

[复制链接]
1756|19
 楼主| 一个小黄人 发表于 2016-8-24 20:41 | 显示全部楼层 |阅读模式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 一个小黄人 发表于 2016-8-24 20:43 | 显示全部楼层
上面两幅图是按键的连接,我尝试了很多方法,就是不知道怎么读取按键值。希望有大神能帮我这个小白指点一下,在此谢谢了!!
冰零分子 发表于 2016-8-24 21:07 | 显示全部楼层
矩阵键盘一般都是行至高电平后判断哪一列被拉低

由行列坐标判断是哪个按键按下,总体思想就是这样
kk118a 发表于 2016-8-24 21:33 | 显示全部楼层
6*4的矩阵
jackhwang 发表于 2016-8-25 08:11 | 显示全部楼层
既然是初学,没必要搞这么复杂的矩阵键盘。你可以通过跳线,先组合个3*3的矩阵。按楼上说的原理来编写。
datouyuan 发表于 2016-8-25 09:49 | 显示全部楼层
搜索关键词"5个IO口做25个按键"
应该能帮到你.
 楼主| 一个小黄人 发表于 2016-8-25 22:25 | 显示全部楼层
datouyuan 发表于 2016-8-25 09:49
搜索关键词"5个IO口做25个按键"
应该能帮到你.

谢谢您的回复,我还是不太懂。感觉做到这里都有点想放弃了...做不出来
 楼主| 一个小黄人 发表于 2016-8-25 22:27 | 显示全部楼层
jackhwang 发表于 2016-8-25 08:11
既然是初学,没必要搞这么复杂的矩阵键盘。你可以通过跳线,先组合个3*3的矩阵。按楼上说的原理来编写。 ...

可是,摆在我面前的就是这么一块板子,没得改,您会写这样的按键吗??能指点一下吗?谢谢。
 楼主| 一个小黄人 发表于 2016-8-25 22:27 | 显示全部楼层

是啊,有20个按键,只用了6个io口...
 楼主| 一个小黄人 发表于 2016-8-25 22:28 | 显示全部楼层
冰零分子 发表于 2016-8-24 21:07
矩阵键盘一般都是行至高电平后判断哪一列被拉低

由行列坐标判断是哪个按键按下,总体思想就是这样 ...

这个不同于矩阵按键吧,矩阵按键我会,但是这个....能指点一下吗??
datouyuan 发表于 2016-8-26 09:05 | 显示全部楼层
一个小黄人 发表于 2016-8-25 22:25
谢谢您的回复,我还是不太懂。感觉做到这里都有点想放弃了...做不出来

假如几千个文字加图你不能理解.
那我们只有几十个字怎么能帮到你.
datouyuan 发表于 2016-8-26 09:07 | 显示全部楼层
datouyuan 发表于 2016-8-26 09:05
假如几千个文字加图你不能理解.
那我们只有几十个字怎么能帮到你.

多搜索一下,说不定有现成的代码.
lym_96 发表于 2016-8-26 09:13 | 显示全部楼层
P10输出L,其它输出H。再读P11-P15,如果有L值,则最左列的某键被按下
lym_96 发表于 2016-8-26 09:20 | 显示全部楼层
P10输出L,其它输出H。再读P11-P13,如果有L值,则第一行的某键被按下
冰零分子 发表于 2016-8-26 09:31 | 显示全部楼层
一个小黄人 发表于 2016-8-25 22:28
这个不同于矩阵按键吧,矩阵按键我会,但是这个....能指点一下吗??

原理是一样的,只不过这种是端口复用了,在不同时时刻分别做输出,输入
jackhwang 发表于 2016-8-26 10:27 | 显示全部楼层
一个小黄人 发表于 2016-8-25 22:27
可是,摆在我面前的就是这么一块板子,没得改,您会写这样的按键吗??能指点一下吗?谢谢。 ...

通过J12、J5跳线组个3*3矩阵按键先练练手吧。
 楼主| 一个小黄人 发表于 2016-8-26 10:53 | 显示全部楼层
jackhwang 发表于 2016-8-26 10:27
通过J12、J5跳线组个3*3矩阵按键先练练手吧。

矩阵键盘我是真的会...已经玩过了,就是不会读这里按键的值
 楼主| 一个小黄人 发表于 2016-8-26 10:54 | 显示全部楼层
冰零分子 发表于 2016-8-26 09:31
原理是一样的,只不过这种是端口复用了,在不同时时刻分别做输出,输入 ...

怎么设置他输入输出啊....
 楼主| 一个小黄人 发表于 2016-8-26 13:59 | 显示全部楼层
datouyuan 发表于 2016-8-25 09:49
搜索关键词"5个IO口做25个按键"
应该能帮到你.

你有51的程序吗?发我一个,谢谢
embassy 发表于 2016-10-10 17:04 | 显示全部楼层
本帖最后由 embassy 于 2016-10-10 17:09 编辑

很简单,  
KEY1=1;
if(KEY2==1)
{
   //最上一行,第一个被按下
}
if(KEY3==1)
{
  //最上一行,第二个被按下
}
.....
以此类推
看不出,硬件这样设计有啥用,有点复杂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

66

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部