Akses Port Paralel (Menggunakan Delphi 7.0) (Drs. Agfianto Eko Putra, M.Si 2005)

dokumen-dokumen yang mirip
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (KOMUNIKASI DATA)

BAB IV Antarmuka dengan Port Paralel (Output)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (KOMUNIKASI DATA)

SEM. 4 KOMUNIKASI DATA

BAB V JOBSHEET 5. Antarmuka dengan Port Parallel (Input)

Menggerakkan Peralatan Luar melalui Port parallel PC. dengan perangkat lunak Delphi 7

Jurnal Edik Informatika PENGATURAN LED MELALUI PORT PARALEL MENGGUNAKAN PEMROGRAMAN VISUAL

1 Latihan 6 Ketentuan Soal:

LABORATORIUM KOMPUTER TEKNIK INFORMATIKA STT DHARMA ISWARA MADIUN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK-1 LOGIKA PERULANGAN-1

Percobaan 1 PENGENALAN INTERFACE PARALLEL DAN SEVEN SEGMENT LED DISPLAY

LABORATORIUM KOMPUTER TEKNIK INFORMATIKA STT DHARMA ISWARA MADIUN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK-1 TIPE DATA DAN VARIABEL

PROSEDUR. Mahasiswa dapat memahami penggunaan prosedur. Mahasiswa dapat membuat prosedur. Mahasiswa dapat memahami variabel lokal dan variabel global

LABORATORIUM KOMPUTER TEKNIK INFORMATIKA STT DHARMA ISWARA MADIUN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK-1 PROCEDURE DAN FUNCTION

1. Menggambar ANAK PANAH. Setelah kita RUN dan saya klik button ANAK PANAH maka akan muncul gambar anak panah seperti nampak pada gambar dibawah ini

Oleh : Mujahidin

Minggu ke : 7. Bentuk umum : While <kondisi> do <Pernyataan>

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (KOMUNIKASI DATA)

Minggu ke : 4 Penyusun : Dian Usdiyana Rini Marwati Materi : 4. Pernyataan Kondisional 4.1 If then. 4.2 If. then.else..

For <pencacah> := <nilaiawal> to <nilaiakhir> do <pernyataan>

B. Kompetensi Mahasiswa dapat memahami tentang kendali kesalahan dengan paritas serta dapat melakukan penghitungan paritas.

PERCOBAAN I STATEMENT

IV. HASIL DAN PEMBAHASAN

PRAKTIKUM 3 BERBAGAI MACAM TIPE DATA

LABORATORIUM KOMPUTER TEKNIK INFORMATIKA STT DHARMA ISWARA MADIUN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK-1 STRUKTUR KEPUTUSAN-1

PRAKTIKUM 3 BERBAGAI MACAM TIPE DATA (Integer dan Real)

Pengenalan Borland Delphi 7.0

PROSEDUR DENGAN PARAMETER. Mahasiswa dapat memahami penggunaan prosedur dengan parameter. Mahasiswa dapat membuat prosedur dengan parameter.

BAB IV PENGUJIAN DAN ANALISA

SIMULASI PENYIRAMAN TANAMAN PADA RUMAH KACA MENGGUNAKAN SENSOR SUHU LM35 MELALUI PARALEL PORT DENGAN APLIKASI BAHASA PEMROGRAMAN DELPHI 7.

GRAPHICS AND VISUALIZATION. Logo

Delphi 7. Merencang Program dengan Fungsi IF. Ketentuan Soal : 1. Jabatan : JABATAN GAJI POKOK Direktur Manager Staff

SISTEM KENDALI BERBASIS KOMPUTER MELALUI PROGRAMABLE PERIPHERAL INTERFACE Ahmad Mahfud. Abstrak

URAIAN POKOK PERKULIAHAN. (1) Nilai akar-akar, x 1 dan x 2, dapat ditentukan dengan menggunakan rumus:

Borland Delphi 7. Created By 1

BAB III PERANCANGAN ALAT

ALGORITMA PENCARIAN. c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian.

STRUCTURED QUERY LANGUAGE (SQL)

URAIAN POKOK PERKULIAHAN

