;/***********************************************************************************;* 描述: 花費了一天時間寫這個小程序,發(fā)表于此,以此為激勵自己繼續(xù)向著單片機前進 * ;* 按矩陣鍵盤上的鍵對應(yīng)的LED顯示相應(yīng)鍵值 * ;* 矩陣鍵盤定義: *;* 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
評論