Free Electronic Circuits & 8085 projects

Electronic projects with circuit diagram and 8085 microprocessor projects.

8 x 8 Keyboard Interface(With Interrupt signal)

Statement: Interface an 8 x 8 matrix keyboard to 8085 through 8279 in 2-key lockout mode and write an assembly language program to read keycode of the pressed key. The external clock frequency is 2MHz. Use I/O mapped I/O technique.

HARDWARE FOR 8 x 8 MATRIX KEYBOARD INTERFACE(With Interrupt)

Fig. shows the interfacing of 8 x 8 matrix keyboard in interrupt driven keyboard mode. In the interrupt driven mode interrupt line from 8279 is connected to the one of the interrupt input of 8085 except INTR. Here, INT line from 8279 is connected to the interrupt RST 7.5 of 8085. Other signal connections are same as in the non interrupt mode.

74.a-8 x 8 Keyboard Interface(With Interrupt signal) 74.b8 x 8 Keyboard Interface(With Interrupt signal)

SOFTWARE FOR 8 x 8 MATRIX KEYBOARD INTERFACE

The three steps needed to write the software are:

Step 1: Find keyboard/display command word.

74.c-8 x 8 Keyboard Interface(With Interrupt signal)

Step 2: Find program clock command word

74.d8 x 8 Keyboard Interface(With Interrupt signal)

Step 3: Find Read FIFO/sensor RAM command word.

Copy of 73.e-8 x 8 Keyboard Interface(With Interrupt signal)

Source program:

  • MVI A, 00H : Initialize keyboard/display in encoded
  • OUT 81H : scan keyboard 2 key lockout mode
  • MVI A, 34H
  • OUT 81H : Initialize prescaler count
  • MVI A, 0BH : Load mask pattern to enable RST 7.5
  • SIM : mask other interrupts
  • EI : Enable Interrupt
  • HERE: JMP HERE : Wait for the interrupt

Interrupt Subroutine:

  • MVI A, 40H : Initialize 8279 in read FIFO
  • OUT 81H : RAM mode
  • IN 80H : Read FIFO RAM (keycode)
  • EI : Enable Interrupt
  • RET : Return to main program

Flowchart

74.f-8 x 8 Keyboard Interface(With Interrupt signal)

Related Programs (Click down)

Generate and display BCD up counter with frequency 1Hz

Generate and display BCD down counter

Generate and display the contents of decimal counter

Debug the delay routine