您好,欢迎访问三七文档
JX44B0实验系统教案键盘输入与IO实验武汉创维特信息技术有限公司2020/1/242提纲13245基础知识实验目的实验内容预备知识实验设备6实验过程7实验报告要求3一实验目的实验目的学习键盘驱动原理掌握通过CPU的I/O扩展键盘的方法4二实验内容实验内容编写矩阵键盘扫描程序,并将按键键值在数码管中显示5三预备知识预备知识了解ADT集成开发环境的基本功能;了解键盘的构成以及原理6四实验设备实验设备JX44B0教学实验箱ADT1000仿真器和ADTIDE集成开发环境串口连接线7五基础知识键盘实现方案键盘实现方案采用专门的芯片实现键盘扫描采用软件实现键盘扫描软键盘实现方案当开关打开时,通过处理器的I/O口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的I/O口的输入将被拉低到逻辑0。8五基础知识矩阵键盘电路一个瞬时接触开关(按钮)放置在每一行与每一列的交叉点。每一行由一个输出端口的一位驱动,每一列由一个电阻器上拉且供给输入端口一位。9五基础知识按键抖动开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如下图所示的好几个脉冲。弹起的持续时间通常将维持在5ms~30ms之间。10五基础知识键盘扫描键盘扫描过程就是让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下一旦处理器判定有一个键按下,键盘扫描软件将过滤掉抖动并且判定哪个键被按下每个键被分配一个称为扫描码的唯一标识符。应用程序利用该扫描码,根据按下的键来判定应该采取什么行动,换句话说,扫描码将告诉应用程序按下哪个键11五基础知识键盘扫描算法初始化:所有的行(输出端口)被强行设置为低电平在没有任何键按下时,所有的列(输入端口)将读到高电平。任何键的闭合将造成其中的一列变为低电平。一旦检测到有键被按下,就需要找出是哪一个键。过程很简单,微处理器只需在其中一列上输出一个低电平。如果它在输入端口上发现一个0值,微处理器就知道在所选择行上产生了键的闭合12五基础知识JX44B0的键盘模块JX44B0具有4×4的软键盘。原理图如下:13五基础知识实验说明键盘处理流程图开始将键盘的第row行置为低电平row=0延时第一次扫描键值input_keykey_mask=0x0F延时第二次扫描键值input_key1获取键码ascii_key在LED上显示按键row++row4NY是否有键按下input_key!=key_maskinput_key==input_key1YYNN依次将键盘的每一行输出低电平,延时一段时间然后获取该行中各列的输入情况,如果各列全部为1则继续查询下一行,否则延时一段时间并重新扫描一次如果扫描结果与上次扫描结果相同则调用key_get_char获取键码,然后调用display_num在LED上显示相应键值。图中通过如下程序将键盘的row行输出低电平:unsignedchar*keyboard_port=(unsignedchar*)0x2000000;*keyboard_port=~(0x00000001row);14六实验过程实验过程15六实验报告要求实验报告要求键盘扫描有哪几种方式,分别说明其基本原理;思考使用中断方式如何处理键盘输入,试画出流程图。
本文标题:键盘输入与IO实验
链接地址:https://www.777doc.com/doc-3291560 .html