8255A Programmable Peripheral Interface Pinout and Working
8255 is general purpose programmable peripheral interface. It is used with many microprocessors and microcontrollers for various purposes. The device has three 8-bit ports port A, port B and port C. These ports can be used as input or output. These ports are further divided in to two groups group A and group B. Group A contains port A and port C upper (four nibbles 7, 6, 5, 4) control. Group B contains port B and port C lower (four nibbles 0, 1, 2, 3) control.
A0 and A1
These both pins select the ports. Combination of high and low level signal on these pins selects the ports A, B and C. Not only these pins are used to select port but also can write control word in device.
Control Word is an instruction or command send to 8255 to set its ports or pins as input, output or interrupt driven.
There are three modes in which the device can be used.
8255 PPI in Mode-0
In mode 0 each group can be used as input or output. Port A , port B and port C can be used as input or output. Port C has the specialty that it can be divided in to two nibbles upper and lower. Both upper and lower can now be programmed to use as input or output. Mode 0 is also known as input/output mode (I/O mode). Question arises how we can do so. Yes it’s simple. Just send a control word to 8255 and it will set itself according to your control word. The control word for mode 0 is like this.
D7 will always be high for mode 0. For selecting all ports as output the control word will be 0x80 in hexadecimal, or 10000000 in binary.
In mode 0 you can also access individual bits of port C. For bit set reset mode D7 will always be 0.
8255 PPI in Mode-1
In mode 1 each group can be used as 8-bit input or output data bus and the remaining 4-bits are used as handshaking and interrupt control signals. Port A is used with port c upper three bits and port B is used with port c lower 3 bits. The remaining 2 bits of port C can be used as control signals. For more details on mode 1 download the data sheet released from Intel from the links below.
Mode 2 is a bidirectional bus mode it is used very rarely. Mode 2 is used with port A only and port C is used for interrupt and control signals only. For more details on mode 1 download the data sheet released from Intel from the links below.