Está en la página 1de 25

Programmable Peripheral

Interface Devices

Support chips: 8155, 8255, 8279, 8254,


DMA Controller, Interrupt Controller,
USART
Programmable Interface Devices
 used to interface a I/O device to the
microprocessor

System Bus Programmable


I/O
8085 I/O
Devices
Interface
8155 – A multipurpose programmable
interface
 Designed to be compatible with 8085
 It includes
 256 bytes of Read/Write memory
 Three I/O ports
 Port A
 Port B
 Port C
 A 14-bit timer
Block Diagram - 8155
RESET
Port A

256 X 8 A 8 PA0-7
AD0-7 8
Static

I/O Devices
IO/M RAM Port B
8085

RD B 8 PB0-7
WR
ALE Port C

CE Timer C 6 PC0-5

Timer CLK Vcc (+5 V)

TIMER OUT Vss (0 V)


Application design with 8155
 Objectives
 Interfacing 8155 with 8085
 Programming 8155
Interfacing 8085 with 8155

RESET
Port A

AD0-7 8 256 X 8 A 8
Static
CE RAM Port B
A15 8085
B 8
IO/M
RD
Port C
WR
Timer C 6
ALE

8085 8155
Programming 8155
 8155 is a Programmable Peripheral Interface
 8085 can send data to 8155 using data bus
 This data can be
 For I/O devices connected to 8155
 Timer registers of 8155
 Instruction/Command word for 8155
 Commands for 8155 are stored in a 8-bit
Control Register inside 8155
What type of Commands can be given
to 8155?
 To configure the I/O ports as Input or Output
 To start/stop timer etc.
 To use handshake mode or not
Control word for 8155
 A command/instruction for 8155 is also called
control word
 This control word is written to control register
of 8155
 Control word of 8155 is of 8-bits
Control Word Definition for 8155
D0 Port A 0, Input D3 D2 PORT C
0 0 ALT1
D1 Port B 1, Output
0 1 ALT2
D2 1 0 ALT3
Port C 1 1 ALT4
D3
D4 Interrupt Enable Port A D7 D6 Timer
0, Disable
0 0 NOP
D5 Interrupt Enable Port B 1, Enable 0 1 Stop
D6 1 0 Stop
after TC
Timer
D7
1 0 Start
I/O functions of Port C

ALT D3 D2 PC5 PC4 PC3 PC2 PC1 PC0


ALT1 0 0 I I I I I I
ALT2 0 1 O O O O O O
ALT3 1 0 O O O STBA BFA INTRA

ALT4 1 1 STBB BFB INTRB STBA BFA INTRA

I= O = Output
Input
STB = Strobe BF = Buffer Full INTR = Interrupt Request
Design an interfacing circuit to read data from an A/D
converter using the 8155A in the peripheral mapped I/O.

AD0-AD7
8155 P Digital
8085 A/D
Input
IO/M o Converter
r
ALE
t
RD A
WR PC5
SOC
RESET P P
o o BFA
r r OE
CE t t
STBA
B C EOC
A15 E 2 O7 O2 O0
A14 E1
A13 A2
A12 A1 LED Analog
A11 A0 3-to-8 Decoder Display Input
Port Addresses of 8155
Chip Selection

A7 A6 A5 A4 A3 A2 A1 A0 Port
0 0 0 1 0 0 0 0 Control/Status
Register = 10H
0 0 1 Port A = 11H
0 1 0 Port B = 12H
0 1 1 Port C = 13H
1 0 0 LSB Timer = 14H
1 0 1 MSB Timer = 15H
Application Programming Logic
1. Configure 8155
2. 8085 sends SOC command to ADC
3. 8085 communicates with ADC using
PortC in handshake mode
4. 8085 reads 8-bit temperature value from
port A
5. 8085 displays the temperature value on
the LED display
1. Configure 8155 I/O Ports
 Port A as INPUT port
 Port B as OUTPUT
port
 Port C in ALT3 mode

ALT D3 D2 PC5 PC4 PC3 PC2 PC1 PC0


ALT3 1 0 O O O STBA BFA INTRA

SOC EOC OE
Control Word for configuration
D0 0 0, Input D3 D2 PORT C
Port A
D1 1 1, Output 0 0 ALT1
Port B
0 1 ALT2
D2 0 1 0 ALT3
Port C
D3 1 1 1 ALT4

D4 0 IE Port A 0, Disable D7 D6 Timer


D5 0 1, Enable 0 0 NOP
IE Port B
0 1 Stop
D6 0 1 0 Stop
Timer after TC
D7 0
1 0 Start
Program Instructions for configuration
 Data
 Control word : 0AH
 Port Address
 Address of Control register : 10H

 Instructions
 MVI A, 0AH
 OUT 10H
2. 8085 sends SOC command to
ADC
 A small duration pulse on SOC input of ADC
will start conversion process
 SOC input of ADC is connected to port pin
PC5 of Port C (Port address 13H)
 Data
 Data value 20H followed by 00H
ALT D3 D2 PC5 PC4 PC3 PC2 PC1 PC0
ALT3 1 0 O O O STBA BFA INTRA

1 0 0 0 0 0
SOC
 Instructions
Start: MVI A, 20H
OUT 13H

MVI A, 00H
OUT 13H
3. 8085 communicates with ADC
using Port C in handshake mode
 Port A used to input 8-bit data from ADC
 Port C used for handshaking
ALT D3 D2 PC5 PC4 PC3 PC2 PC1 PC0
ALT3 1 0 O O O STBA BFA INTRA

EOC OE
 ADC resets EOC to LOW at end of
conversion
 8155 sets BF to 1 to enable ADC output latch
 8085 is waiting for BF to be SET to 1 and
 Reads port A by making RD signal active (0)
 At the end of read cycle RD goes HIGH (1)
 This resets BF signal to 0.
 8085 waits for BF signal to be RESET and
 starts conversion process again
8085 is waiting for BF
 To know the status of BF signal 8085 reads
status register of 8155

D7 D6 D5 D4 D3 D2 D1 D0

X Timer INTEB BFB INTRB INTEA BFA INTRA

Status Word Definition

 Status register shares same address as


control register
Program Instructions
 8085 reads status register
 Address of status register : 10H
 Reads port A if BFA = 1
 Output temperature on port B

Status: IN 10H
ANI 02H
JZ Status
IN 11H ;Step -4 Reads temperature value
OUT 12H ; Step –5 display on LED’s
 8085 reads status register
 Address of status register : 10H
 Starts conversion again if BFA = 0

Again: IN 10H
ANI 02H
JNZ Again
JMP Start
Complete Program
MVI A, 0AH
OUT 10H  Configure 8155
Start: MVI A, 20H
OUT 13H  Start Conversion

MVI A, 00H
OUT 13H
Status: IN 10H  Read Status register
ANI 02H
JZ Status  Wait till BFA = 1
IN 11H  Read temperature value
OUT 12H  Display on LED
Again: IN 10H  Read status register
ANI 02H
JNZ Again  Wait till BFA = 0
JMP Start  Start Conversion again

También podría gustarte