STM32单片机仿真开发实例 课件 3.5 矩阵式键盘.pptx

STM32单片机仿真开发实例 课件 3.5 矩阵式键盘.pptx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;能力目标:

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

任务要求:

如下图所示是一个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

例程:(往后翻);

(现场操作演示...)

技能训练(选做):

要求将任务要求中的矩阵式键盘驱动程序改为列扫描方式,位操作法或字节操作法不限。

;Tobecontinued...

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档