实验三-按键控制.docx

实验三-按键控制.docx

ID:55414461

大小:272.32 KB

页数:20页

时间:2020-05-12

实验三-按键控制.docx_第1页
实验三-按键控制.docx_第2页
实验三-按键控制.docx_第3页
实验三-按键控制.docx_第4页
实验三-按键控制.docx_第5页
资源描述:

《实验三-按键控制.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验三基于ARM92440linux系统的按键控制一、实验内容(1)学习按键驱动原理,了解ARM实验箱上如何控制键盘的输入(2)设计程序在ARM实验箱上能够正确读出被按的键位。(3)优化按键的部分源程序,能准确写出按照自己的要求设计的按键输入代码,掌握通过CPU的I/O扩展键盘的方法。(4)将写出的代码载入到ARM实验箱上,验证所写的按键程序是否正确。二、实验目的(1)熟悉Linux操作系统。(2)熟悉嵌入式系统Ubuntu的开发环境和流程,熟练掌握常用的指令。(3)掌握按键程序的设计思路,并根据提供的源代码将其简化,编程实现键盘的驱动,通

2、过按键可以在超级终端上显示相应的键值。三、实验设备及工具硬件:ARM9S3C2440实验箱、PC(CPU:Inteli3,内存:4GB以上)、交叉网线、串口线软件:VMWare10.0.2、ubuntu14.04.1、SecureCRT四、实验原理矩阵键盘又称为行列式键盘,它是用4条I/O线做为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4*4个(如图1),这种行列式键盘结构能够有效的提高嵌入式系统MCU的I/O的利用率(如果采用直连式的键盘,16个按键需要16个I/O口,此举节省

3、了8个I/O口)。S3C2440上key4×4的硬件电路引脚如图:图1:S3C2440上key4×4的硬件电路引脚根据图1找到相应的输入输出接口,通过ARM的rPDATC(低四位)和EINT4567四个中断口扩展4×4的键盘,编程实现键盘的驱动,通过按键可以在超级终端上显示相应的键值。在初始化阶段,所有的行(输出端口)被强行设置为低电平。在没有任何键按下时,所有的列(输入端口)将读到高电平。任何键的闭合将造成其中的一列变为低电平,因此只需再确定是哪一行即可定位被按键的位置。在所有的行中,保持一行为低,其余为高,循环所有行,此时能使列仍然输出

4、低的行即为按键的行号。实验板行扫描线分别连接与PX270的KP_MKOUT0、KP_MKOUT1、KP_MKOUT2、KP_MKOUT6端口相连,列扫描线分别与PX270的KP_MKIN0、KP_MKIN1、KP_MKIN2、KP_MKIN5端口相连。图2PX270支持最大8根行扫描线,8根列扫描线总计64个按键的矩阵键盘,通过对键盘控制寄存器KPC的操作,我们可以自由的定制键盘的扫描工作方式,行扫描线,列扫描线的个数。现在对矩阵键盘驱动中要使用的KPC寄存器主要控制位进行简要的说明(如图3)。图3BIT11:MIE:矩阵键盘中断使能1:矩

5、阵键盘中断0:矩阵键盘不中断BIT12:ME:矩阵键盘工作模式使能1:矩阵键盘工作0:矩阵键盘不工作BIT13~BIT20:MS0~MS7:行扫描线使能1:对应的行扫描线工作0:对应的行扫描线不工作BIT23~BIT25:MKCN:行扫描线个数统计000:0个111:7个BIT26~BIT28:MKRN:列扫描线个数统计000:0个111:7个BIT29:ASACT:激活矩阵扫描自动扫描过程1:激活0:不激活BIT30:AS:矩阵扫描工作模式选择1:自动扫描0:手动扫描设置好KPC之后,就可以调用PX270的键盘扫描功能模块进行键值的扫描。

6、现在就实验板实际连接的电路对扫描的键值加以说明。实验板的16键矩阵键盘的行扫描线是KP_MKOUT0、KP_MKOUT1、KP_MKOUT2、KP_MKOUT6,列扫描线是KP_MKIN0、KP_MKIN1、KP_MKIN2、KP_MKIN5,其对应PX270内置的列扫描线位于第0、1、2、6列,对应的行扫描线为0、1、2、5行。以按下16键矩阵键盘的第4行,第4列的按键为例,根据前面对矩阵键盘工作原理的分析可以知道,其对应的键值应该是PX270第6列,第5行所对应的键值。故实验板上16键矩阵键盘的键值如下表所示:第〇列第一列第二列第六列第

7、〇行0x00(0,0)0x01(0,1)0x02(0,2)0x06(0,6)第一行0x10(1,0)0x11(1,1)0x12(1,2)0x16(1,6)第二行0x20(2,0)0x21(2,1)0x22(2,2)0x26(2,6)第五行0x50(5,0)0x51(5,1)0x52(5,2)0x56(5,6)表1键盘控制过程就是让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下。一旦处理器判定有一个键按下,键盘扫描软件将过滤掉抖动并且判定哪个键被按下。每个键被分配一个称为扫描码的唯一标识符。应用程序利用该扫描码,根据按下的键来判

8、定应该采取什么行动。某一时刻按下多个键(意外地或者故意地)的情况被称为转滚。能够正确识别一个新键被按下(即使n-1个键已经被按下)的任何算法被称为具有n键转滚的能力。本章提出的矩

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。