;* 描述: 花费了一天时间写这个小程序,发表于此,以此为激励自己继续向着单片机前进 * ;* 按矩阵键盘上的键对应的LED显示相应键值 * ;* 矩阵键盘定义: * ;* P1.1-P1.3为行线,P1.4-P 1.7为列线 * ; P0口接led显示 * ;********************************************************************************/ ORG 0000H JMP MAIN MAIN: MOV P0,#0FFH ;初始化端口口 MOV P1,#0FFH KEYDOWN: ;;;;判断是否有键按下部分 MOV P1,#0F0H LCALL DELAY MOV A,P1 CJNE A,#0F0H,KEYSCAN JMP KEYDOWN KEYSCAN: ;;扫描键值部分222 MOV A,#00H MOV P1,#0F0H MOV A,P1 CJNE A,#70H,N1 MOV R4,#03H JMP NEXT N1: CJNE A,#0B0H,N2 MOV R4,#02H JMP NEXT N2: CJNE A,#0D0H,N3 MOV R4,#01H JMP NEXT N3: CJNE A,#0E0H,NEXT MOV R4,#00H JMP NEXT NEXT: MOV P1,#00FH MOV A,P1 CJNE A,#07H,N4 MOV R3,#08H JMP NEXT1 N4: CJNE A,#0BH,N5 MOV R3,#04H JMP NEXT1 N5: 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,A LCALL DELAY LCALL DELAY MOV P0,#0FFH LJMP KEYDOWN DELAY: ;消抖延时部分 MOV R6,#25 D2: MOV R7,#100 DJNZ R7,$ DJNZ R6,D2 RET LEDTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H END
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』