Semiconductor
82C55A
CMOS Programmable
Peripheral Interface
Description
The Harris 82C55A is a high performance CMOS version of
the industry standard 8255A and is manufactured using a
self-aligned silicon gate CMOS process (Scaled SAJI IV). It
is a general purpose programmable I/O device which may be
used with many different microprocessors. There are 24 I/O
pins which may be individually programmed in 2 groups of
12 and used in 3 major modes of operation. The high
performance and industry standard configuration of the
82C55A make it compatible with the 80C86, 80C88 and
other microprocessors.
Static CMOS circuit design insures low operating power. TTL
compatibility over the full military temperature range and bus
hold circuitry eliminate the need for pull-up resistors. The
Harris advanced SAJI process results in performance equal
to or greater than existing functionally equivalent products at
a fraction of the power.
June 1998
Features
• Pin Compatible with NMOS 8255A
• 24 Programmable I/O Pins
• Fully TTL Compatible
• High Speed, No “Wait State” Operation with 5MHz and
8MHz 80C86 and 80C88
• Direct Bit Set/Reset Capability
• Enhanced Control Word Read Capability
• L7 Process
• 2.5mA Drive Capability on All I/O Ports
• Low Standby Power (ICCSB) . . . . . . . . . . . . . . . . .10µA
Ordering Information
PART NUMBERS
5MHz
CP82C55A-5
IP82C55A-5
CS82C55A-5
IS82C55A-5
CD82C55A-5
ID82C55A-5
8406601QA
8MHz
CP82C55A
IP82C55A
CS82C55A
IS82C55A
CD82C55A
ID82C55A
8406602QA
TEMPERATURE
PACKAGE
RANGE
40 Ld PDIP
44 Ld PLCC
40 Ld
CERDIP
SMD#
44 Pad
CLCC
SMD#
-55
o
C to 125
o
C
0
o
C to 70
o
C
-40
o
C to 85
o
C
0
o
C to 70
o
C
-40
o
C to 85
o
C
0
o
C to 70
o
C
-40
o
C to 85
o
C
-55
o
C to 125
o
C
PKG.
NO.
E40.6
E40.6
N44.65
N44.65
F40.6
F40.6
F40.6
F40.6
J44.A
J44.A
MD82C55A-5/B MD82C55A/B
MR82C55A-5/B MR82C55A/B
8406601XA
8406602XA
Pinouts
82C55A (DIP)
TOP VIEW
PA0
PA3
PA2
PA1
PA0
RD
CS
GND
A1
A0
PC7
PC6
PC5
PC4
PC0
PC1
PC2
PC3
PB0
PB1
PB2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
RD
CS
82C55A (CLCC)
TOP VIEW
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PA4
6 5 4 3 2 1 44 43 42 41 40
PA5
PA6
GND 7
PA7
NC 8
WR
A1 9
RESET
A0 10
D0
PC7 11
D1
PC6 12
D2
PC5 13
D3
PC4 14
D4
PC0 15
D5
PC1 16
D6
PC2 17
D7
18 19 20 21 22 23 24 25 26 27 28
V
CC
PB7
PB6
PB5
PB4
PB3
PC3
PB0
PB1
PB2
WR
82C55A (PLCC)
TOP VIEW
RD
PA0
PA1
PA2
PA3
NC
PA4
PA5
PA6
PA7
WR
39 NC
38 RESET
37 D0
36 D1
35 D2
34 D3
33 D4
32 D5
31 D6
30 D7
29 NC
6 5 4 3 2 1 44 43 42 41 40
CS
GND
A1
A0
PC7
NC
PC6
PC5
PC4
PC0
PC1
7
8
9
10
11
12
13
14
15
16
17
18 1920 21 22 23 24 25 26 27 28
PC2
PC3
PB0
PB1
PB2
NC
PB3
PB4
PB5
PB6
PB7
39
38
37
36
35
34
33
32
31
30
29
RESET
D0
D1
D2
D3
NC
D4
D5
D6
D7
V
CC
PB3
PB4
PB5
PB6
PB7
V
CC
NC
CAUTION: These devices are sensitive to electrostatic discharge. Users should follow proper IC Handling Procedures.
Copyright
©
Harris Corporation 1998
File Number
2969.2
1
82C55A
Pin Description
SYMBOL
V
CC
GND
D0-D7
RESET
CS
RD
WR
A0-A1
PIN
NUMBER
26
7
27-34
35
6
5
36
8, 9
I/O
I
I
I
I
I
TYPE
DESCRIPTION
V
CC
: The +5V power supply pin. A 0.1µF capacitor between pins 26 and 7 is
recommended for decoupling.
GROUND
DATA BUS: The Data Bus lines are bidirectional three-state pins connected to the
system data bus.
RESET: A high on this input clears the control register and all ports (A, B, C) are set
to the input mode with the “Bus Hold” circuitry turned on.
CHIP SELECT: Chip select is an active low input used to enable the 82C55A onto the
Data Bus for CPU communications.
READ: Read is an active low input control signal used by the CPU to read status
information or data via the data bus.
WRITE: Write is an active low input control signal used by the CPU to load control
words and data into the 82C55A.
ADDRESS: These input signals, in conjunction with the RD and WR inputs, control
the selection of one of the three ports or the control word register. A0 and A1 are
normally connected to the least significant bits of the Address Bus A0, A1.
PORT A: 8-bit input and output port. Both bus hold high and bus hold low circuitry are
present on this port.
PORT B: 8-bit input and output port. Bus hold high circuitry is present on this port.
PORT C: 8-bit input and output port. Bus hold circuitry is present on this port.
PA0-PA7
PB0-PB7
PC0-PC7
1-4, 37-40
18-25
10-17
I/O
I/O
I/O
Functional Diagram
POWER
SUPPLIES
+5V
GND
GROUP A
CONTROL
GROUP A
PORT A
(8)
I/O
PA7-PA0
BI-DIRECTIONAL
DATA BUS
D7-D0
DATA BUS
BUFFER
8-BIT
INTERNAL
DATA BUS
GROUP A
PORT C
UPPER
(4)
GROUP B
PORT C
LOWER
(4)
I/O
PC7-PC4
I/O
PC3-PC0
RD
WR
A1
A0
RESET
READ
WRITE
CONTROL
LOGIC
GROUP B
CONTROL
GROUP B
PORT B
(8)
I/O
PB7-PB0
CS
2
82C55A
Functional Description
Data Bus Buffer
This three-state bi-directional 8-bit buffer is used to interface
the 82C55A to the system data bus. Data is transmitted or
received by the buffer upon execution of input or output
instructions by the CPU. Control words and status informa-
tion are also transferred through the data bus buffer.
Read/Write and Control Logic
The function of this block is to manage all of the internal and
external transfers of both Data and Control or Status words.
It accepts inputs from the CPU Address and Control busses
and in turn, issues commands to both of the Control Groups.
(CS)
Chip Select. A “low” on this input pin enables the
communcation between the 82C55A and the CPU.
(RD)
Read. A “low” on this input pin enables 82C55A to send
the data or status information to the CPU on the data bus. In
essence, it allows the CPU to “read from” the 82C55A.
(WR)
Write. A “low” on this input pin enables the CPU to
write data or control words into the 82C55A.
(A0 and A1)
Port Select 0 and Port Select 1. These input
signals, in conjunction with the RD and WR inputs, control
the selection of one of the three ports or the control word
register. They are normally connected to the least significant
bits of the address bus (A0 and A1).
82C55A BASIC OPERATION
INPUT OPERATION
(READ)
Port A
→
Data Bus
Port B
→
Data Bus
Port C
→
Data Bus
Control Word
→
Data Bus
OUTPUT OPERATION
(WRITE)
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
Data Bus
→
Port A
Data Bus
→
Port B
Data Bus
→
Port C
Data Bus
→
Control
DISABLE FUNCTION
X
X
X
X
X
1
X
1
1
0
Data Bus
→
Three-State
Data Bus
→
Three-State
CS
POWER
SUPPLIES
+5V
GND
GROUP A
CONTROL
GROUP A
PORT A
(8)
I/O
PA7-
PA0
BI-DIRECTIONAL
DATA BUS
DATA
BUS
D7-D0
BUFFER
GROUP A
PORT C
UPPER
(4)
8-BIT
INTERNAL
DATA BUS
GROUP B
PORT C
LOWER
(4)
I/O
PC7-
PC4
I/O
PC3-
PC0
RD
WR
A1
A0
RESET
READ
WRITE
CONTROL
LOGIC
GROUP B
CONTROL
GROUP B
PORT B
(8)
I/O
PB7-
PB0
FIGURE 1. 82C55A BLOCK DIAGRAM. DATA BUS BUFFER,
READ/WRITE, GROUP A & B CONTROL LOGIC
FUNCTIONS
(RESET)
Reset. A “high” on this input initializes the control
register to 9Bh and all ports (A, B, C) are set to the input
mode. “Bus hold” devices internal to the 82C55A will hold
the I/O port inputs to a logic “1” state with a maximum hold
current of 400µA.
Group A and Group B Controls
The functional configuration of each port is programmed by
the systems software. In essence, the CPU “outputs” a con-
trol word to the 82C55A. The control word contains
information such as “mode”, “bit set”, “bit reset”, etc., that ini-
tializes the functional configuration of the 82C55A.
Each of the Control blocks (Group A and Group B) accepts
“commands” from the Read/Write Control logic, receives
“control words” from the internal data bus and issues the
proper commands to its associated ports.
Control Group A - Port A and Port C upper (C7 - C4)
Control Group B - Port B and Port C lower (C3 - C0)
The control word register can be both written and read as
shown in the “Basic Operation” table. Figure 4 shows the
control word format for both Read and Write operations.
When the control word is read, bit D7 will always be a logic
“1”, as this implies control word mode information.
A1
0
0
1
1
A0
0
1
0
1
RD
0
0
0
0
WR
1
1
1
1
CS
0
0
0
0
3
82C55A
Ports A, B, and C
The 82C55A contains three 8-bit ports (A, B, and C). All can
be configured to a wide variety of functional characteristics
by the system software but each has its own special features
or “personality” to further enhance the power and flexibility of
the 82C55A.
Port A
One 8-bit data output latch/buffer and one 8-bit data
input latch. Both “pull-up” and “pull-down” bus-hold devices
are present on Port A. See Figure 2A.
Port B
One 8-bit data input/output latch/buffer and one 8-bit
data input buffer. See Figure 2B.
Port C
One 8-bit data output latch/buffer and one 8-bit data
input buffer (no latch for input). This port can be divided into
two 4-bit ports under the mode control. Each 4-bit port con-
tains a 4-bit latch and it can be used for the control signal
output and status signal inputs in conjunction with ports A
and B. See Figure 2B.
INPUT MODE
MASTER
RESET
OR MODE
CHANGE
INTERNAL
DATA IN
INTERNAL
DATA OUT
(LATCHED)
OUTPUT MODE
EXTERNAL
PORT A PIN
MODE 1
RD, WR
D7-D0
82C55A
MODE 0
C
B
8
I/O
4
I/O
4
I/O
A
8
I/O
A0-A1
CS
register will contain 9Bh. During the execution of the system
program, any of the other modes may be selected using a
single output instruction. This allows a single 82C55A to
service a variety of peripheral devices with a simple software
maintenance routine. Any port programmed as an output
port is initialized to all zeros when the control word is written.
ADDRESS BUS
CONTROL BUS
DATA BUS
PB7-PB0
PC3-PC0
C
PC7-PC4
PA7-PA0
B
8
I/O
CONTROL CONTROL
OR I/O
OR I/O
C
I/O
A
8
I/O
PB7-PB0
MODE 2
PA7-PA0
B
8
A
BI-
DIRECTIONAL
FIGURE 2A. PORT A BUS-HOLD CONFIGURATION
RESET
OR MODE
CHANGE
V
CC
P
PB7-PB0
CONTROL
PA7-PA0
FIGURE 3. BASIC MODE DEFINITIONS AND BUS INTERFACE
CONTROL WORD
INTERNAL
DATA IN
INTERNAL
DATA OUT
(LATCHED)
OUTPUT MODE
EXTERNAL
PORT B, C
PIN
D7 D6 D5 D4 D3 D2 D1 D0
GROUP B
PORT C (LOWER)
1 = INPUT
0 = OUTPUT
PORT B
1 = INPUT
0 = OUTPUT
MODE SELECTION
0 = MODE 0
1 = MODE 1
GROUP A
PORT C (UPPER)
1 = INPUT
0 = OUTPUT
PORT A
1 = INPUT
0 = OUTPUT
MODE SELECTION
00 = MODE 0
01 = MODE 1
1X = MODE 2
MODE SET FLAG
1 = ACTIVE
FIGURE 2B. PORT B AND C BUS-HOLD CONFIGURATION
FIGURE 2. BUS-HOLD CONFIGURATION
Operational Description
Mode Selection
There are three basic modes of operation than can be
selected by the system software:
Mode 0 - Basic Input/Output
Mode 1 - Strobed Input/Output
Mode 2 - Bi-directional Bus
When the reset input goes “high”, all ports will be set to the
input mode with all 24 port lines held at a logic “one” level by
internal bus hold devices. After the reset is removed, the
82C55A can remain in the input mode with no additional ini-
tialization required. This eliminates the need to pullup or pull-
down resistors in all-CMOS designs. The control word
FIGURE 4. MODE DEFINITION FORMAT
4
82C55A
The modes for Port A and Port B can be separately defined,
while Port C is divided into two portions as required by the
Port A and Port B definitions. All of the output registers,
including the status flip-flops, will be reset whenever the
mode is changed. Modes may be combined so that their
functional definition can be “tailored” to almost any I/O
structure. For instance: Group B can be programmed in
Mode 0 to monitor simple switch closings or display compu-
tational results, Group A could be programmed in Mode 1 to
monitor a keyboard or tape reader on an interrupt-driven
basis.
The mode definitions and possible mode combinations may
seem confusing at first, but after a cursory review of the
complete device operation a simple, logical I/O approach will
surface. The design of the 82C55A has taken into account
things such as efficient PC board layout, control signal defi-
nition vs. PC layout and complete functional flexibility to sup-
port almost any peripheral device with no external logic.
Such design represents the maximum use of the available
pins.
Single Bit Set/Reset Feature (Figure 5)
Any of the eight bits of Port C can be Set or Reset using a
single Output instruction. This feature reduces software
requirements in control-based applications.
When Port C is being used as status/control for Port A or B,
these bits can be set or reset by using the Bit Set/Reset
operation just as if they were output ports.
CONTROL WORD
D7 D6 D5 D4 D3 D2 D1 D0
X
X
DON’T
CARE
X
BIT SET/RESET
1 = SET
0 = RESET
BIT SELECT
0 1 2 3 4
0 1 0 1 0
0 0 1 1 0
0 0 0 0 1
This function allows the programmer to enable or disable a
CPU interrupt by a specific I/O device without affecting any
other device in the interrupt structure.
INTE Flip-Flop Definition
(BIT-SET)-INTE is SET - Interrupt Enable
(BIT-RESET)-INTE is Reset - Interrupt Disable
NOTE: All Mask flip-flops are automatically reset during mode se-
lection and device Reset.
Operating Modes
Mode 0
(Basic Input/Output). This functional configuration
provides simple input and output operations for each of the
three ports. No handshaking is required, data is simply writ-
ten to or read from a specific port.
Mode 0 Basic Functional Definitions:
• Two 8-bit ports and two 4-bit ports
• Any Port can be input or output
• Outputs are latched
• Input are not latched
• 16 different Input/Output configurations possible
MODE 0 PORT DEFINITION
A
D4
0
0
0
0
D3
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
D1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
B
D0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
GROUP A
PORTC
PORT A (Upper)
Output
Output
Output
Output
Output
Output
Output
Output
Input
Input
Input
Input
Input
Input
Input
Input
Output
Output
Output
Output
Input
Input
Input
Input
Output
Output
Output
Output
Input
Input
Input
Input
#
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
GROUP B
PORTC
PORT B (Lower)
Output
Output
Input
Input
Output
Output
Input
Input
Output
Output
Input
Input
Output
Output
Input
Input
Output
Input
Output
Input
Output
Input
Output
Input
Output
Input
Output
Input
Output
Input
Output
Input
5
1
0
1
6
0
1
1
7
1 B0
1 B1
1 B2
0
0
0
BIT SET/RESET FLAG
0 = ACTIVE
0
1
1
1
1
1
1
1
1
FIGURE 5. BIT SET/RESET FORMAT
Interrupt Control Functions
When the 82C55A is programmed to operate in mode 1 or
mode 2, control signals are provided that can be used as
interrupt request inputs to the CPU. The interrupt request
signals, generated from port C, can be inhibited or enabled
by setting or resetting the associated INTE flip-flop, using the
bit set/reset function of port C.
5