SlideShare a Scribd company logo
INTERFACE PARALEL
1. DEFINISI / PENJELASAN
Antarmuka (interface) merupakan jembatan yang menghubungkan komputer dengan
dunia luar. Port paralel merupakan salah satu antarmuka yang mudah digunakan untuk
menghubungkan suatu alat (elektronik digital) pada komputer. [1]
Port paralel (DB-25) adalah salah satu jenis soket pada personal komputer untuk
berkomunikasi dengan peralatan luar seperti printer model lama. Karena itu paralel port
sering juga disebut printer port. Perusahaan yang memperkenalkan port ini adalah Centronic,
maka port ini juga disebut dengan Centronics port. [2]
Kesederhanaan port ini dari sisi pemrograman dan antarmuka dengan hardware
membuat port ini sering digunakan untuk percobaan-percobaan sederhana dalam
perancangan peralatan elektronika. [2]
Paralel port dapat mengirimkan 8 bit data sekaligus/serentak dalam satu waktu, lebih
cepat dibanding serial port. Paralel port ini menggunakan konektor DB25. Panjang kabel
maksimum yang diperlukan / diperbolehkan adalah 15 feet. [3]
2. PERANGKAT INTERFACE
Berikut adalah gambar dari konektor DB25 :
(a) (b)
Gambar 1. (a) Konektor DB25 female, (b) Konektor DB25 male
[Buatan Sendiri]
Pada Gambar 1.(a) diatas merupakan konektor DB25 male yang sudah dirangkai
dengan tambahan komponen untuk aplikasi downloader program dengan port paralel.
3. CONTOH PENGGUNAAN / PERIPHERAL
Contoh penggunaan port paralel DB25 sebagai berikut :
 Printer model lama
 Zip drive
 Beberapa scanner
 Sound cards
 Webcams
 Gamepads dan joystick
 Pemrogram EPROM
 Peralatan SCSI melalui adapter Parallel ke SCSI
 Percobaan dengan TTL 12 driver
 External CD-Rom/RW drives
 Dll
[2]
4. METODE PENGIRIMAN
Port Paralel banyak digunakan dalam berbagai macam aplikasi Interface. Port ini
membolehkan kita memiliki masukan hingga 8 bit atau keluaran hingga 12 bit pada
saat yang bersamaan dengan hanya membutuhkan sedikit rangkaian eksternal sederhana
untuk melakukan suatu tugas tertentu.
Port parallel ini terdiri dari :
a) 4 Jalur Kontrol
b) 5 Jalur Status
c) 8 Jalur Data
[4]
Komunikasi yang dilakukan pada port paralel merupakan komunikasi yang
mengirimkan data secara bersamaan. Pada penggunaan komunikasi paralel semua bit dikirim
secara bersamaan pada waktu yang sama. Oleh karena itu pada komunikasi ini kita
membutuhkan banyak kabel. Hal memang sering menjadi kelemahan komunikasi paralel
akibat banyaknya kabel yang dibutuhkan, dan panjang kabel ini tidak boleh lebih dari 20 m,
untuk menjaga keaslian data. Namun kelebihan komunikasi paralel adalah lebih cepat dan
kapasitas yang dibawa juga banyak serta pemrograman yang lebih mudah.
Komunikasi paralel yang digunakan adalah komunikasi paralel lewat kabel data untuk
printer (saat mengeluarkan data). Pada keadaan normal (tidak aktif) tegangan pada pin-pin ini
adalah 0 volt, namun bila kita beri high, maka tegangannya akan berubah menjadi 5 volt.
DB25 adalah konektor yang umum digunakan di komputer sebagai port paralel
,sedangkan konektor Centronics umum ditemukan di printer. IEEE 1284 ialah standar yang
menentukan 3 konektor berbeda yang dapat digunakan dengan port paralel, yaitu
a) 1284 tipe A ialah konektor DB25 yang dapat ditemukan di hampir semua komputer,
b) 1284 tipe B ialah konektor Centronics 34 pin yang umum ditemukan di printer, IEEE
c) 1284 type C ialah konektor 36 pin seperti Centronics, tetapi ukurannya lebih kecil dan
lebih memuaskan. Konektor ini diklaim memiliki pengunci (latch)jenis klip (clip), sifat
elektrik yang lebih baik serta mudah dirakit. Juga mengandung dua pin tambahan
yang dapat digunakan untuk mendeteksi apakah piranti yang terpasang memiliki daya
atau tidak.
[5]
Gambar 2. DB25 Pada Komputer [3]
DB25 memiliki 25 buah pin dengan keterangan :
o Control pins
 Pin 4 = Request To Send
 Pin 5 = Clear to send
 Pin 6 = DCE Ready
 Pin 8 = received line signal detector
 Pin 12 = secondary received line signal detector
 Pin 13 = secondary clear to send
 Pin 19 = secondary request to send
 Pin 20 = DTE ready
o Timing pins
 Pin 15 = transmitter signal element timing (DCE-DTE)
 Pin 17 = receiver signal element timing (DCE-DTE)
 Pin 24 = transmitter signal element timing (DTE-DCT)
o Other pins
 Pin 1 = shield
 Pin 7 = signal ground / common return
 Pin 9 = reserved (testing)
 Pin 10 = reserved (testing)
 Pin 11 = unassigned
 Pin 18 = local loopback
 Pin 21 = remote loopback & signal quality detector
 Pin 22 = ring indicator
 Pin 23 = data signal rate select
 Pin 25 = test mode
 Pin 2 = transmit data
 Pin 3 = receive data
[3]
Gambar 3. Pin 36 Centronic [5]
Perusahaan yang memperkenalkan port ini adalah Centronic, dengan memperkenalkan
dot matrix printer pada tahun 1970, maka port ini juga disebut dengan Centronics port.
Tetapi setelah IBM dan Epson mengambil alih pasar printer dot matrix (kemudian diikuti
oleh Hewlett Packard di DeskJet printer laser dan segmen) kebanyakan orang hanya
mengasosiasikan kata Centronics dengan port interface itu sendiri, bukan nama produsen. [5]
Gambar 4. Pinout Pada Konektor Port Paralel [5]
Untuk lebih jelasnya setiap sinyal pada Paralel 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 :
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-Out / Paper End
Sinyal paper out 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.
Linefeed
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.
Select-Printer
Pemilihan printer sebagai piranti DTE (Data Terminal Equipment) berlangsung pada saluran
sinyal ini.
Port paralel ialah port data di komputer untuk mentransmisi 8 bit data dalam sekali
detak. Standar port paralel yang baru ialah IEEE 1284 dimana dikeluarkan tahun 1994.
Standar ini mendefinisikan 5 mode operasi sebagai berikut :
1. Mode kompatibilitas
2. Mode nibble
3. Mode byte
4. Mode EPP (enhanced parallel port)
5. Mode ECP (Extended capability port)
Tujuan dari standar yang baru tersebut ialah untuk mendesain driver dan peralatan yang
baru yang kompatibel dengan peralatan lainnya serta standar paralel port sebelumnya (SPP)
yangn diluncurkan tahun 1981. Mode Kompatibilitas, nibble dan byte digunakan sebagai
standar perangkat keras yang tersedia di port paralel orisinal dimana EPP dan ECP
membutuhkan tambahan hardware dimana dapat berjalan dengan kecepatan yang lebih tinggi.
Mode kompatibilitas atau (“Mode Centronics”) hanya dapat mengirimkan data pada arah
maju pada kecepatan 50 kbytes per detik hingga 150 kbytes per detik. Untuk menerima data,
anda harus mengubah mode menjadi mode nibble atau byte. Mode nibble dapat menerima 4
bit (nibble) pada arah yang mundur, misalnya dari alat ke komputer. Mode
byte menggunakan fitur bi-directional parallel untuk menerima 1 byte (8 bit) data pada arah
mundur. IRQ (Interrupt Request ) pada port paralel biasanya pada IRQ5 atau IRQ7.
Port paralel Extend dan Enhanced menggunakan hardware tambahan untuk
membangkitkan dan mengatur handshaking.
Untuk mengeluarkan 1 byte ke printer menggunakan mode kompatibilitas,
software harus :
1. Menulis byte ke data port.
2. Cek untuk melihat apakah printer sibuk, jika sibuk, ia tidak akan menerima data, sehingga
data yang telah ditulis akan hilang.
3. Buat strobe (pin 1) rendah. Ini memberitahukan printer bahwa data yang benar telah berada
di line data.
4. Buat strobe tinggi lagi setelah menunggu sekitar 5 mikrodetik setelah membuat strobe low.
Hal ini membatasi kecepatan data. Sedangkan EPP dan ECP mengizinkan hardware
mengecek jika printer sibuk dan mengeluarkan sinyal strobe atau handshaking lainnya. Ini
berarti hanya 1 instruksi I/O yang harus dilakukan yang akan meningkatkan kecepatan Port
ECP juga mempunyai kelebihan menggunakan saluran DMA dan buffer FIFO, jadi data
dapat digeser tanpa menggunakan instruksi I/O.
Protokol EPP mempunyai 4 macam siklus transfer data yang berbeda yaitu :
1. Siklus baca data (Data read)
2. Siklus baca alamat (Address Read)
3. Siklus tulis data (data write)
4. siklus tulis alamat (address write)
Siklus data digunakan untuk mentrasfer data antara host dan peripheral. Siklus alamat
digunakan untuk mengirimkan alamat, saluran (channel) atau informasi perintah
dankontrol. [7]
5. CONTOH INTERFACE DENGAN MIKROKONTROLLER
Membuat Downloader ISP Mikrokontroler dari Paralel Port STK200
Untuk mendownloadkan program yang kita buat ke Mikrokontroler MCS51 atau AVR
kita membutuhkan sebuah peripheral tambahan yang mendukung antara komputer dan
Mikrokontroler. Salah satu yang support dan dapat digunakan sebagai kabel downloader
tersebut adalah kabel STK200 yang dapat kita buat sendiri dengan menggunakan DB25
(Parallel Port). Komponen yang kita butuhkan hanya Resistor 330ohm, Jumper, Black
Holsing Kabel dan DB25 Male (karena Di PC adalah DB25 Female). Dan Konfigurasinya
bisa dibuat seperti gambar dibawah ini :
Gambar 5. AVR Kanda System STK200
Gambar 6. Hasil Jadi Downloader Dari Paralel Port
[Buatan Sendiri]
Downloader LPT (ISP Programmer) merupakan sebuah perangkat downloader yang
minimum dan sederhana karena hanya menggunakan port LPT (Parallel port) dan resistor
sebagai pengaman.
Proses Mendownload Program Dan Pengaturan Programmer Codevision AVR :
1. Memasang Port DB25 male (yang dibuat) ke Port DB25 female pada komputer.
Gambar 7. Port DB25 Terpasang Pada Komputer
[Buatan Sendiri]
2. Jalankan Aplikasi Codevision AVR.
3. Klik tombol Settings lalu pilih Programmer dan atur pada Programmer Settings seperti pada
gambar. Catatan : Pengaturan ini hanya sekali saja.
Gambar 8. Pengaturan Programmer
[Buatan Sendiri]
4. Membuat program untuk dimasukkan pada mikrokontroller (Dalam percobaan ini membuat
program untuk menampilkan data pada LCD).
5. Setelah selesai membuat program maka untuk memrogram / memasukkan file dari
Codevisionavr ke mikro seperti di bawah ini :
Gambar 9. Memasukkan Program Ke Mikro
[Buatan Sendiri]
6. Caranya klik build all project files pada Codevisionavr.
7. Untuk mendownload program ke mikrokontroller maka kita tinggal meng-klik "Program
The Chip". Dan tampil proses download program sebagai berikut :
Gambar 10. Proses Download Program
[Buatan Sendiri]
6. LEVEL TEGANGAN / KARAKTERISTIK ELEKTRIK
Keluaran dari port paralel adalah keluaran TTL, sedangkan arus Sink / Source
bervariasi antara port parallel satu dengan yang lainnya. Berdasarkan data sheet
kemampuan arus Sink / Source bermacam – macam :
 Sink / Source 6mA
 Source 12mA Sink 20mA
 Sink 16mA Source 4mA
 Sink / Source 12mA
