STM32单片机仿真开发实例 课件 3.5 矩阵式键盘_第1页
STM32单片机仿真开发实例 课件 3.5 矩阵式键盘_第2页
STM32单片机仿真开发实例 课件 3.5 矩阵式键盘_第3页
STM32单片机仿真开发实例 课件 3.5 矩阵式键盘_第4页
STM32单片机仿真开发实例 课件 3.5 矩阵式键盘_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.5矩阵式键盘能力目标:

理解矩阵式键盘的电路组成及工作原理,掌握矩阵式键盘程序的编制方法。任务要求:

如下图所示是一个4×4的矩阵式键盘仿真电路,要求编程实现当按下任意一个按钮时,数码管立即显示当前按下按钮对应的键值。3.5.1矩阵式键盘的电路组成

●“独立式按钮”,适合于按钮较少的应用场合;

●“矩阵式键盘”,适合于按钮较多的应用场合。如图所示,是一种4×4的矩阵式键盘的结构示意图,分别由4条行线、4条列线联接而成。3.5.2矩阵式键盘的行扫描法行扫描法检测步骤如下:①初始化,所有行线均输出高电平;②仅行线X0输出低电平,检测按键0~按键3,若其中某个按键被按下,则相应的列线将检测到低电平;③仅行线X1输出低电平,检测按键4~按键7,若其中某个按键被按下,则相应的列线将检测到低电平;④仅行线X2输出低电平,检测按键8~按键B,若其中某个按键被按下,则相应的列线将检测到低电平;⑤仅行线X3输出低电平,检测按键C~按键F,若其中某个按键被按下,则相应的列线将检测到低电平;⑥回到步骤②,继续循环检测。3.5.3任务程序的编写即便是行扫描法这一种算法,实际程序的编制方法也不止一种,这里为读者介绍两种具体的程序实现方法

⑴位操作法

位操作法来源于早期MCS-51单片机基于汇编语言的矩阵式键盘程序的实现方法,这里GPIO的驱动库选择HAL库。由于HAL库中只有对某一个GPIO引脚进行读写的API函数,而没有对整个GPIO端口进行读写的API函数,因此在编制矩阵式键盘行扫描程序的时候很容易,但是在编制数码管驱动程序的时候就很不方便了,下面程序中人为定义了一个端口输出函数,结合查表法用于驱动数码管。(现场操作演示...)

⑵字节操作法与位操作法编程思路完全不同,字节操作法将矩阵式键盘控制行列的8个GPIO引脚PB0~PB7作为一个字节,通过与流水灯类似的移位算法来实现行线的循环置高电平,通过“位与”运算符来判定按键是否按下。这里GPIO驱动库选择LL库,与HAL相反,LL库只有对GPIO端口读写的API函数,而没有对某一个GPIO引脚读写的API函数。这里需要用到一个新的API函数:

引脚输入函数LL_GPIO_ReadInputPort例程:(往后翻)

(现场操作演示...)技能训练(选做):要求将任务要求中的矩阵式键盘驱动程序改为列扫描方式,位操作法或字节操作法不限。uint32_tdat;dat=LL_GPIO_ReadI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论