Dell C521电脑一按键盘就重起解决办法

C521总是自动重起,原来导致电脑一按键盘就重起的罪魁祸首就是“QQ”,
还真没想到,尤其是DELL的机子出现这种状况的偏多,不过总算是解决啦,可
喜可贺```再也不用担心写着文章、发着帖子,就突然的被当掉。
也更希望腾讯能把这个问题彻底解决一下。

我查了好久终于弄好了 就把步骤写给大家````

1、[搜索]

2、[其他搜索选项]

3、[所有文件和文件夹]

4、在随后打开的窗口中的『全部或部分文件名』下的方框中输入"npkc*.sys";。
然后左键单击展开该窗口左侧下方的『更多高级选项』,确保前三项都已经打上勾,然后点击『搜
索』按钮。

5、找到名为npkcrypt和npkcusb系统文件后,右键点击,选择『删除』并『确定』把它们删除掉。
(注意:如果在不同的位置找到好几组这两个文件,也是通通都要删除掉)

6、点击『开始』菜单中的『运行』,输入“regedit”,然后点击『确定』,打开注册表编辑器。

7、展开HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Enum/USB/Vid_413c&Pid_2003,
即把图中划红圈处的“+”号用左键点成“-"号,然后右键点击『Vid_413c&Pid_2003』,选择『权限』。
(注意:这个键值因USB键盘的类型而异,不一定都是Vid_413c&Pid_2003)

8、如果使用的是别的型号的USB键盘,这里可能找不到Vid_413c&Pid_2003这一项。
这个时候,就要对USB这一项下面名字为Vid_413c&Pid_2XXX的项目进行类似的修改权限为完全控制并
删除掉的操作。比如若使用的是戴尔的多媒体键盘,注册表中对应的项目就是Vid_413c&Pid_2010,且有
三项,要一一修改权限并删除掉。

9、在弹出的权限设置窗口中,把『Everyone』用户的完全控制后面的方框里打上勾,然后『确定』。

10、再右键点击『Vid_413c&Pid_2003』,选择『删除』,然后确定。
(注意,不按上一步修改权限的话,这里是删不掉的)

11、关掉注册表编辑器,然后把键盘重新拔插一次,待系统最后提示『新硬件已经安装并可以使用』了之后即
可(无需重新启动)。这次重新拔插键盘之后,屏幕的右下角应该会依次显示如下图所示的提示:
PS:上面这一步是为了让电脑重新检测键盘,这样做了之后注册表中刚才删除的USB键盘的键值会再次出
现,这是正常的,无需再次重复删除操作。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的C51程序,可以实现矩阵键盘的输入和数码管的显示功能。注意,这里使用的是普通的共阳数码管,如果使用共阴数码管需要修改代码: ```c #include <reg52.h> // 51单片机头文件 sbit LSA = P2^2; // 数码管LSA引脚连接的IO口 sbit LSB = P2^3; // 数码管LSB引脚连接的IO口 sbit LSC = P2^4; // 数码管LSC引脚连接的IO口 sbit D1 = P0^0; // 数码管第1位的IO口 sbit D2 = P0^1; // 数码管第2位的IO口 sbit D3 = P0^2; // 数码管第3位的IO口 sbit D4 = P0^3; // 数码管第4位的IO口 unsigned char code Nums[] = { // 数码管显示0~F的值 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 }; unsigned char KeySta[4][4] = { // 矩阵键盘按键状态 {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1} }; void InitLcd() // 初始化数码管 { P0 = 0xff; // 数码管全部关闭 LSA = 0; LSB = 0; LSC = 0; // 数码管显示第一位 TMOD &= 0xf0; // 设置定时器为模式0 TH0 = 0x3c; TL0 = 0xb0; // 定时器初值,定时1ms ET0 = 1; // 开启定时器中断 TR0 = 1; // 开启定时器 } void Display(unsigned char num, unsigned char pos) // 在数码管的指定位置显示一个数字 { unsigned char tmp = Nums[num]; switch(pos) { case 1: D1 = 0; P0 = tmp; D1 = 1; break; case 2: D2 = 0; P0 = tmp; D2 = 1; break; case 3: D3 = 0; P0 = tmp; D3 = 1; break; case 4: D4 = 0; P0 = tmp; D4 = 1; break; default: break; } } void KeyDriver() // 矩阵键盘驱动程序 { unsigned char i, j; static unsigned char backup[4][4] = { // 矩阵键盘状态备份 {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1} }; for(i = 0; i < 4; i++) { for(j = 0; j < 4; j++) { if(KeySta[i][j] != backup[i][j]) { // 检测到按键状态改变 if(KeySta[i][j] == 0) { // 按键按下 Display(i * 4 + j, 1); // 在数码管第一位显示按键编号 } } backup[i][j] = KeySta[i][j]; // 备份按键状态 } } } void main() { InitLcd(); // 初始化数码管 while(1) { KeyDriver(); // 矩阵键盘驱动程序 } } void Timer0() interrupt 1 // 定时器0中断服务程序 { static unsigned char cnt = 0; static unsigned char pos = 1; TH0 = 0x3c; TL0 = 0xb0; // 定时器重新赋初值,定时1ms cnt++; if(cnt >= 100) { // 每100ms更新数码管显示位置 cnt = 0; pos++; if(pos > 4) pos = 1; } switch(pos) { // 控制数码管显示位置的选择 case 1: LSA = 0; LSB = 0; LSC = 0; break; case 2: LSA = 1; LSB = 0; LSC = 0; break; case 3: LSA = 0; LSB = 1; LSC = 0; break; case 4: LSA = 1; LSB = 1; LSC = 0; break; default: break; } } ``` 这段程序中,使用P2口的LSA、LSB、LSC三个引脚控制数码管的显示位置,使用P0口的D1~D4四个引脚控制数码管的亮灭。矩阵键盘的状态通过二维数组KeySta存储,在定时器中断服务程序Timer0中调用KeyDriver函数进行检测和处理。在按键按下时,将按键编号显示在数码管的第一位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值