laporan psi(1)
Post on 27-Nov-2015
54 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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.
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 :
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
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 :
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;
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
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:
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);
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;
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
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
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:
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;
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.
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:
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);
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;
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.
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.
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:
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;
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);
begin
close;
end;
end.
top related