Email: Password: Remember Me | Create Account (Free)

8051 Assmebly code for 4x4 Matrix Keypad

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KPDPORT        EQU  P2        ;DATA PORT FOR KEYPAD

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG 0000H           ;STARTING POINT FOR PROGRAM COUNTER

          MOV SP,#030H

          CLR F0

          LCALL KEYREAD      ;MAIN FUNCTIONS OF KEYPAD

          SETB F0

          LCALL KEYREAD      ;ALTERNATE FUNCTIONS OF KEYPAD   

WAIT4EVER:

          JMP WAIT4EVER          

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KEYREAD:

          MOV DPTR,#00H

KEYDELAY:     

          INC DPTR

          MOV A,DPH           ;DELAY AS PER USER RESPONSE

          NOP

          NOP

          CJNE A,#0FFH,KEYDELAY

;;;;;;;       

PRINT:

        MOV KPDPORT,#0EFH

        MOV A,KPDPORT

       

KEY1:   CJNE A,#0EEH,KEY2

        MOV A,#'1'              ;'1'

RET

KEY2:   CJNE A,#0EDH,KEY3

        MOV A,#'2'              ;'2'

RET

KEY3:   CJNE A,#0EBH,KEY4

        MOV A,#'3'              ;'3'

RET

KEY4:   MOV KPDPORT,#0DFH

        MOV A,KPDPORT        

        CJNE A,#0DEH,KEY5         ;'4'

        MOV A,#'4'

RET

KEY5:   CJNE A,#0DDH,KEY6

        MOV A,#'5'              ;'5'

RET

KEY6:   CJNE A,#0DBH,KEY7

        MOV A,#'6'              ;'6'

RET

KEY7:   MOV KPDPORT,#0BFH

        MOV A,KPDPORT

        CJNE A,#0BEH,KEY8

        MOV A,#'7'              ;'7'

RET

KEY8:   CJNE A,#0BDH,KEY9

        MOV A,#'8'              ;'8'

RET

KEY9:   CJNE A,#0BBH,KEY10

        MOV A,#'9'              ;'9'

RET

KEY10:  MOV KPDPORT,#0F7H

        MOV A,KPDPORT

        CJNE A,#0E7H,KEY11

        MOV A,#'A'              ;'A'

RET

KEY11:  CJNE A,#0D7H,KEY12

        JB F0,SETPLUSSIGN

        MOV A,#'B'              ;'B'

RET

SETPLUSSIGN:

        MOV A,#'+'              ;'B'

RET

 

KEY12:  CJNE A,#0B7H,KEY13

        JB F0,SETMINUSSIGN

        MOV A,#'C'              ;'C'

RET

SETMINUSSIGN:

        MOV A,#'-'              ;'C'

RET

KEY13:  CJNE A,#077H,KEY14

        MOV A,#'D'              ;'D'

RET

KEY14:  MOV KPDPORT,#07FH

        MOV A,KPDPORT

        CJNE A,#07BH,KEY15

        JB F0,SETDECIMAL

        MOV A,#'F'              ;'F'

RET

SETDECIMAL:       

        MOV A,#'.'              ;'.'

RET

KEY15:  CJNE A,#07DH,KEY16

        MOV A,#'0'              ;'0'

RET

KEY16:  CJNE A,#07EH,JMPPRINT

        MOV A,#'E'              ;'E'       

RET

JMPPRINT:

        LJMP PRINT

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

END