键盘扫描实验.ppt

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

键盘扫描实验 实验目的 实验内容 预备知识 实验设备 键盘实现方案 矩阵键盘电路 按键抖动 键盘扫描 键盘扫描算法 JX44B0的键盘模块 实验说明 实验说明 作业 实现检测键盘多个键按下情况 比如“1”、“2”键被按下,则在数码管上显示1和2 * * * 提纲 1 3 2 4 5 基础知识 实验目的 实验内容 预备知识 实验设备 6 实验过程 7 实验报告要求 一 实验目的 学习键盘驱动原理 掌握通过CPU的I/O扩展键盘的方法 二 实验内容 编写矩阵键盘扫描程序,并将按键键值在数码管中显示 三 预备知识 了解ADS集成开发环境的基本功能; 了解键盘的构成以及原理 四 实验设备 JX44B0教学实验箱 JLINK仿真器和ADS集成开发环境 串口连接线 五 基础知识 键盘实现方案 采用专门的芯片实现键盘扫描 采用软件实现键盘扫描 软键盘实现方案 当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的I/O 口的输入将被拉低到逻辑0。 五 基础知识 一个瞬时接触开关(按钮)放置在每一行与每一列的交叉点。每一行由一个输出端口的一位驱动,每一列由一个电阻器上拉且供给输入端口一位。 五 基础知识 开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如下图所示的好几个脉冲。弹起的持续时间通常将维持在5ms~30ms 之间。 五 基础知识 键盘扫描过程就是让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下 一旦处理器判定有一个键按下,键盘扫描软件将过滤掉抖动并且判定哪个键被按下 每个键被分配一个称为扫描码的唯一标识符。应用程序利用该扫描码,根据按下的键来判定应该采取什么行动,换句话说,扫描码将告诉应用程序按下哪个键 五 基础知识 初始化:所有的行(输出端口)被强行设置为低电平 在没有任何键按下时,所有的列(输入端口)将读到高电平。 任何键的闭合将造成其中的一列变为低电平。 一旦检测到有键被按下,就需要找出是哪一个键。过程很简单,微处理器只需在其中一列上输出一个低电平。如果它在输入端口上发现一个0值,微处理器就知道在所选择行上产生了键的闭合 五 基础知识 JX44B0具有4×4的软键盘。原理图如下: 五 基础知识 键盘相关设置 本实验采用内存地址直接控制键盘:地址0bit0~3作为键盘扫描的行输出,地址0bit0~3作为键盘扫描的列输入。 五 基础知识 键盘处理流程图 依次将键盘的每一行输出低电平,延时一段时间 然后获取该行中各列的输入情况,如果各列全部为1则继续查询下一行,否则延时一段时间并重新扫描一次 如果扫描结果与上次扫描结果相同则调用key_get_char获取键码,然后调用display_num在LED上显示相应键值。 图中通过如下程序将键盘的row行输出低电平: unsigned char* keyboard_port = (unsigned char*)0x2000000; *keyboard_port = ~(0 row);

文档评论(0)

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

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

1亿VIP精品文档

相关文档