Jobsheet Paralel Input

9
Alat dan Bahan • 1 Set PC • Tool Pemrograman Borland Delphi • Kabel LPT • Trainer Komunikasi Paralel

description

pararel

Transcript of Jobsheet Paralel Input

Page 1: Jobsheet Paralel Input

Alat dan Bahan• 1 Set PC• Tool Pemrograman Borland Delphi• Kabel LPT• Trainer Komunikasi Paralel

Page 2: Jobsheet Paralel Input

Prosedur Percobaan 1 : Toggle Switch

1. Buatlah Program seperti dibawah ini

2. Komponen/Objek yang digunakan dan pengaturan propertiesnya adalah:

Komponen Properti NilaiLabel1 Caption Label1Label2 Caption Label2Label3 Caption ControlLabel4 Caption DataLabel5 Caption StatusLabel6 Caption

NamelbDatalbData

Shape1 Height dan WidthShape

65StCircle

Shape2 Height dan WidthShape

65StCircle

Shape3 Height dan WidthShape

65StCircle

Shape4 Height dan WidthShape

65StCircle

Shape5 Height dan WidthShape

65StCircle

Shape6 Height dan WidthShape

65StCircle

Shape7 Height dan WidthShape

65StCircle

Shape8 Height dan WidthShape

65StCircle

Timer 1 EnabledInterval

True1000

Timer 2 EnabledInterval

False1000

Page 3: Jobsheet Paralel Input

3. Masukkan perintah-perintah pada kejadian/event disetiap komponen di bawahIni.

Nama Komponen Event PerintahDeklarasi - 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';

Timer1 - 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;

Page 4: Jobsheet Paralel Input

end.

4. Hubungkan Toggle switch dengan port control dan status, sedangkan LED dengan port Data

5. Simpan semua file dpr dan unit kemudian jalankan program6. On kan Toggle switch. 7. Amati apa yang terjadi pada komponen shape dan LED.

Page 5: Jobsheet Paralel Input

Prosedur percobaan 2 : Keypad1. Buatlah Program seperti dibawah ini

2. Komponen/Objek yang digunakan dan pengaturan propertiesnya adalah:

Komponen Properti NilaiLabel1 Caption Label1Label2 Caption Label2Label3 Caption Label3Label4 Caption Label4Label5 Caption Label5Label6 name

CaptionlbDatalbData

Label7 nameCaption

lbKeypadlbKeypad

Timer 1 EnabledInterval

True1

3. Masukkan perintah-perintah pada kejadian/event disetiap komponen di bawahIni.

Nama Komponen Event PerintahDeklarasi - var

Form1: TForm1; ctrl, data, stat, i: integer; keypad : String;implementation{$R *.dfm}

procedure

Page 6: Jobsheet Paralel Input

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';

Page 7: Jobsheet Paralel Input

if stat = 255-64 then keypad:='#'; if stat = 255-32 then keypad:='0'; if stat = 255-16 then keypad:='*';end;

Timer1 - procedure TForm1.Timer1Timer(Sender: TObject);begini:=i+1;if i=1 then baris1();if i=2 then baris2();if i=3 then baris3();if i=4 then begin baris4(); i:=0;end;

lbKeypad.Caption:=keypad;

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);

end;Form1 - procedure TForm1.FormCreate(Sender: TObject);

begin Out32($378,0);end;

4. Simpan semua file dpr dan unit kemudian jalankan program5. Hubungkan keypad dengan port Status dan Kontrol6. Tekan sembarang tombol pada keypad, kemudian amati apa yang terjadi pada

komponen lbKeypad.