CN101840268B - 一种矩阵键盘的快速扫描定位方法 - Google Patents
一种矩阵键盘的快速扫描定位方法 Download PDFInfo
- Publication number
- CN101840268B CN101840268B CN2010101535602A CN201010153560A CN101840268B CN 101840268 B CN101840268 B CN 101840268B CN 2010101535602 A CN2010101535602 A CN 2010101535602A CN 201010153560 A CN201010153560 A CN 201010153560A CN 101840268 B CN101840268 B CN 101840268B
- Authority
- CN
- China
- Prior art keywords
- keyboard
- key assignments
- singly
- bound
- macintosh
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开了一种矩阵键盘的快速扫描定位的方法,它涉及于嵌入式系统(Embedded System)的控制领域中的一种矩阵键盘的快速扫描定位的方法,特别适用于嵌入式终端设备的矩阵键盘设计。它包括键盘设备初始化和注册键盘设备、系统等待键盘触发中断信号、触发键盘中断信号、系统响应中断信号,进入键盘扫描、按键是否有效的判断和输出键盘键值到队列并等待应用程序读取等步骤。本发明的方法可以有效的避免矩阵键盘由于自身机械特性而造成的电平不稳和抖动现象,提高矩阵键盘的扫描定位的准确性、具有算法简单、性能稳健、控制精度高等特点。
Description
技术领域
该发明涉及于嵌入式系统(Embedded System)的控制领域中的一种矩阵键盘的快速扫描定位方法,特别适用于嵌入式终端设备的组合键盘设计。
背景技术
随着嵌入式技术的不断发展,当前的嵌入式终端设备广泛采用键盘作为主要的输入设备,但是键盘作为一种嵌入式终端采用的输入设备,依旧具有操作简单,可靠性高,响应时间迅速,稳定性好等特点,因而仍广泛应用于工业控制领域及嵌入式终端设备上使用。
由于键盘作为一种机械设备,在抬起和按下的时候会出现键盘抖动,并且造成电压信号在短时间内不稳定而出现毛刺现象,容易造成错键、连续触键甚至由此造成严重后果,同时作为嵌入式矩阵键盘大多缺少对重复按键和组合键的支持,出现无法响应组合键等现象
发明内容
本发明所要解决的技术问题主要是由于矩阵键盘自身的机械特性造成的键盘抖动而引起错键、连续触键等错误以及缺少组合键和重复按键支持而提供的一种快速扫描定位的方法。本方法可以有效的避免由于按键的抬起和按下造成的电平不稳定和毛刺现象,并提供一种组合键的响应,从而达到快速扫描定位的效果。本发明还具有算法简单、性能稳健、控制精度高等特点。
本发明一种矩阵键盘的快速扫描定位方法的技术方案,是嵌入式设备运用Linux操作系统来实现的,所述的嵌入式设备包括矩阵键盘和寄存器,所述的方法包括以下步骤:
A、键盘设备初始化和注册键盘设备;
B、系统等待键盘触发中断信号;
C、键盘的按键按下或者抬起,触发键盘中断信号;
D、系统响应中断信号,进入键盘扫描步骤;
F、判断按键是否有效;如按键有效,则进入步骤G;如按键无效,则进入步骤B;
G、输出键盘键值到队列并等待应用程序读取。
作为本发明的改进,包括以下:
步骤D当中所述键盘扫描步骤为系统调用内核定时器进行采样定时操作,对按键进行行列扫描,并读取当前行和当前列的键值。
步骤F中判断按键是否有效的方式为多次重复键盘扫描步骤,并对所获得的键值进行状态判断;如果多次采样状态相同,则处于稳定状态,键值有效;如果多次采样状态不同,键值无效。
在步骤F和步骤G之间增加单键操作或组合键操作判断步骤;如是单键操作,则进入单键处理模式;如是组合键操作,则进入组合键处理模式。
所述单键操作或组合键操作判断步骤是通过寄存器KPAS的数据判定是单键按下、抬起或者是组合键按下、抬起。
所述的单键处理模式为根据寄存器判断键盘操作是否是单键抬起和按下,如果是单键抬起,则对单键键值进行清空,并清空按键数目;如果单键按下,则记录单键键值并上报到队列中,并将按键数目递加。
所述的组合键处理模式为根据寄存器数据对组合键进行判断,首先通过按键数目的增减来判断是抬起或者按下,如果增加表示有键按下,将新的键值记录,并将该键值上报队列,并将按键数目递加;如果减少表示有键抬起,则清空上次的键值,并将按键数目递减。
本发明与背景技术相比具有如下优点:
1.本发明采用快速扫描定位的方法可以有效的避免矩阵键盘由于自身机械特性而造成的电平不稳和抖动现象,提高矩阵键盘的扫描定位的准确性。
2.本发明采用的快速扫描定位的方法具有算法简单、性能稳健、控制精度高等特点。
附图说明
图1是本发明的原理方框图。
具体实施方式
参照图1,本发明实现的方法原理框图如图1所示。嵌入式设备运用Linux操作系统来实现,所述的嵌入式设备包括矩阵键盘和寄存器,其具体步骤如下:
1、本发明所述方法中,在内核启动后,首先对键盘设备进行初始化操作,并注册键盘设备名称、设备信息、驱动信息、设备读写等待等操作,并对KPC寄存器进行初始操作,包括对矩阵键盘的输入输出、使能等部分;在本实例中通过函数pxa270_kp_init完成初始化操作。
2、键盘设备向系统申请中断请求request_irq,等待矩阵键盘触发中断信号;
3、当矩阵键盘按下或者抬起后,触发键盘中断,系统驱动响应中断后,等待进入定时键盘扫描过程;
4、系统调用内核定时器进行采样定时操作,进行矩阵键盘的行列扫描,并读取寄存器数据,在本实例中,采用20ms定时时间。
5、读取寄存器来获取当前键盘行的键值。在本实例中,通过获取寄存器KPASMKP和KPASMKPx_MKC[N],来获取键盘当前行的键值。
6、读取寄存器来获取当前键盘列的键值。在本实例中,通过获取寄存器KPASMKP和KPASMKPx_MKC[N],来获取键盘当前列的键值。
7、等待计时器结束;本实施例中,本方法通过三次采样定时扫描矩阵键盘的行列键值,对所获得的键值进行状态判断;如果三次采样状态相同,则处于稳定状态,则按键有效,进入下一步骤8;如果三次采样状态不同,则按键无效,返回等待矩阵键盘触发中断信号的步骤2;
8、在确定按键有效后,通过寄存器KPAS的数据判定是单键按下或抬起,还是组合键按下或抬起;
9、判断键盘操作是否为单键操作,若是单键操作,则进入单 键处理模式,进入步骤10;若是组合键操作,则进入组合键处理模式,进入步骤11;
10、所述单键处理模式是根据寄存器判断键盘操作是否是单键抬起和按下,如果是单键抬起,则对单键键值进行清空,并清空按键数目num_press;如果单键按下,则记录单键键值并上报到队列中,并将按键数目num_press递加;
11、所述的组合键处理模式是根据寄存器数据对组合键进行判断,首先通过按键数目的增减来判断是抬起或者按下,如果增加表示有键按下,将新的键值记录,并将该键值上报队列,并将按键数目num_press递减;如果减少表示有键抬起,则清空上次的键值,并将按键数目num_press递减。
12、最后,输出键盘键值到队列并等待应用程序读取;
本发明所述方法可对键盘键值进行同步化处理,在本实例中,调用函数input_sync对键盘进行同步化处理;
通过以上步骤,本发明所述方法完成矩阵键盘的快速扫描识别的过程。
本发明工作原理如下:
本发明所述方法在矩阵键盘初始化后,响应由矩阵键盘按压或者抬起触发的中断信号,通过键盘扫描判断是否有按键按下,并通过定时器判断按键状态是否稳定,剔除出由于按键引入的毛刺现象后,并进入单键识别模块或组合键识别模块,识别出正确的键值,并存入队列中,等待应用程序调用,完成矩阵键盘的快速扫描识别的过程。
Claims (2)
1.一种矩阵键盘的快速扫描定位方法,是嵌入式设备运用Linux操作系统来实现的,所述的嵌入式设备包括矩阵键盘和寄存器,其特征在于:所述的方法包括以下步骤:
A、键盘设备初始化和注册键盘设备;
B、系统等待键盘触发中断信号;
C、键盘的按键按下或者抬起,触发键盘中断信号;
D、系统响应中断信号,进入键盘扫描步骤;
F、判断按键是否有效;如按键有效,进入单键操作或组合键操作判断步骤;如是单键操作,则进入单键处理模式;如是组合键操作,则进入组合键处理模式,之后进入步骤G;如按键无效,则进入步骤B;
G、输出键盘键值到队列并等待应用程序读取;
其中,步骤D当中所述键盘扫描步骤为系统调用内核定时器进行采样定时操作,对按键进行行列扫描,并读取当前行和当前列的键值;
步骤F中判断按键是否有效的方式为多次重复键盘扫描步骤,并对所获得的键值进行状态判断;如果多次采样状态相同,则处于稳定状态,键值有效;如果多次采样状态不同,键值无效;
所述的单键处理模式为根据寄存器判断键盘操作是否是单键抬起和按下,如果是单键抬起,则对单键键值进行清空,并清空按键数目;如果单键按下,则记录单键键值并上报到队列中,并将按键数目递加;
所述的组合键处理模式为根据寄存器数据对组合键进行判断,首先通过按键数目的增减来判断是抬起或者按下,如果增加表示有键按下,将新的键值记录,并将该键值上报队列,并将按键数目递加;如果减少表示有键抬起,则清空上次的键值,并将按键数目递减。
2.根据权利要求1所述的一种矩阵键盘的快速扫描定位方法,其特征在于:所述单键操作或组合键操作判断步骤是通过寄存器KPAS的数据判定是单键按下、抬起或者是组合键按下、抬起。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101535602A CN101840268B (zh) | 2010-04-23 | 2010-04-23 | 一种矩阵键盘的快速扫描定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101535602A CN101840268B (zh) | 2010-04-23 | 2010-04-23 | 一种矩阵键盘的快速扫描定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101840268A CN101840268A (zh) | 2010-09-22 |
CN101840268B true CN101840268B (zh) | 2012-02-15 |
Family
ID=42743673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101535602A Active CN101840268B (zh) | 2010-04-23 | 2010-04-23 | 一种矩阵键盘的快速扫描定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101840268B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102765563B (zh) * | 2011-05-04 | 2015-02-18 | 珠海格力电器股份有限公司 | 集装箱冷机及其显示控制方法 |
CN103226391B (zh) * | 2013-05-22 | 2015-12-23 | 湖南工业大学 | 一种独立式键盘的扫描定位方法 |
CN103279197B (zh) * | 2013-06-08 | 2015-12-09 | 湖南工业大学 | 一种键盘的扫描定位方法 |
CN105677051B (zh) * | 2016-01-05 | 2018-06-15 | 湖南工业大学 | 独立式键盘扫描电路及编码电路 |
CN108572739B (zh) * | 2016-01-05 | 2021-03-16 | 湖南工业大学 | 一种矩阵式键盘扫描编码方法 |
CN105471439B (zh) * | 2016-01-05 | 2018-07-24 | 湖南工业大学 | 独立式键盘扫描及编码电路 |
CN105677050B (zh) * | 2016-01-05 | 2018-06-15 | 湖南工业大学 | 独立式键盘扫描电路及扫描编码方法 |
CN108563338B (zh) * | 2016-01-05 | 2021-05-25 | 湖南工业大学 | 一种独立式键盘扫描方法 |
CN105700695B (zh) * | 2016-01-05 | 2018-07-24 | 湖南工业大学 | 矩阵式键盘扫描电路及编码电路 |
CN108388353B (zh) * | 2016-01-05 | 2021-03-16 | 湖南工业大学 | 一种独立式键盘操作识别及编码方法 |
CN108880560B (zh) * | 2016-01-05 | 2022-03-18 | 湖南工业大学 | 一种矩阵式键盘反转法扫描电路 |
CN105677055B (zh) * | 2016-01-05 | 2018-06-15 | 湖南工业大学 | 矩阵式键盘扫描电路及方法 |
CN105680875B (zh) * | 2016-01-05 | 2018-07-24 | 湖南工业大学 | 矩阵式键盘操作识别及编码电路 |
CN108509055B (zh) * | 2016-01-05 | 2021-03-16 | 湖南工业大学 | 一种独立式键盘扫描定位方法 |
CN108491091B (zh) * | 2016-01-05 | 2019-10-18 | 湖南工业大学 | 一种独立式键盘状态识别及编码方法 |
CN108847847B (zh) * | 2016-01-05 | 2022-03-18 | 湖南工业大学 | 一种键盘状态变化脉冲产生方法 |
CN105703780B (zh) * | 2016-01-05 | 2018-09-11 | 湖南工业大学 | 矩阵式键盘扫描定位电路 |
CN105468164B (zh) * | 2016-01-05 | 2018-06-15 | 湖南工业大学 | 矩阵式键盘扫描及编码电路 |
CN107231156A (zh) * | 2016-03-23 | 2017-10-03 | 浙江正泰电器股份有限公司 | 按键扫描方法和低压电器的控制器 |
CN105929971A (zh) * | 2016-05-10 | 2016-09-07 | 青岛海信电器股份有限公司 | 一种按键识别方法及装置 |
CN107976624B (zh) * | 2016-10-24 | 2020-10-09 | 佛山市顺德区美的电热电器制造有限公司 | 按键状态的检测方法及装置 |
CN110957997A (zh) * | 2019-12-06 | 2020-04-03 | 江苏黑马高科股份有限公司 | 一种消除按键抖动的处理方法和电路 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2919362Y (zh) * | 2005-12-01 | 2007-07-04 | 华中科技大学 | 嵌入式鼠标键盘 |
CN101510127A (zh) * | 2009-03-30 | 2009-08-19 | 北京中星微电子有限公司 | 一种实现键盘模块复合键功能的方法、装置和芯片 |
-
2010
- 2010-04-23 CN CN2010101535602A patent/CN101840268B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2919362Y (zh) * | 2005-12-01 | 2007-07-04 | 华中科技大学 | 嵌入式鼠标键盘 |
CN101510127A (zh) * | 2009-03-30 | 2009-08-19 | 北京中星微电子有限公司 | 一种实现键盘模块复合键功能的方法、装置和芯片 |
Non-Patent Citations (2)
Title |
---|
李杰等.基于嵌入式Linux的矩阵键盘设计与实现.《现代电子技术》.2006,(第24期), * |
王志辉等.基于FPGA 的键盘扫描模块的设计与实现.《国外电子元器件》.2006,(第05期), * |
Also Published As
Publication number | Publication date |
---|---|
CN101840268A (zh) | 2010-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101840268B (zh) | 一种矩阵键盘的快速扫描定位方法 | |
CN101510127B (zh) | 一种实现键盘模块复合键功能的方法、装置和芯片 | |
US10078437B2 (en) | Method and apparatus for responding to a notification via a capacitive physical keyboard | |
CN109947496B (zh) | 应用程序预加载方法、装置、存储介质及移动终端 | |
JP6919065B2 (ja) | アプリケーションのプリロード方法、端末機器、および媒体 | |
US20110205182A1 (en) | Information processing device, information processing method and computer-readable recording medium | |
WO2019227994A1 (en) | Method and apparatus for updating application prediction model, storage medium, and terminal | |
CN102004575A (zh) | 信息处理设备、信息处理方法和程序 | |
CN101390039A (zh) | 用于便携式电子设备的键盘 | |
US20100049882A1 (en) | Hotkey processing method and computer system | |
TW200834384A (en) | Computer and keyboard input operation method thereof. | |
CN102375597A (zh) | 信息处理装置、信息处理方法和计算机程序 | |
TWI312124B (en) | Electronic device and its keyboard system and key status detecting method thereof | |
CN101645711B (zh) | 一种键盘纠错方法及装置 | |
CN102778992A (zh) | 虚拟键盘的响应方法和装置 | |
US8922491B2 (en) | Method and apparatus enabling keystroke acceleration | |
CN102707811B (zh) | 一种汉字输入的方法和系统 | |
CN111124519A (zh) | 基于输入响应优化安卓应用程序启动速度的方法及系统 | |
CN106168880A (zh) | 一种输入控制的方法及终端 | |
KR20110126067A (ko) | 촉각 피드백을 제공하는 방법 및 전자 디바이스 | |
CN101246393B (zh) | 电脑装置及其键盘输入的操作方法 | |
WO2019062412A1 (zh) | 记录应用信息的方法、装置、存储介质及电子设备 | |
CN107340872B (zh) | 按键系统及其控制方法 | |
US10871899B2 (en) | Input accepting device | |
CN101303653B (zh) | 判断计算机系统是否执行重开机的方法及其计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |