计算机的键盘有100多个按键,但类似于打字机的键盘可能只有48个按键。
如果要让连接到计算机上的键盘能正常工作的话,就需要配备一些硬件来为每个按键提供唯一的代码,以便区分哪一个按键被按下了。假定这个代码就是按键的ASCI码,这样可行吗?你的答案或许是肯定的,但要设计出能识别ASCI码的硬件却是不切实际的。举例来说,键盘上的按键A对应的ASCI码可能是41h,也可能是61h,具体是哪个,还取决于用户是否按下了Shift键;另外,现在计算机键盘上有很多的按键并没有ASCII码与之对应。我们称键盘硬件提供的代码为扫描码(scan code)。当按下键盘上的某个按键时,一小段计算机程序就会计算出这个按键对应的ASCI码(如果有的话)。
这里为了避免键盘硬件的电路图太复杂,假设键盘上只有16个按键。任何一个按键被按下,键盘硬件就会产生一个4位的代码,二进制数值范围是0000到1111。
键盘硬件包含了一些前面曾讲过的部件,如下图所示。
编码隐匿在计算机软硬件背后的语言
340