MOV A,P1 ;讀P1口
XRL A,#0FFH ;判斷是否有低電平 ,即判斷是否有按鍵按下
JZ WAIT ;有低電平繼續掃描,否者繼續掃描
LCALL DELY10ms ;延時10ms去抖在進行判斷是否有按鍵按下
MOV A,P1 ;讀P1口
CJNE A,#0FEH,NK2 ;如果掃描數據不為0FEH就轉到NK2
LCALL 'A' ;否者判斷為1號鍵,調A
NK2: CJNE A,#0FDH,NK3 ;如果掃描數據不為0FEH就轉到NK3
LCALL 'B' ;否者判斷為2號鍵,調B
NK3: CJNE A,#0FBH,WAIT ;如果掃描數據不為0FEH就繼續掃描
LCALL 'C' ;否者判斷為3號鍵,調C
AJMP WAIT
DELY10ms:MOV R6,#20 ;延時10毫秒
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
RET
假設按鍵是P1的第三位