要求:
利用4x4矩阵键盘和一个LED数码管构成简单的输入显示系统,实现对键盘的扫描和LED数码管的显示键盘按下键的键号。共有4x4个按键和一个数码管,16个按键的键号分别对应十六进制数字:0~F。单机相应按键,数码管就会显示相应的数字。
电路原理图
数码管:这里采用共阳极数码管
CA为共阳极数码管
CC为共阴级数码管
矩阵键盘扫描步骤:
示范程序:
ORG 0000H
AJMP KEY2
ORG 0100H
KEY2: LCALL KS ;调用键盘检测走程序KS;调用键盘检测子程序KS,如有键按下A中内容非0
JNZ K1 ;A中内容非0,则可能键按下,跳K1
LCALL D10ms ;调用10ms延时去抖
AJMP KEY2 ;无键按下,返回KEY2处继续检测按键是否按下
K1: LCALL D10m ;可能有键按下,调用延时10ms子程序(见例5-8)去抖动,
JNZ K2 ;再调用键盘检测子程序
AJMP KEY2 ;无键按下返回继续检测
K2: MOV R2,#0EFH ;将列扫描值P1.4为“0”送入R2暂存