ORG 0000H ;伪指令,指定一下程序汇编后代码在入程序存储器0000H单元开始的连续单元中,不占有内存
AJMP MAIN ;短转移指令,转到主程序开始处
ORG 0050H ;伪指令,指定一下程序是从0050H之后连续单元存储
MAIN:
MOV P1,#0F0H ;给P1口赋值,使得低四位为低电平,所有行为低电平,全扫描 高四位列
ONE:MOV A,P1 ;将P1口值赋值给寄存器A,读取列值
XRL A,#0F0H ;将A中的值与11110000异或
JZ ONE ;判断A的值是否为0,为0则没有键按下,继续判断,有则进行下面程序
ACALL DELAY ;延时20ms去除按压时的抖动
MOV A,P1 ;再将P1口的值赋值给寄存器A
XRL A,#0F0H ;与11110000异或
JZ ONE ;判断若A=0则PC+ONE的地址跳转
MOV A,#00H ;若不为0,PC值继续向下运行,给A赋值0
JNB P1.4,TWO ;判断P1.4引脚是否为0,若不为0跳转TWO,继续下面的判断键值
INC A ;若为0,将A 值加1
JNB P1.5,TWO ;继续判断P1.5位是否为0,舨晃?跳转TWO,继续下面的判断键值
INC A ;若为0,将A 值加1
JNB P1.6,TWO ;继续判断P1.6位是否为0,舨晃?跳转TW,继续下面的判断键值
INC A ;若为0,将A 值加1
JNB P1.7,TWO ;继续