Paralel port kullanımı
Basic ve Pascal için port kullanımı
Biraz elektronikle ilgilenmiş birinin hep hayalidir bilgisayarla aletleri kontrol etmek.
Bilgisayarla aletleri kontrol etmek için aslında fazla birşey gerekmiyor. Biraz elektronik
bilgisi, biraz programcılık birazda port bilgisi. Şimdi bunları teker teker öğrenerek port
kontrolüne başlayalım.
Portun Yapısı
İşte bu gördüğünüz LPT portu dediğimiz printer portu.
Bu porta hem printer takabiliriz, hemde bu porttan çıkış
alabiliriz. Bu port 25 uçlu dişi port. Erkek olanlarında
uçlar dışarıya doğru çıkar. Bu portun 2. ucundan 7. ucuna kadarını kullanabiliriz. Yani toplam 8 uç. Port uçlarından +5v civarında çıkış alabiliriz. 22. ,23. uçlar – (şase) uçlarıdır. Elimizde bir Led
(küçük lamba) var diyelim. Ledin + ucunu portun 2.ucuna, – kısmınıda 23.uca bağlarsak ledimiz yanacaktır. Ama hemen değil, programla :))
Port – Elektronik Devre İlişkisi
Buda portun çıkışına kuracağımız elektronik devre şeması.
Port çıkışının en fazla +5v verebilir.
Peki siz 12 voltta çalışan bir motoru kontrol etmek istiyorsunuz. Bu durumda portun çıkış voltajı yetmeyeceğinden, böyle bir elektronik devre kullanarak her türlü elektronik aleti kontrol edebiliriz.
Devrenin çalışması şu şekilde olacaktır: porttan +5v geldiğinde, transistörün tetikleneceği için led yanacaktır. porttan voltaj gelmediğinde ise transistör açık devre özelliği gösterecek led yanmayacaktır.
Program Kısmı
Port kontrolünde istediğimiz bir programlama dilini seçebiliriz.Bilgisayar donanımlarının ayrı ayrı adresleri vardır. Mesela Monitörün, LPT portunun, seri portun v.s. ayrı ayrı adresleri vardır. Bizim kullanacağımız LPT portunun adresi 888 (Hexadecimal sayı sisteminde 378) dir. İşte biz bu adresten bilgi göndermek istiyorsak bilgisayara söylememiz gerekiyor. Porttaki bütün uçlardan çıkış almak için 255 yazmalıyız. Çünkü 8 çıkışımız var ve bu 8 çıkışın karşılığı (2 üstü 8=255) sayısıdır. Porttaki çıkışı iptal etmek içinde "0" çıkıyoruz.
Basic ve Pascal da port kullanım programları şu şekildedir;
10 cls | Program Port_Kullanimi |
20 out 888,255 | Uses Crt; |
30 for i=1 to 10000 : next i | Begin |
40 out 888,0 | Clrscr; |
50 for i=1 to 10000 : next i | Repeat |
60 goto 20 | Port[$378]:=$FF; {led yandı} |
Delay(10000); {1-2 sn bekleme} | |
Port[$378]:=$00; {led söndü} | |
Delay(10000); {1-2 sn bekleme} | Until Keypressed; |
End. |