文本描述
第七章 MCS-51与键盘、显示器的接口 7.1 MCS-51单片机与键盘接口 7.1.1 键盘的工作原理
键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。它的结构和产生的波形如图所示。 键盘的处理主要涉及三个方面: 1.按键的识别 2.抖动的消除 消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。 硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用R—S触发器或单稳态电路。如图。 软件消抖是利用延时来跳过抖动过程 3.键位的编码 通常有两种方法编码。 (1)用连接键盘的I/O线的二进制组合进行编码。如(a)图 (2)顺序排列编码。如(b)图,处理方法如下:编码值=行首编码值X+列号Y。 7.1.2 独立式键盘与单片机的接口 键盘的结构形式一般有两种:独立式键盘与矩阵式键盘。 独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响其它的I/O口线。 图(a)为中断方式工作的独立式键盘的结构形式,(b)为查询方式工作的独立式键盘的结构形式 下面是针对图7.4(b)图查询方式的汇编语言形式的键盘程序。总共有8个键位,KEY0~KEY7为8个键的功能程序。
START:MOV A,#0FFH;
MOV P1,A;置P1口为输入状态
MOV A,P1;键状态输入
CPL A
JZ START;没有键按下,则转开始
JB ACC.0,K0;检测0号键是否按下,按下转
JB ACC.1,K1;检测1号键是否按下,按下转
JB ACC.2,K2;检测2号键是否按下,按下转
JB ACC.3,K3;检测3号键是否按下,按下转
JB ACC.4,K4;检测4号键是否按下,按下转
JB ACC.5,K5;检测5号键是否按下,按下转
JB ACC.6,K6;检测6号键是否按下,按下转
JB ACC.7,K7;检测7号键是否按下,按下转
JMP START ;无键按下返回,再顺次检测 K0:AJMP KEY0
K1:AJMP KEY1
……
K7:AJIMP KEY7
KEY0:…… ;0号键功能程序
JMP START;0号键功能程序执行完返回
KEY1:…… ;0号键功能程序
JMP START;1号键功能程序执行完返回
……
KEY7:…… ;7号键功能程序
JMP START;7号键功能程序执行完返回 7.1.3 矩阵键盘与单片机的接口 矩阵式键盘又叫行列式键盘。用I/O口线组成行、列结构,键位设置在行列的交点上。例如4×4的行、列结构可组成16个键的键盘,比一个键位用一根I/O口线的独立式键盘少了一半的I/O口线。