Microprocessor | 8255 (programmable peripheral interface)

8255 is a popularly used parallel, programmable input-output device. It can be used to transfer data under various condition from simple input-output to interrupt input-output. This is economical, functional, flexible but is a little complex and general purpose i/o device that can be used with almost any microprocessor.

8255 pin diagram –
It has 24 pins that can be grouped in two 8-bit parallel ports: A and B called Port A(PA) and Port B(PB) with the remaining eight known as Port C(PC). Port C can be further divided into groups of 4-bits ports named Cupper(Cu) and Clower(Cl). There are 40 pins and operates in +5 regulated power supply.

Modes of 8255 – It works in two modes:

  1. Bit set reset (BSR) mode
  2. Input/output (I/O) mode

To know in which mode the interface is working we need to know the value of Control word. Control word is a part of control register in 8255 which specify an I/O function for each port. This is format of control word 8255.

If the most significant bit of control word or D7 is 1 then 8255 works in I/O mode else, if it’s value is 0 it works in BSR mode.

  1. BSR Mode – When MSB of the control register is zero(0), 8255 works in Bit Set-Reset mode.in this only PC bit are used for set and reset.
  2. I/O Mode – When MSB of the control register is one(1), 8255 works in Input-Output mode.it is further divided into three categories.
  3. Mode 0 – In this mode all three ports (PA, PB, PC) can work as simple input function or output function also in this mode there is no interrupt handling capabilities.
  4. Mode 1 – In this either port A or port B can work and port C bits are used as Handshake signal before actual data transmission plus it has interrupt handling capabilities.
  5. Mode 2 – In this only port A works and port B can work either in Mode 0 or Mode 1 and the 6 bits of port C are used as Handshake signal plus it also has to interrupt handling capability.

To communicate with peripherals through 8255 three steps are necessary:

  1. Determine the addresses of Port A, B, C and Control register according to Chip Select Logic and the Address lines A0 and A1.
  2. Write a control word in control register.
  3. Write I/O intructions to communicate with peripherals through port A, B, C.

The common applications of 8255 are:

  • Traffic light control
  • Generating square wave
  • Interfacing with DC motors and stepper motors


My Personal Notes arrow_drop_up

Akshay Srivastava is a technology enthusiast who has a keen interest in programming he is pursuing bachelors in Computer Science from Graphic Era University Dehradun

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.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.