Majalah Ilmiah, Vol. 23, No. 2, Oktober 2016, Hal ISSN : Copyright 2016 by LPPM UPI YPTK Padang

Tabel 1 Mode Pemrograman Flash PEROM AT89Cx051

Kontrol Data Set dan Navigasi Tabel

Daftar Pustaka. Supriyadi, Moh Pemrograman Sistem Pengendali dengan Delphi.

Kodingan untuk Membuat Grafik dari Persamaan Garis Lurus dan Kuadrat Menggunakan Delphi 7

Modul I Mengenal Pemrograman Delphi

MODUL 2 EVEN, VARIABEL DAN FUNGSI KONVERSI

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

BAB II Pemrograman (Percabangan)

Algoritma Pemrograman A

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (KOMUNIKASI DATA)

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ExtDlgs, TeeProcs, TeEngine, Chart,

BAB VIII Data Logging Tegangan melalui Komunikasi Serial

BAB IV IMPLEMENTASI DAN PENGUJIAN

PEMROGRAMAN DASAR XI TKJ SMK NEGERI 1 KUPANG

FieldName DataType FieldSize Status UserPass Text 40 Primary Key Nama_User Text 30 Password Text 10

Mencari Akar-akar persamaan kuadrat AX 2 + BX + C = 0

Visual Delphi 7 D3 TI FMIPA UNS Sakroni

BAB VII Komponen untuk Komunikasi Serial

Elga Lesmana

PERANTARAMUKAAN SENSOR BARCODE UNTUK SISTEM PRESENSI

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type

MEMBUAT APLIKASI DESKTOP DENGAN DATABASE ORACLE. UNIKOM (2010) Disusun Oleh : Andri Heryandi, M.T.

PENINGKATAN EFISIENSI PENGGUNAAN ENERGI LISTRIK PADA RUANG KELAS STMI DENGAN MENERAPKAN SISTEM OTOMASI BERDASARKAN SISTEM INFORMASI PENJADUALAN

KENDALI PERALATAN LISTRIK MELALUI JARINGAN KOMPUTER

Pengantar Delphi (IDE Delphi ) & Konsep OOP

PERCOBAAN 10 PORT SERIAL

PERCOBAAN 4 GRAFIKA KOMPUTER DENGAN DELPHI

MODUL IX PEMROGRAMAN DATABASE DENGAN DELPHI. Untuk praktikum ini kita menggunakan Ms. Access sebagai databasenya.

Kendali nyala led via komunikasi serial dengan Delphi

Percobaan 2 PENGENALAN INTERFACE SERIAL DAN UART

Trademarks & Copyright

Modul I Mengenal Pemrograman Delphi

BAB III ANALISA DAN PERANCANGAN

URAIAN POKOK PERKULIAHAN

DT-51Application Note

Serial (COM) Port Parallel (LPT) Port USB Firewire ISA slot PCI slot

Mengenal pemrograman multithread dengan Delphi 7

Bahasa Pemrograman (TD22093)

de KITS Application Note AN17 - How 2 Use de KITS Relay Board with StarTech PPI Card

UNIVERSITAS GUNADARMA FAKULTAS ILMU KOMPUTER & TEKNOLOGI INFORMASI 2013

BAB III PERENCANAAN DAN REALISASI

ANGKA TERBILANG. Program ini terdiri dari beberapa komponen yaitu:

PORT PARALEL MAKALAH. Diajukan untuk Memenuhi Salah Satu Tugas Mata Kuliah Orientasi Sistem Komputer Tahun Akademik 2007/2008

Object Name Caption. RadioButton1 rpria Pria RadioButton2 rwanita Wanita. ComboBox1 ckode - Edit1 enapar - Edit2 ehrg - Edit3 ejumbel - Edit4 etotal -

BAB III ANALISA DAN PERANCANGAN

Konsep dan Cara Kerja Port I/O

Pengenalan Lingkungan Delphi

4.1 Struktur Rancangan Puncak-Turun dengan Procedure

PRAKTIKUM 1 2 MENGENAL DELPHI

LAPORAN PRAKTIKUM FISIKA KOMPUTASI INTERPRETASI GRAFIS INTENSITAS WARNA DASAR RGB PADA GAMBAR BITMAP MENGGUNAKAN DELPHI7

