PARALEL PORTA ERİŞİM

    Herkese tekrar selam.Bu ay virüs yazısının dışında bir de aklıma geldi paralel porta erişim nasıl yapılır bunu anlatayım dedim.Aslında bu olay çok derin bir konu.Ama programlama kısmı oldukça basit.Derin olan kısmı bilgisayardan sonraki kısmı yani kontrol etmek istediğiniz aygıt ile ilgili olan kısım.Tabi bu kısım sizin elektronik bilginizle alakalı.Neyse uzatmadan yazıya geçiyorum.

    Paralel port bilindiği gibi bilgisayarların arkalarında bulunan yazıcı bağladığımız porttur. Bu port 25 iğnelidir. Bir kerede 8 farklı bilgiyi iletebilir (8 bitlik bir erişim) . Paralel port Centronics arabirimi olarak da adlandırılır (Sebebini sormayın, bilmiyorum - heralde centronics diye bir şirket bunu çıkarmıştır veya ilk kez centronics diye bir alette kullanılmıştır)     Paralel port 5 Voltluk gerilimle çalışır.Daha doğrusu paralel port pinlerinde ya 5Volt bulursunuz veya 0 Volt bulursunuz.(Dijital elektronik devrelerindeki gibi - +5V=1, 0V=0).     Şimdi de bu pinlerin ne işe yaradığına bir bakalım.Paralel port genelde yazıcı için kullanıldığından pinleri bu yönde yazdım.

Pin No

İşlevi
1 Clock : Burada belli aralıklarla birbirini izleyen 0 ve 1 sinyalleri vardır
2,3,4,5,6,7,8,9 Veri pinleri olarak kullanılır
10 Acknowledge (Hazır) hattı
11 Busy (Meşgul) hattı
12 Yazıcıda kağıt bittiğinde bu pin set edilmiş olur
13 On-line pini: Yazıcının online olup olmadığı bu pin ile anlaşılır
14 Bu pin set edilmiş ise yazıcı otomatik satırbaşı yapar
15 Yazdırma sırasında veya yazıcıda meydana gelen hatalar bu pin ile bildirilir.
16 Bu pin ile yazıcı kapatılıp açılır (Reset olayı)
17 Yazıcıyı hazır hale getirmek için kullanılır
18,19,20,21,22,23,24,25 Toprak - GND
    Paralel port adresini öğrenmek için bilgisayarın POST testi sırasında tespit ettiği aygıtlara ait bilgilerin yazıldığı BIOS veri alanını kullanabiliriz. LPT1 ve LPT2 port numaraları   0000:0408 (diğer bir deyişle 0040:0008) adresinden itibaren yer alır.Bunu aşağıdaki pascal kodu ile öğrenebiliriz. Function LPTxAdr(x:Byte):Word;
Begin
    LPTxAdr:=MemW[0000:$406+(x*2)];
End;
    Bu fonksiyon bize x no'lu LPT portunu getirecektir.Bu fonksiyon 0 değeri döndürürse bilgisayarda LPTx 'in kurulu olmağını anlamak gerekir.     Paralel portlardaki IO işlemlerinde 3 farklı port değeri kullanılır.Bunlardan birincisi veri göndermek için, ikincisi veri okumak için, üçüncüsü ise kontrol işlemleri için kullanılır. Mesela LPT1 portunu 378h varsayalım. Bu 378h değeri veri yazma portunun değeridir. Veri okuma portu 379h, kontrol portu da 37Ah'tır.Herhalde bu kısım anlaşıldı.     Buna göre kullanacağımız LPT portunda bir yazıcı bağlı olup olmadığını öğrendiğimiz port değerine +2 ilave ederek bulacağımız kontrol port numarasından öğrenmek gerekir. Bu port kontrol edilerek yazıcı bağlımı değilmi kontrol edilebilir. (Bu kısımda detay veremiyorum, çünkü yazıcım yok)     Şimdi paralel porta nasıl veri yazabileceğimize bakalım.Sistemi aslında oldukça basit.Aşağıdaki tabloya göre set etmek istediğiniz pinlerin değerini hesaplayıp porta yazmak gerekiyor.Ama önce pinlerden hangisini yada hangilerini set edeceğimize bakalım

Port Bit No

7 6 5 4 3 2 1 0
Port Pin No 9 8 7 6 5 4 3 2
Değer (hex) 80 40 20 10 08 04 02 01

    Sanırım bu tablo işinizi oldukça kolaylaştıracaktır. Mesela 7, 5,4,2 ve 0 no'lu pinleri set etmek istersek 80+20+10+04+01=B5 değerini kullanmamız gerekli.Yani binary sistemde 10110101 şeklinde de ifade edebiliriz bu sayıyı.Burada 1'ler bitin set edildiğini ifade ediyor.Bunu bir pascal ve assembly kodu ile özetlersek;

Program LPTKontrol;
{Coded by DarkApocalypse/TurkishScene}
Function LPTxAdr(x:Byte):Word;
Begin
    LPTxAdr:=MemW[0000:$406+(x*2)];
End;

Begin
    Port[LPTxAdr(1)]:=$B5;
    WriteLn('LPT1 adresine 10110101 değeri yollandı..');
End.

.Model Tiny
.Code
Org 100h
Kontrol Proc Near
     ;---->LPT1 portuna gönderiyoruz
     Xor Ax,Ax
     Push Ax
     Pop Ds
     Mov Dx,Word Ptr Ds:[408h]
     ;---->Dx=LPT1 portu
     Mov Al,0B5h
     Out Dx,Al
     Mov Ah,4Ch
     Int 21h
Kontrol Endp
End Kontrol

    Bundan sonraki olay artık tamamen sizin elektronik bilginize ve hayal gücünüze bağlı..

 

 



ANA SAYFA::::::::