文档介绍:用户名: 密码: 忘记密码? 帮助首页产品信息库存信息业界资讯求购信息人才招聘器件论坛解决方案应用技术电子知识展会信息供应商库当前位置: 首页>>应用技术>> MCU/DSP >>探讨布尔技术解读键盘矩阵的方法探讨布尔技术解读键盘矩阵的方法浏览 1167 次引言传统的各类电子专业的教科书上以及可查阅的文献资料中,有关 MCU 做键盘矩阵的扫描解读,大都是通过逐行逐列扫描、键值计算、键对应特征量返回、查表等数据处理的方式来进行扫描解读的。为此还得设定在求键值时以辅助保存原值的行值、列值缓冲寄存器等,有的为了保证键每闭合一次 MCU 只作一次处理,往往会在程序运行中等闭合键释放后才对其进行键解释处理。这样键盘的扫描解读颇占 CPU 时间,降低了 CPU 的工作效率。本文揭示的是一种基于布尔处理的新颖的键盘矩阵解读方法。下面结合图示并以 6×5键盘矩阵解读为例热门资料进行描述。 1 程序结构基于布尔处理的键盘矩阵解读方法,也就是使整个键盘矩阵的扫描解读过程都能归结为系列的布尔“位”的操作。扫描解读过程主要包括如下步骤:定义各标志位;键盘矩阵输出线扫描;查询有无键按下;查询键解读标志位;消抖动延时;查询相对应的哪个输示端口电平有变化;查询相对应的哪个输出端口输出扫描电平; 相对应的哪个键作具体的解释处理;置位键解读标志位,流程如图 1所示。 2 步骤阐述 定义各标志位充分利用现行 MCU 内部能进行位操作的 RAM 资源,运用伪指令来定义系统中所牵涉的各标志位。由于伪指令所揭示的定义只写在源程序的头文件上,是不会产生可执行目标代码的,因而对标志位定义的“操作”在图 1的程序流程简图中就没有表述。图1键盘矩阵扫描程序流程简图 键盘矩阵输出线扫描输出线扫描过程也是通过逐个改变输出行线端口的电平来实现的,如图 2所示。输入口线平常所有端口都处于高电平状态;输出口线是逐个循环的输出低电平,也就是任何时候只有一个口线输出低电平;通过键的按· 基于 MSP430 单片机的微功耗中文人机界面设计· TMS320F28 x上 RTO S移植关键技术研究· 基于 RFID 的预付费电能表的研制· 基于 GR6 4模块的通用 GP RS 数传单元设计· 基于 PIC 芯片嵌入式电机控制器的研究· 多核处理器构架的高速 JP EG 解码算法· MSP430F1611 周期图谱校正 FFT · 用类/微驱动模型开发 DS P 视频驱动程序下接通,才有可能拉低相对应输入口线的端口电平。图2键盘矩阵电路结构如果系统中配置有数码显示电路,则电路结构如图 3所示。输入口线平常也都处于高电平状态;输出口线却是逐个循环的输出高电平,通过反相组件后扫描线才成为低电平;通过键的按下接通,同样拉低相对应输入口线的端口电平。这样将键盘输出线扫描能与数码显示的位扫描程序合二为一了,也就能省却了键盘扫描的单独执行,把键盘扫描纳入到系统扫描显示的大循环中。图3带数码位矩阵电路结构 查询有无键按下有无键按下自然是通过对键盘扫描输入口状况的查询来确定的。有键按下,键盘扫描输入端口也就相应有所改变了。如果输入端口如图 2所示,是集中在同一个 Pn口的(其中, n=0,1,2, …),那么可以用对整个 Pn口的字节数据的判别来确定键有否按动;也可运用依次对 Pn口的几个端口 进行位