一种键盘扫描方法

文档序号:7525958阅读:200来源:国知局
专利名称:一种键盘扫描方法
技术领域
本发明涉及键盘领域,尤其涉及一种矩阵式结构的键盘扫描方法。
背景技术
现有的键盘扫描一般包括2种。一种是直接端口扫描的方式,通过一上拉电阻在 每个端口的按键接入高电平,当扫描到端口变为高电平表示按下按键。该方法优点是简单 可靠,缺点是占有端口资源大。另外,还有一种是矩阵式扫描,即由X+Y个端口构成的X*Y 的扫描矩阵,X个扫描输出和Y个扫描输入,根据组合得到相应按键。但是该方法相比第一 种方法节约了端口资源,但是依然不够精简。另有一专利公开号为“CN200420110550”的方 案公开了一种键盘扫描方法,应用该方法相比原来的X*Y的矩阵式扫描,采用X+Y个电阻、 X*(Y+1)个二极管、X*Y个按键、X/2+Y个接线组成,X是偶数,相比减少了 X/2根接线。但 采用该方法依然不够节约端口资源。在某些场合的应用依然不够适用,不利于节约成本。

发明内容
本发明提出另一种键盘扫描方法,大大地节约扫描I/O端口的数量。本发明的技术方案是本发明用于扫描输入输出交叉矩阵的键盘电路,所述的键盘电路共有n个输入输 出口,10_0 口至I0_n-1 口,任意一个输入输出口都可以与其它输入输出口组合形成一个按 键。总共可以组合的按键数量=(n-l) + (n-2)+......+1。本发明的键盘扫描方法,包括如下扫描步骤步骤101 初始化扫描程序;步骤102 设置变量i = 0 ;步骤103 判断变量i是否小于n ;如果i < n,则进入步骤104,步骤104:设置I0_i 口为输出口,置默认的第一电平,其他10 口为输入口 ;步骤105 设置跳变I0_i 口为第二电平后,读取其他10 口的电平状态;步骤106 扫描判断其他10 口是否有第二电平;如果其他10 口有第二电平,则进入步骤107,步骤107 储存记录有第二电平的10 口的键值,进入步骤108 ;如果其他10 口没有第二电平,则进入步骤108,步骤108 变量i的值+1,进入返回步骤103 ;如果不是i < n,则进入步骤109,步骤109 处理按键扫描值结果;步骤110:扫描结束。进一步的,所述的第一电平为高电平,所述的第二电平为低电平。本发明的技术方案,在不加外围辅助电路情况下,使得利用输入输出口产生按键的个数最大化,节约了硬件资源和成本,可以应用于某些I/O 口资源紧缺的键盘电路中。


图1是本发明的输入输出交叉矩阵的键盘电路的示意图;图2是本发明的扫描方法的流程图。
具体实施例方式现结合附图和具体实施方式
对本发明进一步说明。参阅图1所示,所述的键盘电路共有n个输入输出口,10_0 口至I0_n-1 口,任意一 个输入输出口都可以与其它输入输出口组合形成一个按键。如I0_n-1 口和I0_n-2 口、10_
n-3 口、......10_0 口构成(n-1)个按键,I0_n_2 口和 I0_n_3 口、I0_n_4 口、......10_0
口构成(n-2)个按键。依此类推,总共可以组合的按键数量=(n-l) + (n-2)+......+1。参阅图2所示,本发明的键盘扫描方法,包括如下扫描步骤步骤101 初始化扫描程序;步骤102 设置变量i = 0 ;步骤103 判断变量i是否小于n ;如果i < n,则进入步骤104,步骤104 设置I0_i 口为输出口,置默认的高电平,其他10 口为输入口 ;步骤105 设置跳变I0_i 口为低电平后,读取其他10 口的电平状态;步骤106 扫描判断其他10 口是否有低电平;如果其他10 口有低电平,则进入步骤107,步骤107 储存记录有低电平的10 口的键值,进入步骤108 ;如果其他10 口没有低电平,则进入步骤108,步骤108 变量i的值+1,进入返回步骤103 ;如果不是i < n,则进入步骤109,步骤109 处理按键扫描值结果;步骤110:扫描结束。本发明采用的方法可以减少对输入输出口的要求量,比如同样是10个输入输出
口,采用组合的方法可以得到键的个数为(10-1) + (10-2) + (10-3)+1...... =45个。最主
要的是,通过软件扫描的方式进行,大大节约硬件资源。尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明 白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对 本发明做出各种变化,均为本发明的保护范围。
权利要求
一种键盘扫描方法,用于扫描输入输出交叉矩阵的键盘电路,所述的键盘电路共有n个输入输出口,任意一个IO输入输出口都可以与其它IO输入输出口组合形成一个按键,扫描1/2*n*(n 1)个按键,其特征在于,包括如下扫描步骤步骤101初始化扫描程序;步骤102设置变量i=0;步骤103判断变量i是否小于n;如果i<n,则进入步骤104,步骤104设置IO_i口为输出口,置默认的第一电平,其他IO口为输入口;步骤105设置跳变IO_i口为第二电平后,读取其他IO口的电平状态;步骤106扫描判断其他IO口是否有第二电平;如果其他IO口有第二电平,则进入步骤107,步骤107储存记录有第二电平的IO口的键值,进入步骤108;如果其他IO口没有第二电平,则进入步骤108,步骤108变量i的值+1,进入返回步骤103;如果不是i<n,则进入步骤109,步骤109处理按键扫描值结果;步骤110扫描结束。
2.根据权利要求1所述的键盘扫描方法,其特征在于所述的第一电平为高电平,所述 的第二电平为低电平。
全文摘要
本发明涉及键盘领域,尤其涉及一种矩阵式结构的键盘扫描方法。键盘扫描方法,用于扫描输入输出交叉矩阵的键盘电路,所述的键盘电路共有n个输入输出口,任意一个IO输入输出口都可以与其它IO输入输出口组合形成一个按键,扫描1/2×n×(n-1)个按键。本发明的方法通过设置一个IO_i口为输出口,置默认的高电平,再扫描判断其他IO口是否有低电平,若有储存记录有该IO口的键值。本发明的技术方案,在不加外围辅助电路情况下,使得利用输入输出口产生按键的个数最大化,节约了硬件资源和成本,可以应用于某些I/O口资源紧缺的键盘电路中。
文档编号H03M11/20GK101924563SQ20091011201
公开日2010年12月22日 申请日期2009年6月16日 优先权日2009年6月16日
发明者郑添来 申请人:厦门敏讯信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1