首页 理论教育键盘接口与行扫描方法

键盘接口与行扫描方法

【摘要】:在数控系统中一般采用非编码键盘,这种键盘提供行和列的矩阵,按键的识别和相应编码的产生由软件实现。图5-43 行扫描示意图2.线反转法这种方法需要利用一个可编程的键盘接口,如果键盘是8行×8列的点阵,将这两组8位的行列线连到键盘接口上,通过接口来控制行、列的指定及代码的反转传送。现以这个键盘为例说明行扫描法的键盘接口。其中PA接口为输出接口,接键盘列线。图5-44 键盘的接口电路

键盘由一组排列成矩阵方式的按键开关组成。键盘有两种基本类型:全编码键盘和非编码键盘。前者虽然使用方便,但价格较贵。在数控系统中一般采用非编码键盘,这种键盘提供行和列的矩阵,按键的识别和相应编码的产生由软件实现。识别按键的方法有多种,这里介绍行扫描法和线反转法。

1.行扫描法

这种识别方法采用输入步进1信号规则,轮流对各行按键开关进行检测,看是否有键按下,如果某一行上有键按下,则在交点上获得1信号,否则为0。行扫描输出的1信号逐行移动,读取列线信息。如图5-43a所示,对第0行扫描时该行没有键被按下,故从四条列线上读取的信号全部为0。如图5-43b所示,当扫描到第2行时,由于第2行第1列的键N(2,1)被按下,对应第1条列线的读取信号便为1,此时,行扫描的输出为“0010”,列输入为“0100”。根据行和列的两组代码,可以确定按键N的位置,即图5-43b中为第2行和第1列的交点。CPU根据位置编码经查表运算处理,将位置编码转换为ASCII码。

978-7-111-57207-7-Chapter05-99.jpg

图5-43 行扫描示意图

2.线反转法

这种方法需要利用一个可编程的键盘接口(如8255、8155等),如果键盘是8行×8列的点阵,将这两组8位的行列线连到键盘接口上,通过接口来控制行、列的指定及代码的反转传送。若键盘上有键按下,则该键所在点的行列信号都被接通。识别过程分两步进行,第一步先对行送全1,再对列送全0,则行线上有键按下之处,原有的1被列送来的0所取代,锁存行寄存器的8位信息。第二步反转传送,把列送全1,把行送全0,结果列线上对应着被按键的位变0,同样锁存列寄存器的8位信息。最后由可编程接口的16位数据寄存器将行列两次锁存的信息拼接成16位数据,得到被按键的位置编码。

线反转法原理简单,因不需要逐行扫描,故速度较快,若有硬件接口的支持,不失为一种好方法。行扫描实现方便,但速度较慢。

3.键盘的接口电路

DP—851K单片机教学实验系统的键盘是一个很典型的4行×8列的键盘,以行扫描法进行识别。现以这个键盘为例说明行扫描法的键盘接口。

该键盘的接口电路如图5-44所示。其接口芯片为8155定时器/计数器,它是一个14位的减法计数器,由两个计数器组成,其中低14位组成计数器,另外两个高位用于定义计数器的输出信号的输出形式。其中PA接口为输出接口,接键盘列线。PC接口为输入接口,以PC3~PC0接键盘的四条行线。其中PA接口的地址为0101H,PC接口的地址为0103H。

978-7-111-57207-7-Chapter05-100.jpg

图5-44 键盘的接口电路