PPI 8255 is a general purpose programmable I/O device designed to interface the CPU with its outside world such as ADC, DAC, keyboard etc. We can program it according to the given condition. It can be used with almost any microprocessor.
It consists of three 8-bit bidirectional I/O ports i.e. PORT A, PORT B and PORT C. We can assign different ports as input or output functions.
Block diagram –
It consists of 40 pins and operates in +5V regulated power supply. Port C is further divided into two 4-bit ports i.e. port C lower and port C upper and port C can work in either BSR (bit set rest) mode or in mode 0 of input-output mode of 8255. Port B can work in either mode or in mode 1 of input-output mode. Port A can work either in mode 0, mode 1 or mode 2 of input-output mode.
It has two control groups, control group A and control group B. Control group A consist of port A and port C upper. Control group B consists of port C lower and port B.
Depending upon the value if CS’, A1 and A0 we can select different ports in different modes as input-output function or BSR. This is done by writing a suitable word in control register (control word D0-D7).
|0||0||0||PORT A||80 H|
|0||0||1||PORT B||81 H|
|0||1||0||PORT C||82 H|
|0||1||1||Control Register||83 H|
Pin diagram –
- PA0 – PA7 – Pins of port A
- PB0 – PB7 – Pins of port B
- PC0 – PC7 – Pins of port C
- D0 – D7 – Data pins for the transfer of data
- RESET – Reset input
- RD’ – Read input
- WR’ – Write input
- CS’ – Chip select
- A1 and A0 – Address pins
Operating modes –
Bit set reset (BSR) mode –
If MSB of control word (D7) is 0, PPI works in BSR mode. In this mode only port C bits are used for set or reset.
Input-Outpt mode –
If MSB of control word (D7) is 1, PPI works in input-output mode. This is further divided into three modes:
- Mode 0 –In this mode all the three ports (port A, B, C) can work as simple input function or simple output function. In this mode there is no interrupt handling capacity.
- Mode 1 – Handshake I/O mode or strobbed I/O mode. In this mode either port A or port B can work as simple input port or simple output port, and port C bits are used for handshake signals before actual data transmission. It has interrupt handling capacity and input and output are latched.
Example: A CPU wants to transfer data to a printer. In this case since speed of processor is very fast as compared to relatively slow printer, so before actual data transfer it will send handshake signals to the printer for synchronization of the speed of the CPU and the peripherals.
- Mode 2 – Bi-directional data bus mode. In this mode only port A works, and port B can work either in mode 0 or mode 1. 6 bits port C are used as handshake signals. It also has interrupt handling capacity.
- Microprocessor | 8255 (programmable peripheral interface)
- Interface 8255 with 8085 microprocessor for addition
- Interface 8255 with 8085 microprocessor for 1’s and 2’s complement of a number
- Microprocessor | 8254 programmable interval timer
- 8255 microprocessor operating modes
- Subtract content of two ports by interfacing 8255 with 8085 microprocessor
- I/O Interface (Interrupt and DMA Mode)
- Interface 8254 PIT with 8085 microprocessor
- Magnetic Random Access Memory (M-RAM)
- Ferro-electric Random Access Memory
- Types of Virtual Organization
- Difference between Fine-Grained and Coarse-Grained SIMD Architecture
- Difference between Arduino and Raspberry Pi
- Array Multiplier in Digital Logic
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.