键盘是一种最常用的输入设备,键盘的种类很多。键盘上的每个键起一个开关的作用,按照键盘所用开关的种类分为有触点式和无触点式两大类键盘。有触点式键盘包括机械式、簧片式、薄膜式及导电橡胶式等;无触点式键盘包括电容式、压电式、压敏式、光电式及磁电变换式等。有触点式键盘结构简单、成本低。但使用寿命短;无触点式键盘灵敏度高、寿命长、稳定性好,但成本较高。
按照键盘代码的获取和处理方式分为查询式、编码式、扫描式等几种。查询式键盘有m行′n列按键,图6.8给出一个8行′8列的查询式键盘,输入寄存器和输出寄存器都在键盘接口中,输出寄存器的8条输出线分别接键盘阵列的X0~X7,输入寄存器的8条输出线分别接键盘阵列的Y0~Y7。
java版mc最基础按键教学 查询式键盘主要靠软件来获取按键的代码,程序的查询过程如下:
1. 查询是否有键按下
首先,CPU把输出寄存器全部清"0",则所有行线均为"0",然后,CPU从输入寄存器读入数据,如果读入的数据为全"1",表示没有任何键被按下;只要读入的数据有一位为"0",就表示有键被按下,接下去的任务是要找出按下键的位置。
2. 查询按下键的位置
查询按下键是哪一列很容易,实际上,CPU在查询是否有按下键时,从输入寄存器中读入的数据中,哪一位为"0",就表示相应的列有键被按下。查询按下键在哪一行比较麻烦,CPU要通过逐行扫描才能确定按下键在哪一行,例如,首先让X0为"0",X1~X7为"1",并读输入寄存器,如果为全"1",表示按下键不在第一行;然后让X1为"0",其余为"1",…,直至输入寄存器中有"0"为止,则按下键就在该行。
3. 查询按下键的代码
得到按下键的行号和列号之后,就能够唯一确定按下的是哪个键了。如果是字符键,则按照行号和列号到专用ROM中读出该键的代码(如ASCII码),如果是功能键,则转入相应的服务子程序,执行该键的操作功能。 图 6.8 键盘的基本结构
由于查询式键盘能够通过软件来定义并实现功能键,因此,具有灵活性好,功能强等优点,另外,它的结构也比较简单,但响应速度比较低。
编码式键盘采用硬件编码器获得键盘的代码,对于图6.8所示的8行′8列的键盘,用两个8-3线编码器,分别在X方向和Y方向进行编码。当有一个键被按下时,通过编码器,直接获得这个键的行号和列号。编码式键盘的优点是响应速度快。
扫描式键盘通过硬件译码器和计数器获得键盘的代码,如图6.8所示的键盘,需要两个3-8线译码器和一个6位计数器。两个3-8线译码器输入端接到6位计数器的输出端,他们的输出端分别接到键盘的8条行线和8条列线上。计数器在时钟信号的控制下不停地计数,通过两个译码器对键盘进行扫描。当有一个键被按下时,该键立即产生一个信号,使计数器停止计数,这时,计数器的值就是这个被按下键的行号和列号。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/19465.html