---
title: "Centronics printer with 8255A in mode 1"
subject: "Instrumentation II"
chapter: 2
key: "semester_5/instrumentation_ii:centronics-printer-8255-mode1"
source: https://www.bctengineer.com/q/semester_5/instrumentation_ii/centronics-printer-8255-mode1
site: BCT Engineering
---

# Centronics printer with 8255A in mode 1

Instrumentation II · Chapter 2: Parallel Interfacing With Microprocessor Based System

- Asked in: 2075 Chaitra, 3+2+2+2+3 marks
- Video: [Microprocessor-Unit5-Parallel Interface Centronics-By Er. Mohit Mishra](https://www.youtube.com/watch?v=T0uEBUSaDSg) — Arya College of Engineering and IT
- Answer checked by Claude Sonnet 5.5 on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/instrumentation_ii/centronics-printer-8255-mode1
- Whole chapter: https://www.bctengineer.com/md/semester_5/instrumentation_ii/chapter-2

## Question

Interface a parallel bus centronics printer with 8085 microprocessor using 8255A in mode 1 output configuration. (a) Draw the necessary interfacing circuit required for this purpose using 8255 PPI in handshake mode. (b) Determine port address as per your chip select logic. (c) Determine the control word required for printing operation. (d) Draw the timing waveform for transferring data to the printer. (e) Write an ALP to print characters whose ASCII code is available in memory location from 9000H.

## Short answer

Connect 8255A to 8085 with base address 80H–83H. Port A in mode 1 output sends data; OBF_A' provides STROBE and PC6 receives ACK. Control word 10100000 (A0H) configures port A; use BSR 0DH to enable interrupt. ALP polls OBF (bit 7 of port C) before writing each character from 9000H until 00H.

## Answer

#### Assumptions
8085 system, 8255A I/O mapped at 80H-83H; port A in mode 1 output sends data to the printer. Centronics signals: DATA0-DATA7, STROBE' (from computer), ACK' (from printer).

#### (a) Interfacing circuit
```text
 8085                      8255A                Centronics printer
 AD0-AD7 (data) -------> D0-D7
 IOR' -> RD'  IOW' -> WR'  RESET OUT -> RESET
 A1,A0 -> A1,A0
 A7..A2 decoder -> CS'
                          PA0-PA7 ---------> DATA0-DATA7
                          PC7 OBF_A' -------> STROBE'
                          PC6 ACK_A' <------- ACK'
                          PC3 INTR_A -------> 8085 RST 5.5
```
OBF_A' is used as the strobe to the printer (some printers need a short pulse; a 74LS123 monostable can be added).

#### (b) Port addresses
A7 = 1, A6-A2 = 0 gives CS' low: Port A = **80H**, Port B = **81H**, Port C = **82H**, Control = **83H**.

#### (c) Control word
D7 = 1; D6D5 = 01 (A mode 1); D4 = 0 (A output); D3 = 0; D2 = 0; D1 = 0; D0 = 0 = 1010 0000 = **A0H**. Interrupt enable INTE_A (PC6): BSR **0DH**.

#### (d) Timing waveform
```text
 WR'    --\__/--------------------------
 PA0-7  ----< character >---------------
 OBF'   -----\_________/----------------   (= STROBE' to printer)
 ACK'   ---------------\_______/--------
 INTR   _______________________/--------
```
When the CPU writes the character, WR' goes high and the data appears on PA0-PA7. OBF' goes low at the same time and acts as STROBE' to the printer. The printer takes the data and returns ACK' low, which makes OBF' go high again. When ACK' returns high, INTR goes high (if INTE_A = 1) to tell the CPU that the next character can be sent.

#### (e) Assembly program: print characters starting at 9000H (end marker 00H)
```text
        MVI A,A0H
        OUT 83H         ; port A mode 1 output
        LXI H,9000H     ; pointer to characters
NEXT:   MOV A,M
        CPI 00H         ; end of text?
        JZ  DONE
        MOV B,A         ; keep character
WAIT:   IN 82H          ; read status (port C)
        ANI 80H         ; OBF_A' (D7) = 1 means printer took last byte
        JZ  WAIT
        MOV A,B
        OUT 80H         ; send to printer
        INX H
        JMP NEXT
DONE:   HLT
```

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. Which 8255 signal serves as STROBE' to the Centronics printer in mode 1 output?
   A. IBF_A
   B. INTR_A
   C. OBF_A'
   D. ACK_A'
   Answer: C. OBF_A' goes low when the CPU writes data and is used as strobe to the printer. (Key point: Strobe source)

2. What control word sets port A mode 1 output (others mode 0)?
   A. B0H
   B. 90H
   C. A0H
   D. 80H
   Answer: C. D7=1, D6D5=01, D4=0 (A output), rest 0 = 1010 0000 = A0H. (Key point: Control word)

3. In the timing, what makes OBF' go high again?
   A. The WR' pulse ends
   B. The printer returns ACK' (low then high)
   C. INTR goes low
   D. The CPU reads port C
   Answer: B. The printer takes the data and sends ACK'; when ACK' returns high, OBF' goes high and INTR rises. (Key point: Handshake sequence)

4. In the program, what does ANI 80H test, and when is data sent?
   A. IBF_A; send when 1
   B. OBF_A' (D7); send when 1 (printer took last byte)
   C. INTR_A; send when 0
   D. ACK; send when 0
   Answer: B. OBF_A' = 1 means the previous byte was acknowledged, so the next byte can be written to port A. (Key point: Status check in program)

## Related in Instrumentation II

- [PCI bus; 8255 printer interface at 5500H](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Apci-printer-5500h) — Instrumentation II, chapter 2
- [Keyboard and printer interface in 8255 mode 1](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Akeyboard-printer-mode1) — Instrumentation II, chapter 2
- [Keyboard and printer with 8255A at 4044H](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Akbd-printer-ppi-4044h) — Instrumentation II, chapter 2
- [8255 mode 1 keyboard and printer with decoding](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Appi-keyboard-printer-mode1-fig) — Instrumentation II, chapter 2
- [Double handshake data transfer with 8255-PPI](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Adouble-handshake-8255) — Instrumentation II, chapter 2
- [8-channel ADC interface with 8255 and 8085](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Aadc8-8255-problem) — Instrumentation II, chapter 4

## Related in other subjects

- [Address decoding for 8 LEDs output port](https://www.bctengineer.com/question.md?key=semester_4%2Fmicroprocessor%3Adecoder-output-port-8-leds) — Microprocessor, chapter 4
- [Address decoding for input and output ports](https://www.bctengineer.com/question.md?key=semester_4%2Fmicroprocessor%3Adecoder-input-output-port-block-decoder) — Microprocessor, chapter 4
