General Purpose Programmable Peripheral Devices
General Purpose Programmable Peripheral Devices
General Purpose Programmable Peripheral Devices
Programmable
Peripheral Devices
Slides-8
Dr. Ritika
Department of Computer
Application
PPI Programmable Peripheral Interface
It is an I/O port chip used for interfacing I/O devices with
microprocessor.
Very commonly used programmable devices from Intel
family are:
The 8255A peripheral interface.
The 8254 Interval Timer.
The 8294A Interrupt Controller.
The 8237 DMA controller.
General Purpose
Programmable Peripheral
Device
The parallel input-output port chip 8255 is also called as
programmable peripheral input-output port.
The Intels 8255 is designed for use with Intels 8-bit, 16-
bit and higher capability microprocessors.
It has 24 input/output lines which may be individually
programmed in two groups of twelve lines each, or three
groups of eight lines.
The two groups of I/O pins are named as Group A and
Group B. Each of these two groups contains a subgroup of
eight I/O lines called as 8-bit port and another subgroup of
four lines or a 4-bit port.
The 8255A Programmable
peripheral Interface
Thus Group A contains an 8-bit port A along with a 4-bit
port C upper. The port A lines are identified by symbols
PA0-PA7 while the port C lines are identified as PC4-PC7.
Group B contains an 8-bit port B, containing lines PB0-
PB7 and a 4-bit port C with lower bits PC0- PC3.
The port C upper and port C lower can be used in
combination as an 8-bit port C.
Both the port C are assigned the same address. Thus
one may have either three 8-bit I/O ports or two 8-bit and
two 4-bit ports from 8255.
All of these ports can function independently either as
input or as output ports. This can be achieved by
programming the bits of an internal register of 8255 called
as control word register (CWR).
The 8255A Programmable
peripheral Interface
8255A Block Diagram
Data bus(D
0
-D
7
):These are 8-bit bi-directional buses,
connected to 8085 data bus for transferring data.
Control Logic
RD (Read): This control signal is to enable read operation.
When the signal is low activated, the MPU will read the data
from certain I/O ports.
WR (Write): This signal enable the write operation. When this
signal is at logic low, the MPU will write to I/O ports or control
registers.
RESET (Reset): An active high signal. Use to clear the control
register and sets all ports to input mode. Is connected to the
RESET OUT pin of MPU.
Function of pins
Function of pins:
CS, A0 and A1: Signals to select device. CS is connected
to a decoded address, whereas CS signal is a Master Chip
Select, and A0 and A1 determine the input/output ports or
control registers as
CS A1 A0 Select
0 0 0 PA
0 0 1 PB
0 1 0 PC
0 1 1 Control reg.
1 x x 8255A is not selected
Expanded version of Control Logic and I/O Ports
Function of pins:
PA
0
-PA
7
:It is the 8-bit bi-directional I/O pins used to send
the data to peripheral or to receive the data from peripheral.
PB
0
-PB
7
:Similar to PA
PC
0
-PC
7
:This is also 8-bit bidirectional I/O pins. These lines
are divided into two groups.
PC
0
to PC
3
(Lower Groups)
PC
4
to PC
7
(Higher groups)
These two groups working in separately using 4 datas.
Example:
The port address is determined by CS, A
0
and A
1
pins.
CS is active low when A
7
= 1 and A
6
to A
2
are at logic 0.
When the signal is combined with A
0
and A
1
, the port address is 80H to
83H as shown in Figure.
8255A
Control Word:
Figure shows the function of control register, the content
in this register is known as Control Word which determines
input/output ports.
This register is used to write control word when A0 and A1
are at logic 1.
Bit D7 in control register determines the I/O function or
Set/Reset. If bit D7 = 1, bits D6-D0 determine the function
of I/O in multiple modes.
Suppose bit D7 = 0, the port C operates in Bit Set/Reset
(BSR) mode. The BSR control word doest not cause any
effect to port A and port B. The port C command register
sets (1) or resets (0) the port C pins during mode 1 or mode
2 operation.
Functions of Control Word.
8255A
Three main concept to communicate
to 8255:
Determine the port address of A,
B and C using CS, A
1
and A
0
.
Write control word in control
register.
Write I/O instructions to
communicate with ports.
*
The function of 8255 is categorized in two mode:
Set/Reset Bit (BSR) mode: The BSR mode is used to
set or reset bit at port C.
I/O mode: The I/O is divided into 3 groups:
Mode 0, Mode 1 and Mode 2.
Mode 0, all ports function as input or output (I/O
function).
Mode 1, is handshake mod, where port A and/or port B
used port C as handshake bit.
Mode 2, port A can be used as bi-directional data
transfer port with port C as handshake port and port B
will be in mode 1 or mode 2.
8255 Programmable Peripheral Interface
*
8255 PIA
*
Mode 0: Input / Output Mode
In this mode port A and B use 8-bit I/O data
and port C uses two ports 4-bit data.
The characteristics of mode 0 are:
Output is latched.
Input does not latched.
Ports do not have the capability of handshake
mode or interrupt mode.
8255A Programmable Peripheral
Interface
*
Mode 0: Input / Output
Mode
Example :
Determine the port address of
circuit.
Determine the control word in
Mode 0, in order to determine
ports A and C
U
as output port
and ports B and C
L
as input
ports.
Write a program to read DIP
switch and display the reading
from port B to port A, from port
C
L
to port C
U
.
8255 PIA : Mode 0
*
8255 PIA: Example
Solutions:
Port Address :
It is actually an I/O memory map.
When A
15
is active high, Chip Select signal is activated.
Assuming all dont care signals are at logic 0, therefore ports
address are as follows:
*
8255A Programmable Peripheral Interface
Solution:
Control Word:
*
Write a program to read the DIP switches and
display reading from port B at port A and from
port C
L
at port C
U
*
BSR (Bit Set/Reset) mode
The BSR mode will only affect to port C.
Set/Reset can be determined by entering certain
control word to control register.
No change to the previous data when D
7
change from
1 to 0; therefore the I/O ports A and B unchanged.
In BSR mode, the individual bit also can be used as
on / off switch.
8255 PIA
*
8255A Programmable Peripheral Interface
BSR Control Word.
The written control word in control register, set/reset will take only one bit
at a time, as follows:
*
8255 PIA: BSR Mode
Example:
Write a BSR control word subroutine to set bit PC
7
and PC
3
, and reset
after 10ms. Use the schematic diagram as shown below.
*
8255A Programmable Peripheral Interface
Solution:
BSR Control Word:
Port Address:
As shown in previous example : 83H
*
8255A Programmable Peripheral Interface
Solution:
Subroutine: Assuming that the delay subroutine has been determined
earlier.
8255 PPI Contd.
*
Mode 1: Input or Output with Handshake: In this
mode, handshake signals are exchanged between the
MPU and peripherals prior to data transfer. The features of
the mode include the following:
1. Two ports (A and B) function as 8-bit I/O ports. They can
be configured as either as input or output ports.
2. Each port uses three lines from port C as handshake
signals. The remaining two lines of Port C can be used for
simple I/O operations.
3. Input and Output data are latched.
4. Interrupt logic is supported.
8255 PPI Contd.
*
PA[7:0]
STB
A
IBF
A
INTR
A
PC3
PC5
PC4
PB[7:0]
STB
B
IBF
B
INTR
B
PC0
PC1
PC2
PC6,
7
8255
PA[7:0]
OBF
A
ACK
A
INTR
A
PC3
PC6
PC7
PB[7:0]
OBF
B
ACK
B
INTR
B
PC0
PC1
PC2
PC4,
5
8255
*
*
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
8255 PPI
8255 PPI Contd.
*
Mode 2: Bidirectional Data Transfer :This mode is used
primarily in applications such as data transfer between two
computers.
In this mode, Port A can be configured as the bidirectional
port
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.
8255 PPI Contd.
*
PA[7:0]
OBF
A
ACK
A
INTR
A
PC4
PC6
PC7
STB
A
IBF
A
PC0
PC3
PC5
8255
PC1
PC2
PB[7:0]
In Out
In Out
In Out
Mode 0
STB
B
OBF
B
IBF
B
ACK
B
INTR
B
INTR
B
Mode 1
8255 PPI Contd.
*
Timing diagram is a combination of the Mode 1 Strobed
Input and Mode 1 Strobed Output Timing diagrams.