发明内容
本发明要解决的技术问题是,提供一种键盘矩阵分析结构与方法,高效的分析整个键盘矩阵的行线、列线与空闲线,操作简便,并大大缩短分析时间,降低开发成本。
为解决上述技术问题,本发明提供一种键盘矩阵分析结构,包括:主控制芯片、键盘接口、LED显示板、COM口通信模块与模式切换按键。其中,主控制芯片,接收键盘接口与模式转换开关的信号,负责运算以及控制***进行扫描、分析并显示结果;键盘接口,连接键盘与主控制芯片;LED显示板,接收主控制芯片的输出信号,显示按键所在的行与列与键盘行列分析的结果;COM口通信模块,接收主控制芯片的输出信号,输出分析结果至电脑,并更新主控制芯片的程序;模式转换开关,负责***在扫描模式与分析模式之间切换。
当***工作于扫描模式下,按下任意一个按键后,LED显示板显示该按键所在的行和列,COM口通信模块把行列信息发送至电脑;按下键盘上的所有按键后,转换***工作模式,使***工作于显分析模式下,根据扫描模式下得到的所有按键的行列信息分析键盘的行线、列线与空闲线,并通过LED显示板显示,同时把键盘的行列信息通过COM口通信模块发送到电脑。
LED显示板上的每个LED灯都连接一行线或一列线,且每个键盘按键都连接一行线与一列线,因此当***工作于扫描模式时,按下任意一个按键后,有2个LED灯被点亮,其中一个LED灯连接一行线,另一个LED灯连接一列线,且一行线或列线连接的LED灯越多表示该行线或列线连接的键盘按键数越多。
模式转换开关使用自锁按键开关,弹出自锁按键开关时,自锁按键开关连接高电平,***工作于扫描模式,按下自锁按键开关时,自锁按键开关接地,***工作于分析模式。
基于以上的键盘矩阵分析结构,本发明还提出了键盘矩阵的分析方法,具体包括以下步骤:
1、判断***是否处于扫描模式,若***工作于分析模式,则弹出模式转换开关;
2、逐个按下键盘上的所有按键,每按下一个按键,代表该按键所在的行与列的LED灯被点亮,松开按键后,该LED灯熄灭,同时按键的位置信息将传输到COM口通信模块;
3、按下模式转换开关,使***工作于分析模式;
4、输出行线与列线的分析结果至LED显示板与COM口通信模块,LED显示板上显示键盘上的行线与列线的分布,代表行线的LED灯被点亮,代表列线的LED灯熄灭,代表空闲线的LED灯闪烁;同时,通过COM口通信模块,行线与列线的分析结果传输至电脑。
当***处于扫描模式时,对所有行线与列线标号,并设置任意一行线或列线的引脚为低电平,其他行线或列线的引脚为高电平;计算所有行线与列线的引脚的电平,判断按下的按键是否在引脚设置为低电平的行线或列线上,并检测由高电平变为低电平的引脚,记录引脚为低电平的两个引脚的标号。
当***处于分析模式时,信息库L用来记录已经分析的行线与列线的状态,暂存库T用来备份信息库L中的信息,根据含有最多按键的线判断出行线、列线与空闲线,并在信息库L中把分析过的线的状态置1,继续进行以下步骤:
1)判断信息库中是否均为1:若信息库中均为1,则输出并显示结果;否则进行步骤2);
2)把信息库中的信息备份至暂存库中;
3)根据当前的行线或列线确定行线R与列线C,并在信息库中记录新增的已经分析的行线R与列线C的状态;
4)判断当前的信息库与暂存库中的信息是否一致:若不一致,重复步骤3);若一致,从未分析的线中任选一根线,设为行线或列线,并在信息库L中把该线的状态置1,继续进行步骤1);
5)将行线、列线与空闲线的信息输出至LED显示板,通过LED灯显示,被点亮的LED灯表示该LED灯连接的线为行线,熄灭的LED灯表示该LED灯连接的线为列线,闪烁的LED灯表示该LED灯连接的线为空闲线,同时,将行列信息输出至电脑。
本发明的技术效果是:只需按下一个按键就能获得该按键的位置信息,按下所有按键后就能获得键盘矩阵的布局,具体为判断出行线、列线与空闲线。整个分析过程时间短,效率高,操作简便。其次,利用本发明提供的键盘矩阵分析结构与方法,PC厂商在组装之前对键盘进行测试,检测键盘矩阵是否能正常工作,检测键盘与给出的矩阵图是否一致。另外,利用本发明提供的键盘矩阵分析结构与方法,还可以进行键盘的故障检测,当键盘接上笔记本电脑后,在没有按下按键时如果已有LED灯被点亮,说明有按键发生黏连故障;如果按下任意一个按键后,所有LED灯仍然处于熄灭状态,说明有按键无法闭合。最后,根据本发明提供的一种键盘矩阵分析结构与方法,适用于分析任何矩阵键盘,使用范围广。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
图1为本发明提供的键盘矩阵分析结构的硬件***结构图
如图1所示,本发明提供的键盘矩阵分析结构包括以下结构:
1、主控制芯片103,接收键盘接口102与模式转换开关105的信号,负责运算与控制按键的扫描定位、行列分析,同时控制LED显示板104显示行列分析的结果并发送分析结果至电脑107上。
2、键盘接口102,连接键盘101与主控制芯片103。
3、LED显示板104,接收主控制芯片103的输出信号,显示按键所在的行与列,以及键盘行列分析的结果。
4、COM口通信模块106,接收主控制芯片103的输出信号,输出行列分析结果至电脑107,并更新主控制芯片103的程序。
5、模式转换开关105,负责***在扫描模式与分析模式之间转换。
图2为本发明提供的键盘矩阵分析结构电路结构图。
如图2所示,作为较佳实施方式,键盘矩阵分析结构包括:
1、主控制芯片201,其引脚个数大于或等于40,且内含的Flash可存放的扩展数据大于或等于100字节,且代码大于或等于5000字节。主控制芯片201的第32至第39引脚的P00至P07口与1个显示单元303连接,并连接至键盘接302的第1至第8引脚;主控制芯片201的第1至第8引脚的P10至P17口与另一个显示单元303连接,并连接至键盘接口302的第17至第24引脚;主控制芯片201的第21至第28引脚的P20至P27口与显示单元303连接,并连接至键盘接口302的第9至第16引脚。主控制芯片201的第9引脚连接复位信号RESET;第10引脚连信号RXD;第11引脚连接信号TXD;第17引脚连接模式转换信号MODE_SW;第18、19引脚连接电容C7、C8与晶体Y2,组成***的时钟电路;第20引脚接地;第40引脚连接高电平VCC。
2、显示单元303,其包含8个电阻R与8个发光二极管D,且每个电阻R都与一个发光二极管D串联连接,构成显示元素结构,8个显示元素结构并联连接,且一端连接高电平VCC,构成显示单元303,另一端则与主控制芯片上的P00至P07或P10至P17或P20至P27连接。
3、模式转换开关304,其采用1个自锁按键开关S4,弹出自锁按键开关时,自锁按键开关连接高电平,***工作于扫描模式,按下自锁按键开关时,自锁按键开关接地,***工作于分析模式。
4、COM口传输模块,其由9芯接口305与芯片306组成,第1与第2引脚通过电容C4与第3引脚连接,并通过电容C6与高电平VCC连接;第4引脚通过电容C2与第5引脚连接;第6引脚通过电容C5接地;第7引脚连接9芯接口305的第2引脚;第8引脚连接9芯接口305的第3引脚;第10引脚连接信号RXD,第11引脚连接信号TXD,第15引脚接地;第16引脚接高电平VCC。其中,9芯接口305中第2、3引脚分别连接芯片306的第7、8引脚,且第5引脚接地。
5、复位电路307,由开关S2、电阻R9与电容C1组成,且开关S2与电容C1并联连接,一端连接高电平,另一端连接电阻R9后接地,开关S2与电容C1并联连接后与电阻R9的连接处输出信号为复位信号RESET。
6、供电电路308中,其包括一个串联连接的电源P1、开关S1、发光二极管D25和电阻R26,其中,电源P1与电阻R26的连接处接地,开关S1与发光二极管D25的连接处输出信号为高电平VCC,为整个***提供工作电压。
作为最佳实施方式,主控制芯片301为芯片STC8958,芯片306为MAX232芯片,且所有电阻阻值均为1000欧姆,所有发光二极管D耐压为5伏,电容C1为20微法,电容C2至C6均为1微法,电容C7、C8为30微法,晶振Y2的振动频率为12M,电源P1供电电压为5伏。
本发明还提供了一种基于上述键盘矩阵分析结构的分析方法。
图3为本发明提供的键盘矩阵分析方法操作流程图。
如图3所示,本具体实施方式提供的键盘矩阵分析方法包括以下步骤:
步骤S301,判断***是否工作于扫描模式,若***工作于分析模式,则弹出模式转换开关;
步骤S302,逐个按下键盘上的所有按键,每按下一个按键,代表该按键所在的行与列的LED灯被点亮,松开按键后,该LED灯熄灭,同时连接该LED灯的行线与列线的标号信息将传输到COM口通信模块;
步骤S303,按下模式转换开关,使***工作于分析模式;
步骤S304,输出行线与列线的分析结果至LED显示板与COM口通信模块,LED显示板上显示键盘上的行线与列线的分布,代表行线的LED灯被点亮,代表列线的LED灯熄灭,代表空闲线的LED灯闪烁;同时,通过COM口通信模块,行线与列线的分析结果传输至电脑。
当***工作于扫描模式下,按下任意一个键盘按键后,LED显示板显示该按键所在的行和列,COM口通信模块把相应的行列信息发送至电脑;按下键盘上的所有按键后,转换***工作模式,使***工作于分析模式下,根据扫描模式下的所有按键的位置信息分析键盘的行线、列线与空闲线,并通过LED显示板显示,同时把键盘的行列信息通过COM口通信模块发送到笔记本电脑。
图4为本发明提供的键盘矩阵分析方法中***处于扫描模式下的操作流程图。
如图2所示本发明提供的键盘矩阵分析结构中包括24个LED灯,因此行线与列线的总数为24,把所有行线与列线标号1,2,3......24,依次进行以下步骤,如图4所示:
步骤S401,设置参数i为1;
步骤S402,设置标号为i的引脚为低电平0,其他所有行线与列线的引脚为高电平1;
步骤S403,把24个引脚分成三组,每8个引脚的电平组成一个8位的二进制数,则24个引脚的电平依次组成3个二进制数SUM1、SUM2与SUM3;
步骤S404,判断SUM1、SUM2与SUM3是否满足以下条件:
(SUM1/SUM2/SUM3+1<<(i%8))%0xFF=0
若满足上述等式,表示此时没有按键按下,所有行线与列线的电平均未发生变化,使参数i加上1,并判断此时参数i是否小于24,若i小于或等于24,则再进行第S403步;若i大于24,从第S401步重新扫描;
若不满足上述等式,表示此时有按键被按下,进行步骤S405;
步骤S405,按下的按键与标号为i的引脚连接,导致另一根线的引脚变为低电平,检测由高电平变为低电平的引脚,获得该引脚对应的行线或列线的标号j,在两根为低电平的行线与列线i与j中,一根为行线,另一根为列线,且二者对应的LED灯被点亮,显示该按键所在的位置;
步骤S406,记录该按键与对应的行线与列线的标号信息。
当***处于扫描模式时,***重复的扫描24根线,在扫描过程中的任意时刻按下任意一个按键后,则会判断出该按键的对应的行线或列线的信息。
在上述扫描模式下的第S405步的等式中,%表示取模运算,i%8表示取i除以8后的余数,<<表示二进制数的左移运算,且低位补零,1<<(i%8)表示把1左移(i%8)位,且低位补零,0xFF为十六进制数,对应于二进制数的11111111。
当按下一个按键并设置任意一个引脚为低电平0后,为计算简便,根据所有引脚的电平得到3个8位的二进制数SUM1、SUM2与SUM3,若该按键与该低电平的引脚对应的行线或列线是相互连接的,则导致有另一个引脚由高电平变为低电平,即SUM1或SUM2或SUM3会发生变化,若该按键与该低电平的引脚对应的行线或列线不是相互连接的,则SUM1或SUM2或SUM3保持不变,因此通过第S405步的等式判断SUM1、SUM2与SUM3是否发生变化。若设置i=3,则得到SUM1、SUM2与SUM3,与二进制数1000相加,判断相加后的结果是否能被二进制数11111111整除,若能整除,表示24个引脚的电平中,只有标号为3的引脚为低电平,即按下的按键与该低电平的引脚对应的行线或列线不是相互连接的;若不能整除,表示24个引脚的电平中,除标号为3的引脚为低电平外,有另一个引脚为低电平,即按下的按键与该低电平的引脚对应的行线或列线是相互连接的,通过检测所有引脚电平即可获得另一个低电平的引脚j。
当***处于扫描模式时,利用以下表格记录扫描结果:
在上述表格中,第一列与第一行均表示所有行线与列线的标号,若按下某个按键后,标号为1和3连接的LED灯被点亮,则在表格中记录,如表格中x;若按下某个按键后,标号为2和23的LED灯被点亮,则在表格中记录,如表格中z;逐个按下所有按键后,则得到所有按键对应的LED灯被点亮的表格信息,并可看出任意一根行线或列线上的按键个数,同时,若表格中有一行没有任何记录,则把该行对应的标号所代表的线作为空闲线,如表格中的第24行没有任何记录。则把标号为24的线作为空闲线。
当***处于分析模式时,信息库L用来记录已经分析的行线与列线的状态,暂存库T用来备份信息库L中的信息,根据含有最多按键的线判断出行线、列线与空闲线,并在信息库L中把分析过的线的状态置1,继续进行以下步骤:
1)判断信息库中是否均为1:若信息库中均为1,则输出并显示结果;否则进行步骤2);
2)把信息库中的信息备份至暂存库中;
3)根据当前的行线或列线确定行线R与列线C,并在信息库中记录新增的已经分析的行线R与列线C的状态;
4)判断当前的信息库与暂存库中的信息是否一致:若不一致,重复步骤3);若一致,从未分析的线中任选一根线,设为行线或列线,并在信息库L中把该线的状态置1,继续进行步骤1);
5)将行线、列线与空闲线的信息输出至LED显示板,通过LED灯显示,被点亮的LED灯表示该LED灯连接的线为行线,熄灭的LED灯表示该LED灯连接的线为列线,闪烁的LED灯表示该LED灯连接的线为空闲线,同时,将行列信息输出至电脑。
图5为本发明提供的键盘矩阵分析方法中***处于分析模式下的流程图。
如图5所示,按下所有按键后,按下模式转换开关,使***处于分析模式,根据记录的所有按键对应的行线或列线的标号,依次按照以下步骤进行:
步骤S501,找出含有按键个数最多的线,即亮灯次数最多的线;
步骤S502,把与该线相交的线作为行线R,把与行线R相交的线作为列线C,并在信息库L中把行线R与列线C相应的状态设为1;
步骤S503,找出空闲线K,并在信息库L中把空闲线K相应的状态设为1;
步骤S504,判断信息库L中所有线的状态是否均为1,若信息库L中均为1,进行步骤S509;否则进行步骤S505;
步骤S505,把当前信息库L中的信息备份至暂存库T中;
步骤S506,把所有与行线R相交的线记录到列线C,所有与列线C相交的线记录到行线R中,并在信息库中L中把新增加的分析过的行线R或列线C的状态置为1;
步骤S507,判断信息库L与暂存库T中的信息是否一致,若不一致,再进行第S506步;若一致,进行第S508步;
步骤S508,从未分析的线中任选一线,设为行线,并在信息库L中把该线的状态置为1,继续进行第S504步;
步骤S509,输出记录的信息输出至LED显示板,通过LED灯显示,点亮的LED灯表示该LED灯连接的线为行线,熄灭的LED灯表示该LED灯连接的线为列线,闪烁的LED灯表示该LED灯连接的线为空闲线。同时,输出记录的信息输出至电脑。
在上述分析模式步骤中,按如下方法记录分析数据:
|
1 |
2 |
3 |
... |
23 |
24 |
L |
1 |
1 |
|
... |
1 |
1 |
T |
1 |
1 |
|
... |
1 |
1 |
R |
1 |
1 |
|
... |
|
|
C |
|
|
|
... |
1 |
|
K |
|
|
|
|
|
1 |
在上述表格中,第一行表示所有行线与列线的标号,L为信息库,记录已经分析过的行线与列线,T为暂存库,用来备份信息库L中的信息,R为行线,C为列线,K为空闲线。按照上述分析模式,得到如下信息:
(1)依次完成上述分析模式下第一具体实施方案的S501至S503步后,得到行线R、列线C与空闲线K的标号,在上述表格中用1记录,如标号为1与2的线为行线R,标号为23的线为列线C,标号为24的线为空闲线K,并在信息库L中把标号为1、2、3、23、24的线的状态置为1;
(2)根据第S504步,判断出信息库L中不全为1,继续进行第S505步;
(3)根据第S505至第S506步,把信息库L中的信息备份至暂存库T中,再根据当前的行线R与列线C,寻找行线R与列线C相交的未分析的线,与列线C相交的线就归类到行线R,与行线R相交的就归类到列线C,并在信息库L中把新增加的分析的线的状态置为1;
(4)根据第S507至第S508步,判断信息库L与暂存库T中的信息是否一致,若不一致,进行第S507步,若一致,从未分析的线中任选一根线,归为行线,再重复第S504步,直至信息库L中均为1,则进行第S509步。
在上述分析模式下的第S501至S503步中,根据扫描模式下记录的信息,先判断出行线R与列线C,再判断出空闲线。在第S508步中,把任选的线作为行线,把与当前行线R相交的线作为列线C,把与当先列线C相交的线作为行线R。
作为可选实施例,当***处于分析模式下,第S508步中,可把任选的线作为列线,再判断出行线R与列线C。
作为又一可选实施例,当***处于分析模式下,可根据扫描模式下记录的信息,先判断出空闲线,再判断出行线与列线。
根据本发明提供的键盘矩阵分析结构及分析方法,只需按下一个按键就能获得该按键的位置信息,按下所有按键后就能获得键盘矩阵的布局,判断出哪些是行线、哪些是列线、哪些是空闲线。整个分析过程时间短,效率高,操作简便。其次,根据本发明提出的键盘矩阵分析结构与分析方法,PC厂商在组装之前对键盘进行测试,检测键盘矩阵是否能正常工作,检测键盘与给出的矩阵图是否一致。另外,根据本发明提出的一种键盘矩阵分析结构与分析方法,还可以进行键盘的故障检测,当键盘接上笔记本电脑后,在没有按下按键时如果已有LED灯被点亮,说明有按键发生黏连故障;如果按下任意一个按键后,所有LED灯仍然处于熄灭状态,说明有按键无法闭合。最后,根据本发明提供的一种键盘矩阵分析结构与分析方法,适用于分析任何矩阵键盘,使用范围广。
在不偏离本发明的精神和范围的情况下还可以构成许多有很大差别的实施例。应当理解,除了如所附的权利要求所限定的,本发明不限于在说明书中所述的具体实施例。