一种基于移动终端的键盘输入检测方法及检测系统
技术领域
本发明涉及移动终端技术领域,尤其涉及一种基于移动终端的键盘输入检测方法及检测系统。
背景技术
随着移动通信技术的发展和人们生活水平的不断提高,各种移动终端如手机的使用越来越普及,手机已经成为人们生活中不可缺少的通信工具。
按键是移动终端的主要输入方式之一,在现有技术中,移动终端的主板与键盘连接往往需要用到CPU(Central Processing Unit ,中央处理器)的多个GPIO引脚;特别是全键盘手机,由于全键盘手机的按键较多,需要占用CPU的GPIO引脚更是往往要十个以上。而CPU上的GPIO个数有限,使用起来往往捉襟见肘,因此,亟需一种方案减少键盘所用到的GPIO个数,从而提高GPIO引脚的利用效率。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于移动终端的键盘输入检测方法及检测系统。本发明通过对移动终端的全部按键进行编码,并设置起始码和结束码,使移动终端可以仅用一个GPIO引脚就可以实现全部的键盘输入,提高了GPIO引脚的利用效率。
本发明解决技术问题所采用的技术方案如下:
一种基于移动终端的键盘输入检测方法,其中,包括步骤:
S、预先定义键盘上每个按键对应的唯一的键码、以及设置一组起始码和结束码并存储;
A、设置中央处理器通过GPIO引脚与键盘输出引脚相连接,键盘通过输出引脚输出用户输入的按键的键码,当键盘上有一个或多个按键被同时按下时,键盘通过输出引脚发送按下的按键的键码;
B、移动终端中央处理器通过检测GPIO引脚上的高低电平变化获取键盘发送过来的所述按键的键码,对所述按键的键码进行识别得到键盘输入内容并输出显示。
所述的基于移动终端的键盘输入检测方法,其中,所述键码,为键盘上的每个按键定义一个唯一的键码;
所述键码、起始码、和结束码都为二进制数,键码由若干个字符0或字符1组成,每个按键对应的键码字符个数相等,但字符内容各不相同。
所述的基于移动终端的键盘输入检测方法,其中,所述步骤A还包括:
A1、当移动终端检测到键盘中某一个按键按下时,键盘发送按键的起始码,按键的键码和结束码。
所述的基于移动终端的键盘输入检测方法,其中,所述步骤A还包括:
A2、当移动终端检测到键盘上有多个按键按下后,键盘依次发送起始码,所述多个按键的键码,结束码。
任一项所述的基于移动终端的键盘输入检测方法,其中,所述步骤B具体包括:
B1、移动终端中央处理器通过检测GPIO引脚上的高低电平变化获取键盘发送过来的所述按键的键码;
B2,将所述按键的键码与预先定义的键盘的键码进行对比分析,以对所述按键的键码进行识别得到对应的按键内容并输出显示。
一种基于移动终端的键盘输入检测系统,其中,系统包括:
定义与存储模块,用于预先定义键盘上每个按键对应的唯一的键码、以及设置一组起始码和结束码并存储;
发送模块,用于设置中央处理器通过GPIO引脚与键盘输出引脚相连接,键盘通过输出引脚输出用户输入的按键的键码,当键盘上有一个或多个按键被同时按下时,键盘通过输出引脚发送按下的按键的键码;
检测与识别模块,用于移动终端中央处理器通过检测GPIO引脚上的高低电平变化获取键盘发送过来的所述按键的键码,对所述按键的键码进行识别得到键盘输入内容并输出显示。
所述的一种基于移动终端的键盘输入检测系统,其中,所述键码,为键盘上的每个按键定义一个唯一的键码;
所述键码、起始码、和结束码都为二进制数,键码由若干个字符0或字符1组成,每个按键对应的键码字符个数相等,但字符内容各不相同。
所述的基于移动终端的键盘输入检测系统,其中,所述发送模块包括:
第一发送单元,用于当移动终端检测到键盘中某一个按键按下时,键盘发送按键的起始码,按键的键码和结束码。
所述的基于移动终端的键盘输入检测系统,其中,所述发送模块还包括:
第二发送单元,用于当移动终端检测到键盘上有多个按键按下后,键盘依次发送起始码,所述多个按键的键码,结束码。
任一项所述的基于移动终端的键盘输入检测系统,其中,所述检测与识别模块包括:
检测单元,用于控制移动终端中央处理器通过检测GPIO引脚上的高低电平变化获取键盘发送过来的所述按键的键码;
识别单元,用于将所述按键的键码与预先定义的键盘的键码进行对比分析,以对所述按键的键码进行识别得到对应的按键内容并输出显示。
本发明提供了一种基于移动终端的键盘输入检测方法及检测系统。所述方法包括步骤:设置中央处理器通过GPIO引脚与键盘输出引脚相连接,键盘通过输出引脚输出用户输入的按键的键码,当键盘上有一个或多个按键被同时按下时,键盘通过输出引脚发送按下的按键的键码;移动终端中央处理器通过检测GPIO引脚上的高低电平变化获取键盘发送过来的键码,对键码进行识别得到键盘输入内容。采用本发明可使移动终端将自身的键盘按键进行编码,对编码进行传输并识别,实现只用一个GPIO引脚就可以连接多个按键,减少了键盘所用到的GPIO引脚个数,提高了中央处理器的GPIO引脚利用效率。
附图说明
图1是本发明一种基于移动终端的键盘输入检测方法的第一较佳实施例的流程图。
图2是本发明一种基于移动终端的键盘输入检测方法的较佳实施例的键盘输出波形图。
图3是本发明一种基于移动终端的键盘输入检测方法的第二较佳实施例的流程图。
图4是本发明一种基于移动终端的键盘输入检测系统的第一较佳实施例的功能原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明所述的一种基于移动终端的键盘输入检测方法的第一较佳实施例,如图1所示,包括步骤:
步骤S10、预先定义键盘上每个按键对应的唯一的键码、以及设置一组起始码和结束码并存储。
本发明实施例中,需要预先定义键盘上每个按键对应的唯一的键码、以及设置一组起始码和结束码并存储。其中,所述键码,为键盘上的每个按键定义一个唯一的键码;所述键码、起始码、和结束码都为二进制数,键码由若干个字符0或字符1组成,每个按键对应的键码字符个数相等,但字符内容各不相同。
因此,键码是一个二进制数;并且要求每个按键对应的键码字符个数相等;另外,除了按键的键码外,还有一个起始码、一个结束码。起始码、结束码与所有按键的键码都不相同,且字符个数与所有按键的键码相同;
例如,设按键Q的键码为1010、按键G的键码为0001、超始码为1000、结束码为1101等。
步骤S100、设置中央处理器通过GPIO引脚与键盘输出引脚相连接,键盘通过输出引脚输出用户输入的按键的键码,当键盘上有一个或多个按键被同时按下时,键盘通过输出引脚发送按下的按键的键码。
本发明实施例中,中央处理器通过GPIO(输入/输出)引脚与键盘OUT(输出)引脚相连接,键盘通过输出引脚输出用户输入的按键的键码,中央处理器的GPIO配置成输入状态并通过GPIO引脚上电平的高低变化得到按键的键码。如果键盘上有一个或多个按键被同时按下,则键盘通过输出引脚向中央处理器发送被按下的按键的键码。
具体实施时,所述步骤S100具体包括:
当移动终端检测到键盘中某一个按键按下时,键盘发送按键的起始码,按键的键码和结束码。
当移动终端检测到键盘上有多个按键按下后,键盘依次发送起始码,所述多个按键的键码,结束码。
例如,设按键Q的键码为1010、按键G的键码为0001、起始码为1000、结束码为1101等。
具体实施时,键盘通过输出引脚向中央处理器发送被按下的按键的键码;这又分为两种情况,当键盘中某一个按键被按下时,键盘通过输出引脚向中央处理器发送该按键的键码,包括以下步骤:
B11、键盘通过输出引脚发送起始码;
B21、键盘通过输出引脚发送该按键的键码;
B31、键盘通过输出引脚发送结束码。
当键盘中有多个按键被同时按下时,键盘通过输出引脚向中央处理器发送这些按键的键码,包括以下步骤:
B21、键盘通过输出引脚发送起始码;
B22、键盘通过输出引脚发送这些按键的键码;例如,键盘上有三个按键被同时按下,则依次发送这三个按键的键码,发送顺序可以任意;
B23、键盘通过输出引脚发送结束码。
步骤S200、移动终端中央处理器通过检测GPIO引脚上的高低电平变化获取键盘发送过来的所述按键的键码,对所述按键的键码进行识别得到键盘输入内容并输出显示。
具体实施时,中央处理器,通过检测GPIO引脚上高低电平的变化得到键盘发送过来的码(包括键码、起始码、结束码);当中央处理器检测到GPIO引脚上输入起始码后,获取之后的码,若为键码则根据该键码就知道键盘上哪一个按键被按下,若为结束码则表示用户在键盘上的一次操作已结束(用户在键盘上一次按下一个或多个按键称为一次操作)。
即本发明实施例中移动终端中央处理器通过检测GPIO引脚上的高低电平变化获取键盘发送过来的所述按键的键码;将所述按键的键码与预先定义的键盘的键码进行对比分析,以对所述按键的键码进行识别得到对应的按键内容并输出显示。
具体实施时,中央处理器的GPIO引脚与键盘的输出引脚相连接。其中键盘包括:按键检测模块、转换模块、输出模块;
按键检测模块,用于检测键盘上的哪个或哪些按键被按下;
转换模块,用于将一次键盘操作(用户在键盘上一次按下一个或多个按键称为一次键盘操作)转换成相应的一串码,这串码由起始码、一个或若干个键码、结束码依次组成;所谓起始码、键码、结束码由若干个0或1组成,一个键码对应一个按键,起始码、键码、结束码的字符个数相等,且起始码、键码、结束码各不相同;
输出模块,将转换模块转换得到的一串码依次通过输出引脚输出,输出引脚输出高电平表示字符1,输出引脚输出低电平表示字符0;每一个字符代表的电平所持续的时间相同,且为固定值,较佳地,每个字符代表的电平持续1毫秒;如图2所示,若预先定义按键G的键码为0001、起始码S为1000、结束码E为1101,当检测到按键“G”被按下时,输出模块将输出图2所示波形。图中t为字符代表的电平持续时间,优先的为1ms,S表示起始码,G表示按键“G”的键码,E表示结束码。
具体实施时,移动终端的中央处理器包括:定时器、电平获取模块、转换模块、配置模块;
定时器,其超时时间与输出引脚代表一个字符0或字符1的电平持续时间,较佳地,定时器的超时时间为1毫秒;
电平获取模块,用以获取GPIO引脚的电平状态(高电平还是低电平);
转换模块,用以根据电平获取模块得到的GPIO引脚的电平状态来转换成相应的码(起始码、结束码或键码),从而进一步得到键盘上哪一个或哪一些按键被按下;
配置模块,用以在移动终端开机时将GPIO引脚配置成输入状态。
本发明的一种基于移动终端的键盘输入检测方法的第三较佳实施例的流程图,如图3所示。同时假定起始码为1000,结束字符为1101,且按键的键码的位数也是四。进行按键检测具体步骤如下:
由定时器每隔1毫秒触发获取GPIO引脚的电平,并将电平值传递给转换,如果GPIO引脚为高电平则转换为1,如果GPIO引脚为低电平则转换为0。
步骤S10、根据转换传送过来的字符0或1,移动终端中央处理器获取键盘发送的连续四个二进制字符0或1,之后执行步骤S20;
步骤S20、判断连续的四个字符是否为1000(起始码),若是则执行步骤S30,若为否则执行步骤S10;
步骤S30、再获取连续四个字符,之后执行步骤S40;
步骤S40、判断连续获取的四个字符是否为1101(结束码),若是则执行步骤S50,若为否则执行步骤S30;
步骤S50、本次键盘操作检测结束(用户在键盘上一次按下一个或多个 按键称为一次键盘操作),将KEY(按键存储区)中所检测到的所有按键上报,清空KEY,之后执行步骤S10;
步骤S60、这四个字符组成的键码对应的按键被按下,在KEY中记录这个被按下的按键,之后执行步骤S30。
所述KEY为一个存储区域,里面可以存储多个值,步骤S60用作存储检测到的被按下的按键用。
本发明通过对移动终端的全部按键进行编码,并设置起始码和结束码,使移动终端可以仅用一个GPIO引脚就可以实现全部的键盘输入,提高了GPIO引脚的利用效率。
基于上述实施例,本发明还提供了一种基于移动终端的键盘输入检测系统,如图4所示。其中,系统包括:
定义与存储模块501,用于预先定义键盘上每个按键对应的唯一的键码、以及设置一组起始码和结束码并存储。
发送模块510,用于设置中央处理器通过GPIO引脚与键盘输出引脚相连接,键盘通过输出引脚输出用户输入的按键的键码,当键盘上有一个或多个按键被同时按下时,键盘通过输出引脚发送按下的按键的键码;具体如上所述。
检测与识别模块520,用于移动终端中央处理器通过检测GPIO引脚上的高低电平变化获取键盘发送过来的所述按键的键码,对所述按键的键码进行识别得到键盘输入内容并输出显示;具体如上所述。
所述的一种基于移动终端的键盘输入检测系统,其中,所述系统还包括:
定义与存储模块,用于预先定义键盘上每个按键对应的唯一的键码以及起始码和结束码并存储;具体如上所述。
所述的一种基于移动终端的键盘输入检测系统,其中,所述发送模块包括:
第一发送单元,用于当移动终端检测到键盘中某一个按键按下时,键盘发送按键的起始码,按键的键码和结束码;具体如上所述。
所述的一种基于移动终端的键盘输入检测系统,其中,所述发送模块还包括:
第二发送单元,用于当移动终端检测到键盘上有多个按键按下后,键盘依次发送起始码,所述多个按键的键码,结束码;具体如上所述。
进一步地,所述检测与识别模块包括:
检测单元,用于控制移动终端中央处理器通过检测GPIO引脚上的高低电平变化获取键盘发送过来的所述按键的键码;具体如上所述。
识别单元,用于将所述按键的键码与预先定义的键盘的键码进行对比分析,以对所述按键的键码进行识别得到对应的按键内容并输出显示,具体如上所述。
以上任一项所述的一种基于移动终端的键盘输入检测系统,其中,所述键码,为键盘上的每个按键定义一个唯一的键码;
所述键码、起始码、和结束码都为二进制数,键码由若干个字符0或字符1组成,每个按键对应的键码字符个数相等,但字符内容各不相;具体如上所述。
综上所述,本发明提供了一种基于移动终端的键盘输入检测方法及检测系统。所述方法包括步骤:设置中央处理器通过GPIO引脚与键盘输出引脚相连接,键盘通过输出引脚输出用户输入的按键的键码,当键盘上有一个或多个按键被同时按下时,键盘通过输出引脚发送按下的按键的键码;移动终端中央处理器通过检测GPIO引脚上的高低电平变化获取键盘发送过来的键码,对键码进行识别得到键盘输入内容。采用本发明可使移动终端将自身的键盘的按键进行编码,对编码进行传输并识别,实现只用一个GPIO引脚就可以连接多个按键,减少了键盘所用到的GPIO引脚个数,提高了中央处理器的GPIO引脚利用效率。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。