所有产品

和记娱乐采用ispLSI1016芯片实现4×5键盘控制器设计

  系统中,键盘都是最重要的输入设备,但是普通键盘不能满足机载要求。在新一代电子航空图导航系统中,用公司的ispLSI1016设计了一个4×5键盘控制器(以下简称KBC),经实际应用,该键盘控制器通用性较强。图1是其键盘和

  一航情况下,KBC应该是CPU的一个外部I/O设备,它一方面监测各按钮状态,另一方面接受CPU的查询并主动向CPU请求中断。因此,外部接口信号分CPU接口信号和键盘按钮矩阵状态信号。图2为通用KBC外部接口信号示意图,其定义如下:

  *Reset:复位,低有效。该信号有效时将异步复位内部所有寄存器,以对KBC进行初始化;

  *INT:中断请求,高有效。当键盘控制器检测到有效按键时,该脚为高,当CPU读走按键编码时,KBC自动撤销中断请求;

  *D4~D0:三态数据线:扫描输出,按键盘矩阵的列线:回复线,接键盘矩阵的行线。

  KBC针对CPU接口设计有2个只读寄存器,即数据寄存器(Dreg)和状态寄存器(Sreg)。数据寄存器用于保持有效按键的编码值,该编码值就是按键所在的行列;而状态寄存器则用于保持按键的状态信息,以供CPU查询。当CPU访问KBC时(即CS和RD同时有效),adk A0=0,和记娱乐,则访问数据寄存器,否则访问状态寄存器。表1、表2分别是数据寄存器和状态寄存器的定义。

  显然,KBC的编程可以有2种模式,一种是软件查询,另一种是中断驱动。由于本系统采用WindowNT为运行环境,KBC对应用程序透明,所以,将INT请求直接和CPU的某一空闲中断(IRQ9)相连接,以便使驱动程序能将KBC作为一个设备打开。在初始化加载时,应将对应中断触发设置为电平敏感。其VC核心代码如下:

  至此,就可根据Row和Col的值将它翻译为某一标准键,并存入NT键盘缓冲区。

  内部控制逻辑设计的关键是掌握按键识别原理。图3所示是其键盘识别原理图。设

  接到VCC(+5V),无按键时处于高电平。有按键时行线电平状态由列线决定。所有列线均为高则行线高,任一列线为低则行线低。KBC处理的核心就在于确认某一行线为低时,和记娱乐能定位出对应的列线 输出扫描线)在设计输出扫描线]来依次轮流使扫描线输出为低电平。驱动时钟的周期为640ms,亦即每即扫描线ms的低电平。将状态机的状态编码值和当前周期为低电平的扫描线序号对应起来,即可简化后续处理。图4是扫描线输出波形。注意,无论何种按键组合,在任一状态,有且仅有一个扫描线为低电平,否则后续处理将无法正确识别。

  处理回复线)时,应该对其中为低电平的行线个行线-Bit寄存器,记为[RQ5..RQ0],其线]

  2.if若有低电平的回复线. 启动延时(去抖)计数器,延时10.24ms