LANJUTAN APLIKASI DATABASE

Identitas dosen POKOK BAHASAN. mendemonstrasikan tentang membuat project aplikasi dengan database access dengan benar (C3) Suherman,, ST Address

Lampiran 1. Form 01. unit Skripsi; interface. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, math;

BAB III PERANCANGAN SISTEM

LAMPIRAN. A. Flowchart 1. Contoh Flowchart Penempatan Subjek. Gambar 185. Flowchart Penempatan Subjek AB

TUGAS AKHIR. Pengendalian Perangkat Listrik Melalui Port Paralel Menggunakan Bahasa Program Borland Delphi 7.0

PC-Link. 1x Komputer / Laptop dengan OS Windows 2000, Windows XP atau yang lebih tinggi. Gambar 1 Blok Diagram AN200

LAMPIRAN A RANGKAIAN ELEKTRONIKA LENGKAP

Membuat program sederhana mengendalikan lampu LED melalui port USB dengan VB. USB HIDClass<->IOConverter

Dahlan Sitompul

ELEKTRONIKA DIGITAL PPI 8255

Transkripsi:

Akses Port Paralel (Menggunakan Delphi 7.0) (Drs. Agfianto Eko Putra, M.Si 2005) TENTANG INPOUT32.DLL Delphi yang merupakan pengembangan lebih lanjut OOP Pascal dengan sistem operasi Windows ternyata telah menghilangkan fungsi khas Pascal dalam akses perangkat keras, yaitu perintah port[alamat] := data atau variabel := port[alamat]; 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 <drive>:/windows/system32 pada komputer 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: 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, 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. PENDAHULUAN PORT PARALEL Port Paralel adalah sarana port yang sederhana dan murah untuk membuat projek-projek atau alat-alat yang dikendalikan menggunakan komputer. Sederhana karena, sebagaimana akan dilihat nanti, hanya melibatkan 3 macam register saja, murah karena hampir semua komputer, desktop maupun portable, selalu dilengkapi dengan Port Paralel atau yang dikenal juga dengan Port Printer. Kesederhanaan dan kemudahan pemrograman menggunakan Port Paralel membuat Port ini semakin populer di kalangan para hobis. Port Paralel ini sering digunakan untuk, misalnya, robot yang dikendalikan komputer, pemrogram mikrokontroler Atmel atau PIC, otomasi rumah, akuisisi data praktis dan lain sebagainya. EKSPERIMEN AKSES PORT PARALEL Standar IEEE 1284 yang dipublikasikan pada tahun 1994 mendefinisikan 5 (lima) macam mode transfer data Port Paralel: 1. Mode Kompatbel; 2. Mode Nibel; 3. Mode Byte; 4. EPP, dan 5. ECP Agfianto Eko Putra 2005-1

