英创ARM9工控主板扩展矩阵键盘的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

英创ARM9工控主板扩展矩阵键盘的方法
发布时间:2010-6-13 23:29:19 被阅览数:
388次
英创公司ARM9系列工控主板预装正版WinCE操作系统,板载了丰富的通讯接口,GPIO,存储器等资源,支持TFT LCD显示及触摸,支持标准USB键盘,鼠标输入。

在实际使用中,客户如果不需要标准键盘输入,仅需要一些数字键或功能键(比如方向键),此时可通过外扩矩阵键盘来实现。

1、矩阵键盘扩展硬件电路
英创ARM9工控主板可通过GPIO或精简ISA总线扩展矩阵键盘,通过GPIO扩展时,程序直接驱动IO作为扫描输入输出,比较简单,此处主要介绍通过ISA总线扩展矩阵键盘的方法。

图1是通过ISA总线扩展矩阵键盘的原理图,用1片74HCT139对总线地址译码,再通过74HCT273实现8位数字输出用于扫描输出,通过74HCT245回读扫描码,仅需要3个器件,就能实现8X8矩阵键盘扩展。

2、矩阵键盘扩展驱动程序
通过GPIO扩展和ISA扩展键盘的程序流程是一致的,驱动程序每隔20ms扫描一次键盘,判断是否有按键输入,如果确认了按键输入,则产生WM_KEYDOWN消息,紧接着判断按键是否释放,按键释放后产生WM_KEYUP消息,然后进行下一次扫描,如此循环。

图2是按键扫描程序的流程图。

根据上述流程图,英创公司封装了KEY_API类,该类提供两个方法函数,如下:
// 打开键盘扫描
// nRow,nCol矩阵键盘行列数,最大为8X8
BOOL OpenKeyPad( int nRow, int nCol );
// 关闭键盘扫描
BOOL CloseKeyPad( );
通过KEY_API类,在应用程序中,仅需要调用OpenKeyPad()函数,就能打开键盘扫描程序。

当键盘上某个键按下时,驱动程序将产出WM_KEYDOWN和WM_KEYUP消息。

这两个消息的附加参数(wParam和lParam)包含的是虚拟键代码和扫描码等信息,应用程序中可通过TranslateMessage函数将WM_KEYDOWN和WM_KEYUP消息组合转换为一条
WM_CHAR消息,该消息的wParam附加参数包含了按键字符的ASCII码。

相关文档
最新文档