DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.2
Step by Step Interfacing Port Paralel dan Port Serial dengan Delphi 7
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.3
Persembahan
Kupersembahkan buku ini untuk : Ayah dan Ibu tercinta
Kakak dan adik
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.4
Kata Pengantar
Alhamdulillahi Robbil’alamin, Penulis mengucap syukur ke hadirat Allah SWT yang telah memberikan kemudahan kepada Penulis untuk menyelesaikan buku ini, pada dasarnya buku ini merupakan kumpulan pemrograman teknik interfacing port parallel dan port serial dengan Delphi yang pernah penulis peroleh baik dari bangku kuliah maupun dari pengalaman penulis di luar kuliah. Teknik interfacing yang ditulis pada buku ini adalah teknik termudah yang pernah penulis pelajari selama belajar teknik interfacing port parallel dan port serial dengan Delphi.
Buku ini ditujukan untuk programmer pemula dengan konsep tutorial step by step dengan harapan akan mempermudah proses belajar. Teori penunjang diberikan secara ringkas serta padat, diharapkan lebih mudah untuk difahami oleh pemula.
Penulis menyadari sepenuhnya bahwa pasti ada kekurangan dalam penulisan buku ini, untuk itu penulis mengharapkan kritik dan saran yang membangun dari pembaca buku ini, testimony dan
sebagainya dapat dikirim ke e-mail [email protected]
Sekian sedikit kata pengantar dari penulis semoga buku ini mampu memberikan manfaat kepada pembaca sekalian
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .5 PERSIAPAN AWAL Software Borland Delphi 7
Bascom AVR (Include CD Bundle) Extreem Burner (Include CD Bundle)
Komponen SmallPort, komponen Comport (Include CD Bundle)
Hardware
Personal Computer dengan System Operasi Windows , Microsoft Windows 98, Microsoft Widows 2000 dan Windows XP(disarankan XP SP 1,2,3) + minimal Procesor Intel Pentium 3, harus ada Port Paralel /LPT/DB25 dan Port Serial/Com/DB 9
Rangkaian driver relay untuk control peralatan listrik 220 volt
( dapat di beli di www.taufikadisanjaya.blogspot.com)
Sistem Minimum Mikrokontroller AT Mega 16 atau AT Mega 8535 + RS 232 Converter ( dapat di beli di www.taufikadisanjaya.blogspot.com)
Rangkaian sensor suhu ( dapat di beli di
www.taufikadisanjaya.blogspot.com)
Downloader (disarankan USB Downloader) ( dapat di beli di www.taufikadisanjaya.blogspot.com)
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .6 BAGIAN I PENGENALAN DELHI 7.0
Sekilas tentang Delphi 7.0
Borland Delphi sering disebut juga dengan Delphi. Delphi adalah sebuah perangkat lunak (software) yang digunakan untuk membuat aplikasi berbasis antarmuka grafis di lingkungan sistem operasi Microsoft Windows. Delphi dibuat oleh perusahaan Borland Software Corporation. Delphi telah ada sejak 1993 dan versi yang saya gunakan dalam pembuatan aplikasi di buku ini adalah Delphi versi 7.0 . Bahasa pemograman yang digunakan Delphi adalah bahasa Pascal.
IDE Delphi 7
Integrated Development Environment (IDE) adalah area kerja yang dipergunakan untuk membuat aplikasi mulai dari mendesain antarmuka atau tampilan, menulis source code program (coding),
menjalankan program (running), mendebug, mengkompilasi
(compile), dan menyebarluaskan aplikasi yang dibuat (deploy). Tampilan IDE Delphi adalah sebagai berikut:
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.7
Gambar. IDE Delphi 7 Menu Bar dan Tool Bar
Menu bar merupakan tempat menggulung (pull-down) menu – menu perintah. Sebuah menu terdiri dari beberapa daftar perintah (menu command). Disebelah kiri masing – masing perintah terdapat sebuah ikon yang menggambarkan fungsinya.
Tool Bar adalah sekumpulan tombol yang dapat digunakan untuk melakukan suatu perintah. Fungsi Tool Bar sama dengan Menu Bar, namun keunggulannya adalah cepat diakses untuk menjalankan perintah tertentu.
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.8
Gambar. Menu bar serta Tool Bar Delphi
Component Palette
Component Palette tempat kumpulan komponen Delphi Komponen Delphi dapat dibagi menjadi dua jenis, yaitu komponen visual dan komponen non visual. Komponen visual adalah kokmponen yang terlihat pada saat proses mendesain aplikasi maupun setelah aplikasi dijalankan. Sebagai contoh komponen Button dari Componet Pallete Standard. Sedangkan komponen non visual adalah komponen yang hanya terlihat pada saat proses mendesain aplikasi, namun tidak dapat terlihat pada saat aplikasi dijalankan. Sebagai contoh komponen Timer dari Componet Pallete System
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.9
Form Designer
Form Designer , lebih umum disebut dengan Form adalah tempat meletakkan komponen – komponen yang diambil dari Component Palette saat men-desain antarmuka / tampilan aplikasi. Secara umum ketika anda memulai menjalankan Delphi maka akan tampil form secara otomatis seperti gambar berikut:
Gambar . Form Designer
CodeEditor
Code Editor adalah tempat untuk menuliskan Source Code
Aplikasi yang akan dibuat. Secara default Code Editor
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.1
0
Gambar. Code Editor Object Inspector
Fungsi atau kegunaan Object Inspector adalah untuk
mengubah nilai properti komponen terpilih yang di dalam Form. Ada dua bagian utama pada Object Inspector, yaitu properties dan event. Pada setiap bagian tersebut terdapat dua buah kolom. Kolom disebelah kiri pada tab properties merupakan nama – nama properti dan kolom disebelah kanan adalah nilai – nilai yang diisikan pada properties. Sedangkan pada tab event, Kolom disebelah kiri merupakan nama – nama event dan kolom disebelah kanan adalah nilai – nilai yang diisikan event, umumnya event terkait dengan kondisi dimana source code harus dijalankan, semisal event Form Create berarti source code dijalankan ketika form dibuat.
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.1
1
Gambar. Object Inspector (Tab Properties dan Tab Events) Object TreeView
Object TreeView berfungsi untuk menampilkan daftar komponen yang digunakan pada saat membuat aplikasi. Komponen – komponen ditampilkan dengan struktur pohon.
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.1
2
Gambar. Object Tree View Komponen Delphi
Berikut ini adalah beberapa komponen yang sering digunakan saat pembuatan aplikasi dari Component Pallete Standard:
Tabel. Beberapa komponen dari Component Pallete Standard Component Pallete Standard
Ikon Nama Keterangan
Frames Membuka sebuah dialog
box yang menampilkan
daftar frames yang
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.1
3
Label Menampilkan teks yang
tidak dapat diubah oleh user
Edit Menampilkan sebaris teks
yang dapat diisi oleh user
Memo
Menampilkan sebuah area
pengeditan dimana user
dapat memasukkan atau
memodifikasi beberapa
baris teks didalamnya
Button Untuk membuat tombol
tekan yang akan diisi
dengan suatu aksi tertentu
Listbox Menampilkan daftar pilihan
yang dapat digulung (scroll)
Scrollbar
Dapat digunakan untuk meluaskan area pandang di form
Radiogroup Digunakan untuk membuat
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .1 4 File-file Delphi
Sebuah proyek Delphi akan terdiri dari berberapa file. Beberapa file berfungsi untuk menyimpan source code program dan ada file lain yang menyimpan kode binari, gambar dan sebagainya. Karena setiap aplikasi terdiri dari beberapa file. Sangat disarankan agar menyimpan sebuah aplikasi pada sebuah folder agar ketika akan dilakukan perubahan terhadap aplikasi tersebut di computer lain, semua file yang ada tersedia dalam satu buah folder.
Berbagai jenis file yang dibuat saat membangun aplikasi menggunakan Ddelphi adalah sebagai berikut :
Tabel.beberapa file dalam membangun aplikasi dengan Delphi
Ekstensi File Keterangan
.dpr File-file proyek
.dfm File-file form
.pas File-file unit
.dpk File-file paket
.res File-file Resource
.cfg File-file konfigurasi proyek
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.1
5
.dcu File unit yang terkompilasi
.exe File yang dapat eksekusi
.dsk Pengaturan desktop
.~* File-file cadangan (backup)misal .~pas
.~dpr
Buku ini tidak membahas secara terperinci mengenai Delphi, namun lebih ke arah Tutorial step by step pembuatan Aplikasi untuk pengaksesan Port Paralel dan Serial pada Komputer (PC) dengan menggunakan Delphi. Proses pengaksesan Port Paralel dilakukan dengan komponen SmallPort, komponen ini merupakan tambahan yang harus di Install terlebih dahulu, sedangkan pengaksesan Port Paralel dilakukan dengan komponen ComPort, komponen ini juga merupakan tambahan (bukan bawaan Delphi).
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .1 6 BAGIAN II
PEMROGRAMAN PORT PARALEL DENGAN DELPHI7.0
Port Paralel
Penggunaan utama Port paralel / LPT adalah untuk menghubungkan printer ke komputer dan dirancang khusus untuk tujuan ini. Sehingga sering juga disebut port printer . Konektor port paralel pada PC adalah DB25.
Port Paralel / Port LPT meskipun sudah banyak ditinggalkan penggunaanya, masih dipergunakan oleh sebagian kalangan yang ingin mempelajari transmisi data secara parallel. Kalangan akademis (pelajar dan mahasiswa) masih mempelajari komunikasi data parallel sebagai saranaemanambah ilmu pengetahuan.
Standar IEEE 1284 (1994) mendefinisikan lima mode transfer data untuk paralel port, yakni:
1) Compatibility Mode 2) Nibble Mode
3) Byte Mode 4) EPP 5) ECP
Standar pin-pin dari perangkat keras untuk konektor DB25 adalah sebagai berikut.
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.1
7
Gambar. Port Paralel / DB 25
Berikut ini adalah tabel penjelasan mengenaipin-pin pada konektor parallel port DB 25.
Tabel1. Nama pin dari konektor parallel port DB 25.
No. Pin
Nama Sinyal Direction Register Komple-men
1 Strobe Out Control bit 0 Ya
2 Data 0 In/Out Data bit 0 Tidak
3 Data 1 In/Out Data bit 1 Tidak
4 Data 2 In/Out Data bit 2 Tidak
5 Data 3 In/Out Data bit 3 Tidak
6 Data 4 In/Out Data bit 4 Tidak
7 Data 5 In/Out Data bit 5 Tidak
8 Data 6 In/Out Data bit 6 Tidak
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.1
8
Untuk lebih jelasnya setiap sinyal pada parallel Port dapat dijabarkan sebagai berikut :
Strobe/Stb:
Sinyal Strobe merupakan fungsi sinyal input pada printer. Saluran ini diaktifkan komputer jika ia akan meneruskan data ke printer.
Data 0 sampai data 7 :
Sinyal data merupakan sinyal input pada printer. Sinyal data disinkronkan (diserempakkan) oleh pulsa strobe.
Acknowledge/Ack :
10 Ack In Status bit 6 Tidak
11 Busy In Status bit 7 Ya
12 Paper
Out/Paper End
In Status bit 5 Tidak
13 Select In Status bit 4 Tidak
14 Auto-Linefeed Out Control bit 1 Ya
15 Error/Fault In Status bit 3 Tidak
16 Initialize Out Control bit 2 Tidak
17
Select- Printer/Select-in
Out Control bit 3 Ya
18-25
-DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.1
9
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”.
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.
Paper End/PE :
Sinyal paper end merupakan sinyal output dari printer. Sinyal ini akan terus aktif sampai kertas baru dipasang lagi.
Select/Slt :
Sinyal select merupakan sinyal output dari printer. Dengan sinyal ini printer memberitahu bahwa ia sudah terpilih dan dalam keadaan aktif.
Auto Feed :
Jika sinyal ini diaktifkan, printer pada akhir setiap baris akan pindah ke baris selanjutnya secara otomatis.
Error
Keluaran ini aktif jika ada gangguan atau printer tidak tersambung atau tidak menyala
Reset
Dengan saluran ini printer kembali ke keadaan awal Input Select
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.2
0
Pemilihan printer sebagai piranti DTE (Data Terminal Equipment) berlangsung pada saluran sinyal ini.
Alamat-alamat register pada Port Paralel
Alamat untuk masing-masing register dalam Port Paralel LPT 1 adalah sbb.
Tabel . Alamat register port paralel.
Register LPT1
data register(base address + 0) $378
status register(base address + 1) $379
control register(base address + 2) $37A
Small Port
Komponen Smallport pada Delphi 7.0 berfungsi sebagai komponen untuk menulis serta membaca data pada port parallel pada PC. Biasanya pemanfaatan pembacaan data pada port parallel adalah sebagai sarana untuk melakukan interfacing dengan peralatan diluar PC yang dikoneksikan ke PC melalui Port Paralel. Komponen ini dibuat oleh Alexander Weitzman yang bisa dihubungi melalui alamat
email [email protected].
Langkah – langkah Instalasi Komponen Small Port adalah sebagai berikut :
1. Buka Delphi
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.2
1
Gambar. ekstraksi file smallport14.zip
3. Buka folder smallport14 (hasil ekstraksi), lalu copy file smallport.vxd dan smport.sys lanjut ke langkah 4.
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.2
2
4. PASTIKAN : paste kan file smallport.vxd dan smport.sys ke directory C:\WINDOWS\system32\drivers
Gambar. Paste file smallport.vxd dan smport.sys
5. Buka Delphi 7, start Borland Delphi7.0 Delphi7.0 sehingga tampilan di monitor menjadi sebagai berikut:
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.2
3
6. Menuju langkah penting dalam proses instalasi
7. PENTING : copykan folder hasil extraksi (folder smport14) ke C:\Program Files\Borland\Delphi7\Lib
Gambar . Paste folder smallport14
8. Kembali ke Delphi, open page tool environtment option klik pada page library
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.2
4
Gambar . Menuju source path smallport14
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.2
5
Gambar . mengarahkan browsing path
10. Setelah tombol kik di sini pada gambar di atas klik, akan muncul otak dialog directories sebagai berikut:
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.2
6
Gambar . kotak dialog directories
11. Pada gambar diatas, lik pada tombol yang dilingkari merah,
selanjutnya arahkan ke directory C:\Program
Files\Borland\Delphi7\Lib\smport14 lalu klik OK, gambarnya sebagai berikut :
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.2
7
Gambar . Mengarahkan directory smallport 14. 12. Buka page Component Instal component :
Gambar. Page Component Akan muncul sebagai berikut :
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.2
8
Gambar. Kotak dialog install component
13. Pada gambar di atas, klik tombol browse di sebelah Unit file name
Gambar 12. kotak dialog unit file name
14. Pada gambar di atas, buka folder smport 14 lalu double klik pada Smallport.pas
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.2
9
Gambar. memilih smallport.pas
15. Akan muncul kotak dialog seperti di bawah ini, selanjutnya klik OK
Gambar 14. Menginstall komponen smallport 16. Akan muncul kotak dialog sebagai berikut :
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.3
0
Gambar. kotak dialog konformasi instalasi komponen smallport 17. Jika komponen smallport berhasil di install, maka akan
muncul kotak informasi sebagai berikut :
Gambar. kotak informasi suksesnya proses instalasi
18. Selajutnya silakan buka component pallete System , anda akan mendapati sebuah komponen bernama Small Port telah terinstall pada komponen pallete tersebut :
Gambar. Komponen Smallport Pada Component Pallete System
Aplikasi pengubah data Biner (8bit) ke Decimal dan Hexa Decimal
Aplikasi ini berguna untuk mengubah data biner 8 bit ke dalam bentuk lain yakni decimal dan hexadecimal, Aplikasi ini dipergunakan untuk mempermudah konversi bilangan biner untuk ditulis (write) ke Port parallel yang tidak memungkinkan untuk
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.3
1
menulis data dalam format tipe bit, data yang dapat di tulis ke Port Paralel adalah data bertipe Byte,Word, serta DWord.
Untuk dapat membuat Aplikasi Konverter bilangan Biner ke decimal dan hexa decimal, masukkan komponen di dalam tabel berikut ini ke dalam Form1:
Tabel . Daftar komponen Aplikasi Konverter bilangan Biner ke decimal dan hexa decimal
No Komponen Properti Nilai
Form1 Caption BINER TO DEC
AND HEXA
GroupBox1 Caption BINER
GroupBox1 Caption Hexa + Decimal
Label1 Caption D0 Label2 Caption D1 Label3 Caption D2 Label4 Caption D3 Label5 Caption D4 Label6 Caption D5 Label7 Caption D6 Label8 Caption D7
Label9 Caption Hexa
Label10 Caption Decimal
Edit1 Text 1
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.3
2
Setelah itu susun tampilan menjadi :
Edit3 Text 1 Edit4 Text 1 Edit5 Text 1 Edit6 Text 1 Edit7 Text 1 Edit8 Text 1
Edit9 Text Kosongkan
Edit10 Text Kosongkan
Button1 Caption Low
Button2 Caption Low
Button3 Caption Low
Button4 Caption Low
Button5 Caption Low
Button6 Caption Low
Button7 Caption Low
Button8 Caption Low
Button9 Caption CONVERT HEXA
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.3
3
Gambar. Desain Tampilan Aplikasi Konverter bilangan Biner ke decimal dan hexa decimal
Setelah selesai penyusunan desain tampilan Aplikasi Konverter bilangan Biner ke decimal dan hexa decimal, deklarasikan sebuah variable global dengan nama value dengan tipe integer sebagai mana gambar di bawah ini :
Gambar . Deklarasi variable Global.
Ketikkan Source Code sesuai dengan tabel di bawah ini: Tabel. Source Code Aplikasi Konverter bilangan Biner ke decimal dan
hexa decimal Nama
Komponen
Event SOURCE CODE
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .3 4 if value = 1 then begin value:=0; button1.Caption:='High'; edit1.Text:=inttostr(value); end else if value = 0 then begin value:=1; edit1.Text:=inttostr(value); button1.Caption:='Low'; end;
Button2 OnClick value:=strtoint(edit2.Text); if value = 1 then begin value:=0; button2.Caption:='High'; edit2.Text:=inttostr(value); end else if value = 0 then begin value:=1; edit2.Text:=inttostr(value);
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .3 5 button2.Caption:='Low'; end;
Button3 OnClick value:=strtoint(edit3.Text); if value = 1 then begin value:=0; button3.Caption:='High'; edit3.Text:=inttostr(value); end else if value = 0 then begin value:=1; edit3.Text:=inttostr(value); button3.Caption:='Low'; end;
Button4 OnClick value:=strtoint(edit4.Text); if value = 1 then begin value:=0; button4.Caption:='High'; edit4.Text:=inttostr(value); end else if value = 0 then
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .3 6 begin value:=1; edit4.Text:=inttostr(value); button4.Caption:='Low'; end;
Button5 OnClick value:=strtoint(edit5.Text); if value = 1 then begin value:=0; button5.Caption:='High'; edit5.Text:=inttostr(value); end else if value = 0 then begin value:=1; edit5.Text:=inttostr(value); button5.Caption:='Low'; end;
Button6 OnClick value:=strtoint(edit6.Text); if value = 1 then
begin value:=0;
button6.Caption:='High'; edit6.Text:=inttostr(value);
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .3 7 end else if value = 0 then begin value:=1; edit6.Text:=inttostr(value); button6.Caption:='Low'; end;
Button7 OnClick value:=strtoint(edit7.Text); if value = 1 then begin value:=0; button7.Caption:='High'; edit7.Text:=inttostr(value); end else if value = 0 then begin value:=1; edit7.Text:=inttostr(value); button7.Caption:='Low'; end;
Button8 OnClick value:=strtoint(edit8.Text); if value = 1 then
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .3 8 value:=0; button8.Caption:='High'; edit8.Text:=inttostr(value); end else if value = 0 then begin value:=1; edit8.Text:=inttostr(value); button8.Caption:='Low'; end;
Button9 OnClick var
bit1,bit2,bit3,bit4,bit5,bit6,bit7,bit8,d ec1,dec2,dec3,dec4,dec5,dec6,dec7,d ec8,dec_tot:integer;
begin
bit1:= strtoint(Edit1.text);
if bit1=0 then dec1:=0 else
dec1:=1;
bit2:= strtoint(Edit2.text);
if bit2=0 then dec2:=0 else dec2:=2; bit3:= strtoint(Edit3.text);
if bit3=0 then dec3:=0 else
dec3:=4;
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.3
9
if bit4=0 then dec4:=0 else
dec4:=8;
bit5:= strtoint(Edit5.text);
if bit5=0 then dec5:=0 else
dec5:=16;
bit6:= strtoint(Edit6.text);
if bit6=0 then dec6:=0 else
dec6:=32;
bit7:= strtoint(Edit7.text);
if bit7=0 then dec7:=0 else
dec7:=64;
bit8:= strtoint(Edit8.text);
if bit8=0 then dec8:=0 else
dec8:=128;
dec_tot:=dec1+dec2+dec3+dec4+dec 5+dec6+dec7+dec8;
edit10.Text:=inttostr(dec_tot); Button10 OnClick var str1,str2,hexa : string;
begin
str1 :=Edit4.Text + Edit3.Text + Edit2.Text + Edit1.Text;
if (str1 = '0000')then hexa :='0'; if (str1 = '0001')then hexa :='1';
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .4 0 if (str1 = '0010')then hexa :='2'; if (str1 = '0011')then hexa :='3'; if (str1 = '0100')then hexa :='4'; if (str1 = '0101')then hexa :='5'; if (str1 = '0110')then hexa :='6'; if (str1 = '0111')then hexa :='7'; if (str1 = '1000')then hexa :='8'; if (str1 = '1001')then hexa :='9'; if (str1 = '1010')then hexa :='A'; if (str1 = '1011')then hexa :='B'; if (str1 = '1100')then hexa :='C'; if (str1 = '1101')then hexa :='D'; if (str1 = '1110')then hexa :='E'; if (str1 = '1111')then hexa :='F'; str2 := Edit8.Text + Edit7.Text + Edit6.Text + Edit5.Text ; if (str2 = '0000')then hexa :='0'+hexa; if (str2 = '0001')then hexa :='1'+hexa; if (str2 = '0010')then hexa :='2'+hexa; if (str2 = '0011')then hexa :='3'+hexa; if (str2 = '0100')then hexa
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .4 1 :='4'+hexa; if (str2 = '0101')then hexa :='5'+hexa; if (str2 = '0110')then hexa :='6'+hexa; if (str2 = '0111')then hexa :='7'+hexa; if (str2 = '1000')then hexa :='8'+hexa; if (str2 = '1001')then hexa :='9'+hexa; if (str2 = '1010')then hexa :='A'+hexa; if (str2 = '1011')then hexa :='B'+hexa; if (str2 = '1100')then hexa :='C'+hexa; if (str2 = '1101')then hexa :='D'+hexa; if (str2 = '1110')then hexa :='E'+hexa; if (str2 = '1111')then hexa :='F'+hexa; Edit9.text :=hexa; end;
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.4
2
Setelah itu lakukan eksekusi/run, berikut ini adalah tampilan pengujian Aplikasi Konverter bilangan Biner ke decimal dan hexa decimal yang dibuat:
Gambar. Konversi biner ke Hexa decimal
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.4
3
Membuat Aplikasi untuk mengakses Port Paralel Delphi (Pada Port Data (Pin D2-D9) / 378 )
1. Buka Delphi 7.0
2. Masukkan komponen sebagai berikut:
No Komponen Properti Nilai
1 Shape1 Name ShpLED1
Shape stCircle Height 41 Width 41 Brush Color clWhite Brush Style bsSolid
2 Shape2 Name ShpLED2
Shape stCircle Height 41 Width 41 Brush Color clWhite Brush Style bsSolid
3 Shape3 Name ShpLED3
Shape stCircle
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .4 4 Width 41 Brush Color clWhite Brush Style bsSolid
4 Shape4 Name ShpLED4
Shape stCircle Height 41 Width 41 Brush Color clWhite Brush Style bsSolid
5 Shape5 Name ShpLED5
Shape stCircle Height 41 Width 41 Brush Color clWhite Brush Style bsSolid
6 Shape6 Name ShpLED6
Shape stCircle
Height 41
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .4 5 Brush Color clWhite Brush Style bsSolid
7 Shape7 Name ShpLED7
Shape stCircle Height 41 Width 41 Brush Color clWhite Brush Style bsSolid
8 Shape8 Name ShpLED8
Shape stCircle Height 41 Width 41 Brush Color clWhite Brush Style bsSolid
9 EditText1 Name EdLED1
Text Kosongkan
10 EditText2 Name EdLED2
Text Kosongkan
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .4 6 Text Kosongkan
12 EditText4 Name EdLED4
Text Kosongkan
13 EditText5 Name EdLED5
Text Kosongkan
14 EditText6 Name EdLED6
Text Kosongkan
15 EditText7 Name EdLED7
Text Kosongkan
16 EditText8 Name EdLED8
Text Kosongkan
17 Button1 Name BtnNyalaLED1
Caption NyalakanLED1
18 Button2 Name BtnNyalaLED2
Caption NyalakanLED2
19 Button3 Name BtnNyalaLED3
Caption NyalakanLED3
20 Button4 Name BtnNyalaLED4
Caption NyalakanLED4
21 Button5 Name BtnNyalaLED5
Caption NyalakanLED5
22 Button6 Name BtnNyalaLED6
Caption NyalakanLED6
23 Button7 Name BtnNyalaLED7
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.4
7
24 Button8 Name BtnNyalaLED8
Caption NyalakanLED8
25 Button9 Name BtnMatiLED1
Caption MatikanLED1
26 Button10 Name BtnMatiLED2
Caption MatikanLED2
27 Button11 Name BtnMatiLED3
Caption MatikanLED3
28 Button12 Name BtnMatiLED4
Caption MatikanLED4
29 Button13 Name BtnMatiLED5
Caption MatikanLED5
30 Button14 Name BtnMatiLED6
Caption MatikanLED6
31 Button15 Name BtnMatiLED7
Caption MatikanLED7
32 Button16 Name BtnMatiLED8
Caption MatikanLED8
33 Button17 Name BtnOpenPort
Caption Open Port
34 Button18 Name BtnClosePort
Caption CloseProgram
35 SmallPort1 Name SmPort1
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.4
8
Gambar 1. Tampilan Aplikasi yang akan dibuat
Sebelum membuat listing Aplikasi(source code) kita tentukan dahulu 2 buah variable yang akan dipergunakan yaitu data dan baru, dengan pengertian sebagai berikut:
data adalah nilai yang akan dibaca dari port parallel berupa data 8 bit (1byte)
baru adalah nilai yang akan ditulis ke port parallel setelah dilakukan “modifikasi” dengan logika and atau or untuk melakukan penge-set-an bit atau peng-clear-an bit data yang ditulis berupa data 8 bit (1byte) Penulisan penentuan variable ini dilakukan di bawah tulisan
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.4
9
Form1: TForm1; Hasinya adalah sebagai berikut:
Gambar . Pendeklarasian variabel
NB :
Set Bit dapat dilakukan dengan mengoperasikan logika OR kepada data masuk dengan logika bernilai 1
Sebagai contoh
Data = 11111110 diperasikan dengan logika OR terhadap data 11111110 , maka
Menjadi 11111110 OR 11111111 hasilnya 1111 1111 Haslinya terjadi Set Bit terhadap data terakhir.
Clear Bit dapat dilakukan dengan mengoperasikan logika AND kepada data masuk dengan logika bernilai 0
Sebagai contoh
Data = 11111111 diperasikan dengan logika AND , terhadap data 1111 1110 maka
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.5
0
Haslinya terjadi Clear Bit terhadap data terakhir
Pada pembahasan di atas, setiap data masih ditampilkan dalam bentuk biner (0 dan 1), pada penulisan Source Code, nantinya data harus di konversi terlebih dahulu ke dalam Format Hexadecimal,atau desimal jika anda belum memahami cara konversi data biner ke data decimal, silakan buka aplikasi yang ada pada CD bundle pada Folder Konversi Data Biner ke Hexa
Selanjutnya Proses membuat source code program secara menyeluruh agar Aplikasi dapat digunakan.:
Ketikkan Source code di bawah ini sesuai dengan masing – masing komponen yang dimaksud:
Tabel . Source Code Aplikasi Akses Port Paralel NO. NAMA
KOMPONEN
SOURCE CODE
1 BtnMatiLED1 data := SmPort1.ReadByte($378);
baru := data AND 254;
SmPort1.WriteByte($378,baru); ShpLED1.Brush.Color := clBlack; EdLED1.Text:='OFF';
2 BtnMatiLED2 data := SmPort1.ReadByte($378);
baru := data AND 253;
SmPort1.WriteByte($378,baru); ShpLED2.Brush.Color := clBlack; EdLED2.Text:='OFF';
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.5
1
baru := data AND 251; smport1.WriteByte($378,baru); ShpLED3.Brush.Color := clBlack; EdLED3.Text:='OFF';
4 BtnMatiLED4 data := SmPort1.ReadByte($378);
baru := data AND 247 ; SmPort1.WriteByte($378,baru); ShpLED4.Brush.Color := clBlack; EdLED4.Text:='OFF';
5 BtnMatiLED5 data := SmPort1.ReadByte($378);
baru := data AND 239;
SmPort1.WriteByte($378,baru); ShpLED5.Brush.Color := clBlack; EdLED5.Text:='OFF';
6 BtnMatiLED6 data := SmPort1.ReadByte($378);
baru := data AND 223 ; SmPort1.WriteByte($378,baru); ShpLED6.Brush.Color := clBlack; EdLED6.Text:='OFF';
7 BtnMatiLED7 data := SmPort1.ReadByte($378);
baru := data AND 191;
SmPort1.WriteByte($378,baru); ShpLED7.Brush.Color := clBlack; EdLED7.Text:='OFF';
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.5
2
baru := data AND 127;
SmPort1.WriteByte($378,baru); ShpLED8.Brush.Color := clBlack; EdLED8.Text:='OFF';
9 BtnNyalaLED1 data := SmPort1.ReadByte($378);
baru := data or 1;
SmPort1.WriteByte($378,baru); ShpLED1.Brush.Color := clRED; edLED1.Text:='ON';
10 BtnNyalaLED2 data := SmPort1.ReadByte($378);
baru := data or 2;
SmPort1.WriteByte($378,baru); ShpLED2.Brush.Color := clRED; edLED2.Text:='ON';
11 BtnNyalaLED3 data := SmPort1.ReadByte($378);
baru := data or 4;
SmPort1.WriteByte($378,baru); ShpLED3.Brush.Color := clRED; edLED3.Text:='ON';
12 BtnNyalaLED4 data := SmPort1.ReadByte($378);
baru := data or 8;
SmPort1.WriteByte($378,baru); ShpLED4.Brush.Color := clRED; edLED4.Text:='ON';
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .5 3 baru := data or 16; SmPort1.WriteByte($378,baru); ShpLED5.Brush.Color := clRED; edLED5.Text:='ON'
14 BtnNyalaLED6 data := SmPort1.ReadByte($378);
baru := data or 32;
SmPort1.WriteByte($378,baru); ShpLED6.Brush.Color := clRED; edLED6.Text:='ON';
15 BtnNyalaLED7 data := SmPort1.ReadByte($378);
baru := data or 64;
SmPort1.WriteByte($378,baru); ShpLED7.Brush.Color := clRED; edLED7.Text:='ON';
16 BtnNyalaLED8 data := SmPort1.ReadByte($378);
baru := data or 128; SmPort1.WriteByte($378,baru); ShpLED8.Brush.Color := clRED; edLED8.Text:='ON'; 17 BtnOpenPort SmPort1.Opened:=true; 18 BtnCloseProgram Close;
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.5
4
Gambar 3. Hasil eksekusi Aplikasi
Prototype Traffic Light pada Pertigaan Jalan dengan Delphi 7 Prototype ini adalah contoh pemrograman Delphi untuk mengendalikan Traffic light pada perempatan jalan, contoh program pada awalnya tidak di interface kan ke Paralel Port atau pun, hanya internal Delphi tanpa menggunakan hardware apapun. Pada pengembangan selanjutnya Program yang dibuat dapat di interface kan ke miniatur Traffic Light dengan Light Emiting Dioda (LED), baik melalui port parallel PC. Program dibuat sederhana dengan 1 buah Form, Timer, serta 9 buah buah Shape, dilengkapi dengan sebuah tombol Start untuk Memulai menjalankan Aplikasi, berikut ini adalah tampilan Programnya:
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.5
5
Untuk dapat membuat aplikasi tersebut, masukkan komponen-komponen sebagai mana tabel di bawah ini :
Tabel. Komponen dalam pembuatan Prototype Traffic Light pada Pertigaan Jalan
No Komponen Properti Nilai
1 Shape1 Name Red1
Shape stCircle
2 Shape2 Name Yellow1
Shape stCircle
3 Shape3 Name Green1
Shape stCircle
4 Shape4 Name Red2
Shape stCircle
5 Shape5 Name Yellow2
Shape stCircle
6 Shape6 Name Green2
Shape stCircle
7 Shape7 Name Red3
Shape stCircle
8 Shape8 Name Yellow3
Shape stCircle
9 Shape9 Name Green3
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .5 6 10 Label1 Name R1 Caption R1 11 Label2 Name Y1 Caption Y1 12 Label3 Name G1 Caption G1 13 Label4 Name R2 Caption R2 14 Label5 Name Y2 Caption Y2 15 Label6 Name G2 Caption G2 16 Label7 Name R3 Caption R3 17 Label8 Name Y3 Caption Y3 18 Label9 Name G3 Caption G3
19 Button1 Caption START
-DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.5
7
Susunlah komponen yang ada pada tabel di atas sehingga menjadi sebagai berikut :
Gambar1.Desain Tampilan Program Traffic Light Prototype pada pertigaan jalan dengan Delphi
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.5
8
Berikut ini adalah table logika nyala LED pada Prototype Traffic Light dengan Delphi (pertigaan jalan ) yang dibuat:
Tabel. Logika nyala LED pada Prototype Traffic Light pertigaan jalan
No. R1 R2 R3 Y1 Y2 Y3 G1 G2 G3 TIME 1 1 0 1 0 0 0 0 1 0 5s 2 1 0 1 0 1 1 0 0 0 2s 3 1 1 0 0 0 0 0 0 1 5s 4 1 1 0 1 0 1 0 0 0 2s 5 0 1 1 0 0 0 1 0 1 5s 6 0 1 1 1 1 0 0 0 0 2s Ket: R1: Red1 R2: Red2 R3: Red3 Y1:Yellow1 Y2:Yellow2 Y3:Yellow3 G1:Green1 G2:Green2 G3:Green3 0 = OFF 1 = ON
Dari tabel di atas dapat dibuat listing source code program untuk membuat tampilan ProgramTraffic Light Prototype pada pertigaan jalan dengan Delphi, namun sebelum penulisan program diperlukan sebuah variable global untuk mengatur berjalannya waktu pada timer, variable ini diberi nama secon dengan type data berupa data integer, tuliskan pendeklarasian variable tersebut di bawah var, di atas implementation pada unit1.pas sehingga menjadi seperti gambar di bawah ini:
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.5
9
Source code-nya dapat dilihat pada tabel di bawah ini Tabel. Source code Prototype Traffic Light pada Pertigaan Jalan
No Komponen Event SOURCE CODE
1 Button1 OnClik secon:=0;
timer1.Enabled:=true; timer1.Interval:=1000;
2 Timer1 OnTimer secon:=secon+1;
if second<=5 then begin Red1.Brush.Color:=clRed; Red2.Brush.Color:=clBlack; Red3.Brush.Color:=clRed; Yellow1.Brush.Color:=clBlack; Yellow2.Brush.Color:=clBlack; Yellow3.Brush.Color:=clBlack; Green1.Brush.Color:=clBlack; Green2.Brush.Color:=clLime; Green3.Brush.Color:=clBlack;
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .6 0 End; if secon>5 then begin Red1.Brush.Color:=clRed; Red2.Brush.Color:=clBlack; Red3.Brush.Color:=clRed; Yellow1.Brush.Color:=clBlack; Yellow2.Brush.Color:=clYellow; Yellow3.Brush.Color:=clYellow; Green1.Brush.Color:=clBlack; Green2.Brush.Color:=clBlack; Green3.Brush.Color:=clBlack; end; if secon > 7 then begin Red1.Brush.Color:=clRed; Red2.Brush.Color:=clRed; Red3.Brush.Color:=clBlack; Yellow1.Brush.Color:=clBlack; Yellow2.Brush.Color:=clBlack; Yellow3.Brush.Color:=clBlack; Green1.Brush.Color:=clBlack; Green2.Brush.Color:=clBlack;
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .6 1 Green3.Brush.Color:=clLime; end; if secon > 12 then begin Red1.Brush.Color:=clRed; Red2.Brush.Color:=clRed; Red3.Brush.Color:=clBlack; Yellow1.Brush.Color:=clYellow; Yellow2.Brush.Color:=clBlack; Yellow3.Brush.Color:=clYellow; Green1.Brush.Color:=clBlack; Green2.Brush.Color:=clBlack; Green3.Brush.Color:=clBlack; end; if secon > 14 then begin Red1.Brush.Color:=clBlack; Red2.Brush.Color:=clRed; Red3.Brush.Color:=clRed; Yellow1.Brush.Color:=clBlack; Yellow2.Brush.Color:=clBlack; Yellow3.Brush.Color:=clBlack; Green1.Brush.Color:=clLime;
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.6
2
Langkah berikutnya adalah langkah Interfacing dengan Port Paralel terhadap LED yang dipergunakan sebagai Prototype Traffic
Green2.Brush.Color:=clBlack; Green3.Brush.Color:=clBlack; end; if secon>19 then begin Red1.Brush.Color:=clBlack; Red2.Brush.Color:=clRed; Red3.Brush.Color:=clRed; Yellow1.Brush.Color:=clYellow; Yellow2.Brush.Color:=clYellow; Yellow3.Brush.Color:=clBlack; Green1.Brush.Color:=clBlack; Green2.Brush.Color:=clBlack; Green3.Brush.Color:=clBlack; end; if secon = 21 then begin secon :=0; end;
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.6
3
Light pada pertigaan, namun sebelumnya perlu dilalukan konversi data yang akan dikirim ke Port Paralel (LPT), dimana Pin nomer 2-9 mampu melayani 8 buah LED, dalam hal ini sekalian ditentukan bahwa LED R1,R2,R2,Y1,Y2,Y3,G1,G2 dilayani oleh Pin nomer 2-9 (port data). Sisanya yaitu G3 dilayani oleh Pin nomer 16 Port Parallel (pin control bit 2 pada port control). Hal ini dilakukan karena pin pada port control tersebut memiliki direction keluar / out dan logika yang tidak komplemen/sungsang sehingga dapat dipergunakan untuk melakukan aktivasi peralatan di luar PC dengan mudah tanpa harus memikirkan kondisi sinyal yang terbalik. Alamat Register Port Cotrol pada Port LPT1 adalah 37A (base address + 2 ).
Port Status hanya memiliki direction masuk / in sehingga tidak dapat dipergunakan sebagai pengontrol (dalam hal ini pengaktif peralatan di luar PC), dan hanya dapat digunakan untuk membaca kondisi sinyal yang ada pada port tersebut.
Setelah memahami sedikit teori tentang port parallel tersebut, lakukan konversi data dari masing-masing keadaan LED untuk menentukan data yang akan di kirim ke Port LPT sebagai pengendali nyala LED pada Prototype Traffic Light ,
Tabel nya adalah sebagai berikut
Tabel. Konversi data yang akan dikirim ke port data pada Port Paralel berdasarkan keadaan LED
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.6
4
Kembali menegaskan pernyataan sebelumnya, untuk LED ke 9 dalam hal ini adalah led G1 dilayani oleh port control pada port parallel dan nomer pin yang dipilih adalah pin nomer 16 (port control bit 2). Sedangkan nilai data decimal yang akan dikirim ke alamat 37A (port control ) dapat ditentukan dengan table seperti di bawah ini: N o PIN D2 (R1 ) PIN D3 (R2 ) PIN D4 (R3 ) PI N D5 (Y1 PIN D6 (Y2 ) PIN D7 (Y3 ) PIN D8 (G1 ) PIN D9 (G2 ) Data decima l dikirim ke alamat 378 H 1 1 0 1 0 0 0 0 1 133 2 1 0 1 0 1 1 0 0 53 3 1 1 0 0 0 0 0 0 3 4 1 1 0 1 0 1 0 0 43 5 0 1 1 0 0 0 1 0 70 6 0 1 1 1 1 0 0 0 30
Keterangan : bit pertama adalah data pin D2 ( Least Significant Bit / LSB), sedangkan bit ke-8 adalah data pin D9 (Most Significant Bit / MSB), sehingga untuk mengubah biner ke decimal harus dibalik urutannya. Semisal pada baris pertama keadaan LED nilainya : 1010 0001 menjadi 1000 0101 = 133
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.6
5
Tabel. Konversi data yang akan dikirim ke port control pada Port Paralel berdasarkan keadaan LED
Setelah diperoleh data yang akan di kirim ke port paralel sebagai pengendali nyala LED pada Prototype Traffic Light pada pertigaan jalan, selanjutnya adalah penulisan source code tambahan untuk pengendalian Prototype Traffic Light pada pertigaan jalan, namun diperlukan komponen tambahan yaitu SmallPort pada Component Pallete System untuk membaca dan menuliskan data ke Port parallel , serta komponen button sebagaimana tabel di bawah ini :
Tabel. komponen tambahan pada Aplikasi Prototype Traffic Light pada pertigaan jalan
No. PIN C0 ( 0) PIN C1 ( 0 ) PIN C2 ( G3) PIN C3 ( 0 ) Data decimal dikirim ke alamat 37A 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 1 0 4 4 0 0 0 0 0 5 0 0 1 0 4 6 0 0 0 0 0
Keterangan : PIN C0,C1,C3 dianggap saja dikirim data 0, karena tidak dikoneksikan ke LED
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.6
6
sehingga tampilan program menjadi sebagai berikut:
Gambar. Penambahan komponen smallport dan Button 1
Source code tambahan dapat dilihat pada tabel di bawah ini:
Tabel. Source code tambahan Prototype Traffic Light Pertigaan Jalan No Komponen Properti Nilai
1 SmallPort -
-2 Button 2 Caption Open Port Driver
No. Komponen Event SOURCE CODE
TAMBAHAN 1 Button 2 OnClick SmallPort1.Opened;
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION H al .6 7 Begin Smallport1.WriteByte($378,133 ); Smallport1.WriteByte($37A,0);
//di bawah if secon>5 then Begin
Smallport1.WriteByte($378,53); Smallport1.WriteByte($37A,0);
//di bawah if secon>7 then Begin
Smallport1.WriteByte($378,3); Smallport1.WriteByte($37A,4);
//di bawah if secon>12 then Begin
Smallport1.WriteByte($378,43); Smallport1.WriteByte($37A,0);
//di bawah if secon>14 then Begin
Smallport1.WriteByte($378,70); Smallport1.WriteByte($37A,4);
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.6
8
//di bawah if secon>19 then Begin
Smallport1.WriteByte($378,30); Smallport1.WriteByte($37A,0);
Keterangan SOURCE CODE TAMBAHAN Apabila source code awal pada timer adalah if secon<=5 then begin Red1.Brush.Color:=clRed; Red2.Brush.Color:=clBlack; Red3.Brush.Color:=clRed; Yellow1.Brush.Color:=clBlack; Yellow2.Brush.Color:=clYellow; Yellow3.Brush.Color:=clYellow; Green1.Brush.Color:=clBlack; Green2.Brush.Color:=clBlack; Green3.Brush.Color:=clBlack; end;
maka sebelum end; tambahkan source code yang ada di kolom SOURCE CODE TAMBAHAN
sehingga menjadi sebagai berikut: if second<5 then
begin
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.6
9
Selanjutnya lakukan proses running aplikasi, tampilan aplikasi yang telah dibuat adalah sebagai berikut :
Smallport1.WriteByte($37A,0); Red1.Brush.Color:=clRed; Red2.Brush.Color:=clBlack; Red3.Brush.Color:=clRed; Yellow1.Brush.Color:=clBlack; Yellow2.Brush.Color:=clYellow; Yellow3.Brush.Color:=clYellow; Green1.Brush.Color:=clBlack; Green2.Brush.Color:=clBlack; Green3.Brush.Color:=clBlack; end;
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT
H
al
.7
0
Gambar . Aplikasi Prototype Traffic Light pada Pertigaan Jalan dengan Delphi 7
Prototype Traffic Light perempatan jalan dengan Delphi
Prototype ini adalah pengembangan dari Prototype Traffic Light pertigaan jalan dengan Delphi yang telah dibahas sebelumnya.Pada pengembangan selanjutnya aplikasi yang dibuat dapat di interface kan ke miniatur Traffic Light dengan Light Emiting Dioda (LED), melalui port parallel PC. Program dibuat sederhana dengan 1 buah Form,1buah komponen Smallport,1buah Timer, serta 12 buah buah Shape, dilengkapi dengan sebuah tombol Start untuk mulai Menjalankan Aplikasi, berikut ini adalah tampilan Programnya:
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.7
1
Gambar1.Desain Tampilan Program Prototype Traffic Light dengan Delphi
Berikut ini adalah table logika nyala LED pada Prototype Traffic Light dengan Delphi (perempatan jalan ) yang dibuat:
Tabel . Logika nyala LED pada Prototype Traffic Light pada Perempatan Jalan N o R 1 R 2 R 3 R 4 Y 1 Y 2 Y 3 Y 4 G 1 G 2 G 3 G 4 tim e 1 1 0 1 1 0 0 0 0 0 1 0 0 5s 2 1 0 1 1 0 1 1 0 0 0 0 0 2s 3 1 1 0 1 0 0 0 0 0 0 1 0 5s 4 1 1 0 1 0 0 1 1 0 0 0 0 2s 5 1 1 1 0 0 0 0 0 0 0 0 1 5s 6 1 1 1 0 1 0 0 1 0 0 0 0 2s 7 0 1 1 1 0 0 0 0 1 0 0 0 5s 8 0 1 1 1 1 1 0 0 0 0 0 0 2s Keterangan : R1, R2, R3, R4 = Y1, Y2, Y3, Y4 = G1, G2, G3, G4 = 0 = OFF
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.7
2
Langkah berikutnya adalah langkah Interfacing dengan Port Paralel terhadap LED yang dipergunakan sebagai Prototype Traffic Light pada perempatan Jalan, namun sebelumnya perlu dilalukan konversi data yang akan dikirim ke Port Paralel (LPT), dimana Pin D2-D9 mampu melayani 8 buah LED, dalam hal ini sekalian ditentukan bahwa LED R1,R2,R2,R4,Y1,Y2,Y3,Y4 dilayani oleh Pin D2-D9. Sisanya yaitu 4 buah LED G1,G2,G3,G4 dilayani oleh Pin-pin pada port status.
Setelah jelas pembagian pelayanan LED oleh Port Paralel PC, lakukan konversi data dari masing-masing keadaan LED untuk menentukan data yang akan di kirim ke Port LPT sebagai pengendali nyala LED pada Prototype Traffic Light ,
Tabel. Konversi data yang akan dikirim ke Port Data pada Port Paralel berdasarkan keadaan LED
No PIN D2 R1 PIN D3 R2 PIN D4 R3 PIN D5 R4 PIN D6 Y1 PIN D7 Y2 PIN D8 Y3 PIN D9 Y4 Data decimal dikirim ke alamat 378 H 1 1 0 1 1 0 0 0 0 13 2 1 0 1 1 0 1 1 0 109 3 1 1 0 1 0 0 0 0 11 4 1 1 0 1 0 0 1 1 203 5 1 1 1 0 0 0 0 0 7
DILARANG MENGEDARKAN TANPA IZIN SEBAGIAN ATAU SELURUH ISI DARI E-BOOK INI TANPA IZIN TERTULIS DARI PENULIS
PLEASE DO NOT COPY AND DISTRIBUTE TO ANOTHER WITHOUT PERMISSION
H
al
.7
3
Sedangkan untuk LED ke 9-12 dalam hal ini adalah LED G1-G4 dilayani oleh port status pada port parallel. Berikut ini adalah tabel untuk penentuan data yang akan di kirim ke Port LPT pada Alamat 37A :
Tabel. Konversi data yang akan dikirim ke port data pada Port Paralel berdasarkan keadaan LED
Penjelasan untuk aplikasi ini, kurang lebih sama hanya saja dengan Aplikasi Prototype Traffic Light pada pertigaan jalan, hanya
6 1 1 1 0 1 0 0 1 151 7 0 1 1 1 0 0 0 0 14 8 0 1 1 1 1 1 0 0 62 No. PIN G1 Invert PIN G2 Invert PIN G3 Noninv PIN G4 Invert Data decimal dikirim ke alamat 37A 1 0 1 0 0 2 2 0 0 0 0 0 3 0 0 1 0 4 4 0 0 0 0 0 5 0 0 0 1 8 6 0 0 0 0 0 7 1 0 0 0 1 8 0 0 0 0 0