isp1016实现机载导航系统的键盘控制

isp1016实现机载导航系统的键盘控制

ID:22802199

大小:56.50 KB

页数:5页

时间:2018-10-31

isp1016实现机载导航系统的键盘控制_第1页
isp1016实现机载导航系统的键盘控制_第2页
isp1016实现机载导航系统的键盘控制_第3页
isp1016实现机载导航系统的键盘控制_第4页
isp1016实现机载导航系统的键盘控制_第5页
资源描述:

《isp1016实现机载导航系统的键盘控制》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、isp1016实现机载导航系统的键盘控制

2、第1...摘要:介绍了用isp可编程逻辑芯片设计机载导航系统键盘控制器的设计要点,给出了接口信号及驱动程序的核心代码。该设计具有典型性、通用性和实用性,并可用到各种键盘控制器中。关键词:键盘控制器在线可编程扫描线isp10161键盘控制器的外部接口信号无论在任何计算机系统中,键盘都是最重要的输入设备,但是普通键盘不能满足机载要求。笔者在新一代电子航空图导航系统中,用Lattice公司的ispLSI1016设计了一个4×5键盘控制器(以下简称KBC),经实际应用,该键盘控制器通用性较强。图1是其键盘

3、和显示器外观示意图。一航情况下,KBC应该是CPU的一个外部I/O设备,它一方面监测各按钮状态,另一方面接受CPU的查询并主动向CPU请求中断。因此,外部接口信号分CPU接口信号和键盘按钮矩阵状态信号。图2为通用KBC外部接口信号示意图,其定义如下:*Reset:复位,低有效。该信号有效时将异步复位内部所有寄存器,以对KBC进行初始化;*CLK:工作时钟,频率为100kHz;*CS:片选,低有效;*RD:读信号,低有效;*A0:片内地址,用于区分片内寄存器;*INT:中断请求,高有效。当键盘控制器检测到有效按键时,该脚为高,当CPU读走按

4、键编码时,KBC自动撤销中断请求;*D4~D0:三态数据线;*SL3~SL0:扫描输出,按键盘矩阵的列线;*RL4~RL0:回复线,接键盘矩阵的行线。实际上,大部分矩阵键盘的行列是可对换的。2KBC接口寄存器定义及驱动程序KBC针对CPU接口设计有2个只读寄存器,即数据寄存器(Dreg)和状态寄存器(Sreg)。数据寄存器用于保持有效按键的编码值,该编码值就是按键所在的行列;而状态寄存器则用于保持按键的状态信息,以供CPU查询。当CPU访问KBC时(即CS和RD同时有效),adkA0=0,则访问数据寄存器,否则访问状态寄存器。表1、表2分

5、别是数据寄存器和状态寄存器的定义。表1数据寄存器定义D7D6D5D4D3D2D1D0XXXCol(列值)Rop;0x1f;//读数据寄存器,低6位有效Col=Key>>3;//右移3位,提取按键列值Rop;0x07;//提取按键行值}至此,就可根据Ros,亦即每即扫描线持续640ms的低电平。将状态机的状态编码值和当前周期为低电平的扫描线序号对应起来,即可简化后续处理。图4是扫描线输出波形。注意,无论何种按键组合,在任一状态,有且仅有一个扫描线为低电平,否则后续处理将无法正确识别。3.2键盘编码处理回复线(RL4..RL0)时

6、,应该对其中为低电平的行线进行编码。5个行线需要3-Bit寄存器,记为[RQ5..RQ0],其真值表如下:[RL4..RL0]->[RQ2..0]----------------[H,H,H,H,L]->[0,0,0];0[H,H,H,L,H]->[0,0,1];1[H,H,L,H,H]->[0,1,0];2[H,L,H,H,H]->[0,1,1];3[L,H,H,H,H]->[1,0,0];4当KBC确认是有效按键后,应把行列编码值放入缓冲,以供CPU读取,其逻辑表达如下:式中,[KSL1,KSL0]

7、是记录有效按键的扫描线编码,即当时的[QSL1..0]状态。3.3CPU的读操作CPU读状态寄存器时,系统把中断请求寄存器INT的值送出,而读数据寄存器时,它将把FIFO缓冲的按键值送出,处理CPU读操作的表达式如下:[D4..D0].oe=!CS!RD;//寄存器由三态控制[D4..D0]=(!A0[FIFO4..FIFO0])#//A0=0:送按键数据(A0[L,L,L,L,INT]);//A0=1;送状态INT.ar=!Reset#(!CS!RD!A0);//读数据寄存器时应撤销中断3.4键盘处理状态机该状态处理机是KBC处理的核心

8、。图5是其状态转移图,其驱动时钟应该比扫描周期快而且应该是它的整数倍。此处采用的80ms时钟周期是扫描周期的8倍。下面讨论其状态转移条件。S0:复位状态1.记录当前扫描周期2.if若有低电平的回复线thenS1elseS0;S1:1.启动延时(去抖)计数器,延时10.24ms2.无条件进入下一状态S2S2:去抖状态if去抖正确thenS3elseS0S3:确认状态1.将有效键值打入FIFO缓冲2.设置4改进建议上述KBC完全可以满足一般系统对键盘的要求,但仍然可以改进以使之更加智能化。例如使CPU能够对KBC的读操作和写入控制字进行适当控

9、制、使KBC可处理组合按键和按键连击、增加KBC多字节的缓冲等。上述功能完全可以根据设计者系统和应用程序的要求进行改进。本设计源代码使用的是ABLE硬件描述语言,对此感兴趣的同志可以和进行联系

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。