独立按键及矩阵键盘控制LED灯
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 1
1 1
1 1
0 1 1 1
(2)线反转法。 线反转法也是识别闭合键的一种常用方法, 该 法比行扫描速度快, 但在硬件上要求行线与列线外 接上拉电阻。 先将行线作为输出线, 列线作为输入线, 行线 输出全“0”信号, 读入列线的值, 那么在闭合键所 在的列线上的值必为0;然后从列线输出全“0”信 号,再读取行线的输入值,闭合键所在的行线值必 为 0。这样,当一个键被按下时, 必定可读到一对 唯一的行列值。再由这一对行列值可以求出闭合键 所在的位置。
们将结合实例加以介绍。
4.等待释放 等待释放是为了保证键的一次闭合仅进行一次处
理。求得键码后,然后通过不断进行键扫描,如有
键按下,则继续扫描,否则认为键已释放。 5.按键处理
根据系统功能要求,利用单片机控制完成特定操作。
键盘接口的控制方式 在单片机的运行过程中,何时进行键盘扫描和
处理,可有下列三种情况:
类似,无论是硬件结构还是软件设计都比较简单,。
+5V
+5V
89s52 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P1.4 P1.5 P1.6 P1.7
S1 S2 S3 S4
89S52
图8.1 独立式键盘接口 特点:每个按键占用一条I/O 线,当按键数量较多时,I/O 口利用率不高,但程序编制简 单。适用于所需按键较少的场 合。
39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28
P10 P11
K0 K4
0
4 8
K1 K5
1
5 9
K2 K6
2
6
K3 K7
3
7
8wenku.baidu.comS52
P12K8 P13
K12
K9 K13
K10 K14
A K11 B
EA/VP X1 X2 RESET RD WR
9
17 16
键按下
前沿 抖动
后沿 抖动
图8.5 键闭合及断开时的抖动
为确保每按一次键单片机只进行一次处理,使 键盘可靠地工作,必须消除按键抖动。消抖方法有 硬件消抖和软件延时两种。
(1)硬件消抖法:就是在键盘中附加去抖动电 路,从根上消除抖动产生的可能性。右图所示电路 实际上是由R-S触发器构成的单脉冲电路。当按钮 开关按下时Q端输出低电平,当开关松开时Q端恢复 高电平,即输出一个负脉冲,以此消除抖动。
VCC GND RXD TXD ALE/P PSEN
40 20 10 11 30 29
C
D
E
K15
F
P17
P14
P15
P16
扫描法 和线反转法
+5V
89s52
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
图8.2 矩阵式键盘接口
0 ee 4 ed 8 eb C e7
图8.2 矩阵式键盘接口
特点:电路连接复杂,但提 高了I/O口利用率,软件编程 较复杂。适用于需使用大量 按键的场合。
P10 P11 P12 P13 P14 P15 P16 P17
1 2 3 4 5 6 7 8 13 12 15 14 31 19 18
U1
P10 P11 P12 P13 P14 P15 P16 P17 INT1 INT0 T1 T0 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27
设第2行第 4列键按下 +5V
89C51 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
行值:1011
1 0 0 1 0 1 0
1 0 0 1 0 1 0
列值:1110
2.消抖 由于按键按下时的机械动作,在按键被按下或松 开的瞬间,其输出电压会产生波动,称为键的抖动。
100ms
10ms 10ms 键抖动时间
图8.7 软件消抖法延时区间示意图
3. 计算键码 键码是每个按键的标识。被按键确定下来之后,
接下来的工作是计算闭合键的键码,然后才能根据
键码进行对应的操作。 为编程方便,键码通常都是以键的排列顺序安 排,按照从左到右、从上向下的顺序编排。键码可
根据行号列号以查表求得,也可通过计算得到。我
1 de 5 dd 9 db D d7
2 be 6 bd A bb E b7
3 7e 7 7d B 7b F 77
键盘控制流程 单片机对矩阵 式键盘接口处理的 一般过程如图8.3所 示。
N
等待键释放
开始 键扫描 有键按下? Y 消除抖动 键扫描 确有键按下? Y 求键值 键释放? Y N 求键码 等待释放 按键处理 N 键扫描
1.查询方式:单片机通过调用键盘扫描子程序,查 询有无键按下。 2.定时扫描方式:每隔一定时间执行一次键盘扫描 子程序。
3.中断方式:每当有键闭合时才向CPU发出中断请求,
中断服务时进行键盘扫描和处理。
的话, 则列线所接的端口得到的是全“1”信号, 如
果有键按下的话, 则得到非全“1”信号。
设第2行第 4列键按下 +5V
89C51 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
0 1 1 0 1 0 1 1 0
行线输出 列线输入 0111 1011 1101 1110 1111 1110 1111 1111
消抖
按键处理
返回
图8.3 键盘处理流程框图
1. 键扫描 键扫描就是要判断有无键按下,当扫描到有键
按下时再进行下一步处理,否则退出键盘处理程序。
独立式键盘扫描只需读取IO口状态,而矩阵式键盘
描通常有两种实现方法:逐行扫描法和线反转法。
(1) 逐行扫描法。依次从第一至最末行线上发 出低电平信号, 如果该行线所连接的键没有按下
键盘接口
键盘是单片机应用系统中使用最广泛的一种
数据输入设备。键盘是一组按键的组合。键通常
是一种常开型按钮开关,常态下键的两个触点处
于断开状态,按下键时它们才闭合(短路)。
通常,键盘有编码和非编码两种。编码键盘通
过硬件电路产生被按按键的键码和一个选通脉冲。
选通脉冲可作为CPU的中断请求信号。这种键盘使 用方便,所需程序简单,但硬件电路复杂,常不被 单片机采用。 非编码键盘按组成结构又可分为独立式键盘和 矩阵式键盘。独立式键盘的工作过程与矩阵式键盘
Q Q
&
+5V
&
图8.6 硬件去抖动电路
(2)软件消抖法:键按下的时间与操作者的按 键动作有关,约为十分之几到几秒不等。而键抖动 时间与按键的机械特性有关,一般为5~10ms不等。 软件消抖法即是采用延时(一般延时10~20ms)的 方法,以避开按键的抖动,即在按键已稳定地闭合 或断开时才读出其状态。