KEY_INT: MOV A,P1 ;/ 读入8个按键的状态
CPL A ;/ 取反,键闭合的相应位为1
JZ RETURN ;/ 如A中内容为0,则无键闭合,返回
LCALL D10ms ;/ A非全0,可能有键闭合,延时10ms,软件去抖
MOV A,P1 ;/ 重读8个按键的状态,键闭合相应位为0
CPL A ;/ 取反,键闭合的相应位为1
JZ RETURN ;/ A中全0,无键闭合,返回;非全0,确认有键闭合
JB ACC.2,Pkey2 ;/ S2键闭合,跳S2键处理标号Pkey2
JB ACC.3,Pkey3 ;/ S3键闭合,跳S3键处理标号Pkey3
JB ACC.4,Pkey4 ;/ S4键闭合,跳S4键处理标号Pkey4
JB ACC.5,Pkey5 ;/ S5键闭合,跳S5键处理标号Pkey5
JB ACC.6,Pkey6 ;/ S6键闭合,跳S6键处理标号Pkey6
JB ACC.7,Pkey7 ;/ S7键闭合,跳S7键处理标号Pkey7
LJMP RETURN ;/ 查询结束,重新开始
CPL A ;/ 取反,键闭合的相应位为1
JZ RETURN ;/ 如A中内容为0,则无键闭合,返回
LCALL D10ms ;/ A非全0,可能有键闭合,延时10ms,软件去抖
MOV A,P1 ;/ 重读8个按键的状态,键闭合相应位为0
CPL A ;/ 取反,键闭合的相应位为1
JZ RETURN ;/ A中全0,无键闭合,返回;非全0,确认有键闭合
JB ACC.2,Pkey2 ;/ S2键闭合,跳S2键处理标号Pkey2
JB ACC.3,Pkey3 ;/ S3键闭合,跳S3键处理标号Pkey3
JB ACC.4,Pkey4 ;/ S4键闭合,跳S4键处理标号Pkey4
JB ACC.5,Pkey5 ;/ S5键闭合,跳S5键处理标号Pkey5
JB ACC.6,Pkey6 ;/ S6键闭合,跳S6键处理标号Pkey6
JB ACC.7,Pkey7 ;/ S7键闭合,跳S7键处理标号Pkey7
LJMP RETURN ;/ 查询结束,重新开始