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
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
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| BIT SET/RESET |
|
|
|
| |||||||
|
| X |
| X | X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 = SET |
|
|
|
|
|
|
|
| ||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||
|
|
| DON’T |
|
|
|
|
|
|
|
|
|
|
| 0 = RESET |
|
|
|
|
|
| |||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||||||
|
|
|
| CARE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 | B1 |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | B2 |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| BIT SET/RESET FLAG | |||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0 = ACTIVE |
|
|
|
|
|
| |||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
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
NOTE: All Mask
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
•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 |
| B | GROUP A |
| GROUP B | ||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| PORTC |
|
| PORTC |
D4 |
| D3 | D1 |
| D0 | PORT A | (Upper) | # | PORT B | (Lower) |
|
|
|
|
|
|
|
|
|
|
|
0 |
| 0 | 0 |
| 0 | Output | Output | 0 | Output | Output |
|
|
|
|
|
|
|
|
|
|
|
0 |
| 0 | 0 |
| 1 | Output | Output | 1 | Output | Input |
|
|
|
|
|
|
|
|
|
|
|
0 |
| 0 | 1 |
| 0 | Output | Output | 2 | Input | Output |
|
|
|
|
|
|
|
|
|
|
|
0 |
| 0 | 1 |
| 1 | Output | Output | 3 | Input | Input |
|
|
|
|
|
|
|
|
|
|
|
0 |
| 1 | 0 |
| 0 | Output | Input | 4 | Output | Output |
|
|
|
|
|
|
|
|
|
|
|
0 |
| 1 | 0 |
| 1 | Output | Input | 5 | Output | Input |
|
|
|
|
|
|
|
|
|
|
|
0 |
| 1 | 1 |
| 0 | Output | Input | 6 | Input | Output |
|
|
|
|
|
|
|
|
|
|
|
0 |
| 1 | 1 |
| 1 | Output | Input | 7 | Input | Input |
|
|
|
|
|
|
|
|
|
|
|
1 |
| 0 | 0 |
| 0 | Input | Output | 8 | Output | Output |
|
|
|
|
|
|
|
|
|
|
|
1 |
| 0 | 0 |
| 1 | Input | Output | 9 | Output | Input |
|
|
|
|
|
|
|
|
|
|
|
1 |
| 0 | 1 |
| 0 | Input | Output | 10 | Input | Output |
|
|
|
|
|
|
|
|
|
|
|
1 |
| 0 | 1 |
| 1 | Input | Output | 11 | Input | Input |
|
|
|
|
|
|
|
|
|
|
|
1 |
| 1 | 0 |
| 0 | Input | Input | 12 | Output | Output |
|
|
|
|
|
|
|
|
|
|
|
1 |
| 1 | 0 |
| 1 | Input | Input | 13 | Output | Input |
|
|
|
|
|
|
|
|
|
|
|
1 |
| 1 | 1 |
| 0 | Input | Input | 14 | Input | Output |
|
|
|
|
|
|
|
|
|
|
|
1 |
| 1 | 1 |
| 1 | Input | Input | 15 | Input | Input |
|
|
|
|
|
|
|
|
|
|
|
5