Port Paralel ini terhubungkan dengan dunia luar melalui konektor DB25, yang terbagi atas tiga kelompok register, yaitu: 1. Register Data; 2. Register Control, dan 3. Register Status Seperti namanya, masing-masing register tersebut digunakan untuk mentransfer data, melakukan pengontrolan periferal serta memeriksa atau mendapatkan status periferal eksternal. Masing-masing register terhubungkan ke konektor DB25 tetapi tidak semua bit yang terhubungkan ke masing-masing pin. Ada beberapa pin (selain pin-pin pada register data) yang bersifat sungsang atau inverse, jika pin tersebut sebagai masukan, maka jika terbaca 0 artinya mendapatkan logika 1 (demikian juga sebaliknya). Jika pin tersebut adalah keluaran, jika dikirimkan logika 1, maka yang terkirim sesungguhnya adalah logika 0 (demikian juga sebaliknya). Selain itu sifatnya normal, terbaca 1 ya 1, terkirim 1 ya 1, demikian seterusnya. Lebih lengkapnya ditunjukkan pada Tabel 1. Tabel 1 No.Pin Nama Register - Arah (DB25) Sinyal bit Sungsang? 1 nstrobe Out Control-0 Ya 2 Data0 In/Out Data-0 Tidak 3 Data1 In/Out Data-1 Tidak 4 Data2 In/Out Data-2 Tidak 5 Data3 In/Out Data-3 Tidak 6 Data4 In/Out Data-4 Tidak 7 Data5 In/Out Data-5 Tidak 8 Data6 In/Out Data-6 Tidak 9 Data7 In/Out Data-7 Tidak 10 nack In Status-6 Tidak 11 Busy In Status-7 Ya 12 Paper- Out In Status-5 Tidak 13 Select In Status-4 Tidak 14 Linefeed Out Control-1 Ya 15 nerror In Status-3 Tidak 16 ninitialize Out Control-2 Tidak 17 nselect- Printer Out Control-3 Ya 18-25 Ground - - - Daftar pin pada DB25 Port Paralel ditunjukkan pada Gambar 1, sedangkan rangkaian yang digunakan untuk eksperimen ditunjukkan pada Gambar 2. Perlu mendapat perhatian bahwa penggunaan DIP Siwtch hanya sebagian saja, menyesuaikan dengan bit-bit pada Register Status yang terhubungkan dengan DB25 (ada 4). Pada Tabel 2 ditunjukkan koneksi antara LED, DIP Switch dan konektor DB25 Port Paralel. Mohon bisa diperhatikan sepenuhnya. Agfianto Eko Putra 2005-2

Gambar 1 Gambar 2 Tabel 2 Rangkaian DB25 Rangkaian DB25 LED1 2 D0 LED9 1 - /PC0 LED2 3 D1 LED10 14 - /PC1 LED3 4 D2 LED11 16 PC2 LED4 5 D3 LED12 17 - /PC3 LED5 6 D4 DIP1 15 - PS3 LED6 7 D5 DIP2 13 - PS4 LED7 8 D6 DIP3 12 - PS5 LED8 9 D7 DIP4 10 - PS6 DIP5 11 - /PS7 Gnd 18 s/d 25 Agfianto Eko Putra 2005-3

Contoh program 01 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. Gambar 3 Komponen Properti Prosedur/Fungsi TCheckBox Name: CheckBox1 CheckBox1Click(Sender: TObject) Caption: On/Off TButton Name: Button1 Button1Click(Sender: TObject) Caption: Selesai! TForm Name: TForm1 Caption: Port Paralel 01 FormCreate(Sender: TObject) procedure TForm1.CheckBox1Click(Sender: TObject); if checkbox1.checked then out32($378,$ff); CheckBox1.Caption := 'Lampu ON'; end else out32($378,0); CheckBox1.Caption := 'Lampu OFF'; procedure TForm1.FormCreate(Sender: TObject); CheckBox1.Caption := 'Status Lampu LED' procedure TForm1.Button1Click(Sender: TObject); Close; Agfianto Eko Putra 2005-4

Contoh program 02 Contoh program yang kedua ini lebih spesifik, karena menghidupkan LED baik di pin-pin data maupun kontrol dilakukan satu persatu. Dengan cara memeriksa status komponen TCheckBox saat dilakukan event pencetangan. Perhatikan adanya keanehan hasil pada saat melakukan pencetangan pada TCheckBox untuk Kontrol-0 s/d Kontrol-3. Ingat adanya pin-pin yang sungsang sebagaimana dijelaskan sebelumnya. Gambar 4 Komponen Properti Prosedur/Fungsi TGroupBox Name: GroupBox1 - TCheckBox Name: data0 data0click(sender: TObject) Caption: Data-0 TCheckBox Name: data1 Data1Click(Sender: TObject) Caption: Data-1 TCheckBox Name: data2 Data2Click(Sender: TObject) Caption: Data-2 TCheckBox Name: data3 Data3Click(Sender: TObject) Caption: Data-3 TCheckBox Name: data4 Data4Click(Sender: TObject) Caption: Data-4 TCheckBox Name: data5 Data5Click(Sender: TObject) Caption: Data-5 TCheckBox Name: data6 Data6Click(Sender: TObject) Caption: Data-6 TCheckBox Name: data7 Data7Click(Sender: TObject) Caption: Data-7 TGroupBox Name: GroupBox2 - TCheckBox Name: kontrol0 kontrol0click(sender: TObject) Caption: Kontrol-0 TCheckBox Name: kontrol1 Caption: Kontrol-1 Kontrol1Click(Sender: TObject) Agfianto Eko Putra 2005-5

