UNIT-III
I/O INTERFACE WITH 8086
PROGRAMMABLE PERIPHERAL INTERFACE -
8255
• It is an I/O port chip used for
interfacing I/O devices with
microprocessor system.
• It is device used to implement
parallel data transfer between
processor and slow peripheral
devices like ADC, DAC, keyboard, 7-
segment display, lCD etc.
Features:
• It is a programmable device.
• It has 24 I/O programmable pins like
PA,PB,PC (3-8 pins).
T T L compatible.
• 8255A has three ports
• PORT A
• PORT B
• PORT C
• Port A and Port B are 8 bit parallel
ports.
• Port C can be split into two parts, i.e.
PORT C lower (PC0-PC3) and PORT C
upper (PC7-PC4) by the control word
• These three ports are further divided
into two groups,
– i.e. Group A includes PORT A and upper
PORT C.
– Group B includes PORT B and lower PORT
C
• These two groups can be programmed
in three different modes.
• Three operating modes :
– Mode-0(simple I/O port)
– Mode-1(Handshake I/O port)
– Mode-2(Bidirectional I/O port)
Mode 0
• In this mode, Port A and B is used as two 8-bit
ports and Port C as two 4-bit ports.
• Each port can be programmed in either input
mode or output mode where outputs are latched
and inputs are not latched.
• Ports do not have interrupt capability.
• Ports in mode 0 is used to interfaces LEDs, Hexa
keypad and 7 segment LEDS to the processor.
Mode 1
• In this mode, Port A and B is used as
8-bit I/O ports.
• They can be configured as either
input or output ports.
• Each port uses three lines from port
C as handshake signals.
• Inputs and outputs are latched
• MODE 1 :(Input/output with Hand
shake)
• In this mode, input or output is
transferred by hand shaking Signals.
Compute DATA BUS Printer
r STB
ACK
Busy
• Handshaking signals is used to transfer
data between whose data transfer is
not same.
• Example:
• The computer send the data to the printer
large speed compared to the printer.
• When computer send the data according
to the printer speed at the time only,
printer can accept.
• If printer is not ready to accept the data
then after sending the data bus ,
computer uses another handshaking
signal to tell printer that valid data is
available on the data bus.
• Each port uses three lines from port C as
handshake signals
Mode 2
• In this mode, Port A can be configured
as the bidirectional port and Port B
either in Mode 0 or Mode 1.
• Port A uses five signals from Port C as
handshake signals for data transfer.
• The remaining three signals from Port
C can be used either as simple I/O or
as handshake for port B.
MODE 2:bi-directional I/O data transfer:
• This mode allows bidirectional data
transfer over a single 8-bit data bus
using handshake signals.
• This feature is possible only Group A
• Port A is working as 8-bit bidirectional.
• PC3-PC7 is used for handshaking purpose.
• The data is sent by CPU through this port
, when the peripheral request it.
• CONTROL WORD FORMATS:
• In the INPUT mode , When RESET is High
all 24 pins (3-ports) be a input mode.
• i.e all flip flops are cleared and the
interrupts are rest.
• This condition is maintained even after
RESET goes low.
• This can be avoid by writing single
control word to the control registers ,
when required.
Pin Diagram
Function of pins:
• Data bus(D0-D7):These are 8-bit bi-directional buses,
connected to 8086 data bus for transferring data.
• CS: This is Active Low signal. It stands for Chip
Select. A LOW on this input selects the chip and
enables the communication between the 8255 and
the CPU.
• Read: This is Active Low signal, when it is Low the
microprocessor reads data from a selected I/O port
of 8255A.
• Write: This is Active Low signal, when it is Low the
microprocessor writes data into a selected I/O port .
• Address (A0-A1):This is used to select
the ports.
A1 A0 Select
0 0 PA
0 1 PB
1 0 PC
Control
1 1
reg.
• RESET: This is used to reset the device.
That means clear control registers.
• PA0-PA7:It is the 8-bit bi-directional I/O pins
used to send the data to peripheral or to
receive the data from peripheral.
• PB0-PB7:Similar to PA
• PC0-PC7:This is also 8-bit bidirectional I/O
pins. These lines are divided into two
groups.
1. PC0 to PC3(Lower Groups)
2. PC4 to PC7 (Higher groups)
These two groups working in separately
using 4 data’s.
Block Diagram-8255
Data Bus buffer:
• It is a 8-bit bidirectional Data bus.
• Used to interface between 8255 data
bus with system bus.
• The internal data bus and Outer pins
D0-D7 pins are connected in internally.
• The direction of data buffer is decided
by Read/Control Logic.
Read/Write Control Logic:
• This is getting the input signals
from control bus and Address bus
• Control signal are RD and WR.
• Address signals are A0,A1,and
CS.
• 8255 operation is enabled or
disabled by CS.
Group A and Group B control:
• Group A and B get the Control Signal from CPU
and send the command to the individual
control blocks.
• Group A send the control signal to port A and
Port C (Upper) PC7-PC4.
• Group B send the control signal to port B and
Port C (Lower) PC3-PC0.
• PORT A:
• This is a 8-bit buffered I/O latch.
• It can be programmed by mode 0 , mode 1,
mode 2 .
PORT B:
• This is a 8-bit buffer I/O latch.
• It can be programmed by mode 0 and
mode 1.
•PORT C:
• This is a 8-bit Unlatched buffer Input
and an Output latch.
• It is splitted into two parts.
• It can be programmed by bit set/reset
operation.
Operation modes in 8255
• Two operating modes:
– I/O mode( mode 0, mode 1, mode2)
– Bit set/Reset mode
Operation modes:
BIT SET/RESET MODE:
• The PORT C can be Set or Reset by sending
OUT instruction to the CONTROL registers.
I/O MODES:
• MODE 0(Simple input / Output):
• In this mode , port A, port B and port C is used
as individually (Simply).
• Features:
• Outputs are latched , Inputs are buffered not
latched.
• Ports do not have Handshake or interrupt
Control words
• Two control words:
– I/O mode set control word(MSW)
– Bit set/reset control word(BSR)
• MSW is used to specify I/O functions.
• BSR is used to set/reset individual
pins of Port C.
• Both the control words are written in
the same control register.
• 8255 ports are programmed by writing control
word in the control word in the control register.
• For setting I/O functions and mode of operation
the I/O mode set control word is send to control
register.
• For setting/ resetting pins of port C, the bit
set/reset control word is send to control register.
FOR BIT SET/RESET MODE:
• This is bit set/reset control word format.
D7 D6 D5 D4 D3 D2 D1 D0
X X X BIT
SET/RESET
Don’t care 1=SET
0=RESET
Bit select
0 1 2 3 4 5 6 7
0 1 0 1 0 1 0 1
B0 0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
B1
BIT SET/RESET FLAG
=0 Active
B2
• PC0-PC7 is set or reset as per the status
of D0.
• A BSR word is written for each bit
• Example:
– PC3 is Set then control register will be
0XXX0111.
– PC4 is Reset then control register will be
0XXX01000.
• X is a don’t care.
FORMAT OF I/O MODE:
The mode format for I/O as shown in figure
D D D D D D D D
7 6 5 4 3 2 1 0
Group A Group B
Port C Upper
1=Input Port C Lower
Mode set
0=Output 1=Input
1-I/O mode
0-BSR mode Port A
B 0=Output
1=Input Port B
0=Output 1=Input
Mode 0=Output
selection Mode selection
00=mode 0 0=mode 0
01=mode 1 1=mode 1
1x=mode 2
• The control word for both mode is
same.
• Bit D7 is used for specifying whether
word loaded in to Bit set/reset mode
or Mode definition word.
• D7=1=Mode definition mode.
• D7=0=Bit set/Reset mode.
8255 Interface With 8086
8257 DMA CONTROLLER