How To Build Parallel Port Prototypes
By Gabriel Torres on October 13, 2005 Page 2 of 7

Understanding The Parallel Port

On the PC the parallel port uses a 25-pin connector (called DB-25, 25-pin D-sub or 25-pin D-shell), as you can see on Figure 2. On printers, however, a different kind of connector is used, called Centronics, which has 36 pins.

Parallel Port (LPT1)
click to enlarge
Figure 2: The parallel port.

Besides the eight data bits, there are more signals available on the parallel port. On the table below we list all the basic parallel port signals and their function, as well as their location on both standard 25-pin and Centronics connector. The I/O column indicates if the signal is input (I) or output (O). Input means that the signal must come from the device to the parallel port (i.e. the signal must be provided by your prototype); output means that the signal comes from the parallel port.

Signal Name Pin (25-pin standard connector) Pin (36-pin Centronics Connector) I/O  Description
/STROBE Strobe  01 01 O Indicates if data is ready or not to be transmitted.(0 = Data ready to be transmitted, 1 = Data not ready to be transmitted)
/ACK Acknowledge 10 10 I Indicates that the printer is ready to receive data.
BUSY Busy 11 11 I Indicates that the printer is not ready to receive data.
PE Paper Empty 12 12 I Indicates that the printer has no paper to print on.
SELECT  Select 13 13 I Indicates that the printer is on its “on line” state, ready to get information.
/AUTO FD XT Auto Feed 14 14 O The printer moves the paper to the beginning of the next line.
/ERROR Error 15 32 I Some error occured (printer disabled, paper empty).
/INIT Init 16 31 O Resets the printer and clears its printing buffer.
/SELECT INPUT Select Input 17 36 O Data can only be transferred to the printer when this line is set to “0”.
D0 thru D7 D0 thru D7 2 thru 9 2 thru 9 O Data bits.
GND Ground  18 thru 25 19 thru 30 O Ground.


The parallel port uses three I/O addresses: data (378h), status (379h) and control (37Ah). If you want to send data to the parallel port and get this data outside the computer, just write this data to the parallel port data address. For example, if we want to turn on all our LEDs, all we need to do is to send the value 255 (which is the decimal equivalent for 11111111, i.e. all data bits set to “on”) on the address 378h. Of course we will explain more about this and also the role of the status and control addresses.


Originally at http://www.hardwaresecrets.com/article/233/2Pages (7): 1 2 3 4 5 6 7 »

© 2004-8, Hardware Secrets, LLC. All Rights Reserved.

Total or partial reproduction of the contents of this site, as well as that of the texts available for downloading, be this in the electronic media, in print, or any other form of distribution, is expressly forbidden. Those who do not comply with these copyright laws will be indicted and punished according to the International Copyrights Law.

We do not take responsibility for material damage of any kind caused by the use of information contained in Hardware Secrets.