Dengan keterbatasan arus port paralel maka diperlukan rangkaian buffer
(penyangga) sehingga tidak membebani arus dari port paralel untuk menyuplai
rangkaian luar. [2]
7. RANGKAIAN BUFFER
Berikut ini adalah contoh rangkaian sederhana dan rangkaian yang menggunakan
buffer untuk aplikasi downloader paralel STK200 ISP dongle. Keduanya rangkaian berfungsi
untuk mendownload program dari komputer ke mikrokontroller menggunakan port paralel
DB25.
Gambar 11. Rangkaian Downloder Simplied dan Buffered
8. MODE HANDSHAKING
Centronics merupakan standar pengiriman data komputer ke pencetak generasi awal.
Hampir semua pencetak menggunakan teknik handshake ini dan biasanya diimplementasikan
menggunakan Port Paralel Standar (KPS atau Standar Parallel Port -SPP) melalui kontrol
perangkat lunak.
Gambar 12. Diagram Pewaktu Handshake Pada Centronics [7]
Perhatikan gambar 12, data pertama kali dikirim pada jalur data (pin 2 – 7 Port Paralel),
kemudian komputer akan memeriksa apakah pencetak dalam kondisi sibuk (busy}atau tidak,
dalam hal ini sedang dalam kondisi rendah (logika 0).` Program kemudian meng-
aktifkan strobe, tunggu selama minimum 1 μd kemudian dimatikan kembali. Data kemudian
dibaca oleh pencetak (atau alat lain) saat transisi naik dari sinyal strobe. Pencetak akan
memberikan indikasi sibuk karena sedang memproses data melalui jalur bus data. Sekali
pencetak menerima data, maka dia akan mengirimkan sinyal Ack (acknowledge) sebagai
pulsa rendah selama 5 μd.
Seringkali komputer akan mengabaikan sinyal Ack untuk menghemat waktu. Pada Port
ECP, Anda akan lihat mode Centronics Cepat, yang membolehkan perangkat keras
mengerjakan handshaking untuk Anda. Seorang pemrogram hanya cukup menuliskan data
pada jalur I/O. Perangkat keras akan memeriksa apakah pencetak dalam kondisi sibuk atau
tidak, kemudian membangkitkan sinyal strobe.
9. TIMING DIAGRAM
Berikut adalah gambar dari timing diagram tranmisi data antara serial port dan paralel
port.
Gambar 13. Timing Diagram Tranmisi Data Port Serial Dan Port Paralel
Port paralel mudah program dan lebih cepat dibandingkan dengan port serial. Tapi
kelemahan utama adalah perlu lebih banyak jumlah jalur transmisi. Karena alasan ini port
paralel tidak digunakan dalam komunikasi jarak jauh. Marilah kita tahu perbedaan mendasar
antara kerja port paralel dan port serial. Pada port serial, akan ada jalur data dua: Satu
transmisi dan satu menerima baris. Untuk mengirim data dalam port serial, itu harus
dikirimkan satu bit demi satu dengan beberapa bit tambahan seperti bit start, bit dan stop bit
paritas untuk mendeteksi kesalahan. Tapi di port paralel, semua 8 bit dari byte akan dikirim
ke port pada suatu waktu dan indikasi akan dikirim di baris lain. Akan ada beberapa data
baris, kendali dan beberapa baris handshaking di port paralel. Jika tiga byte data 01000101
10011100 10110011 adalah untuk dikirim, angka berikut akan menjelaskan bagaimana
mereka akan dikirim ke port serial dan paralel masing-masing. Kita dapat memahami
mengapa komunikasi port paralel adalah lebih cepat dibandingkan dengan serial.
[9]
10. ALAMAT-ALAMAT PORT PARALEL
Port paralel umumnya memiliki tiga alamat dasar yang bisa digunakan, sebagaimana
ditunjukkan pada tabel 1. Alamat dasar 3BCh pertama kali diperkenalkan sebagai alamat port
paralel pada kartu- kartu video lama. Alamat ini kemudian sempat menghilang, saat port
paralel dicabut dari kartu-kartu video. Sekarang muncul kembali sebagai pilihan untuk port
paralel yang terpadu dengan motherboard, yang konfigurasinya dapat diubah melalui BIOS.
LPT1 biasanya memiliki alamat dasar 378h, sedangkan LPT2 adalah 278h. Ini adalah
alamat umum yang bisa dijumpai, namun alamat- alamat dasar ini bisa berlainan antara satu
komputer dengan komputer lainnya.
Tabel 1. Alamat- alamat dasar port pararel [7]
Saat pertama kali komputer dihidupkan, BIOS (Basic Input/ Output System) akan
menentukan jumlah port yang dimiliki kemudian diberi label LPT1, LPT2 dan LPT3.
Pertama kali BIOS akan memeriksa alamat 3BCh, jika ditemukan port paralel pada alamat
tersebut, maka akan diberi label LPT1, kemudian dicari pada lokasi berikutnya 378h, jika
ditemukan akan diberi label selanjutnya yang sesuai. Bisa jadi LPT1 jika tidak ditemukan
port paralel di 3BCh atau mungkin LPT2, jika ditemukan port parallel pada alamat tersebut.
Alamat port terakhir yang diperiksa adalah 278h dan mengikuti langkah-langkah yang telah
dijelaskan tadi. Sehingga dimungkinkan kita memiliki LPT2 dengan alamat 378h bukan 278h
sebagaimana yang diharapkan.
Apa yang membuat hal seperti ini menjadi membingungkan adalah, karena beberapa
perusahaan memasang jumper yang membolehkan Anda untuk mengatur port Anda ke LPT1,
LPT2 dan LPT3. Nah sekarang berapa alamat dari LPT1? Hampir semua kartu, untuk LPT1
dialamatkan pada 378h dan LPT2 pada 278h namun beberapa menggunakan 3BCh sebagai
LPT1, 378h sebagai LPT2 dan 278h sebagai LPT3.
Label- label LPT1, LPT2 dan LPT3 seharusnya tidak perlu dikhawatirkan bagi mereka
yang hanya menginginkan pengantar-mukaan piranti dengan komputer. Biasanya alamat
dasarlah yang digunakan dalam program antarmuka dari label LPT1 dan se-terusnya. Namun
jika Anda tetap ingin tahu alamat LPT1 atau LPT yang lain, Anda dapat menggunakan tabel
tengok (lookup table) yang disediakan BIOS. Saat BIOS mengarahkan alamat-alamat pada
piranti pencetak Anda, maka dia akan menyimpan alamat pada lokasi khusus dalam memori,
sehingga Anda bisa menemukannya, hal ini sebagaimana ditunjukkan pada tabel 2.
Pada tabel 2. tersebut, ditunjukkan alamat yang dapat kita gunakan untuk menemukan
alamat-alamat port pencetak (paralel) dalam Area Data BIOS. Masing-masing alamat
membutuhkan ruang 2 byte. Program berikut (dalam bahasa C) digunakan untuk membaca
lokasi alamat-alamat tersebut untuk menemukan alamat-alamat port paralel (pencetak):
Tabel 2. Dafatar Alamat port pararel
[7]
11. REGISTER-REGISTER PERANGKAT LUNAK-SPP (STANDARD PARALLEL
PORT)
Tabel 3. Register Data port pararel
Alamat dasar, biasa dinamakan Port Data atau Register Data digunakan untuk
mengeluarkan data pada jalur data Port Paralel (pin 2 s/d 9). Register ini normalnya sebagai
port hanya - tulis. Jika Anda mencoba membaca dari port ini, Anda akan mendapatkan byte
terakhir yang terkirim. Bagaimanapun juga jika port Anda dwi-arah, Anda juga bisa
menerima data melalui alamat ini.
Port status (alamat dasar+1), perhatikan tabel 4, sebagai port hanya-baca saja. Data apa
saja yang dituliskan ke port ini akan diabaikan. Port status berasal dari lima masukan port
paralel (pin 10, 11, 12, 13 dan 15), sebuah register status IRQ dan dua bit tercadang. Harap
dicatat bahwa bit-7 (Busy) sebagai masukan aktif rendah. Jika bit -7 terbaca sebagai logika 0
artinya pada pin tersebut terpasang tegangan +5V. Juga pada bit- 2 (IRQ), jika bit ini terbaca
'!', artinya interupsi (sela) tidak muncul.
Register kontrol (alamat dasar+2), perhatikan tabel 4.6, sebagai register tulis saja. Saat
sebuah pencetak disambungkan pada port paralel, maka ia membutuhkan 4 kontrol,
yaitu Strobe, Auto Linefeed, Initialize dan Select Printer, yang semua sifatnya
sungsang(inverted) kecuali Initiliaze.
Tabel 4. Register Status port parallel
Tabel 5. Register Kontrol port parallel
Dalam hal ini pencetak tidak akan mengirimkan sinyal untuk menginisialisasi komputer
dan juga tidak akan memberitahukan komputer untuk
menggunakan auto linefeed.Bagaimanapun juga, keempat keluaran ini dapat dimanfaatkan
sebagai masukan. Namun perlu diketahui bahwa sifatnya adalah "kolektor
terbuka" (open collector atau open drainpada piranti CMOS). Ini artinya memiliki dua
kondisi, kondisi rendah (0V) dan kondisi impedansi tinggi (rangkaian terbuka). Sehingga jika
komputer mengkondisikan pin-pin sebagai tinggi (misalnya +5V) dan piranti Anda yang
terhubungkan membutuhkan kondisi rendah (0V), maka akan terjadi hubung singkat pada
port yang menyebabkan terjadinya konflik pada pin tersebut.
Normalnya port paralel memiliki resistor internal pull -up (kira-kira sekitar 4k7 ohm),
tetapi seperti yang Anda harapkan, tidak semuanya seperti itu. Beberapa memiliki keluaran
kolektor terbuka, sedangkan lainnya hanya memiliki keluaran totem pole normal. Agar piranti
Anda bisa bekerja dengan benar pada berbagai macam port paralel, maka Anda dapat
menggunakan resistor eksternal. Jika digunakan pada port paralel dengan resistorpull-
up internal, maka seakan-akan resistor ini akan paralel dengan resistor internal tersebut,
sedangkan jika digunakan pada port paralel dengan keluaran totem pole, resistor akan
bertindak seolah-olah sebagai beban.
Resistor 4K7 ohm (usahakan jangan yang lebih rendah) dapat digunakan untuk
mengkondisikan pin menjadi HIGH (pull high). Ini sebagai antisipasi, jika yang digunakan
adalah port paralel dengan resistor internal, sehingga penggunaan resistor eksternal yang
kemudian diparalelkan dengan resistor internal, Akan menghasilkan resistor pull-up yang
rendah nilainya. Dalam kondisi impedansi tinggi, pin pada port paralel dalam tegangan HIGH
(+5V), pada kondisi inilah piranti eksternal Anda dapat menyebabkan pin menjadi LOW (pull
low) dan mengakibatkan hasil pembacaan port kontrol menjadi berbeda. Dengan dasar ini,
maka port kontrol yang 4-bit dapat digunakan sebagai jalur data dua arah, hanya saja port
kontrol harus diset xxxx 0100 terlebih dahulu agar dapat digunakan untuk membaca data
(yang bernilai LOW tentunya), karena semua pin kontrol dalam kondisi +5V sehingga Anda
bias mengubahnya menjadi LOW (GND)atau pull-low.
Bit 4 dan 5 merupakan kontrol internal. Bit-4 untuk mengaktif- kan IRQ dan bit - 5
digunakan untuk mengaktifkan port data dwi-arah, artinya port data dapat digunakan sebagai
masukan 8-bit (DATA0 s/d DATA7). Hal ini bisa dilakukan jika port paralelnya mendukung.
Bit-6 dan 7 sebagai cadangan, jika dilakukan penulisan data pada bit- 6 dan 7 ini, maka akan
diabaikan.
[7]
12. PORT DWI-ARAH (BI-DIRECTIONAL PORT)
Pada gambar 12 ditunjukkan Register data Port Paralel yang disederhanakan. Kartu port
Paralel yang asli biasanya mengimplementasikan IC seri 74LS. Saat ini semuanya sudah
dikemas dalam satu 1C ASIC (Application Specific Integrated Circuit), namun dasar kerjanya
tetap sama.
Gambar 14. Operasi Port Paralel dwi-arah Standar [7]
Port non dwi-arah biasanya menggunakan 1C 74LS374 dengan keluaran yang dibuat
permanen rendah (LOW), dengan demikian port data selalu bertindak sebagai keluaran saja.
Saat Anda membaca register data Port Paralel, datanya berasal dari 74LS374 yang juga
terhubungkan dengan pin-pin data. Sekarang jika Anda mampu meng-ouerdrive 374, akan
Anda dapatkan Port Dwi-arah (atau sebagai port masukan saja, jika Anda merusakkan
keluaran- keluaran terkunci atau output latches!)
Banyak yang melakukan hal tersebut. Pernah ada suatu rangkaian (di Internet) yang
menghubungkan antara sebuah osiloskop dengan port paralel. Pengarangnya menggunakan
suatu ADC, namun ternyata ADC-nya menggunakan transistor pada masing- masing
jalurnya, agar dapat bekerja! Tidak tahu mengapa? Ada juga yang menggunakan 68HC11
yang tidak cukup mampu menyedot (sink) arus (30 hingga 40 mA)!
Port paralel dwi-arah menggunakan bit-5 dari register kontrol yang dihubungkan ke
OE (Output Enable)-nya. 374 sehingga penggerak keluaran dapat dimatikan. Dengan cara ini,
Anda dapat membaca data yang tersedia pada pin-pin data Port Paralel, tanpa mengalami
konflik bus dan kebocoran arus yang berlebihan.
Bit-5 Register Kontrol dapat digunakan untuk mengaktifkan dan mematikan fungsi
dwi-arah pada Port Paralel. Hal ini hanya dibenarkan pada port dwi-arah yang sesungguhnya.
Jika bit ini sama dengan 1, pin 2 hingga 9 dalam kondisi impedansi tinggi. Dalam kondisi ini,
Anda boleh memasukkan data pada jalur-jalur tersebut dan membacanya dari Port Data.
Sembarang data yang dituliskan ke port data akan disimpan tetapi tidak akan tersedia pada
pin- pin data. Untuk mematikan fungsi dwi-arah ini, set bit-5=0.
Bagaimanapun juga tidak semua port sifatnya sama, Port lain boleh jadi membutuhkan
bit-6 pada Register Kontrol untuk mengaktifkan mode dwi-arah dan menset bit-5-nya untuk
mematikan mode tersebut. Perusahaan lain membuat port dwi-arah mereka dengan cara yang
berbeda. Jika Anda ingin menggunakan port dwi-arah untuk pemasukan data, maka ujilah
terlebih dahulu dengan logic probe atau multimeter untuk memastikan port paralel dalam
mode dwi-arah.
[7]
13. MENGGUNAKAN PORT PARALEL UNTUK MASUKAN 8 BIT
Jika port paralel Anda tidak mendukung mode dwi-arah, Anda dapat memasukkan
maksimum 9-bit kapan saja. Untuk melakukan hal ini, Anda dapat menggunakan 5 jalur
masukan pada Port Status dan 4 jalur masukan (kolektor terbuka) pada Port Kontrol.
Gambar 15. Inverter Heks 74LS05 Kolektor Terbuka [7]
Masukan ke Port Paralel telah dipilih sedemikian rupa sehingga akan memudahkan
kita. Sinyal Busy dijadikan sebagai MSB (Bit-7) dari Port Status, kemudian diikuti sesuai
urutan gambar 4.3, sinyal- sinyal Ack, Paper Out dan Select melalui nibel (4-bit) Tinggi atau
MS (Most Significant) dari Port Kontrol. Tanda garis di atas sinyal digunakan sebagai tanda
inversi perangkat keras, yaitu +5V akan terbaca 0 dari register, sedangkan GND akan terbaca
1. Sedangkan Port Status hanya memiliki sebuah masukan terinversi.
Port Kontrol digunakan untuk membaca nibel Rendah atau LS (Least
Significant).Sebagaimana telah dijelaskan sebelumnya, Port Kontrol merupakan keluaran
kolektor terbuka, yaitu dua kemungkinan kondisi, impedansi tinggi dan GND. Jika kita
menghubungkan masukan-masukan kita langsung ke port (misalnya dengan sebuah
ADC0804 yang keluarannya totem pole), maka akan terjadi konflik jika masukannya tinggi
dan port mencoba untuk membuat rendah (pull it down), dengan demikian kita gunakan
inverter kolektor terbuka.
Bagaimanapun juga hal ini tidak perlu harus selalu dilakukan. Jika kita
menghubungkan saklar-saklar kutub tunggal (single pole switches) dengan port menggunakan
resistor pull up, maka tidak perlu dikuatirkan masalah proteksi di atas. Demikian juga jika
perangkat lunak Anda menginisialisasi Port Kontrol dengan xxxx0100 sehingga semua pin
pada port kontrol dalam kondisi tinggi, maka mungkin tidak perlu juga. Jika Anda tidak
mempedulikan dan alat terlanjur terpasang pada Port Paralel dan program telah berjalan,
maka Anda bisa mendapatkan masalah.
Permasalahan lain yang perlu diperhatikan adalah resistor pull-up yang terpasang pada
Port Kontrol dan rata-rata resistor tersebut bernilai 4K7 ohm. Agar jalur tersebut dapat
menyedot arus ke kondisi rendah (LOW), maka alat Anda harus mampu menyedot arus
sekitar 1mA, yang mana beberapa piranti-piranti daya rendah kesulitan melakukan hal
tersebut. Sekarang apa yang akan terjadi jika dianggap beberapa port memiliki resistorpull-
up sebesar IK ohm? Maka alat Anda harus mampu menyedot arus (sink) sebesar 5 mA. Hal
ini semakin menguatkan alasan penggunaan inverter kolektor terbuka.
Walaupun penyangga kolektor terbuka bisa juga digunakan, namun inverter kolektor
terbuka yang dipiiih, karena inverter tersebut banyak dijumpai di pasaran. Kemungkinan lain
adalah penggunaan transistor.
Masukan D3 dihubungkan melalui inverter ke Select Printer. Sinyal ini merupakan bit-
3 dari Port Kontrol, D2, D1 dan D0 dihubungkan masing-masing ke Init, Auto linefeed dan
Strobe. Jika hal ini sudah selesai kita rangkai, sekarang ditulis programnya. Pertama kali kita
harus mcnuliskan xxxx0100 ke Port Kontrol agar semua jalur kontrol dalam kondisi tinggi
(HIGH), sehingga dapat digunakan untuk menarik rendah (pull down) masukan data .
Kemudian kita dapat membaca nibel MS dari port Status. Dengan demikian akan kita AND-
kan hasilnya dengan F0h (agar nibel LS terhapus = 0). Sinyal Busy di- inversikan secara
perangkat keras, namun sementara ini belum kita khawatirkan. Sekali dua byte
direkonstruksikan, dengan cara mentogel Busy dan Init pada saat yang bersamaan.
Sekarang kita bisa membaca nibel LS pada Port Kontrol begitu mudahnya. Sekarang
kita tidak tertarik pada nibel MS pada port, sehingga kita AND- kan hasilnya dengan 0Fh
untuk menghapus nibel MS tersebut. Setelah itu, kita kombinasikan keduanya, dengan cara
OR-kan kedua byte tersebut. Sekarang diperoleh sebuah byte, namun perlu diketahui bahwa
bit-2 dan 7 diinversi, sehingga perlu di-XOR-kan dengan 84h atau 1000 0100b untuk
mentogel kedua bit tersebut.
Catatan: Beberapa port kontrol bukan merupakan kolektor terbuka, namun berupa totem
pole. Hal ini berlaku juga untuk port EPP dan ECP. Normalnya jika anda menggunakan mode
EPP atau ECP pada Port Paralel, port kontrol menjadi keluaran totem pole saja. Sekarang apa
yang terjadi jika Anda menghubungkan peralatan ke Port Paralel dalam mode ini? Untuk
portabilitas, disarankan untuk menggunakan rangkaian yang akan dibahas berikut, membaca
sebuah nibel.
[7]
14. MODE NIBEL
Mode nibel merupakan cara untuk membaca 8-bit data tanpa menempatkan port pada
mode terbalik (reverse mode) dan tanpa menggunakan jalur data. Mode nibel menggunakan
sebuah 1C Quad 2 to 1 multiplexer (74LS157) untuk membaca sebuah nibel data, kemudian
pindah ke nibel satunya dan membacanya. Melalui perangkat lunak kedua nibel tersebut
disatukan menjadi sebuah byte. Kelemahan mode ini hanya masalah lambatnya proses. Dan
dibutuhkan beberapa perintah I/O untuk membaca sebuah byte dan membutuhkan 1C
eksternal.
Gambar 16. Masukan 8- bit menggunakan 74LS157 [7]
Cara kerja rangkaian pada gambar 14 cukup mudah. 74LS157 Bertindak seakan-akan
sebagai empat saklar. Jika masukan A/B dalam kondisi LOW, maka masukan A dipilih,
misalnya 1A ke 1Y, 2A ke 2Y dan seterusnya. Jika sekarang masukan A/B = 1, maka
masukan B dipilih. Keluaran Y dihubungkan ke port status dari Port Paralel sedemikian
hingga menyatakan nibel MS dari register status, hal ini untuk memudahkan dalam penulisan
program.
Untuk menggunakan rangkaian ini, pertama kali harus dilakukan inisialisasi multi-
plekser untuk memilih masukan A atau B. Kita akan membaca nibel LS terlebih dahulu,
sehingga masukan A/B dibuat = 0 (dari B > Y), karena sinyal strobe terinversi secara
perangkat keras, maka bit-0 pada port kontrol agar dalam kondisi LOW (=0) diberi nilai 1.
Setelah nibel rendah terpilih, kemudian dilakukan pembacaan dari port status. Perhatian,
jalur busy diinversikan, namun belum akan kita tangani saat ini. Kita hanya tertarik pada
nibel LS (rendah) saja, sehingga hasilnya di-AND-kan dengan F0h untuk menghapus nibel
MS (tinggi).
[7]
15. PENGGUNAAN INTERUPSI PADA PORT PARALEL
IRQ pada Port Paralel tidak digunakan untuk pencetakan dalam lingkungan DOS atau
Windows. Versi awal dari 0/S 2 yang menggunakannya, namun tidak dipakai pada versi-versi
berikutnya. Interupsi sangat baik digunakan saat melakukan pengantarmukaan alat
pengawasan seperti alarm suhu tinggi dan lain-lain, yang mana Anda tidak tahu kapan alarm
tersebut aktif. Akan lebih enak menggunakan interupsi dibandingkan menggunakan
teknik polling dan hal ini akan terasa manfaatnya jika komputer juga harus melakukan
proses-proses yang lain.
Interupsi yang digunakan pada Port Paralel adalah IRQ5 atau IRQ7, atau yang lainnya
jika kedua interupsi ini telah dipakai. Serta dimungkinkan juga interupsi tersebut dimatikan
pada kartunya, jika kartu tersebut hanya digunakan untuk tujuan pencetakan. Namun dengan
menggunakan bit-4 pada register kontrol, Anda dapat mengaktifkan dan mematikan interupsi,
mengaktifkan IRQnya, melalui jalur Ack. Interupsi umumnya akan muncul pada saat terjadi
transisi dari rendah ke tinggi (rising edge) pada jalur Ack. Dan ada pula yang terjadi pada
saat transisi dari tinggi ke rendah.
Kode-kode program berikut digunakan untuk menguji polaritas suatu interupsi
sekaligus contoh program yang menggunakan interupsi. Program ini akan memeriksa apakah
interupsi terjadi pada saat naik atau jatuhnya sisi pulsa pada jalur Ack. Untuk menggunakan
program, cukup Anda sambung salah satu dari kaki 2 hingga 9 (pin-pin data) ke pin Ack
(atau kaki 10), misalnya kaki 9 dan 10 (agar tidak memerlukan kabel penghubung atau
langsung disolder).
Pada saat kompilasi mungkin akan dihasilkan beberapa peringatan atau warning seperti
"condition always true", "condition always false", "unreachable code" dan lain- lain. Hal ini
tidak perlu dicemaskan, karena peringatan-peringatan tersebut berasal dari beberapa
pengujian struktur kondisi dimana IRQ-nya diuji dan karena IRQ didefinisikan sebagai
konstanta beberapa hasi tidak berubah. Sebenarnya hal-hal demikian bisa juga
diimplementasikan sebagai pengarah praprosesor (preprocessor directive).
Bagian awal rutin program menghitung Vektor Interupsi, alamat PIC dan Mask dalam
rangka penggunaan fasilitas interupsi Port Paralel. Setelah Rutin Layanan Interupsi (RLI)
disiapkan demikian juga dengan PIC-nya, maka kita aktifkan interupsi pada Port Paralel,
yang bisa dilakukan dengan membuat bit-4 pada register kontrol menjadi 1:
Sebelum mengaktifkan interupsi, kita tuliskan FFh pada port paralel terlebih dahulu
agar kondisi 8 jalur data menjadi jelas (=1). Karena semua jaiur data sudah samadengan 1,
maka kita sekarang dalam posisi siap untuk menuliskan 00h pada port data, yang akan
mengakibatkan transisi tinggi ke rendah pada jaiur Ack di port paralel (karena terhubungkan
pada salah satu dari 8 jaiur data).
Jika interupsi muncul pada transisi tinggi ke rendah tersebut maka IF (Interrupt Flag)
akan diset dan otomatis jenis polaritas interupsinya adalah transisi tinggi ke rendah. Jika
dengan transisi tersebut interupsi belum muncul maka kita tuliskan port data (paralel,) agar
terjadi transit rendah ke tinggi. Jika tetap tidak muncul interupsi, kemungkinan tidak bekerja,
pastikan IRQ dan alamat dasarnya benar dan koneksi (jalur data dan Ack) pada konektor
DB25 male.
[7]
16. MODE-MODE PORT PARALEL DALAM BIOS
Saat ini kebanyakan Port Paralel merupakan port-port beragam mode dan normalnya dapat
dikonfigurasi melalui perangkat lunak. Mode- modenya meliputi:
Mode Printer (kadangkala disebut Default atau Normal Mode)
Mode Standard and Bi-directional (SPP)
Mode EPP1.7 and SPP
Mode EPP1.9 and SPP
Mode ECP
Mode ECP and EPP1.7
Mode ECP and EPP1.9
Mode Printer merupakan mode yang paling dasar dan merupakan Port Paralel standar
satu arah, tidak ada fitur dwi-arah, sehingga bit-5 pada port kontrol tidak digunakan. Mode
Standard and Bi-directional merupakan mode dwi-arah. Menggunakan mode ini, bit-5 pada
port kontrol akan membalikkan arah port sehingga Anda dapat membaca kembali nilai yang
diberikan pada jalur data.
Mode EPP1.7 and SPP merupakan suatu kombinasi dari Mode EPP 1.7(Enhanced
Parallel Port) dan SPP. Pada mode ini Anda diperbolehkan mengakses register-register SPP
(data, status dan kontrol) serta register- register EPP. Pada mode ini juga, Anda bisa
membalikkan arah port menggunakan bit-5 dari register kontrol. EPP 1.7 merupakan versi
awal dari EPP dimana tidak terdapat bit untuk time-out.
Mode EPP1.9 and SPP seperti mode sebelumnya, hanya saja menggunakan versi 1.9
dari EPP dan membolehkan pengaksesan bit tune-out pada register EPP.
Mode ECP akan memberikan Port dengan kemampuan
tambahan (ExtendedCapabilities Port). Mode ini dapat diset melalui register kontrol
tambahan (extended control register) dari ECP. Hanya saja mode ini EPP tidak tersedia.
Mode ECP and EPP 1.7 dan ECP and EPP1.9 akan memberikan ECP, seperti mode
sebelumnya. Namun mode EPP dalam ECR-nya mode EPP disediakan dan versi mode EPP-
nya mengikutii versi 1.7 atau 1.9.
Mode-mode diatas dapat dikonfigurasi melalui BIOS. Anda bias mengkonfigurasi
ulang menggunakan perangkat lunak yang Anda tulis, tetapi ini tidak disarankan. Register-
register perangkat lunak ini, umumnya ditemukan pada alamat-alamat 2FAh, 3F0h, 3Flh dan
lain-lain yang diperuntukkan diakses oleh BIOS. Tidak ada standarisasi pada register-register
konfigurasi ini, sehingga jika Anda ingin menggunakan register-register tersebut, maka
perangkat lunak atau program Anda menjadi tidak portable.
Pilihan yang baik adalah Mode ECP and EPP 1.7 atau ECP and EPP1.9 melalui BIOS
kemudian menggunakan register control tambahan ECP untuk memilih mode Port Paralel
Anda. Mode EPP1.7 memiliki beberapa 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 mode ini sudah jarang digunakan
sekarang. Dengan demikian pilihan terbaik pada Mode ECP and
EPP1.9. [7]
17. Mode -Mode Port Paralel dan Register Kontrol ECP
Sebagaimana telah dibicarakan sebelumnya, pilihan terbaik adalah menggunakan
Mode ECP and EPP1.9 dan menggunakan Register kontrol tambahan ECP untuk memilih
beragam mode operasi. Register ECP distandarisasi dibawah Microsoft's Extended Capa
bilities Port Protocol and ISA Interface Standard, sehingga kita tidak memiliki masalah
lagi yang berkaitan dengan standarisasi.
Pada saat diset Mode ECP, sebuah register baru muncul pada alamat dasar + 400h.
Pada tabel 5 ditunjukkan ECR (Extended Control Registerr) yang dipetakan pada alamat
dasar + 402h. Catatan: register ECP tidak akan tersedia untuk port-port dengan alamat dasar
0x3BC.
Pada tabel 6 ditunjukkan untuk ECR, yang perlu diperhatikan adalah 3 MSB (.bit 5, 6
dan 7) dari ECR yang digunakan untuk memilih mode operasi. Ada 7 kemungkinan mode
operasi, namun tidak semua port mendukung semua mode tersebut. Mode EPP misalnya,
tidak tersedia untuk beberapa port.
Mode - mode Operasi
Mode Standar
Mode ini menyebabkan port ECP bertingkahlaku seperti SPP (Standard Parallel Port) tanpa
fungsi dwi-arah;
Mode Byte (Mode PS/2)
Seperti pada SPP dalam mode dwi-arah, bit-5 akan membuat port dalam mode terbalik (data
> komputer);
Mode Paralel (FIFO)
Pada mode ini, sembarang data yang dituliskan ke FIFO data akan terkirim ke piranti
menggunakan SPP handshake. Perangkat keras akan membangkitkan sinyal-
sinyalhandshaking yang dibutuhkan. Berguna untuk alat-alat non-ECP seperti Pencetak
(Printer). Anda dapat memperoleh beberapa fitur ECP seperti penyangga FIFO dan perangkat
keras pembangkit sinyal handshaking namun dengan SPP
handshake (bukanECP handshake);
Mode FIFO ECP
Mode standar untuk ECP. Mode ini menggunakan ECP handshake. Pada saat menggunakan
Mode ECP dan register ECR diset ke mode FIFO ECP, maka register SPP akan hilang.
Mode EPP 'tercadang)
Untuk mengaktifkan mode EPP, jika tersedia. Jika pada BIOS diset ke Mode ECP
andEPPl.x, maka EPPl.x akan tersedia dibawah standarisasi Microsoft's Extended
Capabilities Port Protocol and ISA Interface Standard mode; ini digunakan untuk Para
Pemasok (Vendor) Tercadang Dibawah standarisasi Microsoft's Extended Capabilities Port
Protocol and ISA Interface Standard mode ini digunakan untuk Para Pemasok(Vendor).
Mode FIFO Test
Pada mode ini, sembarang data yang dituliskan ke Register test FIFO akan ditempatkan pada
FIFO dan sembarang data yang terbaca dari register Test FIFO akan dibaca melalui
penyangga FIFO. Bit status FIFO penuh/kosong sesuai dengan kondisi sebenarnya.
Mode Konfigurasi
Pada mode ini, dua register konfigurasi, cnfgA dan cnfgB akan tersedia pada alamatnya
masing-masing.
Tabel 6. ECR
Jika Anda berada dalam mode ECP (melalui BIOS) atau kartu pencetak Anda diset
menggunakan ECP maka ada baiknya untuk menginisialisasi mode dari port ECP Anda ke
suatu kondisi awal sebelum digunakan. Jika Anda ingin menggunakan mode SPP, maka set
port ke Mode Standar untuk pertama kalinya, jangan punya anggapan bahwa port siap dalam
mode SPP.
Untuk beberapa mode, register SPP dapat hilang atau tidak bekerja dengan baik. Jika
Anda menggunakan SPP, maka set ECR ke Mode Standar.
[7]
18. CONTOH PROGRAM
################################################
# Program C : Antarmuka LCD dengan Port Paralel #
################################################
Modul LCD yang tersedia dalam berbagai macam seperti 8x1, 8x2 16x1, 16x2, 20x2,
20x4, 40x4. Di sini kita telah menggunakan 16x2 - yang berarti 2 baris 16 karakter. Ini
adalah Hitachi HD44780 modul yang kompatibel, memiliki 16 pin termasuk 2 pin untuk
lampu latar.
Tabel berikut memberikan struktur pin modul LCD. Modul LCD tanpa backlight
hanya akan memiliki 14 pin. Jika Anda menggunakan LCD seperti, mengabaikan pin 15
dan 16.
Tabel 7. Pin LCD
Untuk program modul LCD, pertama kita harus menginisialisasi LCD dengan
mengirimkan beberapa kata kontrol. RS harus rendah dan E harus tinggi ketika kita
mengirim kontrol. R / W pin 0 berarti data menulis atau kontrol ke LCD dan R / W pin 1
berarti membaca data dari LCD. Untuk mengirim data ke LCD, membuat RS tinggi, R /
W rendah, menempatkan data di pin 7 sampai 14 dan membuat E pin tinggi dan rendah
sekali. Anda dapat memahami metode yang tepat setelah melihat kode, kemudian dalam
tutorial ini. Di sini, kita akan menulis pada modul LCD dan tidak membaca kembali.
Jadi, R / W adalah secara langsung terhubung ke ground. Kita tidak perlu harus
masukan data melalui, sehingga semua pin output yang digunakan dalam aplikasi kita.
Data pin LCD yang terhubung ke pin data port. Strobe sinyal (Pin 1 dari konektor D25)
diberikan ke E (Pin 6 LCD), Pilih printer (Pin 17 dari D25) terhubung ke RS (pin 4 dari
LCD).
Gambar 17. Rangkaian Modul LCD Dengan DB25
Dalam diagram di atas, modul LCD dihubungkan ke port LPT menggunakan D25
konektor laki-laki. Nomor pin 3 dari LCD adalah untuk menyesuaikan kontras, dihubungkan
sedemikian rupa sehingga dapat bervariasi dari 0V ke 5V.
Jika semuanya OK, Anda harus mendapatkan modul LCD sebagai berikut ketika berada
dalam posisi ON.
Gambar 18. LCD Dalam Posisi ON
Jika Anda mendapatkan layar ini, maka kita dapat memulai pemrograman. Jika
tidak periksa koneksi Anda, cobalah dengan memvariasikan potensiometer 10K. Jika
Anda mendapatkan tampilan ini juga, Anda bisa mendapatkan kejelasan maksimum
dengan memvariasikan pot. Bagi saya, pot yang diperlukan untuk menjadi hampir 0V.
Jadi, itu adalah OK jika Anda tidak menggunakan pot juga, hanya menghubungkan pin 3
ke ground.
Tabel berikut menjelaskan bagaimana untuk menulis kata-kata control Ketika RS =
0 dan R / W = 0, data dalam pin D0 untuk D7 akan memiliki arti sebagai berikut.
Tabel 8. Deskripsi Kontrol LCD
LISTING PROGRAM
#include <dos.h>
#include <string.h>
#include <conio.h>
#include <time.h>
#define PORTADDRESS 0x378 /* Enter Your Port Address Here */
#define DATA PORTADDRESS+0
#define STATUS PORTADDRESS+1
#define CONTROL PORTADDRESS+2
void lcd_init(void);
void lcd_write(char char2write);
void lcd_putch(char char2write);
void lcd_puts(char * str2write);
void lcd_goto(int row, int column);
void lcd_clear(void);
void lcd_home(void);
void lcd_cursor(int cursor);
void lcd_entry_mode(int mode);
void main(void)
{
lcd_init();
lcd_goto(1,1);
lcd_puts("Welcome To");
lcd_goto(1,0);
lcd_puts("electroSofts.com");
while(!kbhit() ) //wait until a key is pressed...
{}
}
void lcd_init()
{
outportb(CONTROL, inportb(CONTROL) & 0xDF);
//config data pins as output
outportb(CONTROL, inportb(CONTROL) | 0x08);
//RS is made high: control (register select)
lcd_write(0x0f);
delay(20);
lcd_write( 0x01);
delay(20);
lcd_write( 0x38);
delay(20);
}
void lcd_write(char char2write)
{
outportb(DATA, char2write);
outportb(CONTROL,inportb(CONTROL) | 0x01); /* Set Strobe */
delay(2);
outportb(CONTROL,inportb(CONTROL) & 0xFE); /* Reset Strobe */
delay(2);
}
void lcd_putch(char char2write)
{
outportb(CONTROL, inportb(CONTROL) & 0xF7);
//RS=low: data
lcd_write(char2write);
}
void lcd_puts(char *str2write)
{
outportb(CONTROL, inportb(CONTROL) & 0xF7);
//RS=low: data
while(*str2write)
lcd_write(*(str2write++));
}
void lcd_goto(int row, int column)
{
outportb(CONTROL, inportb(CONTROL) | 0x08);
if(row==2) column+=0x40;
/* Add these if you are using LCD module with 4 columns
if(row==2) column+=0x14;
if(row==3) column+=0x54;
*/
lcd_write(0x80 | column);
}
void lcd_clear()
{
outportb(CONTROL, inportb(CONTROL) | 0x08);
lcd_write(0x01);
}
void lcd_home()
{
outportb(CONTROL, inportb(CONTROL) | 0x08);
lcd_write(0x02);
}
void lcd_entry_mode(int mode)
{
/*
if you dont call this function, entry mode sets to 2 by
default.
mode: 0 - cursor left shift, no text shift
1 - no cursor shift, text right shift
2 - cursor right shift, no text shift
3 - no cursor shift, text left shift
*/
outportb(CONTROL, inportb(CONTROL) | 0x08);
lcd_write(0x04 + (mode%4));
}
void lcd_cursor(int cursor)
{
/*
set cursor: 0 - no cursor, no blink
1 - only blink, no cursor
2 - only cursor, no blink
3 - both cursor and blink
*/
outportb( CONTROL, inportb(CONTROL) | 0x08 );
lcd_write( 0x0c + (cursor%4));
}
Dan Output Program Seperti Berikut :
Gambar 19. Output
[8]
###################################################
# Program Delphi : Menghidupkan Dan Mematikan Led #
###################################################
Pembuatan program Bahasa Delphi komunikasi paralel dengan menggunakan komponen
io.dll, untuk menghidupkan dan mematikan LED.
Perhatikan pada gambar 20 tersebut. Delapan buah LED terhubung ke port 0, yang
difungsikan sebagai output. Pada konfigurasi tersebut LED akan nyala bila diberi logika
LOW ‘0’ melalui port 0, dan LED akan padam bila diberi logika HIGH ‘1’ melalui port
0.
Gambar 20. Rangkaian LED
Percobaan ON OFF 8 buah LED secara bersamaan
Rencanakan program untuk menghidupkan dan mematikan LED 8 buah, dengan menekan
tombol ON dan OFF, pada komunikasi paralel. Lakukan sesuai dengan langkah-langkah
berikut ini:
1. Hubungkan kabel paralel pada port paralel komputer ke rangkaian LED.
2. Rencanakan program dengan tampilan sebagai berikut.
Gambar 21. Tombol ON dan OFF
LISTING PROGRAM
implementation
{$R *.dfm}
procedure PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
portout($378,0);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
portout($378,255);
end;
[10]
################################
# Program Java : Rangkaian LED #
################################
Buat rangkaian LED-nya selang-seling dan solder resistor pada pin 2-9 (resistor boleh
terbalik).
Solder kaki LED positif ke resistor dan LED negatif ke pin 25 (kaki LED yang panja
ng itu positif sedangkan kaki LED yang pendek itu negatif. Ini tidak boleh terbalik ).
Gambar 22. Rangkaian LED dan DB25
Jangan Lupa Letakkan jnpout32.dll di C:WINDOWSsystem32
Buat program java dengan nama ioPort.java untuk komunikasi ke portnya.
Gambar 23. Program Java
Buat program tes.java untuk programnya :
Gambar 24. Program Tes Java
Pasang rangkaian led ke port paralel dan pastikan semua led dalam keadaan menyala. Compil
e dan jalankan program java di atas.
Ganti nilai alamat pin pada tes.java dengan 0-
255 bebas, compile lalu jalankan programnya. Prinsipnya, untuk menyalakan LED, kita
kirim data ke port paralel.
Sesuaikan pengiriman data ini dengan LED yang ingin dinyalakan. Misalnya, untuk
menyalakan LED pertama, maka data yang dikirim adalah 1 desimal.
Daftar berikut dapat digunakan sebagai acuan.
DataPort Bit 0 = LED1 = 00000001 bin = 1 hex = 1 Oct = 1 dec
DataPort Bit 1 = LED2 = 00000010 bin = 2 hex = 2 Oct = 2 dec
DataPort Bit 2 = LED3 = 00000100 bin = 4 hex = 4 Oct = 4 dec
DataPort Bit 3 = LED4 = 00001000 bin = 8 hex = 10 Oct = 8 dec
DataPort Bit 4 = LED5 = 00010000 bin = 10 hex = 20 Oct = 16 dec
DataPort Bit 5 = LED6 = 00100000 bin = 20 hex = 40 Oct = 32 dec
DataPort Bit 6 = LED7 = 01000000 bin = 40 hex = 100 Oct = 64 dec
DataPort Bit 7 = LED8 = 10000000 bin = 80 hex = 200 Oct = 128 dec
[11]
######################################
# Program Visual Basic : Rangkaian LED #
######################################
Dibutuhkan suatu cara agar VB bisa melakukan akses perangkat keras. Salah satunya
dengan lib io.dll, yang bisa didownload dari http://www.geekhideout.com/iodll.shtmlsecara
gratis, yang harus disimpan atau ditempatkan pada folder C:/windows/system32pada
komputer.
Cara penggunaannya sangat mudah, pertama definisikan terlebih dahulu fungsi dan
prosedur untuk akses masukan maupun keluaran perangkat keras pada bagian modul khusus
VB sebagai berikut:
Public Declare Sub PortOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Byte)
Public Declare Sub PortWordOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Integer)
Public Declare Sub PortDWordOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Long)
Public Declare Function PortIn Lib "io.dll" _
(ByVal Port As Integer) As Byte
Public Declare Function PortWordIn Lib "io.dll" _
(ByVal Port As Integer) As Integer
Public Declare Function PortDWordIn Lib "io.dll" _
(ByVal Port As Integer) As Long
Public Declare Sub SetPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub ClrPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub NotPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Function GetPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte) As Boolean
Public Declare Function RightPortShift Lib "io.dll" _
(ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function LeftPortShift Lib "io.dll" _
(ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function IsDriverInstalled Lib "io.dll" () As Boolean
Kedua tinggal penggunaan fungsi dan prosedur tersebut secara biasa,
fungsi PortInmembutuhkan dua parameter yaitu alamat perangkat keras dan variabel hasil
pembacaan data dari perangkat keras dengan tipe data byte. Sedangkan
prosedur PortOutmembutuhkan dua parameter juga yaitu alamat perangkat keras dan nilai
atau variabel yang menyimpan nilai yang akan dikirimkan ke perangkat keras yang
bersangkutan.
PortOut : Mengirim data dalam format byte (8-bit) ke port tertentu.
PortWordOut : Mengirim data dalam format word (16-bit) ke port tertentu.
PortDWordOut : Mengirim data dalam format double word (32-bit) ke port tertentu.
PortIn : Membaca data falam format byte (8-bit) dari port tertentu.
PortWordIn : Membaca data falam format word (16-bit) dari port tertentu.
PortDWordIn : Membaca data falam format double word (32-bit) dari port
tertentu.
GetPortBit : Membaca status dari bit tertentu.
SetPortBit : Set bit (=1) pada port tertentu.
ClrPortBit : Reset bit (=0) pada port tertentu.
NotPortBit : Lakukan inversi (NOT) bit pada port tertentu
RightPortShift : Geser bit dari port tertentu ke kanan, LSBMSB.
LeftPortShift : Geser bit dari port tertentu ke kiri, MSB LSB.
IsDriverInstalled : Akan memberikan nilai bukan-NOL jika io.dll sudah terinstal dan
berfungsi. Tujuan utama dari fungsi ini adalah untuk memastikan
bahwa penggerak mode kernel pada NT/2000/XP telah diinstal dan
dapat diakses.
Pemograman LED Driver adalah sebuah program yang digunakan untuk melakukan
pengontrolan nyala LED melalui port paralel. Program ini memerlukan rangkaian LED driver
yang dipasangkan pada port paralel dan program LED driver untuk menjalankannya.
Rangkaian LED Driver berikut digunakan untuk interfacing LED dengan port Paralel
:
Gambar 25. Rangkaian LED Driver
PEMOGRAMAN LED DRIVER untuk Menghidupkan dan mematikan LED
Program ini digunakan untuk mematikan dan menghidupkan LED-LED yang terpasang pada
pin-pin data secara bersama-sama. Menggunakan bantuan komponen CheckBox, 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 26. Tampilan Program menghidupkan dan mematikan LED
KOMPONEN VISUAL BASIC
Komponen Properti Subroutin
Form Name : Form1
Caption : Led Driver1
Private Sub Form_Load()
CheckBox Name : Check1
Caption : ON/OFF
Private Sub Check1_Click()
CommandButton Name : Command1
Caption : Keluar
Private Sub
Command1_Click()
LISTING PROGRAM
Private Sub Form_Load()
If Not IsDriverInstalled Then
MsgBox "error", vbOKOnly
Unload Me
End If
End Sub
Private Sub Check1_Click()
If Check1.Value = 1 Then
PortOut &H378, &HFF
Check1.Caption = "Lampu ON semua"
Else
PortOut &H378, &H0
Check1.Caption = "Lampu OFF semua"
End If
End Sub
Private Sub Command1_Click()
Unload Me
End Sub
[12]
Referensi:
[1] http://lpfilkom.freeservers.com/referens/LPT_B.htm
[2] http://blog.ub.ac.id/yufen/2010/03/07/interface-port-paralel/
[3] http://terminaltechno.blog.uns.ac.id/2009/11/07/contoh-rangkaian-dan-program-
aplikasi-dengan-konektor-db9-db25-dan-usb/
[4] http://bocah-cakil.blogspot.com/2010/03/port-paralel-db25.html
[5] http://haris-tkj-kreatif.blogspot.com/2011/05/port-printer.html
[6] http://www.mycomputerclub.com/reference-cables-guide.html
[7] journal.mercubuana.ac.iddatalecKK-012325-6-1.pdf
[8] http://electrosofts.com/parallel/lcd.html
[9] http://electrosofts.com/parallel/index.html
[10] http://www.scribd.com/doc/52218613/Pentunjuk-Praktikum-Interface-Paralle-Serial2009
[11] http://dc381.4shared.com/doc/7DDTYBbZ/preview.html
[12] http://elib.unikom.ac.id/files/disk1/469/jbptunikompp-gdl-taufiknuzw-23447-1-
modulla-g.doc

More Related Content

What's hot

Desai Sistem Kendali dengan root locus
Desai Sistem Kendali dengan root locusDesai Sistem Kendali dengan root locus
Desai Sistem Kendali dengan root locusRumah Belajar
 
Pengertian dan Cara Kerja Phase Modulasi (PM)
Pengertian dan Cara Kerja Phase Modulasi (PM)Pengertian dan Cara Kerja Phase Modulasi (PM)
Pengertian dan Cara Kerja Phase Modulasi (PM)
Reinaldo Rahadian Putra
 
Gerbang logika
Gerbang logikaGerbang logika
Gerbang logikaputusumaye
 
Ladder diagram
Ladder diagramLadder diagram
Ladder diagram
Satriya Rizkiyanto
 
Telekomunikasi Analog dan Digital - Slide week 7 derau dalam sistem komunikasi
Telekomunikasi Analog dan Digital - Slide week 7   derau dalam sistem komunikasiTelekomunikasi Analog dan Digital - Slide week 7   derau dalam sistem komunikasi
Telekomunikasi Analog dan Digital - Slide week 7 derau dalam sistem komunikasiBeny Nugraha
 
01 memahami bahasa assembly
01 memahami bahasa assembly01 memahami bahasa assembly
01 memahami bahasa assembly
Arman Tan
 
konsep dasar sinyal dan sistem
konsep dasar sinyal dan sistemkonsep dasar sinyal dan sistem
konsep dasar sinyal dan sistem
rajareski ekaputra
 
Permasalahan dalam sistem telekomunikasi
Permasalahan dalam sistem telekomunikasiPermasalahan dalam sistem telekomunikasi
Permasalahan dalam sistem telekomunikasi
Aulia Rizqi
 
Bab 7 multiplexing
Bab 7 multiplexingBab 7 multiplexing
Bab 7 multiplexingbrilorabbit
 
6 Frekuensi Sinyal
6  Frekuensi Sinyal6  Frekuensi Sinyal
6 Frekuensi Sinyal
Simon Patabang
 
1 konsep sinyal
1 konsep sinyal1 konsep sinyal
1 konsep sinyal
Simon Patabang
 
Transmission line waveguide
Transmission line waveguide Transmission line waveguide
Transmission line waveguide
Muhammad Didik Wijaya
 
Pertemuan 6 & 7 ars. gerbang logika
Pertemuan 6 & 7 ars. gerbang logikaPertemuan 6 & 7 ars. gerbang logika
Pertemuan 6 & 7 ars. gerbang logika
Buhori Muslim
 
2 dasar praktikum sinyal dgn matlab
2  dasar praktikum sinyal dgn matlab2  dasar praktikum sinyal dgn matlab
2 dasar praktikum sinyal dgn matlab
Simon Patabang
 
Tugas modulation AM, FM, dan PM
Tugas modulation AM, FM, dan PMTugas modulation AM, FM, dan PM
Tugas modulation AM, FM, dan PM
Information and Technology
 
Kuliah 3-modulasi-amplitudo
Kuliah 3-modulasi-amplitudoKuliah 3-modulasi-amplitudo
Kuliah 3-modulasi-amplitudo
arinnana
 
8 kuantisasi
8 kuantisasi8 kuantisasi
8 kuantisasi
Simon Patabang
 
Dasar Sistem Telekomunikasi
Dasar Sistem TelekomunikasiDasar Sistem Telekomunikasi
Dasar Sistem Telekomunikasi
Afdan Rojabi
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1BAIDILAH Baidilah
 

What's hot (20)

Desai Sistem Kendali dengan root locus
Desai Sistem Kendali dengan root locusDesai Sistem Kendali dengan root locus
Desai Sistem Kendali dengan root locus
 
Modul Pemrograman Bahasa Assembly
Modul Pemrograman Bahasa AssemblyModul Pemrograman Bahasa Assembly
Modul Pemrograman Bahasa Assembly
 
Pengertian dan Cara Kerja Phase Modulasi (PM)
Pengertian dan Cara Kerja Phase Modulasi (PM)Pengertian dan Cara Kerja Phase Modulasi (PM)
Pengertian dan Cara Kerja Phase Modulasi (PM)
 
Gerbang logika
Gerbang logikaGerbang logika
Gerbang logika
 
Ladder diagram
Ladder diagramLadder diagram
Ladder diagram
 
Telekomunikasi Analog dan Digital - Slide week 7 derau dalam sistem komunikasi
Telekomunikasi Analog dan Digital - Slide week 7   derau dalam sistem komunikasiTelekomunikasi Analog dan Digital - Slide week 7   derau dalam sistem komunikasi
Telekomunikasi Analog dan Digital - Slide week 7 derau dalam sistem komunikasi
 
01 memahami bahasa assembly
01 memahami bahasa assembly01 memahami bahasa assembly
01 memahami bahasa assembly
 
konsep dasar sinyal dan sistem
konsep dasar sinyal dan sistemkonsep dasar sinyal dan sistem
konsep dasar sinyal dan sistem
 
Permasalahan dalam sistem telekomunikasi
Permasalahan dalam sistem telekomunikasiPermasalahan dalam sistem telekomunikasi
Permasalahan dalam sistem telekomunikasi
 
Bab 7 multiplexing
Bab 7 multiplexingBab 7 multiplexing
Bab 7 multiplexing
 
6 Frekuensi Sinyal
6  Frekuensi Sinyal6  Frekuensi Sinyal
6 Frekuensi Sinyal
 
1 konsep sinyal
1 konsep sinyal1 konsep sinyal
1 konsep sinyal
 
Transmission line waveguide
Transmission line waveguide Transmission line waveguide
Transmission line waveguide
 
Pertemuan 6 & 7 ars. gerbang logika
Pertemuan 6 & 7 ars. gerbang logikaPertemuan 6 & 7 ars. gerbang logika
Pertemuan 6 & 7 ars. gerbang logika
 
2 dasar praktikum sinyal dgn matlab
2  dasar praktikum sinyal dgn matlab2  dasar praktikum sinyal dgn matlab
2 dasar praktikum sinyal dgn matlab
 
Tugas modulation AM, FM, dan PM
Tugas modulation AM, FM, dan PMTugas modulation AM, FM, dan PM
Tugas modulation AM, FM, dan PM
 
Kuliah 3-modulasi-amplitudo
Kuliah 3-modulasi-amplitudoKuliah 3-modulasi-amplitudo
Kuliah 3-modulasi-amplitudo
 
8 kuantisasi
8 kuantisasi8 kuantisasi
8 kuantisasi
 
Dasar Sistem Telekomunikasi
Dasar Sistem TelekomunikasiDasar Sistem Telekomunikasi
Dasar Sistem Telekomunikasi
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
 

Similar to Interface paralel

Atraksi lampu led dengan port paralel
Atraksi lampu led dengan port paralelAtraksi lampu led dengan port paralel
Atraksi lampu led dengan port paralel
Institut Sains dan Teknologi Nasional
 
PENGERTIAN DAN FUNGSI PORT
PENGERTIAN DAN FUNGSI PORTPENGERTIAN DAN FUNGSI PORT
PENGERTIAN DAN FUNGSI PORT
meldimareta
 
Presentasi Komunikasi Data Transmisi Paralel.pptx
Presentasi Komunikasi Data Transmisi Paralel.pptxPresentasi Komunikasi Data Transmisi Paralel.pptx
Presentasi Komunikasi Data Transmisi Paralel.pptx
Achmad Hidayat
 
Semua Tentang Komunikasi Data
Semua Tentang Komunikasi DataSemua Tentang Komunikasi Data
Semua Tentang Komunikasi Data
OdangJana
 
Io interfacing standards for external devices
Io interfacing standards for external devicesIo interfacing standards for external devices
Io interfacing standards for external devicesieunity
 
Autad s 02 tugas presentasi
Autad s 02 tugas presentasiAutad s 02 tugas presentasi
Autad s 02 tugas presentasi
autadsadidan
 
MS. POWER POINT 2007 BAB 6
MS. POWER POINT 2007 BAB 6MS. POWER POINT 2007 BAB 6
MS. POWER POINT 2007 BAB 6
athaya azalia
 
TIK BAB 6 KELAS 9
TIK BAB 6 KELAS 9TIK BAB 6 KELAS 9
TIK BAB 6 KELAS 9
SINTYA NABILA
 
Protokol komunikasi komputer terapan jaringan
Protokol komunikasi komputer terapan jaringanProtokol komunikasi komputer terapan jaringan
Protokol komunikasi komputer terapan jaringan
Ali Must Can
 
Protokol komunikasi komputer terapan jaringan
Protokol komunikasi komputer terapan jaringanProtokol komunikasi komputer terapan jaringan
Protokol komunikasi komputer terapan jaringan
Adam Ginanjar
 
Peripheral peripheral jaringan pada komputer terapan
Peripheral peripheral jaringan pada komputer terapanPeripheral peripheral jaringan pada komputer terapan
Peripheral peripheral jaringan pada komputer terapan
Agus Lawolo
 
Presentation1
Presentation1Presentation1
Presentation1
Bramasta Samjaya
 
Bab 6
Bab 6Bab 6
Bab 6
Vito Naufa
 
Pengantar jarkom-1-4 tcp ip
Pengantar jarkom-1-4 tcp ipPengantar jarkom-1-4 tcp ip
Pengantar jarkom-1-4 tcp ip
broajox
 
Tugas TIK BAB 4 dan 5
Tugas TIK BAB 4 dan 5Tugas TIK BAB 4 dan 5
Tugas TIK BAB 4 dan 5bagaslg
 
Tugas Sekolah
Tugas SekolahTugas Sekolah
Tugas Sekolah
Hasanuddin University
 
Tik
TikTik

Similar to Interface paralel (20)

Atraksi lampu led dengan port paralel
Atraksi lampu led dengan port paralelAtraksi lampu led dengan port paralel
Atraksi lampu led dengan port paralel
 
Interfacing Number Display
Interfacing Number DisplayInterfacing Number Display
Interfacing Number Display
 
PENGERTIAN DAN FUNGSI PORT
PENGERTIAN DAN FUNGSI PORTPENGERTIAN DAN FUNGSI PORT
PENGERTIAN DAN FUNGSI PORT
 
Presentasi Komunikasi Data Transmisi Paralel.pptx
Presentasi Komunikasi Data Transmisi Paralel.pptxPresentasi Komunikasi Data Transmisi Paralel.pptx
Presentasi Komunikasi Data Transmisi Paralel.pptx
 
Semua Tentang Komunikasi Data
Semua Tentang Komunikasi DataSemua Tentang Komunikasi Data
Semua Tentang Komunikasi Data
 
Io interfacing standards for external devices
Io interfacing standards for external devicesIo interfacing standards for external devices
Io interfacing standards for external devices
 
Autad s 02 tugas presentasi
Autad s 02 tugas presentasiAutad s 02 tugas presentasi
Autad s 02 tugas presentasi
 
MS. POWER POINT 2007 BAB 6
MS. POWER POINT 2007 BAB 6MS. POWER POINT 2007 BAB 6
MS. POWER POINT 2007 BAB 6
 
TIK BAB 6 KELAS 9
TIK BAB 6 KELAS 9TIK BAB 6 KELAS 9
TIK BAB 6 KELAS 9
 
Protokol komunikasi komputer terapan jaringan
Protokol komunikasi komputer terapan jaringanProtokol komunikasi komputer terapan jaringan
Protokol komunikasi komputer terapan jaringan
 
Protokol komunikasi komputer terapan jaringan
Protokol komunikasi komputer terapan jaringanProtokol komunikasi komputer terapan jaringan
Protokol komunikasi komputer terapan jaringan
 
Peripheral peripheral jaringan pada komputer terapan
Peripheral peripheral jaringan pada komputer terapanPeripheral peripheral jaringan pada komputer terapan
Peripheral peripheral jaringan pada komputer terapan
 
Presentation1
Presentation1Presentation1
Presentation1
 
Bab 6
Bab 6Bab 6
Bab 6
 
Bab 6
Bab 6Bab 6
Bab 6
 
Pengantar jarkom-1-4 tcp ip
Pengantar jarkom-1-4 tcp ipPengantar jarkom-1-4 tcp ip
Pengantar jarkom-1-4 tcp ip
 
Tugas TIK BAB 4 dan 5
Tugas TIK BAB 4 dan 5Tugas TIK BAB 4 dan 5
Tugas TIK BAB 4 dan 5
 
Tugas Sekolah
Tugas SekolahTugas Sekolah
Tugas Sekolah
 
Tik
TikTik
Tik
 
Tik
TikTik
Tik
 

Interface paralel

  • 1. INTERFACE PARALEL 1. DEFINISI / PENJELASAN Antarmuka (interface) merupakan jembatan yang menghubungkan komputer dengan dunia luar. Port paralel merupakan salah satu antarmuka yang mudah digunakan untuk menghubungkan suatu alat (elektronik digital) pada komputer. [1] Port paralel (DB-25) adalah salah satu jenis soket pada personal komputer untuk berkomunikasi dengan peralatan luar seperti printer model lama. Karena itu paralel port sering juga disebut printer port. Perusahaan yang memperkenalkan port ini adalah Centronic, maka port ini juga disebut dengan Centronics port. [2] Kesederhanaan port ini dari sisi pemrograman dan antarmuka dengan hardware membuat port ini sering digunakan untuk percobaan-percobaan sederhana dalam perancangan peralatan elektronika. [2] Paralel port dapat mengirimkan 8 bit data sekaligus/serentak dalam satu waktu, lebih cepat dibanding serial port. Paralel port ini menggunakan konektor DB25. Panjang kabel maksimum yang diperlukan / diperbolehkan adalah 15 feet. [3] 2. PERANGKAT INTERFACE Berikut adalah gambar dari konektor DB25 : (a) (b) Gambar 1. (a) Konektor DB25 female, (b) Konektor DB25 male [Buatan Sendiri] Pada Gambar 1.(a) diatas merupakan konektor DB25 male yang sudah dirangkai dengan tambahan komponen untuk aplikasi downloader program dengan port paralel. 3. CONTOH PENGGUNAAN / PERIPHERAL Contoh penggunaan port paralel DB25 sebagai berikut :  Printer model lama  Zip drive  Beberapa scanner  Sound cards  Webcams  Gamepads dan joystick
  • 2.  Pemrogram EPROM  Peralatan SCSI melalui adapter Parallel ke SCSI  Percobaan dengan TTL 12 driver  External CD-Rom/RW drives  Dll [2] 4. METODE PENGIRIMAN Port Paralel banyak digunakan dalam berbagai macam aplikasi Interface. Port ini membolehkan kita memiliki masukan hingga 8 bit atau keluaran hingga 12 bit pada saat yang bersamaan dengan hanya membutuhkan sedikit rangkaian eksternal sederhana untuk melakukan suatu tugas tertentu. Port parallel ini terdiri dari : a) 4 Jalur Kontrol b) 5 Jalur Status c) 8 Jalur Data [4] Komunikasi yang dilakukan pada port paralel merupakan komunikasi yang mengirimkan data secara bersamaan. Pada penggunaan komunikasi paralel semua bit dikirim secara bersamaan pada waktu yang sama. Oleh karena itu pada komunikasi ini kita membutuhkan banyak kabel. Hal memang sering menjadi kelemahan komunikasi paralel akibat banyaknya kabel yang dibutuhkan, dan panjang kabel ini tidak boleh lebih dari 20 m, untuk menjaga keaslian data. Namun kelebihan komunikasi paralel adalah lebih cepat dan kapasitas yang dibawa juga banyak serta pemrograman yang lebih mudah. Komunikasi paralel yang digunakan adalah komunikasi paralel lewat kabel data untuk printer (saat mengeluarkan data). Pada keadaan normal (tidak aktif) tegangan pada pin-pin ini adalah 0 volt, namun bila kita beri high, maka tegangannya akan berubah menjadi 5 volt. DB25 adalah konektor yang umum digunakan di komputer sebagai port paralel ,sedangkan konektor Centronics umum ditemukan di printer. IEEE 1284 ialah standar yang menentukan 3 konektor berbeda yang dapat digunakan dengan port paralel, yaitu a) 1284 tipe A ialah konektor DB25 yang dapat ditemukan di hampir semua komputer, b) 1284 tipe B ialah konektor Centronics 34 pin yang umum ditemukan di printer, IEEE c) 1284 type C ialah konektor 36 pin seperti Centronics, tetapi ukurannya lebih kecil dan lebih memuaskan. Konektor ini diklaim memiliki pengunci (latch)jenis klip (clip), sifat elektrik yang lebih baik serta mudah dirakit. Juga mengandung dua pin tambahan yang dapat digunakan untuk mendeteksi apakah piranti yang terpasang memiliki daya atau tidak. [5]
  • 3. Gambar 2. DB25 Pada Komputer [3] DB25 memiliki 25 buah pin dengan keterangan : o Control pins  Pin 4 = Request To Send  Pin 5 = Clear to send  Pin 6 = DCE Ready  Pin 8 = received line signal detector  Pin 12 = secondary received line signal detector  Pin 13 = secondary clear to send  Pin 19 = secondary request to send  Pin 20 = DTE ready o Timing pins  Pin 15 = transmitter signal element timing (DCE-DTE)  Pin 17 = receiver signal element timing (DCE-DTE)  Pin 24 = transmitter signal element timing (DTE-DCT) o Other pins
  • 4.  Pin 1 = shield  Pin 7 = signal ground / common return  Pin 9 = reserved (testing)  Pin 10 = reserved (testing)  Pin 11 = unassigned  Pin 18 = local loopback  Pin 21 = remote loopback & signal quality detector  Pin 22 = ring indicator  Pin 23 = data signal rate select  Pin 25 = test mode  Pin 2 = transmit data  Pin 3 = receive data [3] Gambar 3. Pin 36 Centronic [5] Perusahaan yang memperkenalkan port ini adalah Centronic, dengan memperkenalkan dot matrix printer pada tahun 1970, maka port ini juga disebut dengan Centronics port. Tetapi setelah IBM dan Epson mengambil alih pasar printer dot matrix (kemudian diikuti oleh Hewlett Packard di DeskJet printer laser dan segmen) kebanyakan orang hanya mengasosiasikan kata Centronics dengan port interface itu sendiri, bukan nama produsen. [5]
  • 5. Gambar 4. Pinout Pada Konektor Port Paralel [5] Untuk lebih jelasnya setiap sinyal pada Paralel 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 : 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-Out / Paper End Sinyal paper out 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. Linefeed 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. Select-Printer
  • 6. Pemilihan printer sebagai piranti DTE (Data Terminal Equipment) berlangsung pada saluran sinyal ini. Port paralel ialah port data di komputer untuk mentransmisi 8 bit data dalam sekali detak. Standar port paralel yang baru ialah IEEE 1284 dimana dikeluarkan tahun 1994. Standar ini mendefinisikan 5 mode operasi sebagai berikut : 1. Mode kompatibilitas 2. Mode nibble 3. Mode byte 4. Mode EPP (enhanced parallel port) 5. Mode ECP (Extended capability port) Tujuan dari standar yang baru tersebut ialah untuk mendesain driver dan peralatan yang baru yang kompatibel dengan peralatan lainnya serta standar paralel port sebelumnya (SPP) yangn diluncurkan tahun 1981. Mode Kompatibilitas, nibble dan byte digunakan sebagai standar perangkat keras yang tersedia di port paralel orisinal dimana EPP dan ECP membutuhkan tambahan hardware dimana dapat berjalan dengan kecepatan yang lebih tinggi. Mode kompatibilitas atau (“Mode Centronics”) hanya dapat mengirimkan data pada arah maju pada kecepatan 50 kbytes per detik hingga 150 kbytes per detik. Untuk menerima data, anda harus mengubah mode menjadi mode nibble atau byte. Mode nibble dapat menerima 4 bit (nibble) pada arah yang mundur, misalnya dari alat ke komputer. Mode byte menggunakan fitur bi-directional parallel untuk menerima 1 byte (8 bit) data pada arah mundur. IRQ (Interrupt Request ) pada port paralel biasanya pada IRQ5 atau IRQ7. Port paralel Extend dan Enhanced menggunakan hardware tambahan untuk membangkitkan dan mengatur handshaking. Untuk mengeluarkan 1 byte ke printer menggunakan mode kompatibilitas, software harus : 1. Menulis byte ke data port. 2. Cek untuk melihat apakah printer sibuk, jika sibuk, ia tidak akan menerima data, sehingga data yang telah ditulis akan hilang. 3. Buat strobe (pin 1) rendah. Ini memberitahukan printer bahwa data yang benar telah berada di line data. 4. Buat strobe tinggi lagi setelah menunggu sekitar 5 mikrodetik setelah membuat strobe low. Hal ini membatasi kecepatan data. Sedangkan EPP dan ECP mengizinkan hardware mengecek jika printer sibuk dan mengeluarkan sinyal strobe atau handshaking lainnya. Ini berarti hanya 1 instruksi I/O yang harus dilakukan yang akan meningkatkan kecepatan Port ECP juga mempunyai kelebihan menggunakan saluran DMA dan buffer FIFO, jadi data dapat digeser tanpa menggunakan instruksi I/O. Protokol EPP mempunyai 4 macam siklus transfer data yang berbeda yaitu : 1. Siklus baca data (Data read) 2. Siklus baca alamat (Address Read) 3. Siklus tulis data (data write)
  • 7. 4. siklus tulis alamat (address write) Siklus data digunakan untuk mentrasfer data antara host dan peripheral. Siklus alamat digunakan untuk mengirimkan alamat, saluran (channel) atau informasi perintah dankontrol. [7] 5. CONTOH INTERFACE DENGAN MIKROKONTROLLER Membuat Downloader ISP Mikrokontroler dari Paralel Port STK200 Untuk mendownloadkan program yang kita buat ke Mikrokontroler MCS51 atau AVR kita membutuhkan sebuah peripheral tambahan yang mendukung antara komputer dan Mikrokontroler. Salah satu yang support dan dapat digunakan sebagai kabel downloader tersebut adalah kabel STK200 yang dapat kita buat sendiri dengan menggunakan DB25 (Parallel Port). Komponen yang kita butuhkan hanya Resistor 330ohm, Jumper, Black Holsing Kabel dan DB25 Male (karena Di PC adalah DB25 Female). Dan Konfigurasinya bisa dibuat seperti gambar dibawah ini : Gambar 5. AVR Kanda System STK200
  • 8. Gambar 6. Hasil Jadi Downloader Dari Paralel Port [Buatan Sendiri] Downloader LPT (ISP Programmer) merupakan sebuah perangkat downloader yang minimum dan sederhana karena hanya menggunakan port LPT (Parallel port) dan resistor sebagai pengaman. Proses Mendownload Program Dan Pengaturan Programmer Codevision AVR : 1. Memasang Port DB25 male (yang dibuat) ke Port DB25 female pada komputer. Gambar 7. Port DB25 Terpasang Pada Komputer [Buatan Sendiri] 2. Jalankan Aplikasi Codevision AVR. 3. Klik tombol Settings lalu pilih Programmer dan atur pada Programmer Settings seperti pada gambar. Catatan : Pengaturan ini hanya sekali saja.
  • 9. Gambar 8. Pengaturan Programmer [Buatan Sendiri] 4. Membuat program untuk dimasukkan pada mikrokontroller (Dalam percobaan ini membuat program untuk menampilkan data pada LCD). 5. Setelah selesai membuat program maka untuk memrogram / memasukkan file dari Codevisionavr ke mikro seperti di bawah ini : Gambar 9. Memasukkan Program Ke Mikro [Buatan Sendiri] 6. Caranya klik build all project files pada Codevisionavr. 7. Untuk mendownload program ke mikrokontroller maka kita tinggal meng-klik "Program The Chip". Dan tampil proses download program sebagai berikut :
  • 10. Gambar 10. Proses Download Program [Buatan Sendiri] 6. LEVEL TEGANGAN / KARAKTERISTIK ELEKTRIK Keluaran dari port paralel adalah keluaran TTL, sedangkan arus Sink / Source bervariasi antara port parallel satu dengan yang lainnya. Berdasarkan data sheet kemampuan arus Sink / Source bermacam – macam :  Sink / Source 6mA  Source 12mA Sink 20mA  Sink 16mA Source 4mA  Sink / Source 12mA Dengan keterbatasan arus port paralel maka diperlukan rangkaian buffer (penyangga) sehingga tidak membebani arus dari port paralel untuk menyuplai rangkaian luar. [2] 7. RANGKAIAN BUFFER Berikut ini adalah contoh rangkaian sederhana dan rangkaian yang menggunakan buffer untuk aplikasi downloader paralel STK200 ISP dongle. Keduanya rangkaian berfungsi
  • 11. untuk mendownload program dari komputer ke mikrokontroller menggunakan port paralel DB25. Gambar 11. Rangkaian Downloder Simplied dan Buffered 8. MODE HANDSHAKING Centronics merupakan standar pengiriman data komputer ke pencetak generasi awal. Hampir semua pencetak menggunakan teknik handshake ini dan biasanya diimplementasikan menggunakan Port Paralel Standar (KPS atau Standar Parallel Port -SPP) melalui kontrol perangkat lunak. Gambar 12. Diagram Pewaktu Handshake Pada Centronics [7] Perhatikan gambar 12, data pertama kali dikirim pada jalur data (pin 2 – 7 Port Paralel), kemudian komputer akan memeriksa apakah pencetak dalam kondisi sibuk (busy}atau tidak, dalam hal ini sedang dalam kondisi rendah (logika 0).` Program kemudian meng-
  • 12. aktifkan strobe, tunggu selama minimum 1 μd kemudian dimatikan kembali. Data kemudian dibaca oleh pencetak (atau alat lain) saat transisi naik dari sinyal strobe. Pencetak akan memberikan indikasi sibuk karena sedang memproses data melalui jalur bus data. Sekali pencetak menerima data, maka dia akan mengirimkan sinyal Ack (acknowledge) sebagai pulsa rendah selama 5 μd. Seringkali komputer akan mengabaikan sinyal Ack untuk menghemat waktu. Pada Port ECP, Anda akan lihat mode Centronics Cepat, yang membolehkan perangkat keras mengerjakan handshaking untuk Anda. Seorang pemrogram hanya cukup menuliskan data pada jalur I/O. Perangkat keras akan memeriksa apakah pencetak dalam kondisi sibuk atau tidak, kemudian membangkitkan sinyal strobe. 9. TIMING DIAGRAM Berikut adalah gambar dari timing diagram tranmisi data antara serial port dan paralel port. Gambar 13. Timing Diagram Tranmisi Data Port Serial Dan Port Paralel Port paralel mudah program dan lebih cepat dibandingkan dengan port serial. Tapi kelemahan utama adalah perlu lebih banyak jumlah jalur transmisi. Karena alasan ini port paralel tidak digunakan dalam komunikasi jarak jauh. Marilah kita tahu perbedaan mendasar antara kerja port paralel dan port serial. Pada port serial, akan ada jalur data dua: Satu
  • 13. transmisi dan satu menerima baris. Untuk mengirim data dalam port serial, itu harus dikirimkan satu bit demi satu dengan beberapa bit tambahan seperti bit start, bit dan stop bit paritas untuk mendeteksi kesalahan. Tapi di port paralel, semua 8 bit dari byte akan dikirim ke port pada suatu waktu dan indikasi akan dikirim di baris lain. Akan ada beberapa data baris, kendali dan beberapa baris handshaking di port paralel. Jika tiga byte data 01000101 10011100 10110011 adalah untuk dikirim, angka berikut akan menjelaskan bagaimana mereka akan dikirim ke port serial dan paralel masing-masing. Kita dapat memahami mengapa komunikasi port paralel adalah lebih cepat dibandingkan dengan serial. [9] 10. ALAMAT-ALAMAT PORT PARALEL Port paralel umumnya memiliki tiga alamat dasar yang bisa digunakan, sebagaimana ditunjukkan pada tabel 1. Alamat dasar 3BCh pertama kali diperkenalkan sebagai alamat port paralel pada kartu- kartu video lama. Alamat ini kemudian sempat menghilang, saat port paralel dicabut dari kartu-kartu video. Sekarang muncul kembali sebagai pilihan untuk port paralel yang terpadu dengan motherboard, yang konfigurasinya dapat diubah melalui BIOS. LPT1 biasanya memiliki alamat dasar 378h, sedangkan LPT2 adalah 278h. Ini adalah alamat umum yang bisa dijumpai, namun alamat- alamat dasar ini bisa berlainan antara satu komputer dengan komputer lainnya. Tabel 1. Alamat- alamat dasar port pararel [7] Saat pertama kali komputer dihidupkan, BIOS (Basic Input/ Output System) akan menentukan jumlah port yang dimiliki kemudian diberi label LPT1, LPT2 dan LPT3. Pertama kali BIOS akan memeriksa alamat 3BCh, jika ditemukan port paralel pada alamat tersebut, maka akan diberi label LPT1, kemudian dicari pada lokasi berikutnya 378h, jika ditemukan akan diberi label selanjutnya yang sesuai. Bisa jadi LPT1 jika tidak ditemukan port paralel di 3BCh atau mungkin LPT2, jika ditemukan port parallel pada alamat tersebut. Alamat port terakhir yang diperiksa adalah 278h dan mengikuti langkah-langkah yang telah dijelaskan tadi. Sehingga dimungkinkan kita memiliki LPT2 dengan alamat 378h bukan 278h sebagaimana yang diharapkan. Apa yang membuat hal seperti ini menjadi membingungkan adalah, karena beberapa perusahaan memasang jumper yang membolehkan Anda untuk mengatur port Anda ke LPT1, LPT2 dan LPT3. Nah sekarang berapa alamat dari LPT1? Hampir semua kartu, untuk LPT1 dialamatkan pada 378h dan LPT2 pada 278h namun beberapa menggunakan 3BCh sebagai LPT1, 378h sebagai LPT2 dan 278h sebagai LPT3. Label- label LPT1, LPT2 dan LPT3 seharusnya tidak perlu dikhawatirkan bagi mereka yang hanya menginginkan pengantar-mukaan piranti dengan komputer. Biasanya alamat dasarlah yang digunakan dalam program antarmuka dari label LPT1 dan se-terusnya. Namun jika Anda tetap ingin tahu alamat LPT1 atau LPT yang lain, Anda dapat menggunakan tabel
  • 14. tengok (lookup table) yang disediakan BIOS. Saat BIOS mengarahkan alamat-alamat pada piranti pencetak Anda, maka dia akan menyimpan alamat pada lokasi khusus dalam memori, sehingga Anda bisa menemukannya, hal ini sebagaimana ditunjukkan pada tabel 2. Pada tabel 2. tersebut, ditunjukkan alamat yang dapat kita gunakan untuk menemukan alamat-alamat port pencetak (paralel) dalam Area Data BIOS. Masing-masing alamat membutuhkan ruang 2 byte. Program berikut (dalam bahasa C) digunakan untuk membaca lokasi alamat-alamat tersebut untuk menemukan alamat-alamat port paralel (pencetak): Tabel 2. Dafatar Alamat port pararel [7] 11. REGISTER-REGISTER PERANGKAT LUNAK-SPP (STANDARD PARALLEL PORT) Tabel 3. Register Data port pararel Alamat dasar, biasa dinamakan Port Data atau Register Data digunakan untuk mengeluarkan data pada jalur data Port Paralel (pin 2 s/d 9). Register ini normalnya sebagai port hanya - tulis. Jika Anda mencoba membaca dari port ini, Anda akan mendapatkan byte terakhir yang terkirim. Bagaimanapun juga jika port Anda dwi-arah, Anda juga bisa menerima data melalui alamat ini. Port status (alamat dasar+1), perhatikan tabel 4, sebagai port hanya-baca saja. Data apa saja yang dituliskan ke port ini akan diabaikan. Port status berasal dari lima masukan port paralel (pin 10, 11, 12, 13 dan 15), sebuah register status IRQ dan dua bit tercadang. Harap dicatat bahwa bit-7 (Busy) sebagai masukan aktif rendah. Jika bit -7 terbaca sebagai logika 0 artinya pada pin tersebut terpasang tegangan +5V. Juga pada bit- 2 (IRQ), jika bit ini terbaca '!', artinya interupsi (sela) tidak muncul. Register kontrol (alamat dasar+2), perhatikan tabel 4.6, sebagai register tulis saja. Saat sebuah pencetak disambungkan pada port paralel, maka ia membutuhkan 4 kontrol, yaitu Strobe, Auto Linefeed, Initialize dan Select Printer, yang semua sifatnya sungsang(inverted) kecuali Initiliaze.
  • 15. Tabel 4. Register Status port parallel Tabel 5. Register Kontrol port parallel Dalam hal ini pencetak tidak akan mengirimkan sinyal untuk menginisialisasi komputer dan juga tidak akan memberitahukan komputer untuk menggunakan auto linefeed.Bagaimanapun juga, keempat keluaran ini dapat dimanfaatkan sebagai masukan. Namun perlu diketahui bahwa sifatnya adalah "kolektor terbuka" (open collector atau open drainpada piranti CMOS). Ini artinya memiliki dua kondisi, kondisi rendah (0V) dan kondisi impedansi tinggi (rangkaian terbuka). Sehingga jika komputer mengkondisikan pin-pin sebagai tinggi (misalnya +5V) dan piranti Anda yang terhubungkan membutuhkan kondisi rendah (0V), maka akan terjadi hubung singkat pada port yang menyebabkan terjadinya konflik pada pin tersebut. Normalnya port paralel memiliki resistor internal pull -up (kira-kira sekitar 4k7 ohm), tetapi seperti yang Anda harapkan, tidak semuanya seperti itu. Beberapa memiliki keluaran kolektor terbuka, sedangkan lainnya hanya memiliki keluaran totem pole normal. Agar piranti Anda bisa bekerja dengan benar pada berbagai macam port paralel, maka Anda dapat menggunakan resistor eksternal. Jika digunakan pada port paralel dengan resistorpull- up internal, maka seakan-akan resistor ini akan paralel dengan resistor internal tersebut, sedangkan jika digunakan pada port paralel dengan keluaran totem pole, resistor akan bertindak seolah-olah sebagai beban. Resistor 4K7 ohm (usahakan jangan yang lebih rendah) dapat digunakan untuk mengkondisikan pin menjadi HIGH (pull high). Ini sebagai antisipasi, jika yang digunakan adalah port paralel dengan resistor internal, sehingga penggunaan resistor eksternal yang kemudian diparalelkan dengan resistor internal, Akan menghasilkan resistor pull-up yang
  • 16. rendah nilainya. Dalam kondisi impedansi tinggi, pin pada port paralel dalam tegangan HIGH (+5V), pada kondisi inilah piranti eksternal Anda dapat menyebabkan pin menjadi LOW (pull low) dan mengakibatkan hasil pembacaan port kontrol menjadi berbeda. Dengan dasar ini, maka port kontrol yang 4-bit dapat digunakan sebagai jalur data dua arah, hanya saja port kontrol harus diset xxxx 0100 terlebih dahulu agar dapat digunakan untuk membaca data (yang bernilai LOW tentunya), karena semua pin kontrol dalam kondisi +5V sehingga Anda bias mengubahnya menjadi LOW (GND)atau pull-low. Bit 4 dan 5 merupakan kontrol internal. Bit-4 untuk mengaktif- kan IRQ dan bit - 5 digunakan untuk mengaktifkan port data dwi-arah, artinya port data dapat digunakan sebagai masukan 8-bit (DATA0 s/d DATA7). Hal ini bisa dilakukan jika port paralelnya mendukung. Bit-6 dan 7 sebagai cadangan, jika dilakukan penulisan data pada bit- 6 dan 7 ini, maka akan diabaikan. [7] 12. PORT DWI-ARAH (BI-DIRECTIONAL PORT) Pada gambar 12 ditunjukkan Register data Port Paralel yang disederhanakan. Kartu port Paralel yang asli biasanya mengimplementasikan IC seri 74LS. Saat ini semuanya sudah dikemas dalam satu 1C ASIC (Application Specific Integrated Circuit), namun dasar kerjanya tetap sama. Gambar 14. Operasi Port Paralel dwi-arah Standar [7] Port non dwi-arah biasanya menggunakan 1C 74LS374 dengan keluaran yang dibuat permanen rendah (LOW), dengan demikian port data selalu bertindak sebagai keluaran saja. Saat Anda membaca register data Port Paralel, datanya berasal dari 74LS374 yang juga terhubungkan dengan pin-pin data. Sekarang jika Anda mampu meng-ouerdrive 374, akan Anda dapatkan Port Dwi-arah (atau sebagai port masukan saja, jika Anda merusakkan keluaran- keluaran terkunci atau output latches!) Banyak yang melakukan hal tersebut. Pernah ada suatu rangkaian (di Internet) yang menghubungkan antara sebuah osiloskop dengan port paralel. Pengarangnya menggunakan suatu ADC, namun ternyata ADC-nya menggunakan transistor pada masing- masing jalurnya, agar dapat bekerja! Tidak tahu mengapa? Ada juga yang menggunakan 68HC11 yang tidak cukup mampu menyedot (sink) arus (30 hingga 40 mA)!
  • 17. Port paralel dwi-arah menggunakan bit-5 dari register kontrol yang dihubungkan ke OE (Output Enable)-nya. 374 sehingga penggerak keluaran dapat dimatikan. Dengan cara ini, Anda dapat membaca data yang tersedia pada pin-pin data Port Paralel, tanpa mengalami konflik bus dan kebocoran arus yang berlebihan. Bit-5 Register Kontrol dapat digunakan untuk mengaktifkan dan mematikan fungsi dwi-arah pada Port Paralel. Hal ini hanya dibenarkan pada port dwi-arah yang sesungguhnya. Jika bit ini sama dengan 1, pin 2 hingga 9 dalam kondisi impedansi tinggi. Dalam kondisi ini, Anda boleh memasukkan data pada jalur-jalur tersebut dan membacanya dari Port Data. Sembarang data yang dituliskan ke port data akan disimpan tetapi tidak akan tersedia pada pin- pin data. Untuk mematikan fungsi dwi-arah ini, set bit-5=0. Bagaimanapun juga tidak semua port sifatnya sama, Port lain boleh jadi membutuhkan bit-6 pada Register Kontrol untuk mengaktifkan mode dwi-arah dan menset bit-5-nya untuk mematikan mode tersebut. Perusahaan lain membuat port dwi-arah mereka dengan cara yang berbeda. Jika Anda ingin menggunakan port dwi-arah untuk pemasukan data, maka ujilah terlebih dahulu dengan logic probe atau multimeter untuk memastikan port paralel dalam mode dwi-arah. [7] 13. MENGGUNAKAN PORT PARALEL UNTUK MASUKAN 8 BIT Jika port paralel Anda tidak mendukung mode dwi-arah, Anda dapat memasukkan maksimum 9-bit kapan saja. Untuk melakukan hal ini, Anda dapat menggunakan 5 jalur masukan pada Port Status dan 4 jalur masukan (kolektor terbuka) pada Port Kontrol. Gambar 15. Inverter Heks 74LS05 Kolektor Terbuka [7] Masukan ke Port Paralel telah dipilih sedemikian rupa sehingga akan memudahkan kita. Sinyal Busy dijadikan sebagai MSB (Bit-7) dari Port Status, kemudian diikuti sesuai urutan gambar 4.3, sinyal- sinyal Ack, Paper Out dan Select melalui nibel (4-bit) Tinggi atau MS (Most Significant) dari Port Kontrol. Tanda garis di atas sinyal digunakan sebagai tanda inversi perangkat keras, yaitu +5V akan terbaca 0 dari register, sedangkan GND akan terbaca 1. Sedangkan Port Status hanya memiliki sebuah masukan terinversi. Port Kontrol digunakan untuk membaca nibel Rendah atau LS (Least Significant).Sebagaimana telah dijelaskan sebelumnya, Port Kontrol merupakan keluaran kolektor terbuka, yaitu dua kemungkinan kondisi, impedansi tinggi dan GND. Jika kita menghubungkan masukan-masukan kita langsung ke port (misalnya dengan sebuah ADC0804 yang keluarannya totem pole), maka akan terjadi konflik jika masukannya tinggi
  • 18. dan port mencoba untuk membuat rendah (pull it down), dengan demikian kita gunakan inverter kolektor terbuka. Bagaimanapun juga hal ini tidak perlu harus selalu dilakukan. Jika kita menghubungkan saklar-saklar kutub tunggal (single pole switches) dengan port menggunakan resistor pull up, maka tidak perlu dikuatirkan masalah proteksi di atas. Demikian juga jika perangkat lunak Anda menginisialisasi Port Kontrol dengan xxxx0100 sehingga semua pin pada port kontrol dalam kondisi tinggi, maka mungkin tidak perlu juga. Jika Anda tidak mempedulikan dan alat terlanjur terpasang pada Port Paralel dan program telah berjalan, maka Anda bisa mendapatkan masalah. Permasalahan lain yang perlu diperhatikan adalah resistor pull-up yang terpasang pada Port Kontrol dan rata-rata resistor tersebut bernilai 4K7 ohm. Agar jalur tersebut dapat menyedot arus ke kondisi rendah (LOW), maka alat Anda harus mampu menyedot arus sekitar 1mA, yang mana beberapa piranti-piranti daya rendah kesulitan melakukan hal tersebut. Sekarang apa yang akan terjadi jika dianggap beberapa port memiliki resistorpull- up sebesar IK ohm? Maka alat Anda harus mampu menyedot arus (sink) sebesar 5 mA. Hal ini semakin menguatkan alasan penggunaan inverter kolektor terbuka. Walaupun penyangga kolektor terbuka bisa juga digunakan, namun inverter kolektor terbuka yang dipiiih, karena inverter tersebut banyak dijumpai di pasaran. Kemungkinan lain adalah penggunaan transistor. Masukan D3 dihubungkan melalui inverter ke Select Printer. Sinyal ini merupakan bit- 3 dari Port Kontrol, D2, D1 dan D0 dihubungkan masing-masing ke Init, Auto linefeed dan Strobe. Jika hal ini sudah selesai kita rangkai, sekarang ditulis programnya. Pertama kali kita harus mcnuliskan xxxx0100 ke Port Kontrol agar semua jalur kontrol dalam kondisi tinggi (HIGH), sehingga dapat digunakan untuk menarik rendah (pull down) masukan data . Kemudian kita dapat membaca nibel MS dari port Status. Dengan demikian akan kita AND- kan hasilnya dengan F0h (agar nibel LS terhapus = 0). Sinyal Busy di- inversikan secara perangkat keras, namun sementara ini belum kita khawatirkan. Sekali dua byte direkonstruksikan, dengan cara mentogel Busy dan Init pada saat yang bersamaan. Sekarang kita bisa membaca nibel LS pada Port Kontrol begitu mudahnya. Sekarang kita tidak tertarik pada nibel MS pada port, sehingga kita AND- kan hasilnya dengan 0Fh untuk menghapus nibel MS tersebut. Setelah itu, kita kombinasikan keduanya, dengan cara OR-kan kedua byte tersebut. Sekarang diperoleh sebuah byte, namun perlu diketahui bahwa bit-2 dan 7 diinversi, sehingga perlu di-XOR-kan dengan 84h atau 1000 0100b untuk mentogel kedua bit tersebut. Catatan: Beberapa port kontrol bukan merupakan kolektor terbuka, namun berupa totem pole. Hal ini berlaku juga untuk port EPP dan ECP. Normalnya jika anda menggunakan mode EPP atau ECP pada Port Paralel, port kontrol menjadi keluaran totem pole saja. Sekarang apa yang terjadi jika Anda menghubungkan peralatan ke Port Paralel dalam mode ini? Untuk portabilitas, disarankan untuk menggunakan rangkaian yang akan dibahas berikut, membaca sebuah nibel. [7]
  • 19. 14. MODE NIBEL Mode nibel merupakan cara untuk membaca 8-bit data tanpa menempatkan port pada mode terbalik (reverse mode) dan tanpa menggunakan jalur data. Mode nibel menggunakan sebuah 1C Quad 2 to 1 multiplexer (74LS157) untuk membaca sebuah nibel data, kemudian pindah ke nibel satunya dan membacanya. Melalui perangkat lunak kedua nibel tersebut disatukan menjadi sebuah byte. Kelemahan mode ini hanya masalah lambatnya proses. Dan dibutuhkan beberapa perintah I/O untuk membaca sebuah byte dan membutuhkan 1C eksternal. Gambar 16. Masukan 8- bit menggunakan 74LS157 [7] Cara kerja rangkaian pada gambar 14 cukup mudah. 74LS157 Bertindak seakan-akan sebagai empat saklar. Jika masukan A/B dalam kondisi LOW, maka masukan A dipilih, misalnya 1A ke 1Y, 2A ke 2Y dan seterusnya. Jika sekarang masukan A/B = 1, maka masukan B dipilih. Keluaran Y dihubungkan ke port status dari Port Paralel sedemikian hingga menyatakan nibel MS dari register status, hal ini untuk memudahkan dalam penulisan program. Untuk menggunakan rangkaian ini, pertama kali harus dilakukan inisialisasi multi- plekser untuk memilih masukan A atau B. Kita akan membaca nibel LS terlebih dahulu, sehingga masukan A/B dibuat = 0 (dari B > Y), karena sinyal strobe terinversi secara perangkat keras, maka bit-0 pada port kontrol agar dalam kondisi LOW (=0) diberi nilai 1. Setelah nibel rendah terpilih, kemudian dilakukan pembacaan dari port status. Perhatian, jalur busy diinversikan, namun belum akan kita tangani saat ini. Kita hanya tertarik pada nibel LS (rendah) saja, sehingga hasilnya di-AND-kan dengan F0h untuk menghapus nibel MS (tinggi). [7] 15. PENGGUNAAN INTERUPSI PADA PORT PARALEL IRQ pada Port Paralel tidak digunakan untuk pencetakan dalam lingkungan DOS atau Windows. Versi awal dari 0/S 2 yang menggunakannya, namun tidak dipakai pada versi-versi berikutnya. Interupsi sangat baik digunakan saat melakukan pengantarmukaan alat
  • 20. pengawasan seperti alarm suhu tinggi dan lain-lain, yang mana Anda tidak tahu kapan alarm tersebut aktif. Akan lebih enak menggunakan interupsi dibandingkan menggunakan teknik polling dan hal ini akan terasa manfaatnya jika komputer juga harus melakukan proses-proses yang lain. Interupsi yang digunakan pada Port Paralel adalah IRQ5 atau IRQ7, atau yang lainnya jika kedua interupsi ini telah dipakai. Serta dimungkinkan juga interupsi tersebut dimatikan pada kartunya, jika kartu tersebut hanya digunakan untuk tujuan pencetakan. Namun dengan menggunakan bit-4 pada register kontrol, Anda dapat mengaktifkan dan mematikan interupsi, mengaktifkan IRQnya, melalui jalur Ack. Interupsi umumnya akan muncul pada saat terjadi transisi dari rendah ke tinggi (rising edge) pada jalur Ack. Dan ada pula yang terjadi pada saat transisi dari tinggi ke rendah. Kode-kode program berikut digunakan untuk menguji polaritas suatu interupsi sekaligus contoh program yang menggunakan interupsi. Program ini akan memeriksa apakah interupsi terjadi pada saat naik atau jatuhnya sisi pulsa pada jalur Ack. Untuk menggunakan program, cukup Anda sambung salah satu dari kaki 2 hingga 9 (pin-pin data) ke pin Ack (atau kaki 10), misalnya kaki 9 dan 10 (agar tidak memerlukan kabel penghubung atau langsung disolder). Pada saat kompilasi mungkin akan dihasilkan beberapa peringatan atau warning seperti "condition always true", "condition always false", "unreachable code" dan lain- lain. Hal ini tidak perlu dicemaskan, karena peringatan-peringatan tersebut berasal dari beberapa pengujian struktur kondisi dimana IRQ-nya diuji dan karena IRQ didefinisikan sebagai konstanta beberapa hasi tidak berubah. Sebenarnya hal-hal demikian bisa juga diimplementasikan sebagai pengarah praprosesor (preprocessor directive). Bagian awal rutin program menghitung Vektor Interupsi, alamat PIC dan Mask dalam rangka penggunaan fasilitas interupsi Port Paralel. Setelah Rutin Layanan Interupsi (RLI) disiapkan demikian juga dengan PIC-nya, maka kita aktifkan interupsi pada Port Paralel, yang bisa dilakukan dengan membuat bit-4 pada register kontrol menjadi 1: Sebelum mengaktifkan interupsi, kita tuliskan FFh pada port paralel terlebih dahulu agar kondisi 8 jalur data menjadi jelas (=1). Karena semua jaiur data sudah samadengan 1, maka kita sekarang dalam posisi siap untuk menuliskan 00h pada port data, yang akan mengakibatkan transisi tinggi ke rendah pada jaiur Ack di port paralel (karena terhubungkan pada salah satu dari 8 jaiur data). Jika interupsi muncul pada transisi tinggi ke rendah tersebut maka IF (Interrupt Flag) akan diset dan otomatis jenis polaritas interupsinya adalah transisi tinggi ke rendah. Jika dengan transisi tersebut interupsi belum muncul maka kita tuliskan port data (paralel,) agar terjadi transit rendah ke tinggi. Jika tetap tidak muncul interupsi, kemungkinan tidak bekerja, pastikan IRQ dan alamat dasarnya benar dan koneksi (jalur data dan Ack) pada konektor DB25 male. [7] 16. MODE-MODE PORT PARALEL DALAM BIOS Saat ini kebanyakan Port Paralel merupakan port-port beragam mode dan normalnya dapat dikonfigurasi melalui perangkat lunak. Mode- modenya meliputi:
  • 21. Mode Printer (kadangkala disebut Default atau Normal Mode) Mode Standard and Bi-directional (SPP) Mode EPP1.7 and SPP Mode EPP1.9 and SPP Mode ECP Mode ECP and EPP1.7 Mode ECP and EPP1.9 Mode Printer merupakan mode yang paling dasar dan merupakan Port Paralel standar satu arah, tidak ada fitur dwi-arah, sehingga bit-5 pada port kontrol tidak digunakan. Mode Standard and Bi-directional merupakan mode dwi-arah. Menggunakan mode ini, bit-5 pada port kontrol akan membalikkan arah port sehingga Anda dapat membaca kembali nilai yang diberikan pada jalur data. Mode EPP1.7 and SPP merupakan suatu kombinasi dari Mode EPP 1.7(Enhanced Parallel Port) dan SPP. Pada mode ini Anda diperbolehkan mengakses register-register SPP (data, status dan kontrol) serta register- register EPP. Pada mode ini juga, Anda bisa membalikkan arah port menggunakan bit-5 dari register kontrol. EPP 1.7 merupakan versi awal dari EPP dimana tidak terdapat bit untuk time-out. Mode EPP1.9 and SPP seperti mode sebelumnya, hanya saja menggunakan versi 1.9 dari EPP dan membolehkan pengaksesan bit tune-out pada register EPP. Mode ECP akan memberikan Port dengan kemampuan tambahan (ExtendedCapabilities Port). Mode ini dapat diset melalui register kontrol tambahan (extended control register) dari ECP. Hanya saja mode ini EPP tidak tersedia. Mode ECP and EPP 1.7 dan ECP and EPP1.9 akan memberikan ECP, seperti mode sebelumnya. Namun mode EPP dalam ECR-nya mode EPP disediakan dan versi mode EPP- nya mengikutii versi 1.7 atau 1.9. Mode-mode diatas dapat dikonfigurasi melalui BIOS. Anda bias mengkonfigurasi ulang menggunakan perangkat lunak yang Anda tulis, tetapi ini tidak disarankan. Register- register perangkat lunak ini, umumnya ditemukan pada alamat-alamat 2FAh, 3F0h, 3Flh dan lain-lain yang diperuntukkan diakses oleh BIOS. Tidak ada standarisasi pada register-register konfigurasi ini, sehingga jika Anda ingin menggunakan register-register tersebut, maka perangkat lunak atau program Anda menjadi tidak portable. Pilihan yang baik adalah Mode ECP and EPP 1.7 atau ECP and EPP1.9 melalui BIOS kemudian menggunakan register control tambahan ECP untuk memilih mode Port Paralel Anda. Mode EPP1.7 memiliki beberapa 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 mode ini sudah jarang digunakan sekarang. Dengan demikian pilihan terbaik pada Mode ECP and EPP1.9. [7] 17. Mode -Mode Port Paralel dan Register Kontrol ECP Sebagaimana telah dibicarakan sebelumnya, pilihan terbaik adalah menggunakan Mode ECP and EPP1.9 dan menggunakan Register kontrol tambahan ECP untuk memilih beragam mode operasi. Register ECP distandarisasi dibawah Microsoft's Extended Capa
  • 22. bilities Port Protocol and ISA Interface Standard, sehingga kita tidak memiliki masalah lagi yang berkaitan dengan standarisasi. Pada saat diset Mode ECP, sebuah register baru muncul pada alamat dasar + 400h. Pada tabel 5 ditunjukkan ECR (Extended Control Registerr) yang dipetakan pada alamat dasar + 402h. Catatan: register ECP tidak akan tersedia untuk port-port dengan alamat dasar 0x3BC. Pada tabel 6 ditunjukkan untuk ECR, yang perlu diperhatikan adalah 3 MSB (.bit 5, 6 dan 7) dari ECR yang digunakan untuk memilih mode operasi. Ada 7 kemungkinan mode operasi, namun tidak semua port mendukung semua mode tersebut. Mode EPP misalnya, tidak tersedia untuk beberapa port. Mode - mode Operasi Mode Standar Mode ini menyebabkan port ECP bertingkahlaku seperti SPP (Standard Parallel Port) tanpa fungsi dwi-arah; Mode Byte (Mode PS/2) Seperti pada SPP dalam mode dwi-arah, bit-5 akan membuat port dalam mode terbalik (data > komputer); Mode Paralel (FIFO) Pada mode ini, sembarang data yang dituliskan ke FIFO data akan terkirim ke piranti menggunakan SPP handshake. Perangkat keras akan membangkitkan sinyal- sinyalhandshaking yang dibutuhkan. Berguna untuk alat-alat non-ECP seperti Pencetak (Printer). Anda dapat memperoleh beberapa fitur ECP seperti penyangga FIFO dan perangkat keras pembangkit sinyal handshaking namun dengan SPP handshake (bukanECP handshake); Mode FIFO ECP Mode standar untuk ECP. Mode ini menggunakan ECP handshake. Pada saat menggunakan Mode ECP dan register ECR diset ke mode FIFO ECP, maka register SPP akan hilang. Mode EPP 'tercadang) Untuk mengaktifkan mode EPP, jika tersedia. Jika pada BIOS diset ke Mode ECP andEPPl.x, maka EPPl.x akan tersedia dibawah standarisasi Microsoft's Extended Capabilities Port Protocol and ISA Interface Standard mode; ini digunakan untuk Para Pemasok (Vendor) Tercadang Dibawah standarisasi Microsoft's Extended Capabilities Port Protocol and ISA Interface Standard mode ini digunakan untuk Para Pemasok(Vendor). Mode FIFO Test Pada mode ini, sembarang data yang dituliskan ke Register test FIFO akan ditempatkan pada FIFO dan sembarang data yang terbaca dari register Test FIFO akan dibaca melalui penyangga FIFO. Bit status FIFO penuh/kosong sesuai dengan kondisi sebenarnya. Mode Konfigurasi Pada mode ini, dua register konfigurasi, cnfgA dan cnfgB akan tersedia pada alamatnya masing-masing.
  • 23. Tabel 6. ECR Jika Anda berada dalam mode ECP (melalui BIOS) atau kartu pencetak Anda diset menggunakan ECP maka ada baiknya untuk menginisialisasi mode dari port ECP Anda ke suatu kondisi awal sebelum digunakan. Jika Anda ingin menggunakan mode SPP, maka set port ke Mode Standar untuk pertama kalinya, jangan punya anggapan bahwa port siap dalam mode SPP. Untuk beberapa mode, register SPP dapat hilang atau tidak bekerja dengan baik. Jika Anda menggunakan SPP, maka set ECR ke Mode Standar. [7] 18. CONTOH PROGRAM ################################################ # Program C : Antarmuka LCD dengan Port Paralel # ################################################ Modul LCD yang tersedia dalam berbagai macam seperti 8x1, 8x2 16x1, 16x2, 20x2, 20x4, 40x4. Di sini kita telah menggunakan 16x2 - yang berarti 2 baris 16 karakter. Ini adalah Hitachi HD44780 modul yang kompatibel, memiliki 16 pin termasuk 2 pin untuk lampu latar. Tabel berikut memberikan struktur pin modul LCD. Modul LCD tanpa backlight hanya akan memiliki 14 pin. Jika Anda menggunakan LCD seperti, mengabaikan pin 15 dan 16. Tabel 7. Pin LCD
  • 24. Untuk program modul LCD, pertama kita harus menginisialisasi LCD dengan mengirimkan beberapa kata kontrol. RS harus rendah dan E harus tinggi ketika kita mengirim kontrol. R / W pin 0 berarti data menulis atau kontrol ke LCD dan R / W pin 1 berarti membaca data dari LCD. Untuk mengirim data ke LCD, membuat RS tinggi, R / W rendah, menempatkan data di pin 7 sampai 14 dan membuat E pin tinggi dan rendah sekali. Anda dapat memahami metode yang tepat setelah melihat kode, kemudian dalam tutorial ini. Di sini, kita akan menulis pada modul LCD dan tidak membaca kembali. Jadi, R / W adalah secara langsung terhubung ke ground. Kita tidak perlu harus masukan data melalui, sehingga semua pin output yang digunakan dalam aplikasi kita. Data pin LCD yang terhubung ke pin data port. Strobe sinyal (Pin 1 dari konektor D25) diberikan ke E (Pin 6 LCD), Pilih printer (Pin 17 dari D25) terhubung ke RS (pin 4 dari LCD). Gambar 17. Rangkaian Modul LCD Dengan DB25 Dalam diagram di atas, modul LCD dihubungkan ke port LPT menggunakan D25 konektor laki-laki. Nomor pin 3 dari LCD adalah untuk menyesuaikan kontras, dihubungkan sedemikian rupa sehingga dapat bervariasi dari 0V ke 5V. Jika semuanya OK, Anda harus mendapatkan modul LCD sebagai berikut ketika berada dalam posisi ON.
  • 25. Gambar 18. LCD Dalam Posisi ON Jika Anda mendapatkan layar ini, maka kita dapat memulai pemrograman. Jika tidak periksa koneksi Anda, cobalah dengan memvariasikan potensiometer 10K. Jika Anda mendapatkan tampilan ini juga, Anda bisa mendapatkan kejelasan maksimum dengan memvariasikan pot. Bagi saya, pot yang diperlukan untuk menjadi hampir 0V. Jadi, itu adalah OK jika Anda tidak menggunakan pot juga, hanya menghubungkan pin 3 ke ground. Tabel berikut menjelaskan bagaimana untuk menulis kata-kata control Ketika RS = 0 dan R / W = 0, data dalam pin D0 untuk D7 akan memiliki arti sebagai berikut. Tabel 8. Deskripsi Kontrol LCD LISTING PROGRAM #include <dos.h> #include <string.h> #include <conio.h> #include <time.h> #define PORTADDRESS 0x378 /* Enter Your Port Address Here */ #define DATA PORTADDRESS+0 #define STATUS PORTADDRESS+1 #define CONTROL PORTADDRESS+2 void lcd_init(void); void lcd_write(char char2write); void lcd_putch(char char2write); void lcd_puts(char * str2write); void lcd_goto(int row, int column); void lcd_clear(void);
  • 26. void lcd_home(void); void lcd_cursor(int cursor); void lcd_entry_mode(int mode); void main(void) { lcd_init(); lcd_goto(1,1); lcd_puts("Welcome To"); lcd_goto(1,0); lcd_puts("electroSofts.com"); while(!kbhit() ) //wait until a key is pressed... {} } void lcd_init() { outportb(CONTROL, inportb(CONTROL) & 0xDF); //config data pins as output outportb(CONTROL, inportb(CONTROL) | 0x08); //RS is made high: control (register select) lcd_write(0x0f); delay(20); lcd_write( 0x01); delay(20); lcd_write( 0x38); delay(20); } void lcd_write(char char2write) { outportb(DATA, char2write); outportb(CONTROL,inportb(CONTROL) | 0x01); /* Set Strobe */ delay(2); outportb(CONTROL,inportb(CONTROL) & 0xFE); /* Reset Strobe */ delay(2); } void lcd_putch(char char2write) { outportb(CONTROL, inportb(CONTROL) & 0xF7); //RS=low: data lcd_write(char2write); } void lcd_puts(char *str2write) {
  • 27. outportb(CONTROL, inportb(CONTROL) & 0xF7); //RS=low: data while(*str2write) lcd_write(*(str2write++)); } void lcd_goto(int row, int column) { outportb(CONTROL, inportb(CONTROL) | 0x08); if(row==2) column+=0x40; /* Add these if you are using LCD module with 4 columns if(row==2) column+=0x14; if(row==3) column+=0x54; */ lcd_write(0x80 | column); } void lcd_clear() { outportb(CONTROL, inportb(CONTROL) | 0x08); lcd_write(0x01); } void lcd_home() { outportb(CONTROL, inportb(CONTROL) | 0x08); lcd_write(0x02); } void lcd_entry_mode(int mode) { /* if you dont call this function, entry mode sets to 2 by default. mode: 0 - cursor left shift, no text shift 1 - no cursor shift, text right shift 2 - cursor right shift, no text shift 3 - no cursor shift, text left shift */ outportb(CONTROL, inportb(CONTROL) | 0x08); lcd_write(0x04 + (mode%4)); } void lcd_cursor(int cursor) { /* set cursor: 0 - no cursor, no blink 1 - only blink, no cursor 2 - only cursor, no blink 3 - both cursor and blink */
  • 28. outportb( CONTROL, inportb(CONTROL) | 0x08 ); lcd_write( 0x0c + (cursor%4)); } Dan Output Program Seperti Berikut : Gambar 19. Output [8] ################################################### # Program Delphi : Menghidupkan Dan Mematikan Led # ################################################### Pembuatan program Bahasa Delphi komunikasi paralel dengan menggunakan komponen io.dll, untuk menghidupkan dan mematikan LED. Perhatikan pada gambar 20 tersebut. Delapan buah LED terhubung ke port 0, yang difungsikan sebagai output. Pada konfigurasi tersebut LED akan nyala bila diberi logika LOW ‘0’ melalui port 0, dan LED akan padam bila diberi logika HIGH ‘1’ melalui port 0.
  • 29. Gambar 20. Rangkaian LED Percobaan ON OFF 8 buah LED secara bersamaan Rencanakan program untuk menghidupkan dan mematikan LED 8 buah, dengan menekan tombol ON dan OFF, pada komunikasi paralel. Lakukan sesuai dengan langkah-langkah berikut ini: 1. Hubungkan kabel paralel pada port paralel komputer ke rangkaian LED. 2. Rencanakan program dengan tampilan sebagai berikut. Gambar 21. Tombol ON dan OFF LISTING PROGRAM implementation {$R *.dfm} procedure PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll'; procedure TForm1.Button1Click(Sender: TObject);
  • 30. begin portout($378,0); end; procedure TForm1.Button2Click(Sender: TObject); begin portout($378,255); end; [10] ################################ # Program Java : Rangkaian LED # ################################ Buat rangkaian LED-nya selang-seling dan solder resistor pada pin 2-9 (resistor boleh terbalik). Solder kaki LED positif ke resistor dan LED negatif ke pin 25 (kaki LED yang panja ng itu positif sedangkan kaki LED yang pendek itu negatif. Ini tidak boleh terbalik ). Gambar 22. Rangkaian LED dan DB25 Jangan Lupa Letakkan jnpout32.dll di C:WINDOWSsystem32 Buat program java dengan nama ioPort.java untuk komunikasi ke portnya. Gambar 23. Program Java Buat program tes.java untuk programnya :
  • 31. Gambar 24. Program Tes Java Pasang rangkaian led ke port paralel dan pastikan semua led dalam keadaan menyala. Compil e dan jalankan program java di atas. Ganti nilai alamat pin pada tes.java dengan 0- 255 bebas, compile lalu jalankan programnya. Prinsipnya, untuk menyalakan LED, kita kirim data ke port paralel. Sesuaikan pengiriman data ini dengan LED yang ingin dinyalakan. Misalnya, untuk menyalakan LED pertama, maka data yang dikirim adalah 1 desimal. Daftar berikut dapat digunakan sebagai acuan. DataPort Bit 0 = LED1 = 00000001 bin = 1 hex = 1 Oct = 1 dec DataPort Bit 1 = LED2 = 00000010 bin = 2 hex = 2 Oct = 2 dec DataPort Bit 2 = LED3 = 00000100 bin = 4 hex = 4 Oct = 4 dec DataPort Bit 3 = LED4 = 00001000 bin = 8 hex = 10 Oct = 8 dec DataPort Bit 4 = LED5 = 00010000 bin = 10 hex = 20 Oct = 16 dec DataPort Bit 5 = LED6 = 00100000 bin = 20 hex = 40 Oct = 32 dec DataPort Bit 6 = LED7 = 01000000 bin = 40 hex = 100 Oct = 64 dec DataPort Bit 7 = LED8 = 10000000 bin = 80 hex = 200 Oct = 128 dec [11] ###################################### # Program Visual Basic : Rangkaian LED # ###################################### Dibutuhkan suatu cara agar VB bisa melakukan akses perangkat keras. Salah satunya dengan lib io.dll, yang bisa didownload dari http://www.geekhideout.com/iodll.shtmlsecara gratis, yang harus disimpan atau ditempatkan pada folder C:/windows/system32pada komputer. Cara penggunaannya sangat mudah, pertama definisikan terlebih dahulu fungsi dan prosedur untuk akses masukan maupun keluaran perangkat keras pada bagian modul khusus VB sebagai berikut: Public Declare Sub PortOut Lib "io.dll" _ (ByVal Port As Integer, ByVal Data As Byte) Public Declare Sub PortWordOut Lib "io.dll" _ (ByVal Port As Integer, ByVal Data As Integer) Public Declare Sub PortDWordOut Lib "io.dll" _ (ByVal Port As Integer, ByVal Data As Long) Public Declare Function PortIn Lib "io.dll" _
  • 32. (ByVal Port As Integer) As Byte Public Declare Function PortWordIn Lib "io.dll" _ (ByVal Port As Integer) As Integer Public Declare Function PortDWordIn Lib "io.dll" _ (ByVal Port As Integer) As Long Public Declare Sub SetPortBit Lib "io.dll" _ (ByVal Port As Integer, ByVal Bit As Byte) Public Declare Sub ClrPortBit Lib "io.dll" _ (ByVal Port As Integer, ByVal Bit As Byte) Public Declare Sub NotPortBit Lib "io.dll" _ (ByVal Port As Integer, ByVal Bit As Byte) Public Declare Function GetPortBit Lib "io.dll" _ (ByVal Port As Integer, ByVal Bit As Byte) As Boolean Public Declare Function RightPortShift Lib "io.dll" _ (ByVal Port As Integer, ByVal Val As Boolean) As Boolean Public Declare Function LeftPortShift Lib "io.dll" _ (ByVal Port As Integer, ByVal Val As Boolean) As Boolean Public Declare Function IsDriverInstalled Lib "io.dll" () As Boolean Kedua tinggal penggunaan fungsi dan prosedur tersebut secara biasa, fungsi PortInmembutuhkan dua parameter yaitu alamat perangkat keras dan variabel hasil pembacaan data dari perangkat keras dengan tipe data byte. Sedangkan prosedur PortOutmembutuhkan dua parameter juga yaitu alamat perangkat keras dan nilai atau variabel yang menyimpan nilai yang akan dikirimkan ke perangkat keras yang bersangkutan. PortOut : Mengirim data dalam format byte (8-bit) ke port tertentu. PortWordOut : Mengirim data dalam format word (16-bit) ke port tertentu. PortDWordOut : Mengirim data dalam format double word (32-bit) ke port tertentu. PortIn : Membaca data falam format byte (8-bit) dari port tertentu. PortWordIn : Membaca data falam format word (16-bit) dari port tertentu. PortDWordIn : Membaca data falam format double word (32-bit) dari port tertentu. GetPortBit : Membaca status dari bit tertentu. SetPortBit : Set bit (=1) pada port tertentu. ClrPortBit : Reset bit (=0) pada port tertentu. NotPortBit : Lakukan inversi (NOT) bit pada port tertentu RightPortShift : Geser bit dari port tertentu ke kanan, LSBMSB. LeftPortShift : Geser bit dari port tertentu ke kiri, MSB LSB. IsDriverInstalled : Akan memberikan nilai bukan-NOL jika io.dll sudah terinstal dan berfungsi. Tujuan utama dari fungsi ini adalah untuk memastikan bahwa penggerak mode kernel pada NT/2000/XP telah diinstal dan
  • 33. dapat diakses. Pemograman LED Driver adalah sebuah program yang digunakan untuk melakukan pengontrolan nyala LED melalui port paralel. Program ini memerlukan rangkaian LED driver yang dipasangkan pada port paralel dan program LED driver untuk menjalankannya. Rangkaian LED Driver berikut digunakan untuk interfacing LED dengan port Paralel : Gambar 25. Rangkaian LED Driver PEMOGRAMAN LED DRIVER untuk Menghidupkan dan mematikan LED Program ini digunakan untuk mematikan dan menghidupkan LED-LED yang terpasang pada pin-pin data secara bersama-sama. Menggunakan bantuan komponen CheckBox, 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 26. Tampilan Program menghidupkan dan mematikan LED KOMPONEN VISUAL BASIC Komponen Properti Subroutin Form Name : Form1 Caption : Led Driver1 Private Sub Form_Load() CheckBox Name : Check1 Caption : ON/OFF Private Sub Check1_Click() CommandButton Name : Command1 Caption : Keluar Private Sub Command1_Click()
  • 34. LISTING PROGRAM Private Sub Form_Load() If Not IsDriverInstalled Then MsgBox "error", vbOKOnly Unload Me End If End Sub Private Sub Check1_Click() If Check1.Value = 1 Then PortOut &H378, &HFF Check1.Caption = "Lampu ON semua" Else PortOut &H378, &H0 Check1.Caption = "Lampu OFF semua" End If End Sub Private Sub Command1_Click() Unload Me End Sub [12]
  • 35. Referensi: [1] http://lpfilkom.freeservers.com/referens/LPT_B.htm [2] http://blog.ub.ac.id/yufen/2010/03/07/interface-port-paralel/ [3] http://terminaltechno.blog.uns.ac.id/2009/11/07/contoh-rangkaian-dan-program- aplikasi-dengan-konektor-db9-db25-dan-usb/ [4] http://bocah-cakil.blogspot.com/2010/03/port-paralel-db25.html [5] http://haris-tkj-kreatif.blogspot.com/2011/05/port-printer.html [6] http://www.mycomputerclub.com/reference-cables-guide.html [7] journal.mercubuana.ac.iddatalecKK-012325-6-1.pdf [8] http://electrosofts.com/parallel/lcd.html [9] http://electrosofts.com/parallel/index.html [10] http://www.scribd.com/doc/52218613/Pentunjuk-Praktikum-Interface-Paralle-Serial2009 [11] http://dc381.4shared.com/doc/7DDTYBbZ/preview.html [12] http://elib.unikom.ac.id/files/disk1/469/jbptunikompp-gdl-taufiknuzw-23447-1- modulla-g.doc