ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【一起学习输入法】华宇拼音输入法开源版本解析(2)

2020-01-15 12:38:47  阅读:357  来源: 互联网

标签:指示灯 输入法 扫描 8042 华宇 键盘 CapsLock 拼音输入 按键


【一起学习输入法】华宇拼音输入法开源版本解析(2)

          原创:good02xaut(CSDN)

  1. 键盘的扫描码

薄膜式标准键盘的硬件构成由四部分组成:三层薄膜、104个按键矩阵、3个指示灯和Intel 8042控制器芯片。

由三层薄膜(上层与下层都有电路,中间则是绝缘层)所组成。按键采用橡胶帽,成本低、工艺简单和手感好等优势占有着绝大部分市场,大家所使用的键盘基本都是薄膜键盘。

键盘的按键数曾出现过83键、87键、93键、96键、101键、102键、104键、107键等。104键的键盘是在101键键盘的基础上为WINDOWS XP平台提供增加了三个快捷键(有两个是重复的),所以也被称为WINDOWS 9X键盘。104键盘就是最常用的标准键盘。

标准键盘具有CapsLock(字母大小写锁定)、NumLock(数字小键盘锁定)、ScrollLock(滚动锁定键)三个指示灯,标志键盘的当前状态。

当键盘的某一个按键被按下的时候,键盘会通过8042控制器向外发送那一个按键的通码,当按键松开的时候,键盘就会向外发送那一个按键的断码,需要注意的是,如果按着一个按键不放的话,键盘会以一定的频率持续发送那一个按键的通码。按键的通码和断码其实就是扫描码,纯硬件视角的描述。

举两个例子:

1、按下CapsLock按键,指示灯点亮的过程:当CapsLock按键被按下时,8042控制器检测到,会立即向CPU发送该按键的扫描码,并在扫描码表明就是个通码(按下的过程)。键盘驱动接收到该扫描码后,会立即发送消息给8042控制器,点亮大写锁定指示灯。整个过程都是键盘驱动独立完成的,即使CapsLock按键不松开,指示灯依旧被点亮,不要以为单击CapsLock按键打开的指示灯,实际是按下的时候触发的。但是,人手的操作不可能一直按着,给大家的感觉就是单击了CapsLock按键。

2、在CapsLock指示灯亮的时候,按下字母A键:3个指示灯的状态在8042控制器是有记录的,当字母A键被按下时,8042控制器检测到,会立即向CPU发送该按键的扫描码,A键就是一个按键,本身没有大小写的说法,并在扫描码中标明是个通码(按下的过程)。8042键盘控制器发给键盘驱动的消息除了这个通码还有状态码,就是三个指示灯的状态值。键盘驱动接收到该扫描码和状态后,根据键盘的虚拟码表语义上就是输入了一个大写字母’A’。

 

然后,键盘驱动程序把该键盘操作的扫描码和虚拟码以及其它信息传递给操作系统,其实就是IMM模块的消息队列。

通过上述两个例子可以看出,键盘的扫描码和状态码是硬件编码;键盘的虚拟码是驱动软件的软编码;

good02xaut 发布了6 篇原创文章 · 获赞 6 · 访问量 227 私信 关注

标签:指示灯,输入法,扫描,8042,华宇,键盘,CapsLock,拼音输入,按键
来源: https://blog.csdn.net/good02xaut/article/details/103987068

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有