蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > PDF文档下载
 

基于STM32的矩阵键盘识别算法研究与实现

  • 资源ID:49871930       资源大小:8.59MB        全文页数:4页
  • 资源格式: PDF        下载权限:游客/注册会员    下载费用:7积分 【人民币7元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要7积分 【人民币7元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

基于STM32的矩阵键盘识别算法研究与实现

电子基础 基于S T M 3 2 的矩阵键盘识别算法研究与实现 陈丙山,侯志伟,张永平,景江鹏 兰州石化职业技术大学电子电气Z - 程学院,甘肃兰州,73 0 0 60 基金项目甘肃省大学生创新创业训练计划项目 S 2 0 2 3 1 6 2 0 9 0 0 3 ;甘肃省高等学校创新基金项目 2 0 2 1 B3 9 2 ;甘肃省自然科学基金 2 0 JR 5 R A 3 7 7 。 摘要矩阵键盘作为电子设备和仪器装置的人机交互重要媒介,针对数字密码锁、临时存取柜、电梯控制器等多按键应用场景的实际需求, 本文采用S T M 3 2 F 1 0 3 C 8 作为主控器,详细介绍了以行列扫描法、行列线反法识别5 4 5 行4 列 矩阵键盘的优化算法,并提出了以1 6 位并行端 口I2 C 扩展器P C A 9 5 5 5 a 为纽带的矩阵键盘识别方法。实验结果表明,本文识别方法稳定可靠、简洁清晰、通用性好以及效率更高,能够有效 满足相关应用场景中对多按键识别的实际应用需求。 关键词辐矩阵键盘;S T M 3 2 F 1 0 3 C 8 ;识别算法;行列扫描法;行列线反法;1 2 C 扩展器 0 引言 按键是嵌入式应用系统 中重要的人机交互工具,能 够更好地实现用户与系统之 间的沟通与交互D - 2 ] 。实现 按键交互的主要结构方式有 独立按键和矩阵键盘[ 3 - 4 ] , 其中独立按键的识别效率很 高、硬件连接电路简单,但 每个按键都要占用一根i /o 口引脚,比较适用于少按键 的应用场景,对于按键数量 较多的情况下,为节省i /o 口资源,需考虑使用矩阵键 盘结构形式,矩阵键盘由多 个行线和多个列线交织组成, 图l 扫描法硬件连接电路 广泛应用于数字密码锁、, 缶m - j 存取柜、电梯控制器等多按键场景。5 喝J 。因此,矩阵键盘作 为电子设备和仪器装置的人机交互重要媒介,相应也提高了 软件编程的复杂度,本文针对矩阵键盘识别时间长、电路扩 展性差、通用性低等问题,详细介绍了以行列扫描法、行列 线反法识别5 x 4 5 行4 列 矩阵键盘的优化方法,并提出 了以1 6 位并行端口1 2 C 扩展器P C A 9 5 5 5 a 为纽带的矩阵键 盘识别方法,以满足相关应用场景中对多按键识别的实际应 用需求。 1 方案设计 矩阵键盘与处理器的硬件连接结构有直连法和扩展法 两种方式[ g q o ] ,为适用于更多按键的应用场景,通常采用并 行端口扩展器的方式。识别矩阵键盘中某个按键按下的位 置,主要有扫描法、线反法、中断法等方式,其识别方法包 括获取行列位置、键值编码、确定键号以及延时消抖等。 9 6 电子制作2 0 2 4 年3 月 ■1 .1 扫描法 矩阵键盘硬件连接电路如图l 所示,主控器 S T M 3 2 F 1 0 3 C 8 与5 行4 列矩阵键盘的连接关系为 P B T P B I L 分别连接矩阵键盘的行线,P B l 2 一P B l 5 分别连 接矩阵键盘的列线;V I R T U A LT E R M I N A L 用来调试输出过 程信息;P A 0 为处理器正常工作指示灯。 根据行线列线的高低电平来识别是否有按键按下,从 而获取按键值。行列扫描法的识别思路为将列线G P I O 口 P B l 2 一P B l 5 设置为输出模式,行线G P I O 口P B 7 ~P B l l 设 置为输入模式,采用“写列线,读行线”的方式逐列扫描, 读行判断是否有按键按下,其主要步骤为 第一步,置第l 列为低电平,其余列为高电平,那么 列线P B l 2 一P B l 5 的c o l v a I 值为1 1 1 0 ; 第二步,读取行线数据,行线有低电平表示该行有按 键按下,例如当按下的按键在第l 行时,第l 行的行线i /o 口为低电平,那么行线P B 7 一P B l l 的r o w v a I 值为i i i i 0 , 万方数据 电子基础 如表l 所示。将r o w v a I 值按位取反得到行线二进带0 值 为0 0 0 0 1 - I - 进制为1 。同理,第2 行的行线二进制值为 0 0 0 1 0 十进制为2 ,第3 行的行线二进制值为0 0 1 0 0 十 进制为8 ,第4 行的行线二进制值为0 1 0 0 0 - I - 进制为 1 6 ,第5 行的行线二进制值为1 0 0 0 0 - I - 进制为3 2 。 表1 第1 N 为低电平时读取的行线值 歹线行线 第4 列第3 列第2 列第l 列第5 行第4 行第3 行第2 行第l 行 P B l 5P B l 4P B l 3P B l 2P B l lP B I OP B 9P B 8P B 7 llllO lll O l lll O ll O ll lOlll 0llll 由此可见,按键按下的所在行k e y r o w 与读取行值 r o w v a l 按位取反的值呈现的数掌关系式为 七哕加w 1 。g ~ 7 。w ”以7 7 o x 0 0 1 , 式 1 1 0 9 ~ r o w v a l 7 0 x 0 0 1 F /l o g 2 式 1 中,C 语言m a t h .h 头文件里l o g 函数为基数为 e 的对数; 第三步,计算按下按键的键号k e y v a l ,与所在行 k e y r o w 的计算同理,按键按下的所在列k e y c o l 与设置行 值c o l v a l 按位取反的值呈现的数学关系式为 坳。。7 1 。g ~ 。。7 ”以7 12 o 加o o F 式 2 l o g ~ c o l v a l 1 2 O x O O O F /l o g 2 那么,按键按下对应的键号k e y v a l 为 k e y v a l k e y r o w 4 k e y c o l 式 3 第四步,按以上步骤以此类推逐列扫描完所有列。 本文矩阵键盘按键识别优化算法极大避免了键值编码 和查表取值的繁琐工作。 ■1 .2 线反法 采用“写列线,读行线”的方式需要逐列进行扫描,完 成全部列的扫描其识别时间长、效率低。因此,逐行或逐列 扫描法较为繁琐,在实际的嵌入式应用系统中更常用的是线 反法。线反法的识别思路为行线输出,列线输入,行线置0 , 列线置l ,按键按下时,列线被拉低,读取列线值确定低电 平在哪一列;同理,行线输入,列线输出,行线置l ,列线 置0 ,按键按下时,行线被拉低,读取行线值确定低电平在 哪一行;根据按键所在的行线与列线,即可唯一确定按键所 在位置,进而获取按键的键值。其主要操作步骤为 第一步,将行线P B 7 一P B l l 设置为输出模式,列线 P B l 2 一P B l 5 设置为输入模式。 设置方式如下 G P I O B 一 C R L & 0 x

注意事项

本文(基于STM32的矩阵键盘识别算法研究与实现)为本站会员(海量文档库)主动上传,蚂蚁文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蚂蚁文库(发送邮件至2303240369@qq.com或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开