(2)消除键盘操作中的串键错误 串键:同一键盘中有两个或两个以上的键同时按下的现象称为串 键。 消除键盘操作中的串键错误的方法: 双键锁定:当检测到两个或两个以上的键同时按下时,只把最后 释放的键当作有效的键,并产生相应的代码。 硬件保护:当检测到两个或两个以上的键同时按下时,只把第一 个按下的键当作有效的键,并产生相应的代码 N健轮回:当检测到有多个键同时按下时,能根据发现它们的顺 序依次产生相应的代码。 (3)被按键的识别 被按键的识别采用软硬件结合的方法,可分为行扫描法和线反转 法两种
(2)消除键盘操作中的串键错误 串键:同一键盘中有两个或两个以上的键同时按下的现象称为串 键。 消除键盘操作中的串键错误的方法: 双键锁定:当检测到两个或两个以上的键同时按下时,只把最后 释放的键当作有效的键,并产生相应的代码。 硬件保护:当检测到两个或两个以上的键同时按下时,只把第一 个按下的键当作有效的键,并产生相应的代码。 N健轮回:当检测到有多个键同时按下时,能根据发现它们的顺 序依次产生相应的代码。 (3)被按键的识别 被按键的识别采用软硬件结合的方法,可分为行扫描法和线反转 法两种
①行扫描法 由程序对键盘进行逐行扫描(CPU输出),通过CPU检测到 的列线输出状态确定闭合键(CPU输入)。 硬件:设置输入、输出口各一个。 该方法在微机系统中被广泛应用。行输出0,读入列线,若 列线数据中有0,则行与该列交叉处的键被按下。 列0列1列2列3 行行行 012 行3
①行扫描法 由程序对键盘进行逐行扫描(CPU输出),通过CPU检测到 的列线输出状态确定闭合键(CPU输入)。 硬件:设置输入、输出口各一个。 该方法在微机系统中被广泛应用。行输出0,读入列线,若 列线数据中有0,则行与该列交叉处的键被按下。 行 0 行 1 行 2 行 3 列0 列1 列2 列3
②线反转法 通过行列点到两次扫描来识别键闭合。 硬件:设置两个可编程的双向输入输出端口。 过程:先行出列入,行输出0000,读入列线,若列线中有0(如 1110),则向CPU发出中断申请,表明有键按下;然后,线反转, 列出行入,列输出上述的列值110,读行线(如为1011),则并 口输出值为:10111,隐含键值为行2列0(2,0)。 优点:软件简单,不需要逐行扫描,速度快,但需要采用双向并 行接口。应用广泛 (4)键码的产生 为了从键的行列坐标编码中得到反映键功能的键码,一般在内存 中建立一个键盘编码表,通过查表获得被按键的键码
②线反转法 通过行列点到两次扫描来识别键闭合。 硬件:设置两个可编程的双向输入/输出端口。 过程:先行出列入,行输出0000,读入列线,若列线中有0(如 1110),则向CPU发出中断申请,表明有键按下;然后,线反转, 列出行入,列输出上述的列值1110,读行线(如为1011),则并 口输出值为:10111110,隐含键值为行2列0(2,0)。 优点:软件简单,不需要逐行扫描,速度快,但需要采用双向并 行接口。应用广泛。 (4)键码的产生 为了从键的行列坐标编码中得到反映键功能的键码,一般在内存 中建立一个键盘编码表,通过查表获得被按键的键码
例:假定有一个3×4的矩阵键盘通过并行接口芯片8255与微机相 连,8255的A口与键盘行线相连(定义为输出),B口与键盘列 线相连(定义为输入),设8255的口地址为60~63H。硬件连接 如下: CC 列0列1列2列3 PAO 行0 PAO 行 CPU 8255 PA2 行2 PBO PBI PB2 PB3
例:假定有一个3×4的矩阵键盘通过并行接口芯片8255与微机相 连,8255的A口与键盘行线相连(定义为输出),B口与键盘列 线相连(定义为输入),设8255的口地址为60~63H。硬件连接 如下: 行 0 行 1 行 2 列0 列1 列2 列3 CPU PA0 PA0 PB0 PA2 PB2 PB1 PB3 8255 +VCC