实验4-矩阵键盘的设计与应用

上传人:gg****m 文档编号:214756137 上传时间:2021-11-24 格式:DOCX 页数:16 大小:77.83KB
返回 下载 相关 举报
实验4-矩阵键盘的设计与应用_第1页
第1页 / 共16页
实验4-矩阵键盘的设计与应用_第2页
第2页 / 共16页
实验4-矩阵键盘的设计与应用_第3页
第3页 / 共16页
实验4-矩阵键盘的设计与应用_第4页
第4页 / 共16页
实验4-矩阵键盘的设计与应用_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《实验4-矩阵键盘的设计与应用》由会员分享,可在线阅读,更多相关《实验4-矩阵键盘的设计与应用(16页珍藏版)》请在金锄头文库上搜索。

1、实验4矩阵键盘的设计与应用实验四矩阵键盘的设计与应用在单片机及智能仪器应用中,键盘是人机交互的又一个重要的部分。 在单片机应用系统中为了控制系统的工作状态,以及向系统中输入数据, 键盘是必不可少的输入设备,它由若干个按键组成。单片机应用系统中所 配备的键盘,通常是非编码键盘一一即:键盘中的按键及键值由单片机中 的键盘扫描程序来识别和解释。由此看来在一个单片机应用系统中其键盘 扫描程序段是肯定存在的。因此,我们有必要将单片机中键盘的设计与键 值的解释作为一种单片机应用的技能来加以训练。本实验我们主耍讨论键 盘的工作原理、组成键盘的硬件电路设计以及按键识别和键值解释的程序 设计。第一部分教学要求一

2、、目的要求1. 了解键盘的工作原理。2. 掌握简单键盘的设计方法和键盘扫描程序的设计方法。3. 利用51系列单片机的P1 口进行简单键盘设计及键盘扫描程序设计训练。4. 键盘及键盘扫描程序的排(查)错训练。二、预备知识1. 在电子电路中按键的状态是以开关量形式表示的(闭合与断开),具体到单片机电路中按键的状态即以TTL电平(5V3V表示逻辑“:L”,2V 0V表示逻辑“0”)來表示,即逻辑“1”与逻辑“0”分别表示按键的两种 状态。2. 单片机逻辑电平的输入形式:图23. 51系列单片机的I/O指令1)直接对单片机引脚的位操作指令:JB bit, relJNB bit, rel2 )对单片机扩

3、展I/O 口地输入指令:MOV DPTR, #addrl6MOVX A, DPTR键盘组成原理1. 独立的按键电路图3按键断开时,由于上拉电路的存在读入按键的状态为逻辑“1”。按键 闭合时,由于按键的另一端接地,此时,读入按键的状态为逻辑“0”。由 独立按键组成的键盘系统,每一个按键都要占用一位I/O接口位。例:若某应用系统有4个按键,4个按键通过8031的P1.0、Pl.l P1.2 及P1.3接入,设计如下:图4特点:电路及键盘解释程序简单。由于每个按键都要占用一位I/O接口位。若键盘的按键全部为独立按键,则该键盘中按键的数量通常少于6 个。2. 键盘矩阵由于由独立按键组成的键盘系统每一个

4、按键都要占用一位I/O接口位, 而对于单片机系统而言,每一位|/0接口位都是非常宝贵的资源。这对于 应用系统中有较多数量按键的系统而言,采用由独立按键组成的键盘系统 显然是不可収的。为了节省宝贵的I/O接口位可采用键盘矩阵方法,将所 有的按键组织成一个有X行Y列的矩阵,按照坐标的原理在矩阵中的每一 个按键都有一个不同的坐标值(编码),我们可根据不同的坐标值来识别 每一个按键。下面以一个4X4的键盘(实验平台实际电路)來具体说明键 盘矩阵工作原理:图5将A键至P键按图5的方式组织成一个4X4的矩阵,其中4根“行” 线分别接入8031的P1.0-P1.3, 4根“列”线,则分别接入8031的P1.

5、4P1.7 并同时通过4个上拉电阻接5V电源。当键盘中无任何键按下吋,读入8031 的P1.4-P1.7的编码应为“1111”(4个上拉电阻的状态)。为了使键盘中的 按键具有各自不同的编码,可使8031的P1.0-P1.3依次输出逻辑“0”,即 只输出“0111”(P1.0输出逻辑“0” , P1.1-P1.3均输出逻辑“1”)、“1011”、 1101和“1110”四组编码。当有按键被按下时,按键所在的“行”线 与“列”线便会连通,此时若“行”线输出逻辑“0”,则8031读入“列” 线的编码便会是一个非全1码。例如图5中的P1.0P1.3输出为u0111v(P1.0输出逻辑“0”, P1.1

6、P1.3均输出逻辑“1”),此时若A键被按下,则8031读入8031的P1.4-P1.7的 编码应为“ 1110 ( P1.4-P1.6为逻辑“T, B、C、D键未按下。P1.7为逻 辑“0”,A键被按下)。根据同样的原则,A键至P键的编码见下表:表1矩阵式键盘就是根据这些不同的编码來识别不同的按键的。特点:利用较少的I/O接口位,获得较多按键数(8位I/O接口位,16 个按键)。而且,键盘矩阵越大所节省的I/O接口位就越多。电路及键盘解 释程序较独立按键的键盘复杂。a)按键状态变化过程由于按键是一个机械器件,在进行按键操作时由于按键的机械特性, 按键在闭合与断开的瞬间都存在一个抖动期,抖动期

