Top Banner
Modul I Menghidupkan dan Mematikan Led di Port Data LPT (Paralel Port) 1. Tujuan : a. Mahasiswa dapat memahami dan melakukan pengiriman atau pengambilan data dari komputer ke periperal eksternal di luar komputer b. Mahasiswa dapat membuat pemrograman pengiriman data untuk menghidupkan dan mematikan LED menggunkan Delphi 2. Alat dan Bahan a. Komputer b. Modul peralatan praktikum PSI c. Konektor DB25 3. Prosedur Praktikum Program ini akan menyalakan semua led di LPT data saat button ON ditekan dan mematikan semua led saat button OFF ditekan. a. Buatlah tampilan form seperti berikut Kompone n Proper ti Isi Button1 Captio n Name On Butto n1 Button2 Captio n Name Off Butto n1
28

Laporan Psi(1)

Nov 27, 2015

Download

Documents

Ahmad Juheri

praktikum
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Laporan Psi(1)

Modul I

Menghidupkan dan Mematikan Led di Port Data LPT

(Paralel Port)

1. Tujuan :

a. Mahasiswa dapat memahami dan melakukan pengiriman atau pengambilan

data dari komputer ke periperal eksternal di luar komputer

b. Mahasiswa dapat membuat pemrograman pengiriman data untuk

menghidupkan dan mematikan LED menggunkan Delphi

2. Alat dan Bahan

a. Komputer

b. Modul peralatan praktikum PSI

c. Konektor DB25

3. Prosedur Praktikum

Program ini akan menyalakan semua led di LPT data saat button ON

ditekan dan mematikan semua led saat button OFF ditekan.

a. Buatlah tampilan form seperti berikut

b. Tambahkan nilai konstanta:

Const

LPT_data = $378;

c. Tuliskan kode untuk procedure outport setelah tanda direktive {$R*.dfm}

pada layar kode

d. Isikan kode Pascal untuk button ON:

Procedure Tform1. Button1click (sender: Tobject);

Komponen Properti Isi

Button1 Caption

Name

On

Button1

Button2 Caption

Name

Off

Button1

Page 2: Laporan Psi(1)

Begin

Outport (LPTdata,$FF);

end;

e. Isikan kode Pascal untuk button OFF:

f. Procedure Tform1. Button2click (sender: Tobject);

Begin

Outport (LPTdata,$00);

End;

g. Sehingga program lengkapnya sebagai berikut:

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

asm

mov dx,$378

mov al,$FF

out dx,al

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

asm

mov dx,$378

mov al,$00

out dx,al

end;

end;

end.

Page 3: Laporan Psi(1)

Modul II

Menghidupkan, Mematikan, dan Variasi Lain Penyalaan LED di Port Pata

LPT

1. Tujuan :

a. Mahasiswa dapat memahami dan melakukan pengiriman atau pengambilan

data dari komputer ke periperal eksternal di luar komputer

b. Mahasiswa dapat membuat pemrograman pengiriman data untuk

menghidupkan dan mematikan dan memvarisi penyalaan LED

menggunkan Delphi

2. Alat dan Bahan

a. Komputer

b. Modul peralatan praktikum PSI

c. Konektor DB25

3. Prosedur Praktikum

Saat anda tekan tombol ‘on semua’ ditekan led akan padam. Untuk

tombol ‘variasi’ akan mengoutputkan penyalaan led sesuai nilai yang anda

masukkan pada edit. Sehingga anda wajib mengisikan terlebih dahulu suatu

nilai antara 0-255 pada edit sebelum menekan tombol ‘variasi’.

a. Buatlah tampilan form seperti berikut :

Page 4: Laporan Psi(1)

b. Tambahkan nilai konstanta:

c. Tuliskan kode untuk procedure outport setelah tanda direktive {$*,.dfm}

pada layar kode.

d. Isikan kode Pascal untuk button ON:

e. Isikan kode Pascal untuk button OFF:

f. Isikan button pascal untuk button Variasi:

g. Sehingga program lengkapnya sebagai berikut:

var

Form1: TForm1;

Const

LPTdata=$378;

implementation

{$R *.dfm}

procedure outport (alamat:word;data:byte);

begin

asm

mov dx,alamat

mov al,data

Page 5: Laporan Psi(1)

out dx,al

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

outport(LPTdata,$FF)

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

outport(LPTdata,$00)

end;

procedure TForm1.Button3Click(Sender: TObject);

var

data_variasi :integer;

begin

data_variasi:=StrToInt(edit1.text);