Komponen Properti Prosedur/Fungsi TCheckBox Name: kontrol2 Kontrol2Click(Sender: TObject) Caption: Kontrol-2 TCheckBox Name: kontrol3 Kontrol3Click(Sender: TObject) Caption: Kontrol-3 Form Name: TForm1 FormCreate(Sender: TObject) Caption: Port Paralel per bit register (versi 1) TButton Name: Button1 Caption: Selesai! Button1Click(Sender: TObject) procedure TForm1.data0Click(Sender: TObject); if data0.checked then Out32($378, tmp or $01) else Out32($378, tmp and $FE); procedure TForm1.data1Click(Sender: TObject); if data1.checked then Out32($378, tmp or $02) else Out32($378, tmp and $FD); procedure TForm1.data2Click(Sender: TObject); if data2.checked then Out32($378, tmp or $04) else Out32($378, tmp and $FB); procedure TForm1.data3Click(Sender: TObject); if data3.checked then Out32($378, tmp or $08) else Out32($378, tmp and $F7); procedure TForm1.data4Click(Sender: TObject); if data4.checked then Out32($378, tmp or $10) else Out32($378, tmp and $EF); procedure TForm1.data5Click(Sender: TObject); if data5.checked then Out32($378, tmp or $20) else Out32($378, tmp and $DF); Agfianto Eko Putra 2005-6

procedure TForm1.data6Click(Sender: TObject); if data6.checked then Out32($378, tmp or $40) else Out32($378, tmp and $BF); procedure TForm1.data7Click(Sender: TObject); if data7.checked then Out32($378, tmp or $80) else Out32($378, tmp and $7F); procedure TForm1.Button1Click(Sender: TObject); Close; procedure TForm1.kontrol0Click(Sender: TObject); if kontrol0.checked then Out32($37A, tmp or $01) else Out32($37A, tmp and $FE); procedure TForm1.kontrol1Click(Sender: TObject); if kontrol1.checked then Out32($37A, tmp or $02) else Out32($37A, tmp and $FD); procedure TForm1.kontrol2Click(Sender: TObject); if kontrol2.checked then Out32($37A, tmp or $04) else Out32($37A, tmp and $FB); procedure TForm1.kontrol3Click(Sender: TObject); if kontrol3.checked then Out32($37A, tmp or $08) else Out32($37A, tmp and $F7); procedure TForm1.FormCreate(Sender: TObject); Out32($378,$00); Out32($37A,$0B); Agfianto Eko Putra 2005-7

Contoh program 03 Contoh program ketiga ini digunakan untuk memperbaiki adanya pin-pin yang sungsang, perhatikan perubahannya procedure TForm1.kontrol0Click(Sender: TObject); if not kontrol0.checked then Out32($37A, tmp or $01); kontrol0.font.color := ClBlack; end else Out32($37A, tmp and $FE); kontrol0.font.color := ClRed; procedure TForm1.kontrol1Click(Sender: TObject); if not kontrol1.checked then Out32($37A, tmp or $02); kontrol1.font.color := ClBlack; end else Out32($37A, tmp and $FD); kontrol1.font.color := ClRed; procedure TForm1.kontrol2Click(Sender: TObject); if kontrol2.checked then Out32($37A, tmp or $04); kontrol2.font.color := ClRed; end else Out32($37A, tmp and $FB); kontrol2.font.color := ClBlack; procedure TForm1.kontrol3Click(Sender: TObject); if not kontrol3.checked then Out32($37A, tmp or $08); kontrol3.font.color := ClBlack; end else Agfianto Eko Putra 2005-8

