9.4 矩阵式键盘的扩展
(1)实训目的
◆熟悉矩阵式键盘扫描的基本原理
◆学习使用单片机基本I/O口扩展矩阵式键盘的电路设计及编程方法
(2)功能设计
用P1口扩展4×4矩阵式键盘,键值分别为0~15,将P1口读入的键值(二进制)送入P2.0~P2.3中显示出来。
具体要求:4位发光二极管分别代表4位二进制数,“1”代表亮,“0”代表灭。例如,若1号键按下,则发光二极管L1亮,L2~L4灭(0001);若5号键按下,则发光二极管L1和L3亮,L2和L4灭(0101),以此类推。设系统晶振为12MHz。
(3)背景知识
矩阵式键盘也称为行列式键盘。行线通过上拉电阻接到VCC电源上,列线上逐列给低电平,如果有键按下,相应的行线就能够接收到低电平,据此就可以判断出相应的键值。采用矩阵式键盘,可以节约系统I/O口线。
(4)硬件原理与资源分配
硬件电路如图9-7所示。
资源分配:R1为输入按键位置的列号,R2为输入按键位置的行号,R7为总扫描列数,R5为列扫描数据,R6为按键的总行数,R3和R4为延时参数。
图9-7 矩阵式键盘电路(5)参考程序
ORG OOOOH
AJMP MAIN
ORG 0030H
MAIN: MOV R1,#00H ;R1为输入按键位置的列号
MOV R2,#00H ;R1为输入按键位置的行号
GN1: MOV R7,#04H ;R7为总扫描列数
MOV R5,#OFEH ;设第一列为低电平
MOV A,R5
GN2: MOV P1,A ;送扫描数据
MOV A,P1 ;读行线上的信号
LCALL LOOP1
MOV R6,#04 ;检查一列中的各行按键
SETB C
MOV R2,#00H
GN3: RLC A
JNC DIS
INC R2
DJNZ R6,GN3
MOV A,R5 ;R5为输入按键位置的列号
INC R1
DJNZ R7,GN2
DIS: MOV A,R1 ;计算键值
MOV B,#04H
MUL AB ;键值=(列号×4)+行号
ADD A,R2
CPL A
MOV P2,A
LJMP MAIN
LOOP1:MOV R3,#0FFH
LOOP: MOV R4,#0FFH
DJNZ R4,$
DJNZ R3 LOOP
RET
END
9.5 8279可编程键盘/显示器接口控制试验
(1)实训目的
◆熟悉可编程专用键盘/显示器接口芯片8279的原理及功能
◆掌握8279芯片的编程方法
(2)功能设计
用8279芯片扩展2×8矩阵键盘和8个共阴极LED数码管显示器,16个按键的键值分别为0~F。编程实现的功能为;当有键按下时,用左边第一个LED显示按键的键值,当再有键按下时,显示的键值依次右移。
(3)背景知识
8279是Intel公司生产的通用可编程键盘/显示器接口芯片。8270可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号。这样不仅可节省CPU对键盘/显示器的操作时间,而且显示稳定,程序简单,不会出现误动作。
1)8279的引脚如图9-8所示
◆D0~D7:双向、三态数据总线。用与CPU和8279之间数据、命令和状态的传送。
◆CLK:时钟输入线,用于产生内部时钟。
◆RESET:复位输入线,该引脚输入一个高电平以复位8279。其复位状态为:16个字符显示左边输入;编码扫描键盘—双键锁定;时钟系数为31。
◆/RD:读有效输入线,低电平有效。读有效时将数据读出,送外部数据总线。
◆/WR:写有效输入线,低电平有效。写有效时接收外部数据总线上的数据。
图9-8 8279引脚图
◆A0:缓冲器地址输入线。当A0=1时CPU写入8279的数据为命令字,CPU从8279读出的数据为状态字;当A0=0时,CPU读、写的信息均为数据。
◆/CS:片选信号。当为低电平时,CPU才选中8279进行读写。
◆IRQ:中断请求输出线,高电平有效。在键盘工作方式中,当FIFO RAM缓冲器中存有键盘上闭合键的编码时,IRQ线升高,向CPU请求中断
◆SHIFT:换挡输入线,高电平有效。
◆CNTL/STB:控制/选通输入线,高电平有效。在键盘工作方式时,该输入信号是键盘数据的最高位。在选通输入方式时,该信号的上升沿可把来自RL0~RL7的数据存入FIFO RAM中。在传感器方式下,该信号无效。
◆RL0~RL7:输入线,它们是键盘矩阵或传感器矩阵的列(或行)信号输入线。作为键输入线,由内部上拉电阻拉成高电平,也可由键盘上按键拉成低电平。
◆SL0~SL3:扫描输出线,用于对键盘显示器扫描。
◆OUTB0~OUTB3:显示段数据输出线。OUTB0~OUTB3和OUTA0~OUTA3可分别作为两个半个字节输出,也可作为8位段数据输出口,此时OUTB0为最低位,OUTA3为最高位。
◆BD:显示消隐输出线,低电平有效。

