检测键盘阵列短路的方法

文档序号:6459796阅读:816来源:国知局
专利名称:检测键盘阵列短路的方法
技术领域
本发明涉及一种计算机键盘检测方法,更详而言的,涉及一种快速检测键盘阵列短路的方法。
现今的信息时代中,当使用者想与计算机做沟通时,计算机键盘是一个重要的外部资料输入装置。使用者利用键盘按键即可输入资料、数据、程序并储存于计算机的存储装置中,所以键盘按键的正常工作与否将影响到输入计算机的信号是否正常,所以使用者定期的检测键盘按键是一必须的工作。
一般而言,实际的键盘操作上以行数据线及列数据线所构成的键盘矩阵来对应键盘按键,而键盘矩阵中的每一个键号代表一相对应的键盘按键。当键盘出现短路时,在键盘矩阵中发生短路的情况有三种,即行数据线与行数据线短路、列数据线与列数据线短路、以及行数据线与列数据线短路。对于行数据线与列数据线的短路情况,在计算机开始启动时,由计算机BIOS中的自动检查程序即可发现,所以使用者要处理的是列数据线与列数据线的短路问题,以及行数据线与行数据线的短路问题。
一些测试已知的键盘检测方法,无论是含有对键盘上的键进行检测的诊断计算机硬件的QAFace软件和Amidiag软件,均是调用DOS(磁盘操作系统)和BIOS(基本输入输出系统)中断程序来获得每个键的扫描码。而当利用计算机硬件测试软件,例如Qafactry6.0,7.0,AMI Diag,Compaq Diag,以进行计算机键盘阵列短路检测时,测试人员必须依靠眼睛直接观察荧幕上的显示。当按下某一键时,将必须仔细观察荧幕键盘盘示意图上的某一对应按键是否被按下,而且同时有无别的按键亦显示为被按下状态。即当如果在按下某一键的同时,在荧幕键盘示意图上有无二个或二个以上的键为闪动状态,若有,则表示有短路情况发生。当采用如此的测试法时,若计算机键盘上的所有按键为102键时,使用者必须按下键102次,并且当每按下一次键时要仔细的观察计算机荧幕键盘示意图的闪动状况。所以在已知技术中,在进行键盘检测时,在计算机荧幕上并不会以文字信息显示方式来告知使用者按键短路情况,故使用者在测试全程中必须仔细的注视荧幕并按下键盘上所有的按键,才可得知键盘的短路情况,而不可能在仅按下一些键而非所有键的情况下得到短路测试结果。
为了解决上述已知方法所产生的问题,在此我们采有了一种新颖的快速键盘检测方法,在仅按下二十五个键而不是按下全部键盘按键的情况下,在无须用眼睛判断荧幕键盘示意图的闪动情况下,使用者可利用在荧幕上所显示出文字信息而得知键盘的短路测试结果。故使用者在无需按下全部按键以及全程观察荧幕的状态下,可有效地克服已知技术中所存在的问题,而可快速地分析出键盘的短路问题。
本发明的主要目的在于提供一种快速检测键盘阵列短路的方法,可应用于包含键盘的计算机系统中,而让使用者能在无需按尽全部键盘按键的状态下,仅按下二十五个键而可快速的检测键盘阵列的短路情况。
本发明的另一目的在于提供一种快速检测键盘阵列短路的方法,可应用于包含键盘的计算机系统中,在荧幕上显示出文字信息,用以让使用者找出数据线间的短路情况。
本发明的再一目的在于提供一种快速检测键盘阵列短路的方法,可应用于包含键盘的计算机系统中,将由键盘控制器而来的键盘扫描码直接存入主机装置的缓冲区中,而主机装置所处理的数据为键盘扫描码,而非经转码处理后的ASCII码。
本发明的又一目的在于提供一种快速检测键盘阵列短路的方法,可应用于包含键盘的计算机系统中,当使用者按下一键后,键盘控制器将读到一信号变化而产生出对应于这个按键的键盘扫描码,并将引发硬件中断IRQ1,而以自定义的中断服务程序代替传统的INT9H中断程序。
根据以上所述的目的,本发明提供了一种新颖的快速检测键盘阵列短路的方法,可应用于包括键盘、键盘控制器、含有缓冲区、中央处理器装置以及存储装置的计算机主机、以及显示器的计算机系统中。
使用本方法时,首先建立对应于键盘按键的键盘矩阵,此键盘矩阵由行列式矩阵键盘的行数据线以及列数据线所构成,并在计算机主机的存储装置中建立对应于键盘矩阵中的每一位置的键盘扫描码数据库。当使用者按下一键盘按键后,就会有某一行数据线与某一列数据线接触,而键盘控制器将读到由于此按下动作所产生的一信号变化而产生出相对的键盘按键的扫描码,将此扫描码送入计算机主机中并将引发主机硬件中断IRQ1,而以自定义的中断服务程序代替传统的INT9H中断程序,然后直接将扫描码送入计算机主机的缓冲区中。
利用执行计算机主机的存储装置中的比对程序,计算机主机将进行一比对动作以将缓冲区中的扫描码与存储装置中的键盘扫描码数据库作比对,根据比对结果找出扫描码所对应的是键盘矩阵中的某一位置,而可得知键盘按键中是那一个按键被按下。当使用者进行键盘短路测试时,使用者依照指示依次的一个一个按下二十五个指定的按键,每当有一键盘按键被使用者按下后,当键盘按键有短路的情况发生时,荧幕的文字信息将显示出发生短路的键盘按键,并显示出发生短路的列数据线行号,亦或显示出发生短路的行数据线的行号。由于使用者无需按下全部的键盘按键,而在仅按下二十五个按键的情况下,可得知键盘的短路状态,故可快速检测键盘阵列。
利用已知方法进行键盘检测时,使用者必须全程仔细的注视荧幕,并按尽键盘上所有的键才可得知键盘的短路情况,在荧幕上不会出现每一键是否正常与否的信息,而使用者必须以繁复的程序来进行键盘检测,并不能只按一些键而可得知短路测试结果。
为了解决上述已知方法所产生的问题,在此我们采用了一种新颖的快速键盘阵列检测方法。使用本方法时,能在仅按下二十五个键而不是按下全部键盘按键的情况下,在荧幕上以文字信息的方式显示出键盘的短路测试结果,能有效地克服已知技术存在的问题,并可快速检测键盘阵列的短路情况。
为使本发明的上述和其它目的,特征,优点能更明显易懂,将举一最佳实施例,并配合所附图示,详细说明本发明的实施例,所附图式的内容简述如下

