台式机无法识别键盘的解决方法

台式机无法识别键盘的解决方法,第1张

台式机无法识别键盘解决方法一:

电脑不能识别键盘处理的原因和处理方法如下:

第1步:把ps/2接口的台式机箱上拔下来。

第2步:首先检查ps/2接口内的针是否出现弯曲或是断针的情况。

如果出现针弯曲的话就把这个针弄直,如果出现断针就没救了,建议直接换个新的键盘。

第3步:检查ps/2数据线是否出现破损的问题。

电脑维修技术网注:作者曾经有个朋友的`鼠标线被老鼠咬过,所以大家看下,如果有破损的话,可能是被一些小动物咬过了。

第4步:如果以上均未没有出现,那么就是有可能是键盘内存线路或是内部线路出现了故障。

解决方法:把这个ps/2键盘拔掉插到其他电脑主机上,如果在其他主机上可正常使用这个ps/2键盘,那么就是自己电脑主板上的ps/2接口出现了故障。如果在其他电脑上也不可以用,那么基本就可以判断这个ps/2键盘换了,只能换新的或返厂维修了。

台式机无法识别键盘解决方法二:

你先检查一下接口,如果是USB的键盘,换一个接口试一下。

或者你用另外一台电脑试试你的键盘,看看有没有问题,或者尝试安装键盘匹配的驱动程序。

如果你确定你的键盘或者键盘接口没问题,那你进BIOS看看是否主板禁用了外周设备。

有的时候键盘会和鼠标或其它周边产品出现冲突的情况,如果都是采用的usb接口的,可以尝试将其中一个使用转接头转成ps2接口来解决冲突问题,对于一些比较老的主板,也可以尝试着升级一下bios来提高一下主板的兼容性能。

台式机无法识别键盘解决方法三:

1,首先一般键盘都是免驱的,所以您可以放心驱动问题。

2,看一下您是否将USB插孔插入了主机箱前面的插孔,有时候主机箱前面插孔会出现供电不足的情况,插到后面就行了。

3,可能是存在硬件冲突,到电脑管家官网下载一个腾讯电脑管家,在工具箱中找到硬件检测功能,选择其他硬件,看能否检测出。

有独立键盘和距阵键盘的 独立键盘的很简单我就不写了 距阵的我给你写一个

//键盘扫描

uchar Keys_Scan()

{

uchar sCode,kCode,i,k;

//低4 位置0,放入4 行

P1=0xf0;

//若高4 位出现0,则有键按下

if((P1&0xf0)!=0xf0)

{

DelayMS(2);

if((P1&0xf0)!=0xf0)

{

sCode=0xfe; //行扫描码初值

for(k=0;k<4;k++) //对4 行分别进行扫描

{

P1=sCode;

if((P1&0xf0)!=0xf0)

{

kCode=~P1;

for(i=0;i<16;i++) //查表得到按键序号并返回

if(kCode==KeyCodeTable[i])

return(i);

}

else

sCode=_crol_(sCode,1);

}

}

}

return(-1);

故障现象:

USB键盘无法使用,插入键盘后电脑检测不到,也不出现叹号设备,替换电脑测试USB盘正常。

 原因分析:

仔细观察人体学输入设备中有两个设备,通过硬件id确认其中USB 输入设备是鼠标,上面的英文设备实际上是键盘。也就是windows系统错误的把键盘识别为了别的设备。

解决方案:

右键选择更新驱动程序--浏览计算机以查找驱动程序软件--从计算机的设备驱动程序列表中选择--选择USB输入设备--下一步问题解决。

1 右键选择HID-compliant device---更新驱动程序;

2 浏览计算机以查找驱动程序软件;

3 从计算机的设备驱动程序列表中选择;

4 选择USB输入设备;

5 下一步;

最终设备管理器重新检测到键盘。

矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

<1>确定矩阵式键盘上何键被按下介绍一种“行扫描法”。

行扫描法 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。

1、判断键盘中有无键按下 将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。

2、判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

下面给出一个具体的例子:

图仍如上所示。8031单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。列线P10-P13分别接有4个上拉电阻到正电源+5V,并把列线P10-P13设置为输入线,行线P14-P17设置为输出线。4根行线和4根列线形成16个相交点。

1、检测当前是否有键被按下。检测的方法是P14-P17输出全“0”,读取P10-P13的状态,若P10-P13为全“1”,则无键闭合,否则有键闭合。

2、去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。

3、若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。P14-P17按下述4种组合依次输出:

P17 1 1 1 0

P16 1 1 0 1

P15 1 0 1 1

P14 0 1 1 1

在每组行输出时读取P10-P13,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值

4、为了保证键每闭合一次CPU仅作一次处理,必须去除键释放时的抖动。

键盘扫描程序:

从以上分析得到键盘扫描程序的流程图所示。程序如下

SCAN: MOV P1,#0FH

MOV A,P1

ANL A,#0FH

CJNE A,#0FH,NEXT1

SJMP NEXT3

NEXT1: ACALL D20MS

MOV A,#0EFH

NEXT2: MOV R1,A

MOV P1,A

MOV A,P1

ANL A,#0FH

CJNE A,#0FH,KCODE;

MOV A,R1

SETB C

RLC A

JC NEXT2

NEXT3: MOV R0,#00H

RET

KCODE: MOV B,#0FBH

NEXT4: RRC A

INC B

JC NEXT4

MOV A,R1

SWAP A

NEXT5: RRC A

INC B

INC B

INC B

INC B

JC NEXT5

NEXT6: MOV A,P1

ANL A,#0FH

CJNE A,#0FH,NEXT6

MOV R0,#0FFH

RET

<2>确定矩阵式键盘上何键被按下介绍一种“高低电平翻转法”。

首先让P1口高四位为1,低四位为0,。若有按键按下,则高四位中会有一个1翻转为0,低四位不会变,此时即可确定被按下的键的行位置。

然后让P1口高四位为0,低四位为1,。若有按键按下,则低四位中会有一个1翻转为0,高四位不会变,此时即可确定被按下的键的列位置。

最后将上述两者进行或运算即可确定被按下的键的位置。

键盘处理程序就作这么一个简单的介绍,实际上,键盘、显示处理是很复杂的,它往往占到一个应用程序的大部份代码,可见其重要性,但说到,这种复杂并不来自于单片机的本身,而是来自于 *** 作者的习惯等等问题,因此,在编写键盘处理程序之前,最好先把它从逻辑上理清,然后用适当的算法表示出来,最后再去写代码,这样,才能快速有效地写好代码。

很简单,vb可以。按键事件,当按下键盘时的事件。先执行a,设置一个KeyDown事件,执行b。具体方法:vb新建一个窗体(这里便是a),双击窗体输入代码(本来的删掉):

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Shell "b" 'b是文件的地址和全名

End ‘结束a

End Sub

以上就是关于台式机无法识别键盘的解决方法全部的内容,包括:台式机无法识别键盘的解决方法、单片机中用C语言按键检测的小程序、系统无法识别USB键盘该怎么处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9875104.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存