• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

矩阵键盘和独立按键

464707427 2018-07-14 浏览量:1670
请问51单片机中如何从矩阵键盘中分解出独立按键?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 0008.png

    根据电路原理图,键盘扫描方法是:行线P10~P13为输出线,列线P14~P17为输入线。一开始单片机将行线(P10~P13)全部输出低电平,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低电平时调用延时程序以此来去除按键抖动。延时完成后再判断是否有低电平,如果此时读入列线数据还是有低电平,则说明确实有键按下。最后一步确定键值。现在我们以第二行的S5键为例,若按下S5后我们应该怎么得到这个键值呢?当判断确实有键按下之后,行线轮流输出低电平,根据读入列线的数据可以确定键值。首先,单片机将P10输出为低电平,其它P11~P13输出高电平,此时读取列线的数据全为高电平,说明没有在第一行有键按下;其次,单片机将P11输出低电平,其它P10、P12、P13仍为高电平,此时再来读取列线数据,发现列线读到的数据有低电平,数值为1011(0x0B),如果我们的键盘布局已经确定,那么0x0B就代表S5的值了。转到S5键功能处理子程序就可以达到目的。​

    • 发布于 2018-07-14
    • 举报
    • 评论 0
    • 3
    • 0

其他答案 数量:18
  • 一般是使用定时扫描方式,这样实时性好一点,​当按​键按下时,与此键相连的行线与列线导通,行线在无按键按下时处在高电平。如果所有的列线都处在高电平,则按键按下与否不会引起行线电平的变化,因此必须使所有列线处在电平。这样,当有按键按下时,改键所在的行电平才回由高变低。就能判断相应的行有键按下。
    • 发布于2018-07-14
    • 举报
    • 评论 0
    • 1
    • 0

  • 其实不用扫描方式,一端置位,一端查询即可。
    • 发布于2018-07-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 矩阵键盘都是通过扫描方式获取按键位置
    • 发布于2018-07-14
    • 举报
    • 评论 0
    • 0
    • 0

  • QQ截图20180715091926.png

    这是我之前画的一个矩阵键盘的电路图,通过下面的短线帽,可以选择相应的每一列作为独立键盘,希望对你有帮助。

    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 4*4键盘扫描时 先拉低的一个端口 比如P10 那么另外检测的端口P14~p17 相对来说 就是独立的键盘了
    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 采集矩阵按键信息,最简便的方法就是“反转法”,使用单片机的一个端口,比如P2口。大致就是单片机先将按键的“行”设置为高电平,将“列”设置为低电平,然后去读取端口状态,这个时候如果没有一个按键被按下,则P2口的状态是1111 0000 = 0XF0。如果按下了某一个按键,则在P2口的底四位中就能确定是哪一行的按键中有一个被按下了,这个时候只能确定一行中的装太,然后将“行”设为底电平,将“列”设为高电平,再去读取状态,这样就可以确定是哪一个按键按下了。
    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 使用扫描的方式,看看51的例程和对应的开发板原理图就好了
    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 矩阵键盘和独立按键是两种完全不同的驱动方式,矩阵靠行列扫描驱动,独立按键靠单个IO驱动,无法转换
    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 矩阵键盘和独立按键是两种完全不同的驱动方式,矩阵靠行列扫描驱动,独立按键靠单个IO驱动,无法转换
    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 先确定横坐标,再确定纵坐标,一个平面中知道了(xy)的值了就确定具体的点了。
    • 发布于2018-07-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 矩阵键盘采用的是扫描的方式。
    • 发布于2018-07-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接将矩阵键盘的某个键的两个连接引脚引出来,一端连接GND,一端接GPIO即可。
    • 发布于2018-07-30
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

矩阵键盘和独立按键