Free Electronic Circuits & 8085 projects

Electronic projects with circuit diagram and 8085 microprocessor projects.

Keyboard interface(64-key-matrix-keyboard)

Statement: Interface a 64-key matrix keyboard to the 8085 microprocessor using 8255. Write an 8085 assembly language program to initialize 8255 and to read the key code.


Fig. shows a matrix keyboard with 64 keys connected to the 8085 microprocessor using 8255. A matrix keyboard reduces the number of connections, thus the number of interfacing lines. In this example, the keyboard with 64 keys, is arranged in 8 x 8 (8 rows and 8 columns) matrix. This requires sixteen lines from the microprocessor to make all the connections instead of 64 lines if the keys are connected individually. The interfacing of matrix keyboard requires two ports: one input port and other output port. Rows are connected to the input port, port A and columns are connected to the output port, port B.


71.a-Keyboard interface(64-key-matrix-keyboard)


As port A is used as an output port, control word for 8255 is 80H.

Source program:

  • MVI A, 90H : Initialize Port A as input and
  • OUT CR : Port B as Output
  • START: MVI A, 00 : Make all scan lines zero
  • OUT PB
  • CPI FF : Check for key release
  • JNZ BACK : If not, wait for key release
  • CALL DELAY : Wait for key debounce
  • BACK 1: IN PA
  • CPI FF : Check for key press
  • JZ BACK 1 : If not, wait for key press
  • CALL DELAY : Wait for key debounce
  • MVI L, 00H : Initialize key counter
  • MVI C, 08H
  • MVI B, FEH : Make one column low
  • OUT PB
  • MVI D, 08H : Initialize row counter
  • IN PA : Read return line status
  • NEXTROW: RRC : Check for one row
  • JNC DISPLAY : If zero, goto display else continue
  • INR L : Increment key counter
  • DCR D : Decrement row counter
  • JNZ NEXTROW : Check for next row
  • MOV A, B
  • RLC : Select the next column
  • MOV B, A
  • DCR C : Decrement column count
  • JNZ NEXTCOL : Check for last column if not repeat
  • JMP START : Go to start

Delay Subroutine:

  • Delay: LXI D, Count
  • Back: DCX D
  • MOV A, D
  • ORA E
  • JNZ Back
  • RET

Flowchart for Source Program

71.b-Keyboard interface(64-key-matrix-keyboard)

Delay Routine

71.c-Keyboard interface(64-key-matrix-keyboard)

Related Programs (Click down)

2-Digit BCD to binary conversion.

Binary to BCD conversion

Find the 7-segment codes for given numbers

Find the ASCII character