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