Theoretical Paper
- Computer Organization
 - Data Structure
 - Digital Electronics
 - Object Oriented Programming
 - Discrete Mathematics
 - Graph Theory
 - Operating Systems
 - Software Engineering
 - Computer Graphics
 - Database Management System
 - Operation Research
 - Computer Networking
 - Image Processing
 - Internet Technologies
 - Micro Processor
 - E-Commerce & ERP
 
Practical Paper
Industrial Training
LPT Port Interaction
The LPT is commonly known as the   Parallel port or Printer port. It is a pink colored 25 pin female connector at   the back of a computer. Parallel port is so called because it transmits data in   bytes and not bits. We can transmit one complete byte at a time, along with   control signals for the distant device. This mechanism of transmitting bytes   instead of bits greatly increases the rate of data transfer through this port.   Because of these features the parallel port has become one of the most widely   used for implementing projects dealing with control of real world   peripherals. 
                  The LPT is actually a group of three ports, data port, control   port and status port. These ports enjoy three separate addresses. For a standard   PC the port addresses are typically 378h, 379h, 37ah for data, status and   control ports respectively, these addresses may differ depending upon whether it   is an LPT1 Port or a LPT2 port, but the order remains same. 
                  The 25 pins are   divided among the ports in the following manner. 
                
Pin Number  | 
                        Port No / Port Name  | 
                        Pin Name(s)  | 
                      
18 – 25  | 
                        Non  | 
                        Ground Pins  | 
                      
2 – 9  | 
                        0x378 / Data Port  | 
                        Data Pins  | 
                      
10 – 13, 15  | 
                        0x379 / Status Port  | 
                        Status Pins  | 
                      
1, 14, 16, 17  | 
                        0x37a / Control Port  | 
                        Control Pins  | 
                      
The remaining pins are reserved for   other use. The data pins are true logic, i.e. the output is the same as we put.   In other words if we send true logic ( logic 1 or 5V signal ) the same will be   reflected on the pins. There are some pins in the control port and the status   pins that show inverted logic. This means that if we output a true signal (   logic 1 or 5V signal ) on the pin it will actually be reflected as a false   (logic 0 or 0V signal). Pin number 1, 10, 14, 15, 17 are inverted logic pins.   This makes the LPT a little bit more complicated than a serial port. 
                  The LPT   was primarily designed for printer interfacing, this required bi directional   communication of information. The computer needs to read the printer status of   the printer and the printer needs to get information to decide the mode of   operation from the computer. Of the 25 pins 17 are active pins whereas the rest   are ground (0 voltage always). Of these 17, 2 to 9 are the data pins. The   remaining ones are the ones that are shown in the table
Pin Number  | 
                      Description (Port )  | 
                      Type  | 
                    
1  | 
                      Strobe ( Control )  | 
                      Inverted Logic  | 
                    
10  | 
                      ACK ( Status )  | 
                      Inverted Logic  | 
                    
11  | 
                      Busy (Status )  | 
                      True logic  | 
                    
12  | 
                      Paper Empty (Status )  | 
                      True Logic  | 
                    
13  | 
                      Select ( Status )  | 
                      True Logic  | 
                    
14  | 
                      Auto Feed (Control )  | 
                      Inverted Logic  | 
                    
15  | 
                      Error (Status )  | 
                      Inverted Logic  | 
                    
16  | 
                      Initialize Printer ( Control )  | 
                      True Logic  | 
                    
17  | 
                      Select Input (Control )  | 
                      Inverted Logic  | 
                    
In this article we will interface a simple 7-segment LED array with the LPT. The 7-segment will display numbers 0- 9 in cyclic manner. The circuit for the same is as given below. Rightmost connected pin in the top row of the Figure. 1 is the second pin whereas the Leftmost connected pin is pin number 9 of the LPT.

This was our circuit, for someone else this might change a   little bit. The resistors we used were 560 ohm’s and the grounds were connected   to pin 18 – 25.
                  The 7-Segments are separately controlled by 8 data pins of   the LPT. To control each of these pins we need to send specific numbers. The   format of these numbers is given below.
                 
                 The numbers are the Bit that needs to be   sent 
                 through the LPT in order to glow that   specific 
                 filament of the 7-Segment.
                 These numbers activate only one pin   of the LPT port at a 
                 time. The   result is that when we OR these numbers in a 
                 specific format, we get control over each filament of   the
                  7-Segment.
The program to run this circuit is given below:
# include <dos.h>
main( )
{
int i = 0 ;
unsigned char seg[ ] = {
64 | 1 | 2 | 4 | 16 | 32, /* 0 */
16 | 4, /* 1 */
32 | 16 | 128 | 1 | 2, /* 2 */
32 | 16 | 128 | 4 | 2, /* 3 */
64 | 128 | 16 | 4, /* 4 */
32 | 64 | 128 | 4 | 2, /* 5 */
32 | 64 | 1 | 2 | 4 | 128, /* 6 */
32 | 16 | 4, /* 7 */
32 | 64 | 128 | 4 | 2 | 1 | 16, /* 8 */
32 | 64 | 128 | 16 | 4 | 2 /* 9 */
} ;
while ( ! kbhit( ) )
{
outportb ( 0x378, seg[ i ] ) ;
delay ( 1000 ) ;
i++ ;
if ( i == 10 )
i = 0 ;
}
outportb ( 0x378, 0 ) ;
}
Again a word of caution these programs might not work properly under WinNT family of operating systems.
