当前位置:文档之家› MCS-51单片机的键盘扩展

MCS-51单片机的键盘扩展


编程较为复 1.判别有无键按下; 2.扫描获取闭合键的行、列值; 3.用计算法或查表法得到键值; 4.判断闭合键释放否,如没释放则继续等待; 5.保存闭合键号。
按键识别——扫描法
原理: 在某一时刻只让一条列线处于低电平,其余列线均
处于高电平,则当这一列有键按下时,该键所在的行 电平将会由高电平变为低电平,可判定该列相应的行 有键按下。
矩阵键盘的中断扫描方式
80 31
&
IN T0
P 1.0 P 1.1 P 1.2 P 1.3
P 1.4 P 1.5 P 1.6 P 1.7
流程图:
键分析
读P1口
N 有键按下?
Y 延时10ms
P1.0=0?
Y
N
P1.1=0? Y
N
P1.2=0? Y
N
P1.3=0? Y
N
S0键处理 S1键处理 S2键处理 S3键处理
编程:按四个按键中 的任一键都对应一个 特定功能。
若判断键释 放应如何修 改?
ORG 00H LJMP MAIN ORG 0030H
SETB P1.6
J3: JB P1.3,J4
SETB P1.7
J4: SJMP SCAN
END
中断扫描方式
为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如 下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断 请求,CPU转去执行键盘扫描子程序,并识别键号。
V cc
8031
INT0
特点:一线一键,按键识别(编程)简单;但占用 较多口线,适合8键以下使用。
课堂练习
+5V
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
8031
试编制程序,要求当其中某一按键压下时与 其对应的二极管将被点亮。
分析:用P1口的低4 位检测4个按键的输 入,为1则表示按键 没有按下,为0则表 示相应按键被按下。
键盘接口
按键的特点及输入原理 独立式按键 矩阵式按键
按键的特点及输入原理
❖ 按键的分类: 触点式:机械;无触点式:电气
❖ 键输入原理: 通过按键的接通与断开,产生两种相反的逻辑
状态 低电平“0”与高电平“1”。 ❖ 键功能的实现:
对于一组键或一个键盘,需通过接口电路与单 片机相连。可采用查询或中断方式测试有无键按下, 再确定是哪一个键按下,将该键号送入累加器ACC, 然后判断是数字键还是功能键,并进行相应的处理。
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
接口电路:

关键:如何 判断键号?

式 按 键
P1.7
P1.6
P1.5
+5V
P1.4
0123
P1.3
P1.2
45 67
8 9 10 11
P1.1
P1.0
12 13 14 15
MCS-51
特点:按键识别应采用扫描法或线路反转法
流程:
当第0列处于低电平时,逐行查找是否有行线变低, 若有,则第0列与该行的交叉点按键按下;若无,则表示 第0列无键按下,再让下一列处在低电平,依此循环,这 种方式称为键盘扫描。
键号=行首键号(0、4、8、12)+列号(0、1、2、3)
定时扫描方式
定时扫描方式就是每隔一段时间对键 盘扫描一次,它利用单片机内部的定时器 产生一定时间(例如10 ms)的定时,当定 时时间到就产生定时器溢出中断。CPU响应 中断后对键盘进行扫描,并在有键按下时 识别出该键,再执行该键的功能程序。
MAIN: SCAN:
MOV P1,#0FFH MOV A, P1 ORL A, #0F0H CPL A JZ SCAN
;led is off
SCAN: JB
P1.0,J1 ;P1.0被按下,
则点亮P1.4,否则检测P1.1
SETB P1.4
J1: JB P1.1,J2
SETB P1.5
J2: JB P1.2,J3
键盘接口需要解决的问题
按键识别: 是否有键按下 求键号
键抖动及消除: 机械按键抖动时间在 5ms~10ms之间 消除方法: 硬件方案——双稳态去抖电路
软件方案——延时10ms~20ms后再次判断
独立式按键
接口电路: V cc
8031
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
相关主题