1 Set PC
Tool Pemrograman Borland Delphi
Kabel LPT
Trainer Komunikasi Paralel
Nama Komponen
Event
Deklarasi
-
Timer1
Perintah
var
Form1: TForm1;
ctrl, data, stat: integer;
implementation
{$R *.dfm}
procedure
Out32(PortAddress:smallint;Value:smallint);
stdcall; external 'inpout32.dll';
function
Inp32(PortAddress:smallint):smallint;stdcall;
external 'inpout32.dll';
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ctrl:=(inp32($37A) xor $0B);
stat:=(inp32($379) xor $80);
Label1.Caption:=IntToStr(ctrl);
Label2.Caption:=IntToStr(stat);
data:=stat+ctrl;
data:=255-data;
lbData.Caption:=IntToStr(data);
Out32($378,data);
if (data and 1)=1 then shape1.Brush.Color:=clred
else shape1.Brush.Color:=clwhite;
if (data and 2)=2 then shape2.Brush.Color:=clred
else shape2.Brush.Color:=clwhite;
if (data and 4)=4 then shape3.Brush.Color:=clred
else shape3.Brush.Color:=clwhite;
if (data and 8)=8 then shape4.Brush.Color:=clred
else shape4.Brush.Color:=clwhite;
if (data and 16)=16 then shape5.Brush.Color:=clred
else shape5.Brush.Color:=clwhite;
if (data and 32)=32 then shape6.Brush.Color:=clred
else shape6.Brush.Color:=clwhite;
if (data and 64)=64 then shape7.Brush.Color:=clred
else shape7.Brush.Color:=clwhite;
if (data and 128)=128 then
shape8.Brush.Color:=clred
else shape8.Brush.Color:=clwhite;
end;
end.
4. Hubungkan Toggle switch dengan port control dan status, sedangkan LED dengan port
Data
5. Simpan semua file dpr dan unit kemudian jalankan program
6. On kan Toggle switch.
7. Amati apa yang terjadi pada komponen shape dan LED.
Perintah
var
Form1: TForm1;
ctrl, data, stat, i: integer;
keypad : String;
implementation
{$R *.dfm}
procedure
Out32(PortAddress:smallint;Value:smallint);
stdcall; external 'inpout32.dll';
function
Inp32(PortAddress:smallint):smallint;stdcall;
external 'inpout32.dll';
procedure baris1;
var
stat: integer;
begin
Out32($378,$E);//1 //1110
stat:=(inp32($379) xor $80);
if stat = 255-128 then keypad:='A';
if stat = 255-64 then keypad:='3';
if stat = 255-32 then keypad:='2';
if stat = 255-16 then keypad:='1';
end;
procedure baris2;
var
stat: integer;
begin
Out32($378,$D);//2 //1101
stat:=(inp32($379) xor $80);
if stat = 255-128 then keypad:='B';
if stat = 255-64 then keypad:='6';
if stat = 255-32 then keypad:='5';
if stat = 255-16 then keypad:='4';
end;
procedure baris3;
var
stat: integer;
begin
Out32($378,$B);//4 //1011
stat:=(inp32($379) xor $80);
if stat = 255-128 then keypad:='C';
if stat = 255-64 then keypad:='9';
if stat = 255-32 then keypad:='8';
if stat = 255-16 then keypad:='7';
end;
procedure baris4;
var
stat: integer;
begin
Out32($378,$7);//8 //0111
stat:=(inp32($379) xor $80);
if stat = 255-128 then keypad:='D';
if stat = 255-64 then keypad:='#';
if stat = 255-32 then keypad:='0';
Timer1
Form1
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Out32($378,0);
end;