7、的长短与按键质量有 关,一般为520mso图6图6中tl、t2为抖动期,t2为按键被按下的时间。目前51单片机处 理与判断事件的速度为us级,而按键的抖动期是ms级的。显然若不加以 处理,这个抖动期对按键操作的识别是有影响的,具体反映是:实际为单 次按键操作,而识别为多次按键操作,俗称“连击”。处理方法是在按键 操作进入抖动期后,先让51单片机延时20ms,然后再进行按键逻辑值的 判断,这样就避开了按键的抖动期。3. 按键识别及键盘扫描程序在以单片机为核心应用系统中,键盘除了具体的电路结构外,管理键 盘的程序也是键盘的另一个重要组成部分,管理键盘的程序通常称为键盘 扫描程序。键盘扫描程序有两项

8、主要的任务:1)按键识别,判断键盘中 那一个按键被按下;2)键值解释,该按键的具体意义。以下是对图4、图 5中键盘的键盘扫描程序的结构示意,使大家对键盘扫描程序有一个初步 了解。a)对图4结构键盘的键盘扫描程序:图:按键1扫描程序流程ORG 0100HK1:JBP1.OZ K2;判断按键1是否被按下? P1.0=l,未按下,转去判断按键2Kll: ACALL延时20ms ; P1.0二” 0”,按键1以被按下,延时,避开按键的抖动期。JNBP1.0, K11;等待按键1释放ACALL K1的键值解释;转去解释按键1K2: JB Pl.l, K3K22: ACALL 延时 20msJNBP1.1

9、, K22;与以上类似ACALL K2的键值解释K3: JB Pl.2, K4K33: ACALL 延时 20msJNB Pl.2, K33;与以上类似ACALL K3的键值解释K4: JB Pl.3, KENDK44: ACALL 延时 20msJNB Pl.3, K44;与以上类似ACALL K4的键值解释KEND:AJMP KI ;继续键盘扫描1. 对图5结构键盘的键盘扫描程序:图:第一行键盘扫描程序流程ORG 0100HSCAN: CLR P1.0SETB P1.11110 SETB P1.2SETB Pl.3ACALL延时;等待A键释JB P1.5,JB Pl.4, NEXT1 ;判

10、断A键是否被按下?20ms ; A键被按下,A键去抖 KA:JBP1A KAO放AJMP KAKAO: ACALL A键的键值解释;A键键值解释NEXT1:JBP1.5,NEXT2 ;判断B键是否被按下?ACALL延时20ms ; B键被按下,B键去抖第:L KB:KBO;等待B键释放AJMP KBKBO: ACALL B键的键值解释;B键键值解释NEXT2:JBP1.6,NEXT3ACALL 延时 20msKC: JB Pl.6, KCO键处理AJMP KCKCO: ACALL C键的键值解释NEXT3: JB Pl.7, NEXT4ACALL 延时 20msKD: JB P1.4,KD0键

11、处理AJMP KDKDO: ACALL D键的键值解释NEXT4:SETBP1.0CLR Pl.l设置行编码“MOI”SETB Pl.2ACALL延时;等待E键释放JB Pl.5,SETB Pl.3JB Pl.4, NEXT5 ;判断E键是否被按下?20ms ; E键被按下,E键去抖 KE: JB Pl.4, KEOAJMP KEKEO: ACALL E键的键值解释;E键键值解释NEXT5:JB Pl.5, NEXT6 ;判断F键是否被按下?ACALL延时20ms ; F键被按下,F键去抖第2 KF:KFO;等待F键释放AJMP KFKFO: ACALL F键的键值解释;F键键值解释NEXT6

12、: JB P1.6,NEXT7ACALL 延时 20msKG: JB Pl.6, KGOAJMP KGKGO: ACALL G键的键值解释NEXT7:JBP1.7, NEXT8ACALL 延时 20msKH: JB P1.4,KH0KHO: ACALL H键的键值解释NEXT8:SETBP1.0SETB Pl.l1011SETB Pl.3JB Pl.4, NEXT9ACALL 延吋 20msKI: JB Pl.4, KIOKIO: ACALL I键的键值解释;NEXT9:JBP1.5,NEXT10ACALL 延时 20ms ;AJMP KJKJO: ACALL J键的键值解释;NEXT10:

13、JB Pl.6, NEXT1120ms键处理键处理 AJMP KHCLR Pl.2I键处理 AJMP KIJ 键处理 KJ: JB Pl.5, KJOACALL延时KK: JB Pl.6, KKO键处理AJMP KKKKO: ACALL K键的键值解释NEXT11: JB Pl.7, NEXT12ACALL 延时 20msKL: JB P1.4,KL0键处理KLO: ACALL L键的键值解释NEXT12:SETBP1.0SEYB Pl.l设置行编码CLR Pl.3JB Pl.4, NEXT13ACALL 延时 20ms ;KM: JB Pl.4, KMO;KMO: ACALL M键的键值解释

14、;NEXT13: JB Pl.5, NEXT14 ;ACALL 延时 20ms键处理 AJMP KNKNO: ACALL N键的键值解释;NEXT14: JB P1.6,NEXT15第4行扫描ACALL 延时 20msKO: JB Pl.6, KOOAJMP KLSETB Pl.2AJMP KOM键处理KN:0键处理AJMP KMJB Pl.5, KNO第3行扫描KOO: ACALL O键的键值解释NEXT15: JB Pl.7, NEXT16ACALL 延时 20msKP: JB P1.4,KP0键处理AJMP KPKPO: ACALL P键的键值解释AJMP SCAN ;继续键盘扫描三、实验内容按照下面的原理图接线,编写程序,完成矩阵键盘的设计(4X4), 给每一个按键赋予一个数字,运行程序后,按键后的数字显示在LED数码

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号