图1是一个系统方块图,其中显示应用本发明的快速检测键盘阵列短路方法的计算机系统的基本系统硬件架构。
图2是一个键盘按键与键盘矩阵的对应示意图,用以说明应用本发明的快速检测键盘阵列适路方法的计算机键盘上的每一按键所对应的键盘矩阵的对应位置;图3是一个键盘按键与扫描码以及键盘矩阵的对应示意图,用以说明应用本发明的快速检测键盘阵列短路方法时,当按下键盘按键以进行测试时,以行、列数据线所构成的键盘矩阵上的每一位置所对应的扫描码;图4为表示第1图的系统的一个实施例的操作流程图,其中显示应用本发明的快速检测键盘阵列短路方法以判断出键盘短路的流程程序;和图5是一个示意图,用以说明应用本发明的快速检测键盘阵列短路方法时,当使用者按下键盘按键后,将在显示器的荧幕上以文字信息方式显示出数据线间的短路情况。
请参阅图1,其中显示应用本发明的快速检测键盘阵列短路方法的计算机系统的基本系统硬件架构。如第1图所示,此计算机系统包含一计算机键盘1、一键盘控制器2、一含有缓冲区、中央处理器以及存储装置的计算机主机3、以及一显示器4。此计算机系统可为任何型式的个人计算机系统,例如为桌上型、笔记型、或掌上型计算机系统。
此计算机系统中,计算机键盘1耦合到键盘控制器2,而键盘控制器2再耦合到计算机主机3,显示器4亦与计算机主机3直接耦合。
首先于计算机主机3的存储装置中建立对应于计算机键盘1的标准扫描码数据及键盘矩阵,当计算机键盘1中的某一键被按下后,由于行数据线与列数据线的接触,键盘控制器2就会读到这个键盘信号变化而产生出对应于这个按键的按盘扫描码,并将引发计算机主机3的硬件中断IRQ1,而以自定义的中断服务程序代替传统的INT9H中断程序,然后直接将键盘扫描码送入计算机主机3的缓冲区中,利用执行存储装置中的比对程序,计算机主机3将进行一比对动作以将缓冲区中的扫描码与存储装置中的键盘扫描码数据库作比对,根据比对结果找出扫描码所对应的是键盘矩阵中的某一位置,而可得知键盘1按键中是哪一个按键被按下。使用者依照指示依次的一个一个按下二十五个指定的按键,每当有一键盘1的按键被使用者按下后,当键盘1的按键有短路的情况发生时,显示器4的荧幕上的文字信息将显示出发生短路的键盘1的按键,并显示出发生短路的列数据线的列号,亦或显示出发生短路的行数据线的行数号。当使用者依照本发明的提示而按下二十五个按键后,即可在显示器4的荧幕中所显示出的文字信息中得知所发生短路的数据线位置,而得出键盘1中发生短路的按键。
图2是一个键盘1的按键与键盘矩阵的对应示意图,用以说明应用本发明快速键盘检测方法的计算机键盘1上的每一按键所对应的键盘矩阵的对应位置,并以键号来代表此键号所对应的实体按键,以及键盘矩阵与行数据线以及列数据线的互相对应关系。在实际的键盘1操作上,以行数据线及列数据线所构成的键盘矩阵的矩阵结构来对应实体计算机键盘1的按键,而键盘矩阵中的位置上的每一个键号代表一相对应的计算机键盘1的按键。如图2中所示,以一个键盘矩阵的形式来表示位于计算机键盘1上每一个键的相对应位置以及键号,每个位于计算机键盘1上的按键均对应于键盘矩阵中的某一位置上的键号。例如位于键盘矩阵ksin2-kout10位置的键号27的键是对应于实体计算机键盘1的[[,{]键,而位于键盘矩阵ksin12-kout11位置的键号为58的键是对应于实体计算机键盘1的[Ctr1]键,而位于键盘矩阵ksin5-kout5位置的键号为35的键是对应于实体计算机键盘1的[G]键。由于键盘矩阵所能容纳的键号位置数目大于实体计算机键盘1的按键数目,因而在键盘矩阵中的某些位置上并无键号,即并无相对应的实体按键,例如于键盘矩阵ksin1-kout13的位置上并无任何键号,故在此键盘矩阵位置(ksin1-kout13)上并无任何与的对应的实体键,当使用者按下或抬起计算机键盘1的某一按键后,依此按键的键号而对应到以列数据线以及行数据线所构成的键盘矩阵中的某一位置,而键盘控制器2将读到来自这个键盘矩阵位置的一个信号变化并产生出对应的扫描码。
图3是一个键盘1的按键与扫描码以及键盘矩阵的对应示意图,用以说明应用本发明的快速键盘检测方法时,当按下键盘1的按键以进行测试时,以行、列数据线所构成的键盘矩阵上的每一位置所对应的扫描码的值。图中显示当按下实体计算机键盘1的按键被按下时,将于由行列数据线所构成的键盘矩阵产生出一信号变化,而键盘控制器2将读到来自这个键盘矩阵位置的一个信号变化并产生出对应的扫描码。例如,如图中所示,当按键[G]被按下后,依此按键[G]的键号35而对应到以列数据线以及行数据线所构成的键盘矩阵中的ksin5-kout5位置,而键盘控制器2将读到来自这个键盘矩阵位置的一个信号变化并产生出对应的扫描码22。在此行列数据线与键盘矩阵的对应图中,可以明白的看出位于键盘矩阵中的每一位置所代表的键号以及所在的处的行、列数据线。例如,行数据线ksin2-列数据线kout9所对应的键号为13,而ksin2-kout1所代表的内容即键号为32,而键号32所对应的计算机键盘1上的按键是[S]键,可经由矩阵键盘表格内的键号而可得到相对应的计算机键盘1中的键。所以当键盘控制器2得到来自对应于计算机键盘1的按键的键盘矩阵的信号变化后,将依按下的键而产生出相对应的扫描码。而若某一按键为短路的形态(行数据线与行数据线短路,或列数据线与列数据线短路),则即使这个按键未被使用者按下,而键盘控制器2仍将产生一对应这个键的扫描码。
图4是表示图1的系统的一个实施例的操作流程图,其中显示应用本发明的快速检测键盘阵列方法以判断键盘短路的流程程序。
如图中所示,首先在步骤11时,在计算机主机3建立标准扫描码数据库和一一对应于键盘1的按键的键盘矩阵。键盘矩阵乃由行列形式的矩阵键盘的行数据线以及列数据线所构成,并在计算机主机3的存储装置中建立对应于键盘矩阵中的每一位置的键盘扫描码数据库。计算机键盘1的每一键被按下后,将产生相对于此按键的序列扫描码,而每个键均有唯一的序列扫描码(以十六进位制来表示),建立这些标准扫描码数据库是用来与测试计算机键盘1时所按下的键所获得的扫描码数据加以比对,以显示测试过程中的某一键的状态。
在步骤12中,使用者以设计好的中断服务程序更换INT9H中断服务程序,当按下计算机键盘1的按键后可获得按键的扫描码。
步骤13则用以判断使用者是否按下某个键;若使用者未按下任何一键,则进到步骤20;若使用者按下任何一键,则进到步骤14。
步骤14中,由于使用者按下计算机键盘1的某一键,键盘控制器2将读到一信号变化而产生出对应于这个按键的扫描码。键盘扫描器2将所得的扫描码(以十六进制位表示)直接送入计算机主机3的缓冲区中,以进行扫描码比对。
在步骤15,计算机主机3分析并处理缓冲区中的扫描码数据,计算机主机3根据步骤14所获得的数据与在步骤11中计算机主机3所建立的标准扫描码数据库做比对,以判断仅按下一键而得到的扫描码只有一个或仅按下一键而得到的扫描码不只一个。若经判断后,所得的扫描码仅有一个则将进到步骤16;反之,若经判断后,所得的扫描码不只一个则将进到步骤17。
步骤16中,由于所获得的扫描码仅有一个,计算机主机3将得出对应于此扫描码的实体键盘上的某一键未与其他键发生短路,接着进到步骤20。
在步骤17中,可知所获得的扫描码不只一个,则表示行数据线与行数据线发生短路,亦或列数据线与列数据线发生短路。故计算机主机3将根据所得的不止一个的扫描码,来判断对应于这些扫描码的铵键是位于同一列数据线上亦或是位于同一行数据线上。若经判断后,这些扫描码乃对应于位于同一列数据线上的按键,则进到步骤18;若经判断后,此后扫描码乃对应于位于同一行数据线上的按键,则进到步骤19。
步骤18中,在显示器4的荧幕上将显示出文字信息,用以表明与按下的键所在的行数据线短路的其他行数据线,并进到步骤20。
步骤19中,在显示器4的荧幕上将显示出文字信息,用以表明与按下的键所在的列数据线短路的其他列数据线,并进到步骤20。
在步骤20中,计算机主机3将判断计算机键盘1的全部按键是否均被按过。若计算机键盘1的全部按键均被按过,则进行到下一步骤21;若计算机键盘1的全部按键并未全被按过,则回到步骤13。
步骤21中,使用者根据显示器4荧幕上显示的文字信息,得到计算机键盘1的测试结果,而可容易地得到行数据线与行数据线、列数据线与列数据线的短路情况,并将进到步骤22。
步骤22中,使用者已得到计算机键盘1的短路情况,而将还原INT 9H中的中断服务程序,而结束了这个快速检测键盘阵列的过程。
图5是一个示意图,用以说明应用本发明的快速检测键盘阵列短路方法时,当使用者按下键盘按键后,将在显示器4的荧幕上以文字信息方式显示出数据线间的短路情况。如图所示,当以本发明的快速检测键盘阵列短路方法来测试键盘1时,将提示使用者依次的一一按下二十五个指定的键。当按下键号46的键[Z]时,如果键盘控制器2只收到来自键[Z]的信号改变,则计算机主机3仅得到键[Z]的扫描码,而得知键[Z]并未与其他按键发生短路。而若键盘控制器2不但收到来自键[Z]的信号改变,亦收到来自键号17的键[Q]的信号改变,则计算机主机3不但得到键[Z]的扫描码,亦将收到键[Q]的扫描码,而计算机主机3可根据内建的扫描码数据库得知行数据线ksin0与行数据线ksin1发生短路,并在显示器4的荧幕上以文字信息显示行数据线ksin0与行数据线ksin1发生短路。若计算机主机3不但得到键[Z]的扫描码,而又收到键号47的键[X]的扫描码,计算机主机3可根据内建的扫描码数据库得知列数据线ksout0与列数据线ksout1发生短路,并在显示器4的荧幕上以文字信息显示列数据线ksout0与列数据线ksout1发生短路。所显示出的文字信息如图6中所示。
现以计算机键盘1所对应的键盘矩阵来说明如何应用本发明的快速检测键盘阵列的方法而找出数据线间的短路情况。
先讨论行数据线间出现短路的情况,若行数据线ksin8以及行数据线ksin9出现短路,当使用者按下键号为44的键时,由于行数据线间的短路而使得键号57的键也处于被按下的状态。因为键号44的键与键号57的键同时处于列数据线ksout11上,故当键号44的键被按下时,行数据线ksin8将与列数据线ksout11接触,但由于行数据线ksin8以及行数据线ksin9出现短路,所以行数据线ksin9亦与列数据线ksout11接触,而此举相当于键号57的键被按下。若行数据线ksin0以及行数据线ksin1出现短路,当使用者按下键号为29的键时,由于行数据线间的短路而使得键号76的键也处于被按下的状态。因为键号29的键与键号76的键同时处于列数据线ksout9上,故当键号29的键被按下时,行数据线ksin0将与列数据线ksout9接触,因为行数据线ksin0以及行数据线ksin1出现短路,所以行数据线ksin1亦与列数据线ksout9接触,而此举相当于键号76的键被按下。同理,若行数据线ksin8以及行数据线ksin10出现短路,当使用者按下键号为44的键时,由于数据线间的短路的关系而使得键号60的键也处于被按下的状态。
所以使用者若先按下键号44的键,而只能读到键号44的键的扫描码并没有伴随其他键号的键的扫描码,则可判断出键号44的键所处位置的行、列数据线并未与其他的行、列数据线发生短路。若当仅按下键号44的键,却可得到键号44的键与键号57的键的扫描码时,则说明了行数据线ksin8以及行数据线ksin9出现短路,若当仅按下键号44的键,可是确可得到键号44的键与键号60的键的扫描码时,则说明了行数据线ksin8以及行数据线ksin10出现短路。而对于行数据线ksin0到行数据线ksin7的这些行数据线,以及行数据线ksin8到行数据线ksin15的这些行数据线,均可用同样的方式而找出彼此行数据线间的短路关系,在此不再讨论。
对于列数据线的短路情况,列数据线ksout0到列数据线ksout10间的短路测试原理基本上相同于行数据线ksin0到行数据线ksin7的这些行数据线间的短路测试方法,差别仅在于行和列的区别而已,故在此不再讨论。
而就列数据线ksout10与列数据线ksout11而言,当按下位于列数据线ksout11上的任何键时,由于列数据线ksout10与列数据线ksout11并不共用相同的行数据线,故不会影响到列数据线ksout10上的任何一键的状态。所以列数据线ksout10与列数据线ksout11是否短路并不会影响到键盘的正常使用。同理,使用者不必判断列数据线ksout11与列数据线ksout0到ksout10间的列数据线短路问题。
由于行数据线ksin8至ksin15与行数据线ksin0至ksin7的间没有共用的列数据线,所以行数据线ksin8至ksin15与行数据线ksin0至ksin7其间的短路与否并不会影响到键盘1的正常使用,所以在此不必判断其间的行数据线短路问题。
根据以上分析可知,当检测行数据线ksin8至ksin15的间是否有行数据线短路情况,只需依次按下键号44的键[左shift]、键号57的键[右shift]、键号60的键[左Alt]、键号62的键[右Alt]、键号58的键[左Ctrl]、键号64的键[右Ctrl]以及键号59的键[Fn]等七个键,以是否依次的单独得到这七个键的扫描码,而可判断出行数据线ksin8至ksin15间是否有行数据线短路情况发生。
如果要检测行数据线ksin0至ksin7的间是否有行数据线短路情况,只需依次的按下键号53的键[<]、键号24的键[I]、键号38这键[K]、键号9的键[8]、键号81的键[End]、键号86的键[PgDn]、键号118的键[F7]以及键号41的键[′]等八个键,以是否依次的单独得到这八个键的扫描码,而可判断出行数据线ksin0至ksin7间是否有行数据线短路情况发生。
如果要检测列数据线ksout0至ksout10的间是否有列数据线短路情况,只需依次的按下键号27的键[[]、键号13的键[=]、键号39的键[L]、键号38的键[K]、键号8的键[7]、键号5的键[4]、键号40的键[;]、键号117的键[F6]、键号33的键[D]、键号32的键[S]以及键号31的键[A]等十一个键,以是否依次的单独得到这十一个键的扫描码,而可判断出列数据线ksout0至ksout10间是否有列数据线短路情况发生。
去掉重复的一个键号38的键[K],使用者仅需按25个键而可得知行数据线ksin8至ksin15间、行数据线ksin0至ksin7间、列数据线ksout0至ksout10间的短路结果,而获得整个计算机键盘1的短路情况。
所以当使用者按照本发明快速检测键盘阵列的方法的提示,依次的按完指定的二十五个键后,即完成了对该计算机键盘的检测,而使用者根据显示器的荧幕上所显示出的文字信息,即可得到键盘的短路状态。
综合以上的实施例以及方法,我们可以得到本发明的快速检测键盘阵列的方法,是利用一些行数据线与行数据线间,以及有些列数据线与列数据线间的短路情况并不影响键盘的正常使用,并且当二个行数据线与行数据线的间亦或当二个列数据线与列数据线的间发生短路情况时,当按下位于一行数据线上的任一键时,将得到位于另一行数据线上的另一键处于同时被按下的情况,所以测试时对于一行数据线上的所有键不需全部按下,而只需要任意选取一个键并按下,即可得到二个行数据线与行数据线的间的短路情况,同样的道理可应用在二个列数据线与数据线间的短路测试。所以在测试时所按下的键的数目减少的情况下,可以在仅按下二十五个键后,而能测得全部键盘的短路状态,所以节省了测试时间。而计算机主机将直接经由键盘控制器而来的键盘扫描码做对比处理后,在显示器的荧幕上以文字信息的方式告知使用者其所按下键的短路测试结果,让使用者可容易、快速的完成键盘检测。此快速检测键盘阵列方法的优点有1.使用者无需按下所有键盘上的按键,而能在仅按下二十五个键的情况下,得知整个计算机键盘的短路测试结果。
2.使用者按下一键后,当这个按键与其他键发生短路时,在显示器的荧幕上以文字信息方式显示,而让使用者阅读文字信息后,即可得知这个键与其他键间的短路状态,减轻使用者测试键盘短路时的工作负担。
以上所述仅为本发明的最佳实施例而已,并非用以限定本发明的范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修改,均应包含在下述的专利范围内。
权利要求
1.一种检测键盘阵列方法,用于包含一键盘、一键盘控制器、一含有缓冲区、中央处理器以及存储装置的计算机主机以及一显示器的计算机系统中,用以检测键盘阵列短路,该检测键盘阵列方法包含以下程序(1)计算机主机中建立键盘中的每个按键所对应的标准扫描码数据库,以及对应键盘中的每个按键的键盘矩阵,每一个键盘按键均有唯一的扫描码;而此键盘矩阵依照行数据线以及列数据线分布而建立,而键盘矩阵中则以键号来代表其所对应的实体键盘的按键;(2)利用设计好的中断服务程序以获得计算机键盘的扫描码;(3)键盘的按键被按下后,键盘控制器将读到信号变化而产生出对应于此被按下的键的扫描码,并将所得的扫描码直接送入计算机主机的缓冲区中,以进行扫描码比对处理;(4)计算机主机分析并处理缓冲区中的数据,计算机主机根据所获得的扫描码数据与计算机主机中所建立的标准扫描码数据库做比对、判断;(5)在显示器的荧幕上显示文字信息,用以表明与此按下的键产生短路的键,并显示出与此按下的键所在的数据线发生短路的其他数据线的名称;(6)按下测试所需的按键后,根据显示器的荧幕上的显示的文字信息,可得到全部键盘按键的数据线间的短路情况;和(7)根据显示器的荧幕上的文字信息而得到计算机键盘的短路情况后,将还原中断服务程序,而结束该键盘阵列测试过程。
2.如权利要求1的检测键盘阵列方法中所述程序(2)的利用中断服务程序以获取键盘的扫描码的程序,其中的中断服务程序不同于INT 9H中断服务程序。
3.一种检测键盘阵列方法,用于包含一键盘、一键盘控制器、一含有缓冲区、中央处理器以及存储装置的计算机主机以及一显示器的计算机系统中,用以检测键盘阵列短路,该检测键盘阵列方法包含以下程序(1)计算机主机中建立键盘中的每个按键所对应的标准扫描码数据库,以及对应键盘中的每个按键的键盘矩阵,每一个键盘按键均有唯一的扫描码;而此键盘矩阵依照行数据线以及列数据线分布而建立,而键盘矩阵中则以键号来代表其所对应的实体键盘的按键;(2)利用设计好的中断服务程序以获得计算机键盘的扫描码;(3)键盘的按键被按下后,键盘控制器将读到信号变化而产生出对应于该被按下的键的扫描码,并将所得的扫描码直接送入计算机主机的缓冲区中,以进行扫描码比对处理;(4)计算机主机分析并处理缓冲区中的数据,计算机主机根据所获得的扫描码数据与计算机主机中所建立的标准扫描码数据库做比对,用以判断与此按下的键产生短路的按键,并且判断该按下的键所在的数据线产生短路的行数据线亦或列数据线;(5)在显示器的荧幕上显示文字信息,用以表明与此按下的键产生短路的键,并显示出此按下的键所在的数据线发生短路的行数据线亦或列数据线的名称;(6)按下测试所需的按键后,根据显示器的荧幕的显示的文字信息,可得到全部键盘按键的行数据线与行数据线的短路情况、列数据线与列数据线的短路情况;和(7)根据显示器的荧幕上的文字信息而得到计算机键盘的行数据线与行数据线的短路情况、列数据线与列数据线的短路情况后,将还原中断服务程序,而结束了这个快速键盘阵列测试过程。
4.如权利要求3的检测键盘阵列方法中所述程序(2)的利用中断服务程序以获取键盘的扫描码的程序,其中的中断服务程序不同于INT 9H中断服务程序。
5.一种检测键盘阵列方法,用于包含一键盘、一键盘控制器、一含有缓冲区、中央处理器以及存储装置的计算机主机以及一显示器的计算机系统中,用以检测键盘阵列短路,该检测键盘阵列方法包含以下程序(1)计算机主机中建立键盘中每个按键所对应的标准扫描数据库,以及对应键盘中的每个按键的键盘矩阵,每一个键盘按键均有唯一的扫描码;而此键盘矩阵依照行数据线以及列数据线分布而建立;而键盘矩阵中则以键号来代表其所对应的实体键盘的按键;(2)利用设计好的中断服务程序以获得计算机键盘的扫描码;(3)键盘的按键被按下后,键盘控制器将读到信号变化而产生出对应于此被按下的键的扫描码,并将所得的扫描码直接送入计算机主机的缓冲区中,以进行扫描码比对处理;(4)计算机主机分析并处理缓冲区中的数据,计算机主机根据所获得的扫描码数据与计算机主机中所建立的标准扫描码数据库做比对,以判断仅按下一键而得到的扫描码是否只有一个;若经判断后,所得的扫描码仅有一个,则将进到步骤5;若经判断后,所得的扫描码不只一个,则将进到步骤6;(5)所获得的扫描码仅有一个,计算机主机将得出对应于此扫描码的计算机键盘上的某一键未与其他键发生短路,接着进到步骤9;(6)所获得的扫描码不只一个,表示行数据线与行数据线发生短路,亦或列数据线与列数据线发生短路,故计算机主机将根据所得的不只一个的扫描码,而判断出对应于这些不止一个的扫描码的按键是位于同一列数据线上亦或是位于同一行数据线上;若经判断后,对应于这些不止一个的扫描码的按键是位于同一列数据线上的按键,则进到步骤7;若经判断后,对应于这些不止一个的扫描码的按键是位于同一行数据线上的按键,则进到步骤8;(7)在显示器的荧幕上显示文字信息,用以表明与此按下的键产生短路的键盘按键,并显示出与此按下的键所在的行数据线发生短路的其他行数据线的名称,将进到步骤9;(8)在显示器的荧幕上显示文字信息,用以表明与此按下的键产生短路的键盘按键,并显示出与此按下的键所在的列数据线发生短路的其他列数据线的名称,将进到步骤9;(9)计算机主机判断计算机键盘的测试所需的按键是否全被按过;若计算机键盘的测试所需的按键全被按过,则进到步骤10;若计算机键盘的测试所需的按键尚未全被按过,则回到步骤3;(10)计算机键盘的测试所需的按键全被按过,使用者根据显示器的荧幕上的显示的文字信息所显示的键盘按键数据线间的短路结果,而可容易的得到行数据线与行数据线的短路情况、列数据线与列数据线的短路情况;和(11)使用者已根据显示器的荧幕上的文字信息而得到计算机键盘的短路情况,将中断服务程序还原,而结束该键盘阵列测试过程。
6.如权利要求5的检测键盘阵列方法中所述程序(2)的利用中断服务程序以获取键盘的扫描码的程序,其中的中断服务程序不同于INT 9H中断服务程序。
7.一种检测键盘阵列方法,用于包含一键盘、一键盘控制器、一含有缓冲区、中央处理器以及存储装置的计算机主机以及一显示器的计算机系统中,用以检测键盘阵列短路,该检测键盘阵列方法包含以下程序(1)计算机主机中建立键盘中的每个按键所对应的标准扫描码数据库,以及对应键盘中的每个按键的键盘矩阵,每一个键盘按键均有唯一的扫描码;而此键盘矩阵依照行数据线以及列数据线分布而建立,而键盘矩阵中则以键号来代表其所对应的实体键盘的按键;(2)利用设计好的中断服务程序以获得计算机键盘的扫描码;(3)在此将判断使用者是否按下键盘上的任一按键;若使用者未按下键盘上的任一按键,则进到步骤10;若使用者按下键盘上的任一按键,则进到步骤4;(4)由于使用者按下一键,键盘控制器将读到一信号变化而产生出对应于这个键的扫描码,并将所得的扫描码直接送入计算机主机的缓冲区中,以进行扫描码比对处理;(5)计算机主机分析并处理缓冲区中的数据,计算机主机根据所获得的扫描码数据与计算机主机中所建立的标准扫描码数据库做比对,以判断仅按下一键而得到的扫描码是否只有一个;若经判断后,所得的扫描码仅有一个,则将进到步骤6;若经判断后,所得的扫描码不止一个,则将进到步骤7;(6)所获得的扫描码仅有一个,计算机主机将得出对应于此扫描码的计算机键盘上的某一键未与其他键发生短路,接着进到步骤10;(7)所获得的扫描码不止一个,表示行数据线与行数据线发生短路,亦或列数据线与列数据线发生短路,故计算机主机将根据所得的不止一个的扫描码,而判断出对应于这些不止一个的扫描码的按键是位于同一列数据线上亦或是位于同一行数据线上;若经判断后,对应于这些不止一个的扫描码的按键是位于同一列数据线的上按键,则进到步骤8;若经判断后,对应于这些不止一个的扫描码的按键是位于同一行数据线上的按键,则进到步骤9;(8)在显示器的荧幕上显示文字信息,用以表明与此按下的键产生短路的键盘按键,并显示出与此按下的键所在的行数据线发生短路的其他行数据线的名称,将进到步骤10;(9)在显示器的荧幕上显示文字信息,用以表明与此按下的键产生短路的键盘按键,并显示出与此按下的键所在的列数据线发生短路的其他列数据线的名称,将进到步骤10;(10)计算机主机判断计算机键盘的测试所需的按键是否全被按过;若计算机键盘的测试所需的按键全被按过,则进到步骤11;若计算机键盘的测试所需的按键尚未全被按过,则回到步骤3;(11)计算机键盘的测试所需的按键全被按过,使用者根据显示器的荧幕上的显示的文字信息所显示的键盘按键数据线间的短路结果,而可容易的得到行数据线与行数据线的短路情况、列数据线与列数据线的短路情况;和(12)使用者已根据显示器的荧幕上的文字信息而得到计算机键盘的短路情况,将中断服务程序还原,而结束了这个快速键盘阵列测试过程。
8.如权利要求7的检测键盘阵列方法中所述程序(2)的利用中断服务程序以获取键盘的扫描码的程序,其中的中断服务程序不同于INT 9H中断服务程序。
全文摘要
一种快速检测键盘阵列短路方法,仅需按下25个键而非按下所有键即可检测键盘的全部键的是否短路。当使用者按下一键后,键盘控制器产生出相对应的扫描码,将此扫描码送入主机中并引发中断IRQ1,而以自定义的中断程序代替传统的INT9H中断程序。主机将扫描码与键盘扫描码数据库作比对,根据比对结果而可得知键盘键中是哪一个键被按下。当键盘键有短路情况的发生时,将显示出发生短路的键盘键,并显示出发生短路的行或列数据线号。
文档编号G06F11/22GK1327193SQ0011801
公开日2001年12月19日 申请日期2000年6月5日 优先权日2000年6月5日
发明者任学宁, 陈玄同, 林光信 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1