outport(LPTdata,data_variasi);

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

close;

end;

end.

Catatan :

Page 6: Laporan Psi(1)

Saat program di ‘run’, jika tombol variasi ditekan sebelum anda

memasukkan nilai dalam layar edit maka akan tampil pesan kesalahan dari

window sesuai sistem yang anda gunakan sebagai berikut:

Saat itu seolah-olah delphi mengalami ‘hang’, untuk menghentikan

program lakukan hal-hal berikut:

1. Tekan OK pada pesan kesalahan di atas

2. Pilih menu Run lalu Program Reset pada layar Delphi atau tekan Ctrl+F2.

Maka program akan kembali normal kembali.

Program anda di proyek 2 dapat dimodifikasi sedikit supaya tidak

mengalami pesan kesalahan dari window seperti di atas, yaitu dengan

menambahkan Message dialog pada prosedur button variasi sehingga prosedur

lengkapnya sebagai berikut:

procedure TForm1.Button3Click(Sender: TObject);

var

data_variasi:integer;

begin

if edit1.Text='' then

MessageDlg('Isikan Nilai Terlebih Dahulu !!

',mtinformation,[mboK],0)

else

data_variasi:= StrToInt(edit1.text);

outport(LPT_data,data_variasi);

end;

Page 7: Laporan Psi(1)

Modul III

Pengenalan Delay untuk aplikasi Lampu Berjalan

1. Tujuan :

a. Mahasiswa dapat memahami dan melakukan pengiriman atau pengambilan

data dari komputer ke periperal eksternal di luar komputer

b. Mahasiswa dapat membuat pemrograman untuk lampu berjalan

menggunakan Delphi

2. Alat dan Bahan

a. Komputer

b. Modul peralatan praktikum PSI

c. Konektor DB25

3. Prosedur Praktikum

Suatu delay sangat berguna dalam teknik interfacing. Sub rutin delay akan

melakukan proses ‘buang-buang waktu’sehingga tundaan yang dihasilkan dapat

bermanfaat, misal: untuk aplikasi led, ADC, motor stepper dan sebagainya.

a. Buatlah tampilan form sederhana berikut. Jika tombol ‘Go’ anda tekan maka

led akan menyala bergantian dari kiri ke kanan

Page 8: Laporan Psi(1)

Komponen Properti Isi

Button1 Caption

Name

Go

Button1

BitButton1 Kind

Name

BkClose

BitBtn1

b. Tuliskan procedure delay seperti dibawah ini, bisa diletakkan sebelum

procedure outport atau sesudahnya.

procedure delay (lama:longint);

1: var

2: ref : longint;

3: begin

4: ref:=gettickcount;

5: repeat

6: application.ProcessMessages;

7: until ((gettickcount-ref) >=lama)

8: end;

Penjelasan:

Page 9: Laporan Psi(1)

Baris 1 dan 2 : digunakan untuk deklarasi variabel ref dengan jenis

longint (seluruh bilangan antara -214748368 sampai

2147483637)

Baris 4 : fungsi gettickcount, merupakan fungsi yang dimiliki

delphi untuk mengambil pewaktuan komputer saat itu

Baris 6 : dengan menuliskan application Process Messages maka

saa procedure delay dijalankan, berbagai aplikasi window

masih dapa bekerja. Baris 6 akan diulang terus menerus

sampai syarat pada baris 7 terpenuhi (true).

c. Program lengkap sebagai berikut:

var

Form1: TForm1;

const

LPT_data=$378;

implementation

{$R *.dfm}

procedure delay(t:LongInt);

var

mulai,selesai:LongInt;

begin

mulai:=GetTickCount;

repeat

application.processMessages;

selesai:=GetTickCount;

until (selesai-mulai)>=t;

end;

procedure outport(alamat:word;data:byte);

Page 10: Laporan Psi(1)

begin

asm

mov dx,alamat

mov al, data

out dx,al

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

close

end;

procedure TForm1.Button2Click(Sender: TObject);

var

i,n:integer;

data:byte;

begin

for n:=1 to 3 do

begin

data:=128;

for i:= 1 to 8 do

begin

outport(LPT_data,data);

asm

ROL data,1

end;

delay(50);

end;

end;

Page 11: Laporan Psi(1)

end;

end.

Modul IV

Pengenalan Timer, Lampu berjalan

1. Tujuan :

a. Mahasiswa dapat memahami dan melakukan pengiriman atau pengambilan

data dari komputer ke periperal eksternal di luar komputer

b. Mahasiswa dapat membuat pemrograman menggunakan timer untuk

lampu berjalan

2. Alat dan Bahan

a. Komputer

b. Modul peralatan praktikum PSI

c. Konektor DB25

3. Prosedur Praktikum

Pada proyek ini anda akan memanfaatkan timer sehingga waktu

yang digunakan untuk delay atau keperluan yang lain benar-benar tepat

dalam satuan waktu, misal : 500 mili detuk, 1 detik, 2 detik dan

seterusnya. Komponen timer dapat diambil di palette System, properti

yang penting adalah:

Enable True, timer aktif

Page 12: Laporan Psi(1)

False, timer tidak berfungsi

Interval

Selang waktu yang digunakan untuk mengaktifkan

aplikasi pada procedure timer. Satuannya

milidetik

a. Buatlah tampilan form sebagai berikut:

Komponen timer dapat diletakkan disembarang tempat pada form

karena tidak dapat ditampilkan saat program dijalankan. Kecepatan

jalannya led tergantung pada nilai yang anda masukkan pada properti

interval.

Komponen Properti Isi

Page 13: Laporan Psi(1)

Button1 Caption

Name

Jalan

Button1

Button2 Caption

Name

STOP

Button2

Bitbutton Kind bkClose

Timer1 (terletak di

palette System)

Enabled

Name

Interval

False

Timer1

1000

b. Klik ganda form disembarang tempat, dan isikan kode pascal berikut:

procedure TForm1.FormCreate(Sender: TObject);

begin

data:=$80; // kondisi awal laed: 1000 000

outport(LPT_data,data);

end;

kode diatas berguna sebagai inisialisasi nilai awal led saat form pertama

kali muncul. Kemudian pada langkah berikutnya nilai led itu akan kita

geser ke kanan sehingga menghasilkan lampu berjalan.

c. Klik ganda komponen timer dan isikanlah kode berikut:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

outport(LPT_data,data);

asm

ROR data,1

end;

end;

Kode yang anda tuliskan diantara begin dan end, akan dijalankan setiap

1000 ms atau setiap 1 detik, hal ini sesuai dengan interval yang anda

masukkan pada properti Timer. Sehingga nyala led akan di ‘rotate’ke

kanan 1 kali setiap detik.

d. Isikan kode pascal untuk tombol jalan:

Page 14: Laporan Psi(1)

procedure TForm1.Button1Click(Sender: TObject);

begin

timer1.enabled:=true;

end;

kode ini digunakan untuk me-nonaktifkan timer jika tombol jalan ditekan.

e. Isikan kode pascal untuk tombol stop:

procedure TForm1.Button1Click(Sender: TObject);

begin

timer1.enabled:=false;

end;

kode ini digunakan untuk me-nonaktifkan timer saat tombol stop

diletakan.

f. Kode lengkap dapat dilihat swbagai berikut: (jangan lupa menambahkan

variabel daya, konstanta LPT_data dan prosedur outport)

var

Form1: TForm1;

data:byte;

const

LPT_data=$378;

implementation

{$R *.dfm}

procedure outport(alamat:word;data:byte);

begin

asm

mov dx,alamat

mov al,data

out dx,al

end;

Page 15: Laporan Psi(1)

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

timer1.Enabled:=true;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

timer1.Enabled:=false;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

outport(LPT_data,data);

asm

ROR data,1

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

close;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

data:=$80;

outport(LPT_data,data);

end;

end.

Page 16: Laporan Psi(1)

Modul V

Penggunaan Radio Group

1. Tujuan :

a. Mahasiswa dapat memahami dan melakukan pengiriman atau pengambilan

data dari komputer ke periperal eksternal di luar komputer

b. Mahasiswa dapat membuat pemrograman tentang penggunaan Radio

Button

2. Alat dan Bahan

a. Komputer

b. Modul peralatan praktikum PSI

c. Konektor DB25

3. Prosedur Praktikum

Pada proyek ini anda akan mengembangkan proyek sebelumnya

dengan menu pilihan untuk putar kanan dan putar kiri penyalaan led

menggunakan Radio Group.

a. Buatlah tampilan form sebagai berikut:

Page 17: Laporan Psi(1)

Komponen Properti IsiButton1 Caption

Name Start Button1

Button2 CaptionName

Stop Button2

RadioGroup Caption Items

Arah LedPutar KananPutar Kiri

Bit Button Kind bkCloseTimer1 Enabled

Interval False200

b. Isikan kode pascal untuk komponen Timer:

procedure TForm1.Timer1timer (Sender: TObject);begin

if radiogroup1.itemindex=0 thenbegin outport(LPT_data,data);asm

ROR data,1 thenend;

end;if radiogroup1.itemindex=1 thenbegin

outport(PT_data,data);

Page 18: Laporan Psi(1)

asm ROL data,1 end; end; end;Penjelasan:Baris 3 dan 10 : digunakan untuk menditeksi pilihan pada radio group

apakah yang dipilih putar kanan ataukah pitar kiri. Item index 0 adalah pilihan yang teratas yaitu putar kanan. Item index 1 untuk pilihan putar kiri. Jika masih ada pilihan yang ketiga maka nomor item index berikutnya adalah 2

Baris 4-9 : hanya akan dijalankan jika item index bernilai 0, artinya pilihan pada putar kanan.

Baris 11-16 : hanya akan dijalankan jika item index bernilai 1 (putar kiri)

c. Sehingga program lengkap sebagai berikut:var Form1: TForm1; data:byte;const LPT_data=$378;implementation

{$R *.dfm}procedure outport(alamat:word;data:byte);begin asm mov dx,alamat mov al,data out dx,al end;end;

procedure TForm1.Button1Click(Sender: TObject);begin timer1.Enabled:=true;end;

procedure TForm1.Button2Click(Sender: TObject);begin timer1.Enabled:=false;end;

Page 19: Laporan Psi(1)

procedure TForm1.Button3Click(Sender: TObject);begin close;end;

procedure TForm1.Timer1Timer(Sender: TObject);begin if radiogroup1.ItemIndex=0 then begin outport(LPT_data,data); asm ROR data,1 end; end; if radiogroup1.ItemIndex=1 then begin outport(LPT_data,data); asm ROL data,1 end; end;end;

procedure TForm1.FormCreate(Sender: TObject);begin data:=$10; outport(LPT_data,data);end;

procedure TForm1.BitBtn1Click(Sender: TObject);beginClose;end;

end.

Page 20: Laporan Psi(1)

Modul VI

Penggunaan Scroll Bar untuk mengendalikan timer

1. Tujuan :

a. Mahasiswa dapat memahami dan melakukan pengiriman atau pengambilan

data dari komputer ke periperal eksternal di luar komputer

b. Mahasiswa dapat membuat pemrograman tentang penggunaan Scroll Bar

Untuk mengendalikan Timer

2. Alat dan Bahan

a. Komputer

b. Modul peralatan praktikum PSI

c. Konektor DB25

3. Prosedur Praktikum

Proyek anda kali ini akan lebih kompleks dan mengasyikkan. Jika

pada proyek sebelumnya kecepatan jalannya led tergantung nilai yang

diisikan dalam pada properti interval timer, maka kali ini anda dapat

mengatur kecepatan led lewat scroll bar.

Page 21: Laporan Psi(1)

a. Buatlah tampilan form seperti proyek lima sekali lagi namun dengan

menambahkan sebuah scroll bar.

Komponen Properti isiButton1 Caption

NameStartButton1

Button2 CaptionName

StopButton2

Komponen Properti Isi

RadioGroup1 Caption

Items…

Arah Led

Putar Kanan

Putar Kiri

Timer1 Enabed

Interval

False

200

Scrol1 Min

Max

LargeChange

200

2000

200

Label1 Caption kecepatan:

Page 22: Laporan Psi(1)

b. Isikan kode Pascal untuk Scroll Bar. Klik ganda komponen Scroll Bar dan

tuliskan

procedure TForm1.ScrollBar1Change(Sender :TObject);

begin

timer1.interval:=scrollbar1.position;

`end;

c. Isi kode yang sama dengan proyek 5. Kode selengkapnya sebagai berikut:

Var

Form1: TForm1;

data:byte;

const

LPT_data=$378;

implementation

{$R *.dfm}

procedure outport(alamat:word;data:byte);

begin

asm

mov dx,alamat

mov al,data

out dx,al

end;

end;

procedure TForm1.ScrollBar1Change(Sender: TObject);

begin

timer1.Interval:=scrollbar1.Position;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

data:=$10;

Page 23: Laporan Psi(1)

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

timer1.Enabled:=true;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

timer1.Enabled:=false;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

if radiogroup1.ItemIndex=0 then

begin

outport(LPT_data,data);

asm

ROR data,1

end;

end;

if radiogroup1.ItemIndex=1 then

begin

outport(LPT_data,data);

asm

ROL data,1

end;

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

Page 24: Laporan Psi(1)

begin

close;

end;

end.