Você está na página 1de 4

Parallel Port Programming with Delphi This article demonstration how to access parallel port with delphi 6.

to access parallel port for all Windows platform i use driver file inpout32.dll becuase it easily to use with delphi.You can dowload from http://www.logix4u.net and it included in the example which you can download at the buttom of this page.

PC Parallel Port Basic As we know the standard parallel port have 3 port for controll 1. Status port 2. Control Port 3. Data Port each port have own address like this Register LPT1 LPT2 data registar(baseaddress + 0) 0x378 0x278 status register (baseaddress + 1) 0x379 0x279 control register (baseaddress + 2) 0x37a 0x27a

Pin No (DB25) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18-25

Signal name nStrobe Data0 Data1 Data2 Data3 Data4 Data5 Data6 Data7 nAck Busy Paper-Out Select Linefeed nError nInitialize nSelect-Printer Ground

Direction Out In/Out In/Out In/Out In/Out In/Out In/Out In/Out In/Out In In In In Out In Out Out -

Register - bit Control-0 Data-0 Data-1 Data-2 Data-3 Data-4 Data-5 Data-6 Data-7 Status-6 Status-7 Status-5 Status-4 Control-1 Status-3 Control-2 Control-3 -

Inverted Yes No No No No No No No No No Yes No No Yes No No Yes -

* leading n = Active low or invert logic How to use inpout32.dll with Delphi After download inpout32.dll copy it to Windows\system32\ 1. Open Delphi program 2. place component on from like this

3. write program following

1: unit main; 2: interface 3: uses 4: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 5: Dialogs, StdCtrls; 6: type 7: TForm1 = class(TForm) 8: Button1: TButton; 9: Button2: TButton; 10: Edit1: TEdit; 11: Label1: TLabel; 12: Label2: TLabel; 13: procedure Button1Click(Sender: TObject); 14: procedure Button2Click(Sender: TObject); 15: private 16: { Private declarations } 17: public 18: { Public declarations } 19: end; 20: 21: var 22: Form1: TForm1; 23: 24: procedure Out32(wAddr:word;bOut:byte); stdcall; external 'inpout32.dll' 25: function Inp32(wAddr:word):integer; stdcall; external 'inpout32.dll' 26: 27: implementation 28: 29: {$R *.dfm} 30: 31: procedure TForm1.Button1Click(Sender: TObject); 32: begin 33: Out32($378,$53); // Out32 34: end; 35: 36: procedure TForm1.Button2Click(Sender: TObject); 37: begin 38: edit1.Text:=IntToHex(Inp32($378),2); // Edit1 39: end; 40: end.

This program load inpout32.dll in static type in line 24,25.In event Button1Click program send data(53h) to data port (378h) in line 33. In line 38 we can read data(8 bit ) from data port(Set to bidirection Port only)

This picture used to test for output advertisements