Download - Atraksi lampu led dengan port paralel
1
ATRAKSI LAMPU LED DENGAN PORT PARALEL
DAN INPUTAN DARI USER MENGGUNAKAN VISUAL STUDIO 2008
INTERFACE DAN PHERIPERAL
Fatchurrachman Purna Yudha
093112706450026
JAYADI
0931127064500
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA
UNIVERSITAS NASIONAL
JAKARTA
2012
2
Daftar isi
PEDAHULUAN ............................................................................................................. 3
Port Paralel.................................................................................................................. 3
PROJECT 1 .................................................................................................................... 6
Gambaran umum project ............................................................................................ 6
Persiapan dan Persyaratan .......................................................................................... 6
Pengoperasian ............................................................................................................. 7
3
PEDAHULUAN
Port Paralel
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
Kompateliti mode adalah sebuah mode "channel yang mengirim secara terus
menerus". atau sebuah mode yang memindahkan data dari pc ke periperal. mode ini
memindahkan Bytes (8 potongan bit data "00000000") satu kali dalam satu waktu ke
periperal. dan ini adalah mode default dari perasi port paralel. atau istilahnya "IEEE 1284
kompetibel" port ini harus menjadi setidaknya mampu dari tipe operasi ini
2. mode nibble
nibble mode adalah mode "pemesanan channel". atau salah satunya memindahkan
data dari pheriperal ke PC. mode ini memindahkan data satu "nibble" (4 bit) dalam satu
waktu ke PC. Satu waktu "nibbles" sampai mereka harus dirakit ulang menjadi bytes,
sebuah operasi itu lambat beberapa rate pada masing masing data dapat di transmisikan.
"IEEE Compliant" parallel port harus termasuk setidaknya kompetibelitas dan nibble
mode dan menyetujui mekanisme untuk negosiasi trasnfer
3. mode byte
Byte mode adalah mode pemesanan channel yang lain. mode ini menginprove pada
nibble mode dengan memperbolehkan data untuk pindah ke PC satu byte penuh dalam
satu waktu
4. mode EPP (enhanced parallel port)
EPP mode bekerja dalam masing masing forward dan reverse direction, memindahkan
byte penuh pada masing masing jalur. keuntungan utama dari epp mode daripada
kompetibelitas, nibble dan byte mode dalah kecepatannya. EPP dapat membaca atau
menulis data dalam satu ISA bus Cycle, termasuk waktu membutuhkan hanshaking
protokol. mode sebelumnya membutuhkan empat siklus untuk transfer satu byte. mode
EPP dapat juga sangat cepat mengganti arah dari perpindahan data. membuat ini sebuah
pilihan bagus dari mode untuk paralel port peralatan penyimpan data. EPP mode
termasuk didalamnya compatibility, nibble, dan mode tersebut dapat digunkanan jika
dibutuhkan
5. mode ECP (Extended capability port)
ECP mode menambahkan layer lain pengalaman ke tarnsfer data secara paralel. seperti
mode EPP, ECP memindahkan byte secara penuh pada dua arah dan memesan channel.
dan juga masing masing byte dipindahkan dalam satu ISA clock cycle. tambahan, ECP
port memiliki data buffering, DMA support ( kemampuan untuk menulis data secara
langsung ke sistem memori tanpa menempatkan permintaan dalam sistem CPU. dan
kompresi data untuk lebih efisien data transer. mode ECP termasuk semua mode data lain
diantara itu.
Tujuan dari standar yang baru tersebut ialah untuk mendesain driver dan peralatan
yang baru yang kompatibel dengan peralatan lainnya serta standar paralel port sebelumnya
4
(SPP) yangn diluncurkan tahun 1981. Mode Compatibilitas, 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 computer. 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
berate 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 dta 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 dan control.
Berikut ialah tabel nama pin dari konekter DB25 dan Centronics dengan jumlah
konektor 34. DB25 ialah konektor yang umum digunakan di computer 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, yaitu1284 tipe A
ialah konektor DB25 yang dapat ditemukan di hampir semua komputer, 1284 tipe B ialah
konektor Centronics 36 pin yang umum ditemukan di printer, IEEE 1284 type C ialah
konektor 36 pin seperti Centronics, tetapi ukurannya lebih kecil.
5
Berikut adalah gambar connetor paralel DB25 berikut keterangan
Pada gambar diatas adalah bentuk pin DB25 Female dimana terdapat 3 jenis Register
pada port paralel yaitu
Register Data, sebagai tempat data dikirimkan dari bus komputer ke luar melalui port
paralel ini. Terdiri dari 8 bit dimana dalam satu kali detak dapat mengirim 8 bit sekaligus.
Alamat untuk register ini adalah (0x278, 0x378, 0x3BC) biasanya alamat yang sering
digunakan adalah 0x378 atau sering disebut base.
Register Status, terdapat pada alamat Base + 1 atau (0x278, 0x378, 0x3BD)
memungkin kan kita memberikan inputan ke bus komputer. Bit yang dapat diakses hanya bit
S7 sampai bit S3 sedangkan S2 – S0 adalah defalut / hanya dapat diakses dari sistem. Pada bit
S7 terdapat inverse yaitu jika kita mengirimkan data 1 maka akan terbaca 0. Begitu
sebaliknya.
Control Status, terdapat pada alamat Base + 2 atau (0x27A,0x37A,0x3BE).
6
Untuk lebih jelas tentang pin yang ada silahkan lihat pada tabel dibawah ini
PROJECT 1
Gambaran umum project
Project yang akan dibuat adalah project dengan menggunakan parallel port untuk
memberi inputan dan membaca inputan. Pada project ini output ditunjukkan dengan lampu
LED. Jika menyala maka inputan yang diberikan adalah 1 sedangkan jika mati maka input
yang diberikan adalah 0. Karena 8 bit maka akan direpresentasikan sebagai berikut :
Jika kita mengirim data 50 maka 0 0 1 1 0 0 1 0 atau dalam lampu akan
direpresentasikan dari bit 7 hingga 0
0 0 1 1 0 0 1 0
Mati Mati Hidup Hidup Mati Mati Hidup Mati
Program yang akan dibuat dengan menggunakan visual studio 2008 dan mode ECP
karena secara default mode inilah yang terpasang di computer.
Persiapan dan Persyaratan
Persiapan yang diperlukan adalah adanya file Inpout32.dll yang dicopykan ke
C:\Windows atau C:\Windows\System32 sehingga nanti saat program dijalankan file tersebut
dapat langsung diakses.
7
Selain itu diperlukan frame work 3.5 karena program yang digunakan menggunakan
framework 3.5. dan system operasi yang digunakan adalah windows XP karena windows ini
masih kompetibel dengan file Inpout32.dll.
Pengoperasian
Gambar Alat Atraksi LED
Gambar diatas adalah gambar alat yang kami buat untuk project ini dimana pada
bagian atas terdapat register data dengan D0 – D7 dari kiri ke kanan. Register Status dengan
lampu berwarna Hijau dan Status pada saklar bagian bawah.
Untuk skema dapat dilihat pada gambar berikut
Skema Alat Atraksi LED
Untuk mengoperasikan alat ini buka aplikasi atraksi lampu LED
Register data
Register Control
Register Data Input
Register Status
8
Code Definisi Program
Private Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As
Integer) As Integer
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As
Integer, ByVal Value As Integer)
Code diatas digunakan untuk menginport file inpout32.dll untuk inputan dan output
Mode 1
Hidup 1 pin dari kiri ke kanan kemudian berulang kembali
If Inp(&H379S) = 119 Then
Label6.Text = "mode 1. (Status 3 - ON)"
Out(&H378S, mode1(j))
j -= 1
If j = -1 Then j = 7
Mode 2
Hidup 1 pin dari kanan ke kiri kemudian berulang kembali
ElseIf Inp(&H379S) = 111 Then
Label6.Text = "mode 2. (Status 4 - ON)"
Out(&H378S, mode1(k))
k += 1
If k = 8 Then k = 0
Mode 3
Mati 1 pin dari kiri ke kanan kemudian berulang kembali
'mode 3
Judul
Identifikasi Jenis masukan
Membaca inputan secara decimal
Tombol Memulai dan berhienti
9
ElseIf Inp(&H379S) = 95 Then
Label6.Text = "mode 3. (Status 5 - ON)"
Out(&H378S, 255 - mode1(j))
j -= 1
If j = -1 Then j = 7
10
Mode 4
Mati 1 pin dari kanan ke kiri kemudian berulang kembali
'mode 4
ElseIf Inp(&H379S) = 63 Then
Label6.Text = "mode 4. (Status 6 - ON)"
Out(&H378S, 255 - mode1(k))
k += 1
If k = 8 Then
k = 0
End If
Mode 5
Hidup 1 pin dari kanan ke kiri kemudian kembali lagi ke kanan
'mode 5
ElseIf Inp(&H379S) = 255 Then
Label6.Text = "mode 5. (Status 7 - ON)"
If cek_l = 0 Then
Out(Port1, mode1(l))
l += 1
If l = 8 Then
cek_l = 1
l -= 1
End If
Else
l -= 1
Out(Port1, mode1(l))
If l = 0 Then
cek_l = 0
l += 1
End If
End If
11
Mode 6
Mati 1 pin dari kanan ke kiri kemudian kembali lagi ke kanan
'mode6
ElseIf Inp(&H379S) = 247 Then
Label6.Text = "mode 6. (Status 7 dan Status 3 - ON)"
If cek_l = 0 Then
Out(Port1, 255 - mode1(l))
l += 1
If l = 8 Then
cek_l = 1
l -= 1
End If
Else
l -= 1
Out(Port1, 255 - mode1(l))
If l = 0 Then
cek_l = 0
l += 1
End If
End If
Mode 7
Hidup 1 pin dari kanan dan kiri kemudian ke tengah kemudian kembali lagi ke sisi
'mode 7
ElseIf Inp(&H379S) = 239 Then
Label6.Text = "mode 7. (Status 7 dan Status 4 - ON)"
If cek_l = 0 Then
Out(Port1, mode1(l) + mode1(7 - l))
l += 1
If l = 4 Then
cek_l = 1
l -= 1
End If
Else
12
l -= 1
Out(Port1, mode1(l) + mode1(7 - l))
If l = 0 Then
cek_l = 0
l += 1
End If
End If
Mode 8
Menghitung dari 0 hingga 255
'mode 8
ElseIf Inp(&H379S) = 223 Then
Label6.Text = "mode 8. (Status 7 dan status 8 - ON)"
Out(Port1, n)
n += 1
If n = 256 Then n = 0
Mode 9
Mati 1 pin dari kanan dan kiri ketengah lalu kembali lagi.
ElseIf Inp(&H379S) = 191 Then
Label6.Text = "mode 9. (Status 7 dan status 6 - ON)"
If cek_l = 0 Then
Out(Port1, 255 - (mode1(l) + mode1(7 - l)))
l += 1
If l = 4 Then
cek_l = 1
l -= 1
End If
Else
l -= 1
Out(Port1, 255 - (mode1(l) + mode1(7 - l)))
If l = 0 Then
cek_l = 0
l += 1
End If
End If