Gunumuz bilgisayarlarında yaklaşık 20 yıldan beri olarak, standartlaşmış 25 yuvalık paralel port bulunmakta...Bizim icin onemli olan şuanlık bu 25 yuvanın 16'sı..Data port kontrolunu goreceğiz burada...

Data port'u paralel port uzerinde 8 yuvaya sahiptir..





Şekilde ilgili portların konumları kırmızı ile belirtilmiştir..

''D'' harfi ile gosterilen kısımlarla ilgileneceğiz..

Gorduğumuz Paralel Port, 2'lik sayı sisteminde calışmaktadır (Temel mantıkla başlayayım)

Şuan bizim gunluk hayatta kullandığımız sayı sistemi 10'luk sayı sistemi olup 10 adet rakam kullanılmaktadır. (0, 1, 2, 3, 4, 5, 6, 7, 8, 9 )

Tum tabana dayalı sayı sistemleri 0'dan başlar ve (ilgili sistemi ifade eden sayı) - 1 ile biter..

Yani 2'lik tabandaki rakamlarımız 0 ve 1'dir..Bilgisayar dili olarak da gecer bu...

Biz yollayacağımız kodlar ile belli başlı portları ''1'', belli portları da ''0'' yapacağız..

Peki 1 yada 0 olunca ne mi olacak ??

''1'' demek, ilgili porta surekli olarak 5 Volt gitmesi demektir..0 da, kendisinden anlaşılacağı gibi 0 Voltu ifade etmektedir..

Eğerki 0 Volt'luk yuvaya enerji yollarsanız, yarı topraklama işlevi gorecektir, cunku dışarıdan da enerji verilmesi sahip olacağı ''0'' volt değerini değiştirmeyecek ve bir akım yonu oluşacaktır..

Son paragrafın işimizle pek bir ilgisi yoktur...Sadece elinde duşuk voltlu LED olup direncleri olmayan arkadaşların LED'lerinin yanmaması icin pratik bir yol soyleyeceğim..

NOT : Paralel porttaki yuvalara gereksiz yere dışarıdan elektrik yuklenmesi cok kez tekrarlandığında kalıcı sorunlara (transistor yanmaları vb.) sebebiyet verebilir !!

Neyse, şimdi ikinci olarak 10'luk tabanda yollayacağımız sayısal değerleri nasıl 2'lik tabana cevireceğimizde..Bunun kolay bir yolu ilgili sayıyı surekli 2'ye bolmektir..2'ye bolunduğunde bolum tekrar tekrar 2'ye bolunur, taa ki bolum 0 yada 1 olana kadar..

Ondan sonra en son bolme işleminden ilk bolme işlemine kadar, son işlemin bolumunden başlanıp diğerlerinin kalanlarının yan yana yazılmasıyla bizim 2'lik sistemdeki değerimize ulaşılır..

Ornek :

25'in 2'lik değerini alıyorum..

25 : 2 = 12 + 1 (1 kalanımız oluyor )

12 : 2 = 6 + 0 (kalan 0 )

6 : 2 = 3 + 0 (Kalan 0 )

3 : 2 = 1 + 1 (Bolumumuz ve kalanımız 1)

Şimdi son işlemden ilk işleme gidiyoruz..

11001 bizim 2'lik tabandaki değerimiz.. ( 1 (Son işlemin bolumu) 1 (Son işlemin kalanı) 0 (sondan 2. işlemin kalanı) 0 ( sondan 3. işlemin kalanı ) 1 (ilk işlemin kalanı) )

Ancak 8 tane portumuz olduğu icin basamak sayısını 8'e cıkartmalıyız..Bu nasıl olacak derseniz bulduğumuz değerin başına (soluna) ''0'' ilave edeceğiz..

yani 2'lik tabanda değerimiz : 00011001

Yani data portunun 1. ve 4. ve 5. yuvalara 5 Volt gonderilmiş olur..Diğer Yuvalar 0 Volttur..

Direkt olarak paralel portu kontrol etmek istiyorsak once Data portumuzun adresini oğrenmeliyiz...

Windows XP'de Denetim masasısystem'e girin..Orada ''Donanım'' sekmesinden ''Aygıt Yoneticisi''ne gelin..Daha sonra ''Bağlantı Noktaları'' altından ''Yazıcı Portu''nu bulun ve cift tıklatın..''Kaynaklar'' bolumune geldiğinizde ;

0378-037F gibi bir değerle karşılaşacaksınız..''-''den onceki bolum sizin Data Portu adresinizdir..Ancak Visual Basic'te bunu yazmak icin ''&h378'' demeliyiz..Karışık bir durum burası

Neyse, paralel port kontrolu icin gereken kod ;

OUT Data Portunun Adresi, Gonderilecek Değer (10'luk sistemde)

Orneğin bende (coğu kişide) ;

OUT &h378, 25 gibi...

Birkac tane LED satın alıp uclarını 0 ve 1 olan yuvalara değdirirsek yaklaşık 2-2.5 Voltluk değer uygulanacaktır ve yanma riskleri duşecektir..

Paralel portun 18-25 yuvaları topraklama işlevi gorur..Değeri 1 olan yuvalarla bu topraklama işlevi goren yuvalar arasında bir devre kurarsanız en az 5 Volt ile işlem yapma imkanını bulursunuz.

Daha modern ve asıl olması gereken port kontrolu icin Visual Basic'imizi acıyoruz..İlk olarak 2 Command Button ve 2 Text bolumu acıyoruz..(İsimleri aynı kalsın)

Daha sonra ''Module1''e ;

Kod:
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)
''Form1''e ;

Kod:
Private Sub Command1_Click() Text2.Text = Str(Inp(Val("&H" + Text1.Text))) End Sub Private Sub Command2_Click() Out Val("&H" + Text1.Text), Val(Text2.Text) End Sub
yazıyoruz..Programı calıştırdığımızda ilk bolume data port adresini (0378 gibi), ikinci text'e gonderilecek değeri yazıyoruz..

İlk command button'a bastığımızda varolan değeri bize text2'de gosteriyor..2. Buttona bastığımızda ise bizim text2'ye yazdığımız veriyi porta yolluyor..Guzel değil mi

Ben biraz daha geliştirip aşağıdaki şekli oluşturdum.....:

[IMG]http://img248.**************/img248/2630/pport.jpg[/IMG]

Herkeze kolay gelsin ...
__________________