C语言,4X4矩阵键盘怎么判断有再次按键发生?

就是矩阵键盘第一次按键后一直处于未释放的状态,我想在当第二次按键,即再次按键的时候执行某段代码,这个应该怎么办到?
这个第二次按键,再次按键的时机该怎么写?
我是想让矩阵键盘+数码管能实现按几个键就能显示几位数,比如我按矩阵键盘的1和2,数码管能显示12,按1,2,3就能显示123
本来我打算先用数组存放按键的值再转换成对应的整数的,代码中啊数组a[n]中的n用到了n++,谁知数码管要连续显示就得要按键一直循环不释放,也导致了n的n++在一次按键中都被无限循环至最大了,无法再次存第二次按键的值了...我现在就想再键盘真正被按第二次时才执行n++该怎么操作?

你在程序检测到按键后,加个延时去抖,不要加松手检测。然后执行第一个按键相对应的程序。
然后继续按键扫描。注意这里说的是继续,也就是继续往下检测。否则你的程序就只能执行第一个按键所对应的程序了。这样,就能检测到你第二次按键的键值了。
当然,这个扫描是循环的。也就是说即使你第二次按的按键已经扫描完了,循环扫描任然能检测到。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-17
你好,楼主:
这个好办,你一定是用单片机一类的芯片进行矩阵键盘实验吧?你可以将按键的出发方式改为“上升沿或下降沿”触发,这样不管之前是否已有按键按下,芯片都会检测到新按键并执行你设定的函数。
希望对你有用,呵呵。追问

= = 不是很明白...问题我已经补充详细了一些...你再看看有什么具体的办法解决吧

第2个回答  2012-07-17
不知道你要干什么?4*4键盘是动态扫描机制,这里面有相应的算法的。追问

我是想让矩阵键盘+数码管能实现按几个键就能显示几位数,比如我按矩阵键盘的1和2,数码管能显示12,按1,2,3就能显示123
本来我打算先用数组存放按键的值再转换成对应的整数的,代码中啊数组a[n]中的n用到了n++,谁知数码管要连续显示就得要按键一直循环不释放,也导致了n的n++在一次按键中都被无限循环至最大了,无法再次存第二次按键的值了...我现在就想再键盘真正被按第二次时才执行n++该怎么操作?

C语言,4X4矩阵键盘怎么判断有再次按键发生?
你在程序检测到按键后,加个延时去抖,不要加松手检测。然后执行第一个按键相对应的程序。然后继续按键扫描。注意这里说的是继续,也就是继续往下检测。否则你的程序就只能执行第一个按键所对应的程序了。这样,就能检测到你第二次按键的键值了。当然,这个扫描是循环的。也就是说即使你第二次按的按键...

4x4矩阵键盘如何判断按键释放?
继续读你的c 如果它等于0xff那就说明按键释放了

4x4按键矩阵原理是什么?为什么要移位?他是怎么样确认按键位置的,求教大 ...
这个是高低电平反转法确定4x4按键,P1口4位接行矩阵四位接列矩阵。首先让P1口高四位为0,低四位为1。若有按键按下,则低四位中会有一个1翻转为0,高四位不会变,此时即可确定被按下的键的列位置。然后让P1口高四位为1,低四位为0。若有按键按下,则高四位中会有一个1翻转为0,低四位不会...

谁能给我讲明白单片机的4x4矩阵键盘工作原理
给P1赋值0xf0,这时P1^4,P1^5,P1^6,P1^7为高电平,P1^0,P1^1,P1^2,P1^3为低电平。如果这时候有按键按下那么P1^4,P1^5,P1^6,P1^7就有一个会变成低电平。因此P1的值就不等于0xf0,这是就可以判断有按键按下。4x4矩阵键盘的工作原理是在矩阵式键盘中,每条水平线和垂直线在交叉...

C51矩阵键盘扫描 请解释一下程序 特别是关键步骤 急!!!
1、首先判断整个键盘有无按下键,只要行扫描线输入不为全1,(1111)即有键按下;P1 = 0xf0;if((P1&0xf0)!=0xf0) 如果无按键按下,全1,则返回return -1;如果有键按下则延时,再次判断有无按键按下,Delay();if((P1&0xf0)!=0xf0)如果无按键按下则返回return -1。有键按下则继续,...

4x4矩阵键盘的工作原理是什么?
4x4矩阵键盘的工作原理是在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,通过读入输入线的状态就可得知是否有键被按下。

用DXP画4X4矩阵键盘,发现原理图中的4脚按钮不会连,不知道哪2个是一对...
按键实物的左边两个和右边两个是分别短接的!左边两个短接,右边两个短接,然后按照两脚按键接线就行了!如果不习惯,完全可以忽略下边的两个脚,不影响使用的!

矩阵键盘反转法行列扫描,怎么给单个按键定义功能,如按下一个键数码管...
首先调用键盘扫描程序,返回按键值,要是4X4矩阵,键值最好设置为0~F,即十进制数的0~15,不按键时,返回16。这样,如果返回值为16,就是没有按键,不作任何处理。通常前十个键为数字键0~9,其余6个可定义成功能键,这6个功能可以随便定义的,如果按键上有字符最好,例如,你要的清屏,要写一...

使用单片机的P1口扩展4*4键盘矩阵,实现在键盘上每按一个数字键用静态...
P1.0~P1.3为列线,P1.4~P1.7为行线;列线和行线的交叉点接按键。先在列线上依次输出1,然后再在行线上读取;可根据行线的输入和列线的输出来判定是哪个按键按下。具体的显示部分,应该很简单吧。

矩阵键盘编程包含哪些内容
首先,我们来探讨键盘布局与扫描。在矩阵键盘中,按键被排列成行和列的矩阵形式。编程时,我们需要确定每个按键在矩阵中的位置,这通常通过行列扫描实现。例如,一个4x4的键盘矩阵就有16个按键,通过逐行或逐列扫描,可以检测到被按下的键。其次,键值映射是将物理按键与特定的数值或字符对应起来的过程。

相似回答