SETB P3.0 ACALL SCANKEYPAD ACALL DEBOUNCE DEBOUNCE:MOV R3,#0H ACALL SUBDEBOUNCE SUBDEBOUNCE:INC R3 ACALL SCANKEYPAD ACALL CHECK SCANKEYPAD:MOV R0,#07FH MOV R4,#0H CLR P3.0 SCAN:CLR P3.0 MOV A,R0 RL A MOV R2,P1 MOV R5,P1 MOV R0,A ANL A,R2 INC R4 CJNE R4,#4H,SCAN1 ACALL iff1 iff1:CJNE R3,#0H,iff iff:JNB P3.0,DEBOUNCE ACALL SCANKEYPAD SCAN1:MOV B,R5 CJNE A,B,SCAN SETB P3.0 CHECK: JNB P3.0,DEBOUNCE CJNE R3,#64H,SUBDEBOUNCE JB P3.0,KEYPRESSED ACALL NOKEYPRESSED KEYPRESSED:MOV P2,R5 ;P2 will show that which key has been pressed. NOKEYPRESSED:NOP END