第13章键盘与LED显示技术 13.1键盘技术 键盘是微机系统中最基本的人机对话输入设备。键盘由按阵 列布局的按键构成。 13.1.1键盘的布局与分类 1.键盘的布局 功能键区 主键区 光标控制光标数字 键区 复合键区
第13章 键盘与LED显示技术 13.1 键盘技术 键盘是微机系统中最基本的人机对话输入设备。键盘由按阵 列布局的按键构成。 13.1.1 键盘的布局与分类 1. 键盘的布局 主 键 区 功 能 键 区 光标/数字 复合键区 光标控制 键区
2.按键的分类 (1)键盘按其按键的结构形式分类 般有机械式、电容式、电感式、磁感式、薄膜式和橡胶垫 式等。其中最常用的是机械式和电容式键盘。 上拉电阻 上拉电阻 列(读出信号) 列(读出信号) 机械触 等效电容 行扫描 行扫描 (a)机械式键盘 (b)电容式键盘按钮结构 (c)电容式键盘
2. 按键的分类 (1)键盘按其按键的结构形式分类 一般有机械式、电容式、电感式、磁感式、薄膜式和橡胶垫 式等。其中最常用的是机械式和电容式键盘。 Vcc Vcc 上拉电阻 上拉电阻 列(读出信号) 列(读出信号) 机械触点 等效电容 行扫描 行扫描 (a)机械式键盘 (b)电容式键盘按钮结构 (c)电容式键盘
(2)键盘按其按键引入信号的形式分类 可分为压按式、触摸式。 (3)键盘按其功能分类 可分为编码键盘和非编码键盘。 编码键盘是键盘电路在某个键被按下后,能提供该键所代 表的信息代码,并以并行或串行信号输给cPU。由硬件完成判 键、去抖、防串键、键码,价格较髙。 非编码键盘是一种便宜而广泛用于微机系统的输入设备。 简单的行列矩阵布局。这种键盘内部有一个扫描电路,不断地 扫描键盘是否有键被按下。此键所代表的键盘信息代码,则由 键盘接口及键盘处理软件根据键盘送来的位置信息产生,然后 再送给CPU。价格较低
(2)键盘按其按键引入信号的形式分类 可分为压按式、触摸式。 (3)键盘按其功能分类 可分为编码键盘和非编码键盘。 编码键盘是键盘电路在某个键被按下后,能提供该键所代 表的信息代码,并以并行或串行信号输给CPU。由硬件完成判 键、去抖、防串键、键码,价格较高。 非编码键盘是一种便宜而广泛用于微机系统的输入设备。 简单的行列矩阵布局。这种键盘内部有一个扫描电路,不断地 扫描键盘是否有键被按下。此键所代表的键盘信息代码,则由 键盘接口及键盘处理软件根据键盘送来的位置信息产生,然后 再送给CPU。价格较低
3.按键的插口方式 按照键盘插口方式,键盘可分为串口(AT)键盘(大口) 并口(即PS/2)键盘(小口)两类。 说明1、 KBD DATA 2、保留 4、+5V 5、 KDB CLK 2 6、保留 a (b)
3. 按键的插口方式 按照键盘插口方式,键盘可分为串口(AT)键盘(大口)、 并口(即PS/2)键盘(小口)两类
13.1.2使用非编码键盘必须解决的问题 (1)消除键抖动 键稳定(按下到接触)需要经过10~20ms的时间,在判断是否有 键按下时,需要去抖动,以消除干扰。 消除键抖动的方法可分为: 软件方法:检测到有键按下,软件延时10~20ms,在判是否真的 有键按下,若有,则读取键码,若无,则认为是抖动干扰 硬件滤波:采用硬件的方法,每个键加上RC滤波或RS去抖。这种 方法适用于键数不多的场合
13.1.2 使用非编码键盘必须解决的问题 (1)消除键抖动 键稳定(按下到接触)需要经过10~20ms的时间,在判断是否有 键按下时,需要去抖动,以消除干扰。 消除键抖动的方法可分为: 软件方法:检测到有键按下,软件延时10~20ms,在判是否真的 有键按下,若有,则读取键码,若无,则认为是抖动干扰。 硬件滤波:采用硬件的方法,每个键加上RC滤波或RS去抖。这种 方法适用于键数不多的场合
(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
程序如下: 设:BL行数,BH--列数,CH-键号, CL-列线屏蔽码0FH MOV AL, 82H OUT63H,AL;8255初始化,方式0,A口输出,B口输入 LPI: MOV AL, ooh OUT60H,AL;行扫描输出,A口 LP2:INAL,61H;读入列线,B口 AND AL,0FH;取列线低4位 CMP AL, OFH: JZLP2;无键按下转LP2继续等待判断,有键按下则继续 MOV CX, 7FFH LP3: LOOP LP3;延时去键抖动 LP4: MOV BL,3;设置行数 MOBH,4;设置列数 MOV AL,0FEH;逐行扫描开始,先设置扫描码,0行为0 MOV CL,0FH;设置列线屏蔽码 MOV CH,0FFH;设置键号初值为-1
程序如下: 设:BL----行数,BH----列数,CH----键号, CL----列线屏蔽码0FH MOV AL,82H OUT 63H,AL;8255初始化,方式0,A口输出,B口输入 LP1:MOV AL,00H OUT 60H,AL;行扫描输出,A口 LP2:IN AL,61H;读入列线,B口 AND AL,0FH;取列线低4位 CMP AL,0FH; JZ LP2;无键按下转LP2继续等待判断,有键按下则继续 MOV CX,7FFH LP3:LOOP LP3;延时去键抖动 LP4: MOV BL,3;设置行数 MOV BH,4;设置列数 MOV AL,0FEH;逐行扫描开始,先设置扫描码,0行为0 MOV CL,0FH;设置列线屏蔽码 MOV CH,0FFH;设置键号初值为-1