Di dalam komputer terdapat beberapa alat komunikasi data yang telah disediakan, salah satunya adalah parallel port atau lebih dikenal dengan port printer. Di dalam port printer terbagi atas tiga bagian yang diberi nama sesuai dengan nama tugas-tugasnya dalam melaksanakan pencetakan pada printer. Tiga bagian yang telah disebutkan itu adalah data port, printer control, dan printer status. Data port digunakan untuk mengirimkan data yang harus dicetak oleh printer (perlu diingat bahwa data port tidak bisa dibuat sebagai penerima data, data port hanya bisa mengeluarkan data), printer control digunakan untuk mengirimkan kode-kode kontrol dari komputer ke printer, misalnya kode kontrol untuk menggulung kertas, sedangkan yang terakhir yaitu printer status digunakan untuk mengirimkan status printer ke komputer, misalnya untuk menginformasikan bahwa kertas telah habis. Dari ke-tiga bagian di atas masing-masingnya memerlukan tegangan sebesar 5 Volt.
Ke-tiga bagian port printer sebenarnya adalah port-port 8 bit, akan tetapi hanya data port yang benar-benar 8 bit, sedangkan port control dan port status hanya beberapa bit saja yang dipakai yang berarti hanya beberapa bit saja dari port-port ini yang dapat kita manfaatkan untuk keperluan interfacing. Port control adalah port yang bermode baca/tulis, port status hanya bermode baca, sedangkan data port bermode baca/tulis juga, akan tetapi, kemampuan ini hanya dimiliki oleh enhanced parallel port (EPP), sedangkan port parallel standar hanya mempunyai kemampuan tulis saja, walaupun kita memaksa untuk mencoba membaca data nilai yang dibaca akan selalu nilai terakhir dari nilai yang dituliskan. Pada EPP, pengaturan arah jalur data port dilakukan lewat bit 5 port control. Jika bit 5 port control bernilai 0, maka jalur data dwi-arah data port menjai output dari port parallel, sebaliknya jika bit 5 port control bernilai 1, maka jalur data dwi-arah data port menjadi input dari port parallel.
Port parallel DB25 ada yang dinamakan female dan male. Female adalah parallel port yang terdapat pada komputer, sedangkan male yang terdapat pada printer. Dalam tulisan ini penulis hanya menerangkan yang berjenis female saja. Selengkapnya, konfigurasi slot DB25 dapat dilihat pada gambar di bawah ini:
Keterangan gambar dapat dilihat pada tabel di bawah ini:
Nomor pin | Nama sinyal | Tugas | Register | Komplemen |
1 | -Strobe | In/Out | Control bit 0 | Ya |
2 | +Data Bit 0 | Out | Data bit 0 | |
3 | +Data Bit 1 | Out | Data bit 1 | |
4 | +Data Bit 2 | Out | Data bit 2 | |
5 | +Data Bit 3 | Out | Data bit 3 | |
6 | +Data Bit 4 | Out | Data bit 4 | |
7 | +Data Bit 5 | Out | Data bit 5 | |
8 | +Data Bit 6 | Out | Data bit 6 | |
9 | +Data Bit 7 | Out | Data bit 7 | Ya |
10 | -Acknowledge | In | Status bit 6 | |
11 | +Busy | In | Status bit 7 | |
12 | +Paper End | In | Status bit 5 | |
13 | +Select In | In | Status bit 4 | |
14 | -Auto Feed | In/Out | Control bit 1 | Ya |
15 | -Error | In/ | Status bit 5 | |
16 | -Initialize | In/Out | Control bit 2 | |
17 | -Select | In/Out | Control bit 3 | Ya |
18-25 | Ground | Ground | | |
Untuk dapat menggunakan port parallel, kita harus mengetahui alamatnya. Alamat LPT1 biasanya adalah 888 (378h) dan LPT2 biasanya 632 (278h). Setelah kita mengetahui alamat dari port parallel, maka kita dapat menentukan alamat data port, control port, dan status port. Alamat data port adalah alamat dari port parallel tersebut, alamat status port adalah hasil penaikan 1 angka dari data port, dan alamat control port adalah hasil penaikan 2 angka dari data port. Lebih jelasnya lihat tabel di bawah ini:
Nama port | Alamat register |
LPT1 Data | 378h / 888 |
LPT1 Status | 379h / 889 |
LPT1 Control | 37Ah / 890 |
Dari penjelasan di atas sekarang kita dapat membuat sebuah aplikasi yang dapat mengakses parallel port. Perlu diketahui bahwa visual basic tidak mempunyai kemampuan untuk mengakses hardware, untuk itu kita membutuhkan file dll yang dapat di download dari http://hdteam.net/site/download/inpout32.dll. File inpout32.dll mampu berjalan hanya pada sistem operasi windows 95 / 98 / Me, selain itu anda tidak dapat menggunakan file inpout32.dll.
Sebelum kita menggunakan fungsi-fungsi yang ada dalam file DLL ini, terlebih dahulu harus dideklarasikan ke dalam visual basic. Pendeklarasian pada module sebagai berikut:
Public Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
Ada dua fungsi yang dideklarasikan yaitu Inp dan Out, fungsi Inp berguna untuk membaca nilai yang terdapat pada alamat port yang diinginkan, sedangkan fungsi Out digunakan untuk mengeluarkan nilai sebesar yang diinginkan pada port yang diinginkan. Anda dapat menggunakan baik satu atau ke-dua fungsi di atas secara bersamaan. Berikutnya anda dapat memanggil fungsi di atas dengan format:
Out (alamat port, nilai)
Variabel = Inp (alamat port)
Untuk lebih jelasnya perhatikan contoh penggalan program untuk menuliskan dan membaca nilai parallel port:
Private Sub Command1_Click()
Dim Nilai as Long
Out &H378, 1
Nilai = Inp(&H378)
MessegeBox Nilai
End Sub
Jika penggalan program diatas dijalankan, maka akan menampilkan kotak pesan “1”, karena kita telah menset hight pada port 378h, sebaliknya kita juga dapat menset port 378h menjadi low dengan mengeluarkan nilai sebesar 0 ke port 378h.
Daftar pustaka:
- Teori dan praktek interfacing port parallel dan port serial komputer dengan Visual Basic 6.0, ISBN : 979-731-384-0, Penerbit Andi.
- http://lvr.com
- http://planet-source-code.com
keren cara penjelasanya runtut..
BalasHapusditunggu postingan selanjutnya