Out32($37A, tmp and $F7); kontrol3.font.color := ClRed; Contoh program 04 Contoh program keempat jauh lebih lengkap karena selain dapat digunakan untuk menghidupkan dan mematikan LED juga untuk memeriksa status DIP Switch melalui pin-pin status. Ubah DIP Switch kemudian klik tombol Baca Status, maka data status akan langsung terbaca. Perhatikan juga prosedur yang menangani PS7 karena sifatnya yang sungsang! Gambar 5 procedure TForm1.data0Click(Sender: TObject); if data0.checked then Out32($378, tmp or $01) else Out32($378, tmp and $FE); procedure TForm1.data1Click(Sender: TObject); if data1.checked then Out32($378, tmp or $02) else Out32($378, tmp and $FD); procedure TForm1.data2Click(Sender: TObject); if data2.checked then Out32($378, tmp or $04) else Out32($378, tmp and $FB); procedure TForm1.data3Click(Sender: TObject); Agfianto Eko Putra 2005-9

if data3.checked then Out32($378, tmp or $08) else Out32($378, tmp and $F7); procedure TForm1.data4Click(Sender: TObject); if data4.checked then Out32($378, tmp or $10) else Out32($378, tmp and $EF); procedure TForm1.data5Click(Sender: TObject); if data5.checked then Out32($378, tmp or $20) else Out32($378, tmp and $DF); procedure TForm1.data6Click(Sender: TObject); if data6.checked then Out32($378, tmp or $40) else Out32($378, tmp and $BF); procedure TForm1.data7Click(Sender: TObject); if data7.checked then Out32($378, tmp or $80) else Out32($378, tmp and $7F); procedure TForm1.Button1Click(Sender: TObject); Close; procedure TForm1.kontrol0Click(Sender: TObject); if not kontrol0.checked then Out32($37A, tmp or $01) else Out32($37A, tmp and $FE); procedure TForm1.kontrol1Click(Sender: TObject); if not kontrol1.checked then Out32($37A, tmp or $02) else Out32($37A, tmp and $FD); procedure TForm1.kontrol2Click(Sender: TObject); Agfianto Eko Putra 2005-10

if kontrol2.checked then Out32($37A, tmp or $04) else Out32($37A, tmp and $FB); procedure TForm1.kontrol3Click(Sender: TObject); if not kontrol3.checked then Out32($37A, tmp or $08) else Out32($37A, tmp and $F7); procedure TForm1.Button2Click(Sender: TObject); tmp := Inp32($379); if (tmp and $08) = $08 then stat3.checked := true else stat3.checked := false; if (tmp and $10) = $10 then stat4.checked := true else stat4.checked := false; if (tmp and $20) = $20 then stat5.checked := true else stat5.checked := false; if (tmp and $40) = $40 then stat6.checked := true else stat6.checked := false; if (tmp and $80) = $00 then stat7.checked := true else stat7.checked := false; procedure TForm1.FormCreate(Sender: TObject); Out32($378,$00); Out32($37A,$0B); end. Contoh program 05 Sama seperti contoh keempat, hanya saja pemeriksaan status DIP Switch dilakukan secara periodik! Gambar 6 Agfianto Eko Putra 2005-11

Prosedur pada objek Timer (tanda lingkaran pada Gambar 6) procedure TForm1.Timer1(Sender: TObject); tmp := Inp32($379); if (tmp and $08) = $08 then stat3.checked := true else stat3.checked := false; if (tmp and $10) = $10 then stat4.checked := true else stat4.checked := false; if (tmp and $20) = $20 then stat5.checked := true else stat5.checked := false; if (tmp and $40) = $40 then stat6.checked := true else stat6.checked := false; if (tmp and $80) = $00 then stat7.checked := true else stat7.checked := false; Contoh program 06 Contoh keenam ini digunakan untuk menganimasilkan LED yang terhubung ke pin data dari LED0 ke LED7 dan berulang lagi, kecepatannya ditentukan oleh posisi TScrollBar. Gambar 7 procedure TForm1.FormCreate(Sender: TObject); data := $01; out32($378,data); scrollbar1.position := 250; label9.caption := inttostr(scrollbar1.position); procedure TForm1.Timer1Timer(Sender: TObject); out32($378,data); led0.brush.color := clred * (data and $01); led1.brush.color := clred * ((data shr 1)and $01); led2.brush.color := clred * ((data shr 2)and $01); led3.brush.color := clred * ((data shr 3)and $01); led4.brush.color := clred * ((data shr 4)and $01); led5.brush.color := clred * ((data shr 5)and $01); led6.brush.color := clred * ((data shr 6)and $01); led7.brush.color := clred * ((data shr 7)and $01); Agfianto Eko Putra 2005-12

