找回密码
 注册
搜索
查看: 1563|回复: 11

[讨论] 关于键盘扫描的疑问

[复制链接]
发表于 2007-10-22 21:44:04 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2007-10-24 12:17:14 | 显示全部楼层
col和row对应的是keyin和keyout,其实原理就是BB内部会不断地周期性scan keyin的电平,某个周期扫描到的中断cpu就可以识别是哪个键被按了
点评回复

使用道具 举报

发表于 2007-10-24 12:40:12 | 显示全部楼层
按键的工作原理有很多种,有一种是要不断的周期性的扫描按键,有一种中断式的不需要不断的扫描,它仅仅要在接收到中断信号后再扫描按键。
点评回复

使用道具 举报

 楼主| 发表于 2007-10-25 21:21:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
点评回复

使用道具 举报

发表于 2007-10-26 13:41:03 | 显示全部楼层
时钟在扫描每根线的时候它的时序不一样,但是没根线对应的次序是一样的,当按下键盘释放以后CPU可以判断,是那个时序已经触发,从而可以显示我们需要的东西.(只是个人理解)
点评回复

使用道具 举报

发表于 2009-4-10 09:08:20 | 显示全部楼层
以下是引用glp19821013在2007-10-27 10:00:59的发言:
这么简单的道理为什么就不明白?
点评回复

使用道具 举报

发表于 2009-4-24 15:43:52 | 显示全部楼层

关于键盘扫描的疑问

[QUOTE]以下是引用wostang在2007-10-22 21:44:04的发言:

这里面有个问题:MCU是怎么知道被按下的这个按键就是我需要的这个按键的呢?比如说我按下的是键5,MCU怎么知道就是5呢?

楼主想问的是键盘扫描原理吧?
键盘中断式扫描原理:
kcol列线为输入并有上拉,如果没有按键按下,列输入为高电平,row为低电平。有键按下,col与row接通则变低,并产生中断信号,BB检测到中断后,判断为有按键按下,调用软件开始扫描,先逐行送低电平,其他行送高,检测列输入状态,若有列输入是低电平,则判断为该行有按键按下;然后再逐列送低电平,其他送高,当轮到按下键所在列时,行输入是低,这样就确定了列,因此也就知道了是那个按键被按下.
点评回复

使用道具 举报

发表于 2009-5-4 19:10:38 | 显示全部楼层
然后再逐列送低电平,其他送高,当轮到按下键所在列时,行输入是低,这样就确定了列,因此也就知道了是那个按键被按下.[/QUOTE]

至于哪一列,产生中断时BB就知道了,为什么还需要这种方法再去扫描?




以下是引用liyan092x在2009-4-24 15:43:52的发言:
[QUOTE]以下是引用wostang在2007-10-22 21:44:04的发言:

这里面有个问题:MCU是怎么知道被按下的这个按键就是我需要的这个按键的呢?比如说我按下的是键5,MCU怎么知道就是5呢?

楼主想问的是键盘扫描原理吧?
键盘中断式扫描原理:
kcol列线为输入并有上拉,如果没有按键按下,列输入为高电平,row为低电平。有键按下,col与row接通则变低,并产生中断信号,BB检测到中断后,判断为有按键按下,调用软件开始扫描,先逐行送低电平,其他行送高,检测列输入状态,若有列输入是低电平,则判断为该行有按键按下;然后再逐列送低电平,其他送高,当轮到按下键所在列时,行输入是低,这样就确定了列,因此也就知道了是那个按键被按下.
点评回复

使用道具 举报

发表于 2009-5-5 11:37:42 | 显示全部楼层
以下是引用xialu在2009-5-4 19:10:38的发言:
然后再逐列送低电平,其他送高,当轮到按下键所在列时,行输入是低,这样就确定了列,因此也就知道了是那个按键被按下.


至于哪一列,产生中断时BB就知道了,为什么还需要这种方法再去扫描?[/QUOTE]

BB检测到的中断只是说明有按键被按下这个动作发生,要确定是那个按键就需要执行扫描程序了
点评回复

使用道具 举报

发表于 2009-5-7 09:54:17 | 显示全部楼层
明白了,MTK的KCOL0~KCOL6输入到一个与门再去触发中断。而不是各列各自单独去触发中断的。

既然MTK是与门后触发中断,所以还需要扫描列。

如果列各自单独触发的话,就不用扫描列了,因为从中断就可以知道所在列了。






以下是引用liyan092x在2009-5-5 11:37:42的发言:


BB检测到的中断只是说明有按键被按下这个动作发生,要确定是那个按键就需要执行扫描程序了
点评回复

使用道具 举报

发表于 2009-10-13 12:05:23 | 显示全部楼层
不明白为什么还要逐列送低电平扫描啊?在逐行扫描的时候,根据那一列的电平被拉低,就可以判断出按键所在的行和列了吧。

以下是引用liyan092x在2009-4-24 15:43:52的发言:
[QUOTE]以下是引用wostang在2007-10-22 21:44:04的发言:

这里面有个问题:MCU是怎么知辣话聪碌恼飧霭醇?褪俏倚枰?恼飧霭醇?哪兀勘热缢滴野聪碌氖羌?,MCU怎么知道就是5呢?

楼主想问的是键盘扫描原理吧?
键盘中断式扫描原理:
kcol列线为输入并有上拉,如果没有按键按下,列输入为高电平,row为低电平。有键按下,col与row接通则变低,并产生中断信号,BB检测到中断后,判断为有按键按下,调用软件开始扫描,先逐行送低电平,其他行送高,检测列输入状态,若有列输入是低电平,则判断为该行有按键按下;然后再逐列送低电平,其他送高,当轮到按下键所在列时,行输入是低,这样就确定了列,因此也就知道了是那个按键被按下.
点评回复

使用道具 举报

发表于 2009-10-14 10:31:11 | 显示全部楼层
[em02]...........
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-25 02:51 , Processed in 0.050371 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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