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.
SOFTWARE FOR 8 x 8 MATRIX KEYBOARD INTERFACE
The three steps needed to write the software are:
Step 1: Find keyboard/display command word.
Step 2: Find program clock command word
Step 3: Find Read FIFO/sensor RAM command word.
| 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 |
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