POLITEKNOSAINS VOL. IX NO. 1
Maret 2010
Menggerakkan Peralatan Luar melalui Port parallel PC dengan perangkat lunak Delphi 7 Salechan Jurusan Teknik elektro Politeknik Pratama Mulia Surakarta
ABSTRACT Parallel port is a simple and inexpensive tool for building computer controlled devices and projects. The simplicity and ease of programming makes parallel port popular in electronics hobbyist world. The parallel port is often used in Computer controlled robots, Atmel/PIC programmers, home automation, ...etc... Here a simple tutorial on parallel port interfacing and programming with some examples. PENDAHULUAN Parallel port sering digunakan dalam berbagai macam aplikasi antarmuka. Pada parallel port bisa diberi masukan hingga 8 bit dan keluaran hingga 12 bit pada saat yang bersamaan, dengan menambahkan rangkaian yang sederhana untuk melakukan tugas tertentu. Sedangkan Port Serial tidak bisa bersamaan dikarenakan adanya proses konversi data parallel menjadi serial atau sebaliknya harus menggunakan piranti tambahan untuk mengkonversi data non serial menjadi serial. Karena alasan inilah penulis memilih parallel port pada PC untuk mengendalikan pintu. Pada port parallel ini terdiri dari 4 jalur kontrol, 5 jalur status, dan 8 jalur data. Biasanya kita menjumpai parallel port sebagai port pencetak (printer) pada sebuah PC, dalam bentuk konektor DB-25 female (betina).Pada port parallel yang baru
Menggerakkan Peralatan…
distandarisasi dengan IEEE.1284 yang dikeluarkan pada tahun 1984. Adapun tujuan standarisasi ini untuk membantu merancang penggerak (driver) dan piranti baru yang kompatibel antara satu dengan yang lainnya. Standarisasi parallel port ini mendefinisikan 5 macam mode operasi sebagai berikut : 1. Mode Kompatibilitas 2. Mode Nibel 3. Mode Byte 4. Mode EPP Parallel Port)
(Enhanced
5. Mode ECP (Extended Capabilities Port) Pada mode Kompatibilitas, Nibel dan Byte menggunakan perangkat keras
46
POLITEKNOSAINS VOL. IX NO. 1
standar yang tersedia pada kartu parallel port asli dan hanya mampu mengirim data searah saja. Sedangkan pada Mode ECP dan EPP membutuhkan perangkat keras tambahan yang mampu bekerja secara cepat (modem dll), namun masih kompatibel dengan SPP (Standard Parallel Port). Penjelasan Umum Parallel Port Pada parallel port tipe ECP dan EPP menggunakan tambahan perangkat keras untuk menghasilkan dan mengatur handshaking (sinyal-sinyal tanda acknowledge). Untuk mengeluarkan sebuah byte ke pencetak (atau yang lainnya) menggunakan Mode Kompatibel, Untuk itu diperlukan langkahlangkah dalam perangkat lunaknya sebagai berikut : 1. Menuliskan data byte ke Port Data. 2. Memeriksa apakah pencetak sedang sibuk, jika pencetaknya sedang sibuk maka tidak akan menerima data apapun, sehingga data yang dituliskan akan hilang dengan sendirinya.
Maret 2010
4. Jadikan sinyal strobe-nya kembali tinggi (=1) setelah menunggu sekitar 5 mikro detik setelah menjadikan sinyal strobe-nya rendah (=0). Langkahlangkah tersebut mengakibatkan kecepatan port menurun. Port ECP dan EPP melakukan hal yang sama dengan bantuan perangkat keras supaya memeriksa apakah pencetaknya sibuk atau tidak dan menghasilkan sinyal strobe dan/atau sinyal handshaking yang lain yang sesuai. Hal ini berarti bahwa hanya ada satu instruksi saja yang dilaksanakan, sehingga dapat meningkatkan kecepatan. Pada port-port ini dapat mengeluarkan data dengan kecepatan 1 sampai 2 megabyte/detik. Port ECP juga memiliki kelebihan dalam penggunaan port DMA dan penyangga FIFO, sehingga data bisa digeser-geser tanpa perintah I/O. Pada table.1 ditunjukkan daftar pin pada konektor DB-25. Untuk lebih jelasnya setiap sinyal pada parallel Port dapat dijabarkan sebagai berikut : 1. Strobe/Stb:
3. Jadikan sinyal strobe (pin 1) menjadi rendah (=0), hal ini digunakan untuk memberitahukan pencetak bahwa ada data yang siap dikirimkan pada jalur data (pin 2 sampai 9).
Menggerakkan Peralatan…
•
Sinyal Strobe merupakan fungsi sinyal input pada printer.
•
Saluran ini diaktifkan komputer jika ia akan meneruskan data ke printer.
47
POLITEKNOSAINS VOL. IX NO. 1
2.
Data 0 sampai data 7 :
Maret 2010
6. Select/Slt :
•
Sinyal data merupakan sinyal input pada printer.
•
Sinyal select merupakan sinyal output dari printer.
•
Sinyal data disinkronkan (diserempakkan) oleh pulsa strobe.
•
Dengan sinyal ini printer memberitahu bahwa ia sudah terpilih dan dalam keadaan aktif.
3. Acknowledge/Ack : 7. •
•
Sinyal ack merupakan sinyal output dari printer. Jika printer telah mengolah data yang diterimanya, maka dalam waktu max 30 mikrodetik ia memberikan sinyal jabat tangan (handshake) ini. Dalam bahasa Indonesia kata Acknowledge berarti “menyatakan telah diterima”.
4. Busy : •
Sinyal busy merupakan sinyal output dari printer.
•
Ketika printer menerima data atau mencetak sinyal ini diaktifkan. Demikian pula jika ada gangguan atau dalam status OFF LINE.
Auto Feed : •
8.
Error •
9.
Jika sinyal ini diaktifkan, printer pada akhir setiap baris akan pindah ke baris selanjutnya secara otomatik.
Keluaran ini aktif jika ada gangguan atau printer tidak tersambung atau tidak menyala
Reset •
10.
Dengan saluran ini printer kembali ke keadaan awal Input Select
•
Pemilihan printer sebagai piranti DTE (Data Terminal Equipment) berlangsung pada saluran sinyal ini.
5.Paper End/PE : •
Sinyal paper end merupakan sinyal output dari printer.
Alamat-alamat Pada Parallel Port
•
Sinyal ini akan terus aktif sampai kertas baru dipasang lagi.
Pada parallel port umumnya terdapat tiga alamat dasar yang bisa dipakai. Alamat dasar 3BCh pertama kali
Menggerakkan Peralatan…
48
POLITEKNOSAINS VOL. IX NO. 1
diperkenalkan sebagai alamat parallel port pada kartu video video lama. Alamat ini kemudian sempat menghilang, saat parallel port dicabut dari kartu-kartu video. Tetapi sekarang muncul lagi sebagai pilihan untuk parallel port yang terpadu dengan motherboard, yang konfigurasinya dapat diubah-ubah melalui BIOS. LPT1 biasanya mempunyai alamat dasar $378, sedangkan LPT2 ialah $278. Ini ialah alamat umum yang bisa dijumpai, akan tetapi alamatalamat dasar ini dapat berlainan antara komputer satu dengan yang lainnya. Pada saat pertama kali komputer dihidupkan, BIOS (Basic Input Output System) akan menentukan jumlah port yang dimiliki kemudian akan diberi label LPT1, LPT2 dan LPT3. Pertama kali BIOS akan memeriksa alamat $3BC, jika ditemukan parallel port pada alamat tersebut akan diberi label LPT1. Kemudian akan dicari pada lokasi berikutnya $378, jika ditemukan akan diberi label berikutnya yang sesuai. Bisa jadi LPT1 tidak ditemukan parallel port di $3BC atau mungkin di LPT2. Jika ditemukan parallel port pada alamat tersebut, alamat port terakhir yang diperiksa ialah $278 dan mengikuti langkahlangkah diatas tadi. Sehingga dimungkinkan kita memiliki LPT2 dengan alamat $378 bukan $278 sebagaimana diharapkan.
Menggerakkan Peralatan…
Maret 2010
Apa yang membuat hal ini menjadi membingungkan adalah, karena beberapa perusahaan memasang jumper yang memperbolehkan pengaturan parallel port ke LPT1, LPT2 dan LPT3. Hampir semua kartu untuk alamat LPT1 dialamatkan pada $378 dan LPT2 pada $278. Tetapi beberapa menggunakan $3BC sebagai LPT1, $378 sebagai LPT2 dan $278 sebagai LPT3. Label-label LPT1, LPT2 dan LPT3 seharusnya tidak perlu dikhawatirkan bagi mereka yang hanya menginginkan pengantarmukaan piranti dengan komputer. Karena biasanya alamat dasar-lah yang digunakan dalam program antarmuka dari label LPT1 dan seterusnya. Port Dwi Arah ( Bi-directional Port ) Dalam gambar II.3 ditunjukkan register data Parallel Port yang sudah disederhanakan. Kartu parallel port yang asli biasanya mengimplementasikan IC denganseri 74LS. Saat ini semuanya sudah dikemas dalam satu kartu ASIC (Aplicatio Specific Integrated Circuit), akan tetapi dasar kerjanya tetap sama. Port non dwi-arah biasanya menggunakan IC 74LS374 dengan keluaran yang dibuat permanen rendah (LOW), dengan demikian port data selalu bertindak sebagai keluaran saja. Pada saat membaca register data Parallel Port, datanya
49
POLITEKNOSAINS VOL. IX NO. 1
Maret 2010
berasal dari 74LS374 yang juga terhubung dengan pin-pin data. Jika mampu meng-overdrive 374, maka akan didapatkan Port Dwi-arah atau sebagai port masukan saja bila terjadi kerusakan keluaran-keluaran terkunci atau output latches dan hal ini sering terjadi. Menggunakan Parallel Port Untuk Masukan 8 Bit Jika parallel port tidak mendukung mode dwi-arah, kita dapat memasukkan data 9-bit kapan saja. Agar dapat melakukan hal ini, digunakan 5 jalur masukan pada Port Status dan 4 jalur masukan (kolektor terbuka) pada Port Kontrol. Masukan ke parallel port telah dipilih sedemikian rupa sehingga akan memudahkan kita. Sinyal Busy dijadikan sebagai MSB (bit-7) dari Port Status, kemudian diikuti sesuai urutan gambar II.4 sinyal Ack, Paper Out dan select melalui nibel (4-bit) Tinggi atau MS (Most Significant) dari Port Kontrol. Tanda garis diatas sinyal digunakan sebagai tanda inversi perangkat keras, yaitu +5V akan terbaca 0 di register, sedangkan GND akan terbaca 1. Sedangkan pada Port Status hanya memiliki satu masukan terinversi. Port Kontrol digunakan untuk membaca nibel rendah atau LS (Least Significant). Port Kontrol merupakan keluaran kolektor terbuka yaitu dua kemungkinan kondisi, impedansi tinggi dan GND.
Menggerakkan Peralatan…
Gambar Inverter Heks 74LS05 Kolektor Terbuka Mode Parallel Port Dalam Bios Parallel port pada saat ini kebanyakan merupakan port-port beragam mode dan biasanya dapat dikonfigurasikan melalui perangkat lunak. Mode-modenya meliputi : 1. Mode Printer (Default atau Normal Mode) 2. Mode Standard and Bi-directional (SPP) 3. Mode EPP1.7 and SPP 4. Mode EPP1.9 and SPP 5. Mode ECP 6. Mode ECP and EPP1.7 7. Mode ECP and EPP1.9 Mode Printer merupakan mode yang paling dasar dan merupakan parallel port standar satu arah, tidak ada fitur dwi-arah sehingga bit-5 pada port kontrol tidak digunakan. Mode Standar and Bi-directional
50
POLITEKNOSAINS VOL. IX NO. 1
merupakan mode dwi-arah. Penggunaan mode ini, bit-5 pada port kontrol akan membalikkan arah port sehingga bisa dibaca lagi nilai yang diberikan pada jalur data. Mode EPP1.7 and SPP ialah kombinasi dari EPP1.7 (Enhanced Parallel Port) dan SPP. Pada mode ini memperbolehkan akses ke register-register SPP (data, status dan kontrol) serta register-register EPP. Pada mode ini juga bisa membalikkan arah port menggunakan bit-5 dari register kontrol. EPP1.7 ialah versi awal dari EPP dimana tidak terdapat bit untuk time-out. Mode EPP 1.9 and SPP seperti mode sebelumnya, hanya saja menggunakan versi 1.9 dari EPP dan memperbolehkan pengaksesan timeout pada register EPP. Mode ECP akan memberikan port dengan kemampuan tambahan (Extended Capabilities Port). Mode ini bisa diset melalui register kontrol tambahan (Extended Control Register) dari ECP. Tetapi mode ini tidak menyediakan EPP. Mode ECP and EPP1.7 dan ECP and EPP1.9 akan memberikan ECP, serti pada mode yang sebelumnya. Akan Program Delphi Delphi adalah salah satu bahasa pemrograman berbasis visual yang digunakan untuk membuat program aplikasi pada komputer (seperti Visual basic). Bahasa pemrograman
Menggerakkan Peralatan…
Maret 2010
tetapi mode EPP dan ECP-nya mode EPP disediakan dan versi mode EPPnya mengikuti apakah versi 1.7 atau 1.9. Mode-mode parallel port diatas bisa dikonfigurasikan melalui BIOS dan dapat dikonfigurasikan ulang menggunakan perangkat lunak yang ditulis, tetapi hal ini tidak disarankan. Register-register perangkat lunak ini biasanya ditemukan pada alamatalamat 2Fah, 3F0h, 3F1h dan lainlain yang ditujukan diakses oleh BIOS. Dalam hal ini tidak ada standarisasi pada register-register konfigurasi ini, sehingga berakibat penggunaan register-register ini membuat program atau perangkat lunak menjadi tidak portabel. Pilihan yang baik adalah mode ECP dan EPP1.7 atau ECP and EPP1.9 melalui BIOS kemudian menggunakan register kontrol tambahan ECP untuk memilih mode parallel port. Pada Mode EPP1.7 terdapat masalah berkaitan dengan Strobe untuk Data dan Alamat yang harus diberikan untuk mengawali sebuah siklus awal (start cycle) tidak peduli dengan adanya kondisi tunggu (wait state), sehingga pada saat ini mode ini jarang digunakan. Dengan demikian yang terbaik ialah menggunakan Mode ECP and EPP. yang digunakan oleh Delphi sebenarnya merupakan turunan dari bahasa pemrograman pascal, yang dahulu pada Delphi dikenal sebagai objek pascal. Bagi Anda yang telah mengenal bahasa pemrograman pascal, maka mungkin Anda tidak
51
POLITEKNOSAINS VOL. IX NO. 1
akan terlalu kesulitan dalam mempelajari Delphi. Delphi relatif lebih mudah dipahami dibandingkan dengan bahasa pemrograman lainnya, disamping itu banyak referensi terutama dalam bentuk buku yang membahas tentang bahasa pemrograman ini. Delphi telah terbukti mampu menghasilkan software-software yang berkualitas, baik yang berskala besar maupun kecil, teknologi yang digunakan pada Delphi pun cukup uptodate. Sampai saat ini, Borland sebagai perusahaan pembuat Delphi, terus menyempurnakan Delphi mengikuti perkembangan teknologi yang begitu pesat. Hal ini menjadikan Delphi sebagai salah satu pilihan utama yang cukup banyak digunakan oleh para programmer di Indonesia khususnya, sebagai tools dalam proyek pengembangan software. IDE Borland Delphi 7 Mengingat dulu waktu belum jamannya IDE, untuk membuat program dengan bahasa pemrograman tertentu kita butuh beberapa tool yang berdiri sendiri, misalnya untuk editornya sendiri, untuk desain programnya sendiri dan untuk debuggingnya sendiri, jadi nggak ada kesatuan dalam satu paket, oleh karena itu untuk memudahkan pengembang program maka dibuatlah IDE. Jika Anda telah terbiasa mengunakan aplikasiaplikasi berbasis windows, maka Anda tidak akan terlalu kesulitan dalam memahami interface atau
Menggerakkan Peralatan…
Maret 2010
tampilan Delphi, terutama pada menubarnya yang relatif sama dengan menubar pada aplikasi windows. Delphi memiliki lingkungan pengembangan yang terpadu atau IDE (Integrated Development Environment), artinya untuk membuat sebuah program mulai dari perancangan desainnya hingga kompilasi programnya, kita cukup menggunakan satu interface Delphi. Penulis asumsikan Anda telah menginstall Borland Delphi 7 pada sistem operasi Windows Anda. Untuk menjalankan IDE Delphi, melalui menu Start | All Programs | Borland Delphi 7 | Delphi 7, maka akan muncul tampilan IDE Delphi seperti pada Gambar dibawah ini. IDE Delphi tersebut terbagi menjadi tujuh bagian utama, yaitu : Menubar, Toolbar, Component Palette, Form Designer, Code Explorer, Object Treeview dan Object Inspector Tampilan IDE Delphi Menubar dan Toolbar Menubar dan Toolbar merupakan dua bagian yang biasanya terdapat pada aplikasiaplikasi windows lain. Fungsi dari Menubar dan Toolbar ini relatif hampir sama dengan aplikasi window lain, sehingga secara explisit tidak akan dibahas dalam buku ini, melainkan hanya menubar yang biasa digunakan dalam pembuatan program
52
POLITEKNOSAINS VOL. IX NO. 1
Component Palette Component Palette berisi kumpulan VCL (Visual Component Library) yang berguna dalam desain aplikasi. VCL merupakan pustaka untuk komponen visual, dimana dalam component palette dilambangkan dengan ikon yang merepresentasikan komponen tersebut. Komponenkomponen VCL pada component palette dikelompokkan ke dalam tabtab, sesuai dengan fungsinya, dengan maksud untuk memudahkan programmer dalam memilih komponen yang diinginkannya. Disamping VCL ada juga CLX (Component Library for Cross Platform), jika Anda ingin tahu lebih banyak baik mengenai VCL maupun CLX. Form Designer Setiap aplikasi biasanya memiliki jendela atau background interface, yang dalam bahasa pemrograman Delphi atau bahkan dalam bahasa pemrograman lain yang berbasis visual, biasa disebut dengan Form. Form Designer berfungsi sebagai tempat untuk mendesain form untuk aplikasi yang akan kita buat, dan juga sebagai tempat untuk meletakkan komponen-komponen yang kita ambil dari component palette. Code Explorer Code Explorer merupakan area di mana kita menuliskan kode program, posisinya secara default terletak dibelakang form. Untuk
Menggerakkan Peralatan…
Maret 2010
menampilkan code explorer di depan form, Anda bisa menggunakan tombol F12 pada keyboard. Pada code explorer tersebut, Anda akan melihat kode-kode dalam bahasa pemrograman delphi yang secara otomatis digenerate oleh Delphi, hal ini jelas akan memudahkan atau mempercepat kita dalam menulis program. Pada code explorer Delphi, ada sebuah fitur yang disebut dengan code completion. Sesuai dengan namanya, code completion berfungsi melengkapi kode yang kita tulis dalam bentuk pilihan/list dari codecode yang bisa kita gunakan, hal ini akan sangat membantu apabila kita lupa terhadap kode tertentu. Code completion ini secara otomatis akan muncul ketika Anda menekan tombol titik pada keyboard, selain itu untuk menampilkan code completion ini, Anda juga bisa melakukannya dengan menekan kombinasi tombol Ctrl + Space secara bersamaan. Isamping code completion, code explorer pada delphi juga dilengkapi dengan hint (layer berwarna kuning yang muncul ketika mouse didekatkan pada komponen tertentu). Hint ini, muncul ketika kita menggunakan procedure atau fungsi dan menekan tombol ( pada keyboard, pada hint tersebut akan muncul nama dan tipe data dari parameter yang digunakan atau informasi lain yang diperlukan. TENTANG INPOUT32.DLL Delphi yang merupakan pengembangan lebih lanjut OOP
53
POLITEKNOSAINS VOL. IX NO. 1
Pascal dengan Windows
sistem
operasi
ternyata telah menghilangkan fungsi khas Pascal dalam akses perangkat keras, yaitu perintah port[alamat]
:= data atau port[alamat];
variabel
:=
Dengan demikian dibutuhkan suatu cara agar Delphi bisa melakukan akses perangkat keras. Salah satunya dengan pustaka inpout32.dll , yang bisa didownload dari www.logix4u.net secara gratis,yang harus disimpan atau ditempatkan pada folder :/windows/system32 padakomputer Anda. Cara penggunaannya sangat mudah, pertama definisikan terlebih dahulu fungsi dan prosedur untuk akses masukan maupun keluaran perangkat keras pada bagian deklarasi Delphi sebagai berikut:
Maret 2010
fungsi Inp32 membutuhkan dua parameter yaitu alamat perangkat keras dan variabel hasil pembacaan data dari perangkat keras dengan tipe data byte. Sedangkan prosedur Out32 membutuhkan dua parameter juga, yiatu alamat perangkat keras dan nilai atau variabel yang menyimpan nilai yang akan dikirimkan ke perangkat keras yang bersangkutan. Contoh Program 1 Contoh program pertama ini digunakan untuk mematikan dan menghidupkan LED-LED yang terpasang pada pin-pin data. Menggunakan bantuan komponen TcheckBox, Anda bisa mengganti dengan komponen lainnya selama bisa digunakan untuk proses toggle (ON-OFF secara bergantian). Status dari LED langsung ditunjukkan pada komponen tersebut. LAMPU SAAT MATI
Function Inp32(alamat:word):byte; stdcall; external 'inpout32.dll';
Procedure Out32(alamat:word;data:byte); stdcall; external 'inpout32.dll';
Kedua tinggal penggunaan fungsi dan prosedur tersebut secara biasa,
Menggerakkan Peralatan…
54
POLITEKNOSAINS VOL. IX NO. 1
LAMPU SAAT HIDUP
Maret 2010
procedure TForm1.Button1Click(Sender: TObject); begin Close; end; Contoh 2
procedure TForm1.CheckBox1Click(Sender: TObject);
Contoh 2 ini untuk menyalakan lampu nyala geser kanan nyala geser kiri dengan animasi LED tampilan pada form mengikuti sesuai dengan Nnyala LED yang sebenarnya dengan mengatur kecepatan geser melalui scroll box.
begin if checkbox1.Checked then begin out32($378,$ff); CheckBox1.Caption := 'Lampu ON'; end else begin out32($378,0); CheckBox1.Caption := 'Lampu OFF'; end; end;
Menggerakkan Peralatan…
55
POLITEKNOSAINS VOL. IX NO. 1
procedure TForm1.CheckBox1Click(Sender: TObject);
Maret 2010
begin Out32($378,$02);
begin
dsLed2.LedOn dsLed2.LedOn;
:=
not
dsLed1.LedOn dsLed1.LedOn;
:=
not
dsLed3.LedOn dsLed3.LedOn;
:=
not
dsLed2.LedOn dsLed2.LedOn;
:=
not
dsLed4.LedOn dsLed4.LedOn;
:=
not
dsLed3.LedOn dsLed3.LedOn;
:=
not
if CheckBox1.checked then timer1.enabled := true else timer1.enabled := false; CheckBox1.Caption ON';
:=
end; 'Lampu
2: begin
end; Out32($378,$04);
procedure TForm1.Timer1Timer(Sender: TObject); Var j:integer;
end;
begin
3:
j:= i mod 16;
begin
case j of
Out32($378,$08);
0: begin Out32($378,$01); dsLed1.LedOn dsLed1.LedOn;
:=
end; 1:
Menggerakkan Peralatan…
not
end; 4: begin
56
POLITEKNOSAINS VOL. IX NO. 1
Out32($378,$10); dsLed5.LedOn dsLed5.LedOn;
:=
dsLed4.LedOn dsLed4.LedOn;
:=
Maret 2010
dsLed8.LedOn dsLed8.LedOn;
:=
not
dsLed7.LedOn dsLed7.LedOn;
:=
not
dsLed7.LedOn dsLed7.LedOn;
:=
not
dsLed8.LedOn dsLed8.LedOn;
:=
not
dsLed6.LedOn dsLed6.LedOn;
:=
not
dsLed7.LedOn dsLed7.LedOn;
:=
not
:=
not
not not end;
end;
8:
5:
begin
begin
Out32($378,$40);
Out32($378,$20); dsLed6.LedOn dsLed6.LedOn;
:=
dsLed5.LedOn dsLed5.LedOn;
:=
not not end;
end;
9:
6:
begin
begin
Out32($378,$20);
Out32($378,$40); dsLed7.LedOn dsLed7.LedOn;
:=
dsLed6.LedOn dsLed6.LedOn;
:=
end; 7: begin Out32($378,$80);
Menggerakkan Peralatan…
not not end; 10: begin Out32($378,$10); dsLed5.LedOn dsLed5.LedOn;
57
POLITEKNOSAINS VOL. IX NO. 1
dsLed6.LedOn dsLed6.LedOn;
:=
not
end;
Maret 2010
dsLed3.LedOn dsLed3.LedOn;
:=
not
end;
11:
14:
begin
begin
Out32($378,$08);
Out32($378,$01);
dsLed4.LedOn dsLed4.LedOn;
:=
not
dsLed1.LedOn dsLed1.LedOn;
:=
not
dsLed5.LedOn dsLed5.LedOn;
:=
not
dsLed2.LedOn dsLed2.LedOn;
:=
not
:=
not
end;
end;
12:
15:
begin
begin
Out32($378,$04);
Out32($378,$00);
dsLed3.LedOn dsLed3.LedOn;
:=
not
dsLed4.LedOn dsLed4.LedOn;
:=
not
dsLed1.LedOn dsLed1.LedOn; end; end;
end; i:=i+1; end; 13: begin procedure TForm1.ScrollBar1Change(Sender: TObject);
Out32($378,$02); dsLed2.LedOn dsLed2.LedOn;
:=
Menggerakkan Peralatan…
not begin
58
POLITEKNOSAINS VOL. IX NO. 1
Maret 2010
Timer1.Interval:= scrollbar1.position; Edit1.Text:=inttostr(scrollbar1.positi on); end;
procedure TForm1.Button1Click(Sender: TObject); begin close; end; Contoh 3 Contoh 3 untuk menggerakkan Motorr DC dengan gerakan Putar kanan Putar kiri sesuai Button clik.
procedure TForm1.Button1Click(Sender: TObject); begin Out32($378,$01); Button1.Caption:='MUTER NENGEN'; end;
Menggerakkan Peralatan…
59
POLITEKNOSAINS VOL. IX NO. 1
procedure TForm1.Button2Click(Sender: TObject); begin
Maret 2010
Contoh 4. Ini untuk menggerakkan Motor Stepper gerak arah Kanan – kiri sesuai dengan clik yang diinginkan dan bias diatur kecepatannya.
Out32($378,$02); Button2.Caption:='MUTER NGIWO'; end;
procedure TForm1.Button3Click(Sender: TObject); begin Out32($378,$00); Button3.Caption:='MANDEK'; end;
procedure TForm1.Button4Click(Sender: TObject);
procedure TForm1.Timer1Timer(Sender: TObject);
begin
var j:integer;
Close;
begin
end;
j:= i mod 8; case j of
Contoh 4.
Menggerakkan Peralatan…
0:begin
60
POLITEKNOSAINS VOL. IX NO. 1
Maret 2010
Out32($378,$01);
end;
end;
end;
1:begin Out32($378,$03);
i:=i+1; end;
end; 2:begin Out32($378,$02); end; 3:begin Out32($378,$06);
procedure TForm1.Timer1Timer(Sender: TObject); var j:integer; begin j:= i mod 8;
end;
case j of
4:begin
0:begin
Out32($378,$04);
Out32($378,$01);
end;
end;
5:begin
1:begin
Out32($378,$0C);
Out32($378,$03);
end;
end;
6:begin
2:begin
Out32($378,$08);
Out32($378,$02);
end;
end;
7:begin
3:begin
Out32($378,$09);
Menggerakkan Peralatan…
Out32($378,$06);
61
POLITEKNOSAINS VOL. IX NO. 1
end; 4:begin Out32($378,$04); end; 5:begin
Maret 2010
Out32($378,$f0); end; procedure TForm1.CheckBox1Click(Sender: TObject); begin
Out32($378,$0C);
if CheckBox1.checked then
end;
timer1.enabled := true
6:begin Out32($378,$08);
else timer1.enabled := false; CheckBox1.Caption KANAN';
:=
'PUTAR
end; end; 7:begin Out32($378,$09);
procedure TForm1.Button4Click(Sender: TObject);
end; begin end; stop; i:=i+1; timer1.enabled:=false; end; timer2.enabled:=false; procedure Reset; end; begin Out32($378,$00);
procedure TForm1.Button5Click(Sender: TObject);
end; begin procedure stop; Close; begin end;
Menggerakkan Peralatan…
62
POLITEKNOSAINS VOL. IX NO. 1
Maret 2010
procedure TForm1.ScrollBar1Change(Sender: TObject);
case d of
begin
0:begin Out32($378,$09);
Timer1.Interval:= scrollbar1.position;
end; Edit1.Text:=inttostr(scrollbar1.positi on);
1:begin Out32($378,$08);
Timer2.Interval:= scrollbar1.position;
end; 2:begin
end; procedure TForm1.CheckBox2Click(Sender: TObject);
Out32($378,$0C); end; 3:begin
begin if CheckBox2.checked then
Out32($378,$04);
timer2.enabled := true
end; 4:begin
else timer2.enabled := false; CheckBox2.Caption KIRI';
:=
'PUTAR
end; procedure TForm1.Timer2Timer(Sender: TObject); var d:integer; begin
Out32($378,$06); end; 5:begin Out32($378,$02); end; 6:begin Out32($378,$03);
d:= i mod 8;
Menggerakkan Peralatan…
63
POLITEKNOSAINS VOL. IX NO. 1
Maret 2010
end; 7:begin Out32($378,$01); end; end; i:=i+1; end; procedure TForm1.Button1Click(Sender: TObject); begin Reset; timer1.enabled:=false; timer2.enabled:=false; end; end.
Referensi
www.logix4u.net
Menggerakkan Peralatan…
64