;/***********************************************************************************
;* 描绘: 花费了一天时刻写这个小程序,宣布于此,以此为鼓励自己持续向着单片机行进 * ;* 按矩阵键盘上的键对应的LED显现相应键值 * ;* 矩阵键盘界说: *;* P1.1-P1.3为行线,P1.4-P 1.7为列线 *; P0口接led显现 * ;********************************************************************************/ORG 0000H JMP MAINMAIN: MOV P0,#0FFH ;初始化端口口 MOV P1,#0FFHKEYDOWN: ;;;;判别是否有键按下部分 MOV P1,#0F0H LCALL DELAY MOV A,P1 CJNE A,#0F0H,KEYSCAN JMP KEYDOWNKEYSCAN: ;;扫描键值部分222 MOV A,#00H MOV P1,#0F0H MOV A,P1 CJNE A,#70H,N1 MOV R4,#03H JMP NEXTN1: CJNE A,#0B0H,N2 MOV R4,#02HJMP NEXTN2: CJNE A,#0D0H,N3 MOV R4,#01HJMP NEXTN3: CJNE A,#0E0H,NEXT MOV R4,#00H JMP NEXTNEXT: MOV P1,#00FH MOV A,P1 CJNE A,#07H,N4 MOV R3,#08H JMP NEXT1N4: CJNE A,#0BH,N5 MOV R3,#04HJMP NEXT1N5: CJNE A,#0DH,DISPLAY MOV R3,#00H JMP DISPLAY DISPLAY: ;显现部分 MOV A,R4 ADD A,R3 MOV DPTR,#LEDTAB MOVC A,@A+DPTR MOV P0,ALCALL DELAYLCALL DELAY MOV P0,#0FFH LJMP KEYDOWNDELAY: ;消抖延时部分 MOV R6,#25D2: MOV R7,#100DJNZ R7,$DJNZ R6,D2RETLEDTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H END