MOV P2,#0FFH K1: MOV P1,#0 MOV A,P2 ANL A,#00001111B CJNE A,#00001111B,K1 K2: ACALL DELAY MOV A,P2 ANL A,#00001111B CJNE A,#00001111B,OVER SJMP K2 OVER: ACALL DELAY MOV A,P2 ANL A,#00001111B CJNE A,#00001111B,OVER1 SJMP K2 OVER1: MOV P1,#11111110B MOV A,P2 ANL A,#00001111B CJNE A,#00001111B,ROW_0 MOV P1,#11111101B MOV A,P2 ANL A,#00001111B CJNE A,#00001111B,ROW_1 MOV P1,#11111011B MOV A,P2 ANL A,#00001111B CJNE A,#00001111B,ROW_2 MOV P1,#11110111B MOV A,P2 ANL A,#00001111B CJNE A,#00001111B,ROW_3 LJMP K2 ROW_0: MOV DPTR,#KCODE0 ROW_1: MOV DPTR,#KCODE1 SJMP FIND ROW_2: MOV DPTR,#KCODE2 SJMP FIND ROW_3: MOV DPTR,#KCODE3 FIND: RRC A JNC MATCH INC DPTR SJMP FIND MATCH: CLR A MOVC A,@A+DPTR MOV P0,A LJMP K1 ORG 300H KCODE0: DB '0','1','2','3' KCODE1: DB '4','5','6','7' KCODE2: DB '8','9','A','B' KCODE3: DB 'C','D','E','F' END