实验七按键阵列扫描控制电路设计
一、设计要求
按键是数字设备的输入部件,是人工干预数字系统的主要手段。操作者可以通过按键向系统输入数据、指令等二进制信息。1设计要求本设计要求实现一个按键阵列判断电路,并用七段数码管显示该按键的标识。当有键按下时,显示其标识符,并保持显示符直到新的按键作用。如果多个按键同时闭合,只响应最先作用的按键。2硬件环境设计对象的实现环境与所采用的FPGA开发装置有关,本节以LP2900为例,说明采用按键阵列扫描的设计原理和实现方法。LP2900开发装置上有“0~9”,“”,“”共12个键构成的3行4列按键阵列。FPGA与按键阵列如图1所示。FPGA通过端口RK1RK3读取键阵列的行线状态X0X2;通过3线8线译码器控制键阵列的列线Y0Y3。74138的译码输入由FPGA端口DE3DE1控制。
图1
LP2900开发装置FPGA与按键阵列的接口关系
二、按键扫描原理
1.按键状态判断数字电路中,按键的闭合和断开状态可以通过其控制的逻辑电平判断。图2(a)电路将按键闭合、断开转换成代表“0”或“1”二值逻辑的低电平和高电平,然后判断电路输出X的电平即可了解按键的通、断状态。比如图2中,若测得X的电平为“1”,说明按键断开;测得为“0”,则表示按键闭合。由于按键一般为机械开关,其触点的合、断有弹性抖动,如图2(b)所示,抖动时间约510ms。为了保证按键动作一次电路只判断到一次状态电平改变,防止误判断,需要采用消抖动措施。采用基本RS触发器可以对X的电平信号整形,实现消抖动。
第
1
页
共
4
页
f图2按键状态判断原理
2.按键阵列判断若需要判断的按键较多,为节省信号端口资源,一般将按键分成行、列两组连接成阵列形式,十六个按键的阵列如图3(a)所示。每个按键跨接在一条行线Xi和一条列线Yj间,当按键闭合时,行线与列线接通。每条行线都通过一个电阻上拉到5V电位,当行线上的所有按键都未闭合时,行线一定为高电平。当某条列线为低电平时,根据行线电平可判断该列线上各键的状态。比如,当Y1为低电平时,如果四条行线X0、X1、X2、X3的状态为“1011”,可判K11键闭合,K01,K21,K31键断开;若X0、X1、X2、X3的状态为“0101”,则可判断K01、K21键闭合。
(a)4×4键阵列电路图3
(b)扫描信号波形按键阵列扫描原理
3.按键扫描判断采用状态机可自动逐个扫描按键通断情况,状态机的模等于或大于按键个数。每个状态可以使键阵列的一条列线Yj为低电平,通过判断行线Xi的电平来了解按键Kijr