data := data shl 1; if data > $80 then data := $01; procedure TForm1.Button1Click(Sender: TObject); close; procedure TForm1.ScrollBar1Change(Sender: TObject); label9.caption := inttostr(scrollbar1.position); timer1.interval := scrollbar1.position; end. Contoh program 07 Sama seperti contoh keenam hanya saja gerakannya dari LED7 s/d ke LED0, perhatikan perubahannya procedure TForm1.Timer1Timer(Sender: TObject); out32($378,data); led0.brush.color := clred * (data and $01); led1.brush.color := clred * ((data shr 1)and $01); led2.brush.color := clred * ((data shr 2)and $01); led3.brush.color := clred * ((data shr 3)and $01); led4.brush.color := clred * ((data shr 4)and $01); led5.brush.color := clred * ((data shr 5)and $01); led6.brush.color := clred * ((data shr 6)and $01); led7.brush.color := clred * ((data shr 7)and $01); data := data shr 1; if data < $01 then data := $80; Contoh program 08 Pada contoh ke delapan digunakan 2x7segment Gambar 8 Agfianto Eko Putra 2005-13

type TForm1 = class(tform) Button1: TButton; digitpul: TEdit; digitsat: TEdit; set_7: TButton; procedure Button1Click(Sender: TObject); procedure set_7click(sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } Function Inp32(alamat:word):byte; stdcall; external 'inpout32.dll'; Procedure Out32(alamat:word;data:byte); stdcall; external 'inpout32.dll'; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); Close; procedure TForm1.set_7Click(Sender: TObject); var kirim,pul,sat : byte; pul := strtoint(digitpul.text); sat := strtoint(digitsat.text); kirim := (pul shl 4) or sat; out32($378,kirim); procedure TForm1.FormCreate(Sender: TObject); digitpul.text := '1'; digitsat.text := '2'; end. Contoh program 09 Pada contoh ke sembilan digunakan 2x7segment untuk membuat pencacah Naik (UP) Agfianto Eko Putra 2005-14

Gambar 9 Function Inp32(alamat:word):byte; stdcall; external 'inpout32.dll'; Procedure Out32(alamat:word;data:byte); stdcall; external 'inpout32.dll'; var Form1: TForm1; data,disp : byte; implementation {$R *.dfm} procedure TForm1.btStopClick(Sender: TObject); jam.enabled := False; procedure TForm1.btMulaiClick(Sender: TObject); jam.enabled := True; procedure TForm1.FormCreate(Sender: TObject); data := 0; disp := 0; jam.enabled := False; procedure TForm1.JamTimer(Sender: TObject); label1.caption := inttostr(disp); Out32($378,data); inc(data); inc(disp); if (data and $0A) = $0A then data := data + 6; if data > $99 then data := 0; disp := 0; Agfianto Eko Putra 2005-15

procedure TForm1.Button1Click(Sender: TObject); close Contoh program 09 Pada contoh ke sepuluh digunakan 2x7segment untuk membuat pencacah Turun (DOWN) Gambar 10 Function Inp32(alamat:word):byte; stdcall; external 'inpout32.dll'; Procedure Out32(alamat:word;data:byte); stdcall; external 'inpout32.dll'; var Form1: TForm1; data,disp : integer; implementation {$R *.dfm} procedure TForm1.btStopClick(Sender: TObject); jam.enabled := False; procedure TForm1.btMulaiClick(Sender: TObject); jam.enabled := True; procedure TForm1.FormCreate(Sender: TObject); data := $99; disp := 99; jam.enabled := False; Agfianto Eko Putra 2005-16

procedure TForm1.JamTimer(Sender: TObject); label1.caption := inttostr(disp); Out32($378,data); dec(data); dec(disp); if (data and $0F) = $0F then data := data - 6; if data < $00 then data := $99; disp := 99; procedure TForm1.Button1Click(Sender: TObject); close -- selesai -- Agfianto Eko Putra 2005-17