英创公司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码。
东芝已开始量产M3H组的21款新微控制器
小米6亮蓝色开箱评测:你觉得黑色好看还是蓝色好看?
大模型正在被加速,AI不是只有大模型
深圳打造新一代信息通信产业集群专业展
苹果公司获折叠屏幕技术专利 可以对折并卡在衣服上
英创信息技术ARM9工控主板扩展矩阵键盘的方法
余压监控系统是什么,它的作用又是什么
土壤水分测试仪的发展与应用的介绍
索尼Xperia XZ2/XZ2 Compact评析 XZP 还能再战一年!
3DS MAX 激活资源分享—3D效果图制作
有关光电测径仪的介绍
一文读懂5G消息和短信微信的区别
华为荣耀9和荣耀v9哪个好谁更值得买?华为荣耀9和荣耀v9区别对比
飞利浦推出24英寸的小型智能电视,支持Google Assistant智能助理
Salesforce与微软的竞争加剧
光刻机到底比原子弹难在哪?
银河微电子正式在上交所科创板挂牌上市
如何加快推进虚拟现实产业发展
以太网的心跳包组建设计方案
2022年市场需求量大增,半导体最新产品选型指南火速收藏