Bilgisayarımın paralel portundaki çıkışlar.

Başlatan ocomrun, 15 Eylül 2009, 23:07:22

ocomrun

Arkadaşlar. Bilgisayarımın paralel portunda data pinlerinin hepsinde 5V. var. Sıfır olması gerekmiyormu? Bütün uygulama örneklerinde, bu pinler sıfır anlatılmış. Benim bilgisayarımda neden böyle. Yardımcı olurmusunuz?
Ozan Çömrü

homer380

Eğer sıfır diye anlatılmıssa senin port acıktır.ama sanmam bir program aracılığıyla acılmıstır tekrar kapanmamıstır diye düşünüyorum.

nazmi74

Alıntı yapılan: "ocomrun"Arkadaşlar. Bilgisayarımın paralel portunda data pinlerinin hepsinde 5V. var. Sıfır olması gerekmiyormu? Bütün uygulama örneklerinde, bu pinler sıfır anlatılmış. Benim bilgisayarımda neden böyle. Yardımcı olurmusunuz?

Bildiğim kadarı ile bütün bilgşsayarlarda paralelport 5v çıkış verir. Bunu program ile 0v ta düşürülür.  Elimde konu ile ilgili bir uygulama olması lazım. VB ile yazılmış bulabilirsem burada paylaşırım.

cetinkaya

VB ile rs232 ile pici haberlestirmek istiyorum.Elinizde VB ile ilgili bu türk haberlesmeler icin kodlar veya tutorial varmidir saygilar.

OG

Alıntılar (www.vbasicmaster.com),

;;;;;;;;;;;;
Merhaba Bu Kodlar İle Bilgisayarda İstediğinizi Yapıcaksınız...

INPOUT32.DLL Elinizde Yoksa internette Bulabilirsiniz... INPOUT32.DLL İndirdikten sonra Windows System32 İçerisine Atınız Ve
Vb de Formunuza Module Ekleyin Ve Bu kodları Yazın

---- Buradan Aşşağısını Yapıstırın ---

#If Win32 Then
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)

#Else
Public Declare Function Inp Lib "inpout16.Dll" _
Alias "Inp16" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout16.Dll" _
Alias "Out16" (ByVal PortAddress As Integer, ByVal Value As Integer)
#End If
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

---- Buraya KAdar Olanı Module Yazınız ---

Şimdi Formunuzda
Declare Kısmına
Dim adres as integer Yazın

Form_Load Kısmına adres = &H378 Yazınız. Lpt Yazıcı Portunuzun Genel Adresi &H378 dir.

şimdi bunları bir kenara bırakıp

veriler ve acılcak portlardan konusalım sonrada buton click olayını koonusucaz

Bu Portun 25 Pini vardır. bu pinlerin 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 18 - 19 - 20 - 21 - 22 - 23 - 24 - 25 Nolu Pinlerini Kullanıcaz

şimdi 2 nolu pine +5 volt göndermek için 1
3 nolu pine +5 volt göndermek için 2
4 nolu pin +5 volt göndermek için 4
bu sekilde her pinde 2 katı yazılır

tüm hepsini açmak için ise 255 yazılır

şimdi buton click olayına out adres, 1 yazdıgımızda 2 nolu pin +5 volt olur
out adres, 2 yazdıgımızda 3 nolu pin +5 volt olur
bu sekilde dvm etmektedir

+5 volt olanları kapatmak için ise out adres, 0 yazılır

kalan 18 19 20 21 22 23 24 25 nolu pinlerin hepsini birleştiriyoruz bunlar ise ( - ) voltu Temsil Etmektedir

şimdi ise yöneteceğimiz elektronik eşyalara geçelim

İsterseniz Elektronikcilerden BC237 Transistörünü Alınız İsterseniz İse 5 voltluk röle alırız. Ve Deneme Amaçlı 1 tanede Led alınız.
BC237 Transistör Alırsanız bu Parçanın 3 Bacağı Vardır.
Collector - Base - Emiter Uçları Vardır. Base ucuna portun 2 nolu pinini baglarız böylece 2 nolu pin +5 volt oldugunda transistörün collector ve emitor uclarında bi iletkenlik olur..
herneyse baseye 2 nolu pin girdikten sonra
collector e pilin + kutbunu bağlatınız emitör ise Led Yada Ampulun Ucunu Bağlayınız Ampulun diger Ucunu Pilin - kutbuna ve yine pilin - kutbuna portta köprülediğimiz 18 19 20 21 22 23 24 25 nıolu uçları pilin - sine veriyoruz

böylece butona tıklanınca transistör tetiklenmiş ve led yada apmul yanmıs oluyor burada led yada ampul yerine çeşilti şeyler baglayabilirsiniz hatta yeterli besleyip kapı otomatiği baglayıp evinizin kapılarını bile pc le açıp kapatın :D

röle kullananlar için ise 2 nolu pini rölenin bi bobin ucuna 18 19 20 21 22 23 24 25 nolu uçlar ise rölenin diger bacagına baglanır ve rölenin NO normal Open Normalde Açık Kontagı Vardır Bu kontagın bi ucuna pilin + sını diger ucuna ledi ledin diger ucunu pilin -sine ve ampulun diger ucunu - ye takınız. Not: Role Kullananlar Köprülenen Pinleri pilin - kutbuna takmanız gerekmez.

Eğer Yapadığınız bir Şey Olursa ak_tayfun_gs@hotmail.com
;;;;;;;;;;;;;;;;;;;;;;

ÖNCELİKLE ŞÖYLE BAŞLIYIM BENİM OKUL TARAFINDAN VERİLEN BİR PROJEM VARDI VİSUAL BASİC İLE ELEKTRONİK EŞYA KONTORLÜ ADINDA SİZE BUNUN HAKKINDA BİLGİ VERECEĞİM VE DEVRE ŞEMASINI İSTEYEN ARKADAŞLARIM İÇİN EN ALTTA MSN ADRESİMİDE VERİCEĞİM

KOD:

Private Sub Form_Load()
Call Kontrol
Call SEND
Frame1.Visible = False
End Sub
Private Sub Kontrol()
On Error Resume Next
Inet1.AccessType = icUseDefault
Inet1.URL = "SERVER FTP ADI"
Inet1.UserName = "KULLANICI ADI"
Inet1.Password = "ŞİFRE"
X:
Inet1.RequestTimeout = 60
Kill "BİLGİSAYARINDAKİ ALICI DİZİNİ"
Inet1.Execute , "GET SERVERDAKİ DOSYA DİZİNİ"

Do While Inet1.StillExecuting
DoEvents
Loop
Inet1.Execute , "CLOSE"

Open "C:\ServerX1.txt" For Input As #1

For i = 0 To 7

Line Input #1, q
Weri = q

If Len(Weri) > 1 Then

M = 0
For K = 0 To 18
Weri = q
K = K + 1

Weri = Mid(Weri, K, 1)

If Weri = 0 Then
Konum(M).BackColor = vbRed
DATA1(M) = 0
Else
Konum(M).BackColor = vbGreen
DATA1(M) = 1

End If
M = M + 1
Next

Close #1
Exit Sub

End If
If q = 0 Then
Konum(i).BackColor = vbRed
DATA1(i) = 0
Else
Konum(i).BackColor = vbGreen
DATA1(i) = 1
End If
Next
Close #1

End Sub

Private Sub Timer1_Timer()
Call Kontrol
Call SEND
End Sub


Private Sub SEND()
For i = 0 To 7
Data2 = Data2 & DATA1(i)
Next

a = Mid(Data2, 1, 1)
If a = 1 Then toplam = toplam + 128

a = Mid(Data2, 2, 1)
If a = 1 Then toplam = toplam + 64

a = Mid(Data2, 3, 1)
If a = 1 Then toplam = toplam + 32

a = Mid(Data2, 4, 1)
If a = 1 Then toplam = toplam + 16

a = Mid(Data2, 5, 1)
If a = 1 Then toplam = toplam + 8

a = Mid(Data2, 6, 1)
If a = 1 Then toplam = toplam + 4

a = Mid(Data2, 7, 1)
If a = 1 Then toplam = toplam + 2

a = Mid(Data2, 8, 1)
If a = 1 Then toplam = toplam + 1

T = Chr(toplam)

Out Val("&H378"), Val(toplam)


End Sub

Private Sub Timer2_Timer()
Call Kontrol
Call SEND
End Sub

" " TIRNAK İÇLERİNİ OLAN YERLERDE GEREKLİ AÇIKLAMALARI YAPTIM TEK YAPMANIZ GEREKEN BİR PHP DESTEKLEYEN SERVERDIR ORAYA SERVER.TXT DOSYA ATTIĞINIZDA VERİCİDEN KOMUT YOLLADIĞINIZDA 1 VEYA 0 DURUMNA GÖRE AÇICAKTIR.

1=AÇ
0=KAPA
ANLAMINA GELMEKTEDİR

MAİL : tolga_feel@hotmail.com
;;;;;;;;;;;;;;;;;;;;

İlk önce 8 led diyotu paralel porta bağlıyoruz nasıl olcak derseniz
paralel portların birer bacağı sırasıyla 2-3-4-5-6-7-8-9 nolu pinlere bağlanır. diğer bacakları ise 18 ile 25 arasınraki pinlerden birine yada teker teker bağlanır.

Daha sonra aşağıdaki kodu modüle yazıyoruz:

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)

Bundan sonraki koduda forma yapıştırıyoruz. Ama önce
adı led olan 8 buton oluşturulur.
kopyaladıktan sonra evete basarsak daha kolay olur. Yada 8 tane ayrı ayrı çizip adlarını led yapınız.

ve aşağıdaki kodu yapıştırın gitsin.

Kod:
Private Sub led_Click(Index As Integer)
For i = 0 To 7
led(i).Caption = "Kapalı"
Next
On Local Error Resume Next
select Case Index
Case 0: Out(888) = 1
Case 1: Out(888) = 2
Case 2: Out(888) = 4
Case 3: Out(888) = 8
Case 4: Out(888) = 16
Case 5: Out(888) = 32
Case 6: Out(888) = 64
Case 7: Out(888) = 128
End select
led(Index).Caption = "Açık"
End Sub

Tıkladığınız butona ait olan led diyot yanacaktır.
Eğer hepsini kapatmak istersek bi buton koyup click olayına

out(888)=0

hepsini açmak için ise

out(888)=255

yazarız.

NOT: Bazı bilgisayarlarda portlar kapanmıyor. Yani bütün ledler açık kalıyo nedeni pc deki anormallik.
Siz bunun mantığını anlarsanız hoplayan zıplayan kayan , yürüyen ışıklar bile yapabilirsiniz. şimdilik herkese Bye
;;;;;;;;;;;;;;

SERİ VE PARALEL İLETİŞİM : (properties )
Bilgisayarınızın dış dünya ile iletişiminin en kolay yolu bu iletişim yoludur . Bilgisayarınız bu iletişimi seri ve paralel portlar aracılığıyla kurar . Kurulumda portlarla beraber ek araçlarda kullanılır bunlar (eternet kartı , modem ) gibi kartlardır bu aletler çok hız gerektirdiklerinden dolayı paralel portta çalışmaları gerekir fakat paralel porta çok kablo gerektiğinden seri portta kullanılırlar . Visual Basic?te bu iletişim yolları için gereken kontroller sağlanmıştır .Bunlardan biride MSCOMM kontrolüdür .

OPEN METODU İLE SERİ PARALEL İLETİŞİM :(properties)
Dosya açmak için kullandığımız open komutunu seri paralel iletişim dede kullanabiliriz . Burada com1 veya com2 yerine lpt1 veya lpt2 kullanılırsa portlar birer dosya şeklinde kullanılır . Böylece dosya işlemlerinde yaptıklarımızı portada yapabileceğiz .

MSCOMM :(properties )
Bu kontrol aracılığıyla seri portlar kullanılabilir ayrıca porta bağlı olan araçlarıda kolaylıkla kontrol edebilirsiniz .
1 Comm port özelliği ile de kullanılacak portun özelliği belirlenir .
2 Settings özelliği ile kullanılacak portun ayarları yapılır .
3 Port open özelliğine true verilerek belirlenen port kullanıma açılır .
4 Input özelliği ilende porttan bilgi okunur .
5 Output özelliği ilede porta bilgi yazılır .
6 Comm Event özelliğine yazılacak kodla portun durumu kontrol edilir .
7 Port Open özelliğine false verilerek belirlenen port kapatılır .

COMM PORT :
Kullanılacak seri portun numarası bu özellikle belirlenir ve en uygun port bu sayede seçilir .

SETTİNGS :
Port kullanıma açılmadan önce ayarlamalar yapılmalıdır bu özellik 4 ayarı içinde bulundurulur aralarına virgül koyarak hepsi bir arada yapılır .
Settings (Baud Rate ? Parity ?Data Bit ? Stop Bit ):
Baud Rate : Haberleşme için kullanılacak hızı belirler . Birim (bit Per second )
cinsindendir .
Parity : Bilgi ile hata kontrolü için ek bir bit kullanılır . Bu bitler tek ve çift olabilir . Makine tarafından bu bitler 1 olarak algılanır . Eğer çift parity kullanılıyorsa gelen 1?ler tek hale getirilir ve mesajın sonuna eklenir .
Data Bit : Haberleşmede kullanılacak bit sayısını belirler şu değerlerden birini alabilir 4,5,6,7,8 bit .
Stop Bit : Bir mesajın bittiğini belirtmek için kullanılacak bit sayısını belirler
şu değerlerden biri olabilir . 1-1,5-2

PORT OPEN :
Comm port özelliği ile belirlenen kullanıma açmak için bu özelliğe true verilmelidir bu işlemden sonra portu serbest bırakmak için bu özelliğe false verilir ve port kapatılır .

OUT PUT :
Açılan porta bilgi göndermeye yarar aynı zamanda modeme komut gönderilebilir . Eğer string türü bilgi gönderiliyorsa variant tipi değişkenler binary tipi bilgilere byte tipi diziler kullanılmalıdır .

INPUT LEN :
Porta gelen bilgiler alınıncaya dek bufferda tutulur . Bu özellikle okuma yapılırken kaç blokluk karakterler halinde okuma yapılacağı belirlenir eğer değere 0 verilirse bütün karakterler bir kerede okunur .

IN BUFFER COUNT :
Bufferde bekleyen karakter sayısı bu özellikle öğrenilir okuma yapılırken bufferin durumu öğrenilir boşaltılmak isteniyorsa değere 0 verilir .

IN BUFFER SİZE :
Normalde bufferın uzunluğu 1024 byte tır buffer dolmadığı sürece problem çıkmaz ancak bu değer yetmiyorsa bu özellikle değer arttırılabilir .

IN PUT :
In put özelliği ile alınan bilgi bu özellikle bufferden gelen bilgi olup olmadığı kontrol edilir .
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

OG

Alıntıya Devam

;;;;;;;;;;;;
iyi çalışmalar arkadaşlar ben aslen elektronik mühendisliği öğrencisiyim geçenlerde bir proje yaptık ama bilgisayar ile kontrol edilmesi gerekiyordu paralel port kullanmak istedik

ister c++ ister visual basic kullanarak yaptığımız çalışmalarda
Inporb, outportb gibi komutlara winxp şu (0xc0000096) hatayı verdi buraya kadar ki olay bir çok kişinin başına gelmiştir ama çözüm de geç kalmadı winxp gibi nt tabanlı sistemlerde paralel port kullanmak için geliştirilen bir dosya varki bu da inpout32.dll evet bu dosyayı kullanarak paralel port tan okuma ve porta yazma işlemleri kolaylıkla hallediliyor iş bu kadar basit buyrun kodları inceleyin

visual basic 6.0 da ben kendim bir proje yaptım ve orada kullandım sorunsuz çalıştı

yeni bir form oluşturun ve yeni bir module oluşturun

module nin içine şu decleration nu yazın
----------------------------------------------------------------------------------
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)

formunuza dönüp istediğiniz buton timer vs. ne isterseniz yapın ve kullanın diğelimki form1 üzerindeki butonun cilik olayına şu kodu yazabilirsiniz

dim x as integer

x= 10 ' porta yazılacak int tipi değer tabii bu değerin binary karşılığı porta yazılır:)

out (h378,x)

' porttan bilgi almak için ise


dim y as integer

y=inp(&h378)
---------------------------------
işte bukadar


kolay gelsin

LojikMemo
;;;;;;;;;;;;;;;;;;;;;;;;;;

Selam Arkadaşlar ben Emrah Şimşek :-)
Arkadaşlar size paralel porttan bilgi okumaya yarayan kodları vericem.
porttan bilgi okumak yada bilgi göndermek için ilk önce INPOUT32.DLL dosyasına ihtiyacımız olacak.
Bu dosyayı internetten bulabilirsiniz. Diyelim ki buldunuz. Programın çalışması için bir modül oluşturuyoruz ve içine aşağıdakileri yazıyoruz.

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)

daha sonra porttan bilgi okumak için

a=inp(888+1)

portlara bilgi göndermek için

out(888)=2 gibi

komutlarını kullanıyoruz.

Şimdilik herkese byes!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Paralel Porttan Okuma
http://hotfile.com/dl/24459156/9d83590/746B_test_app.zip.html

;;;;;;;;;;;;;;;;;;;;;

Paralel porttan Step motoru kontrolü. Dalga sürüm, tam adım ve yarım adım olmak üzere 3 değişik modda kullanım. Adım arası ayarlanabilir süre. Hakan Tolgay - www.hakantolgay.com
http://hotfile.com/dl/24459310/ec7cbe6/758or.html
;;;;;;;;;;;;;;;

VB ıle Paralel Port Kontrolu.Gerekli DLL Dosyası ′ da içerisindedir...Paralel Port Adresini Girerek Data Pin′lerinden Çıkış , Satatus portlarından giriş işlemi yapabilrsiniz....Paralel Port Standart Adresi %h378′dir...
http://hotfile.com/dl/24459442/add753d/4417ortKontrol.zip.html
;;;;;;;;;;;;;;;;;

Paralel porta bilgi yükleme ve bilgi okuma formlar
http://hotfile.com/dl/24459515/b6c4ece/Ornek1.zip.html

;;;;;;;;;;;;;

Paralel port ile iletişim sağlamanıza yarayan dll dosyası ve kullanım modülü

http://hotfile.com/dl/24459603/cd11984/Komutlar.zip.html

;;;;;;;;;;;;
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

OG

Devam

Vb paralel port kontrolü yapan program
' aşagıdaki kısımlar Modüle yazılacaklar
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)

'Form kısmaına yazılacaklar :
'bunları yazmadan önce formda iki buton ve iki tane de textbox
'oluşturmalısınız. bunlar işlemlrimiz içIn gerekli

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

'text1 adres
'text2 gönderilecek değerleri yazmak içindir.
'command1 butonu ile girilen adresden bilgi okunur
'command2 butonu ile girlen adrese bilgi gönderilir
'text1 kısmına paralel porttaki adresinizi yazınız


;;;;;;;;;

LPT ÇIKIŞINI KULLANARAK Let LAMBALARI YAKMA
BUNUNLA 8 AYRI ANAHTARLAMA YAPABİRİZ
Private Sub Command1_Click()
Dim x As Byte
Dim A
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 1
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
End Sub

Private Sub Command2_Click()
Dim x As Byte
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 0
Bit_Wert = 1
For x = 1 To 8
If Check1(x).Value = 1 Then Sendebyte = Sendebyte + (Bit_Wert)
Bit_Wert = Bit_Wert * 2
Next
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
End Sub
Private Sub Form_Load()
Dim x As Byte
Dim A
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 0
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
End Sub

Private Sub Timer1_Timer()
Dim x As Byte
Dim A As Integer
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 1
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
End Sub

Private Sub Timer2_Timer()
Dim x As Byte
Dim A
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 3
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
End Sub

Private Sub Timer3_Timer()
Dim x As Byte
Dim A
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 7
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
End Sub

Private Sub Timer5_Timer()
Dim x As Byte
Dim A
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 15
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
End Sub

Private Sub Timer6_Timer()
Dim x As Byte
Dim A
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 31
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
End Sub

Private Sub Timer7_Timer()
Dim x As Byte
Dim A
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 63
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
End Sub

Private Sub Timer8_Timer()
Dim x As Byte
Dim A
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 127
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
End Sub

Private Sub Timer9_Timer()
Dim x As Byte
Dim A
Dim Bit_Wert
Dim Sendebyte As Byte
Sendebyte = 255
Out &H378, Sendebyte
Label1.Caption = Inp(&H378)
Sendebyte = 0
End Sub

;;;;;;;;;;;;;;;;;;;;;

Port Nedir?

Bilgisayar ve telekomünikasyon dünyasında, "port" denildiği zaman akla ilk
gelen genellikle fiziksel bağlantıda kullanılan ara birimlerdir. Bu tür "port"
lar üzerinden bağlanmış herhangi bir makinaya "data" gönderilebilir ve bu
makinanın işleyişi kontrol edilebilir. Örneğin, tipik bir bilgisayarda bir veya
birden fazla "seri port" bir tane de "paralel port" bulunur. Adından da
anlaşılacağı gibi "seri port" dan bilgiler seri (her defasında bir bit) olarak
gönderilir ve bu tür "port" lara genellikle tarayıcı (scanner) gibi cihazlar
takılır. Her defasında birden çok bit göndermek içinse "paralel port" kullanı-
lır. Bu tip "port" lara da yazıcı (printer) veya "paralel port" bağlantısı olan
herhangi bir cihaz takılabilir.

Bizi ilgilendiren ve çoğunlukla İnternet dünyasında kullanılan "port"
kavramı ise yukardaki tanımdan biraz daha soyut bir kavramdir. Bu anlamda "port"
(ki dokümainin sonuna kadar "port" bu anlamda kullanılacaktir) herhangi bir
fiziksel bağlantı yeri değil, mantıksal bir bağlanma şeklidir. Şöyle ki:

Günümüz dünyasında birçok işletim sistemi birden fazla programın aynı anda
çalışmasına izin vermektedir. Bu programlardan bazıları dışarıdan gelen
istekleri (istemci-client/request) kabul etmekte ve uygun gördüklerine cevap
(sunucu-server/response) vermektedir. Sunucu programları çalışan bilgisayarlara
birer adres verilir (bknz. IP adresleri) ve bu adresler kullanılarak istenilen
bilgisayarlara ulaşılır. Peki, ulaşılan bir bilgisayar üzerindeki hangi sunucu
programdan hizmet alınmak istendiği nasıl belirtilir?

Bunun için bilgisayarlar üzerinde birtakım soyut bağlantı noktaları
tanımlanır ve herbirine, adresleyebilmek için positif bir sayı verilir (port
numarası). Bazı sunucu programları, daha önce herkes tarafından bilinen "port"
lardan hizmet verirken (örn: telnet->23. port) bazıları da sunucu programını
çalıştıran kişinin türüne ve isteğine göre değişik "port" lardan hizmet verir.
Dolayısıyla, ağ üzerindeki herhangi bir sunucu programa bağlanmak istenildiğin-
de, programın çalıştığı bilgisayarın adresinin yanında istekleri kabul ettiği
"port" numarasını da vermek gerekir. Örnek verecek olursak:

144.122.156.104 "IP" adresine sahip makinada (orca) çalışan "telnet"
sunucu programına (23. "port" dan hizmet veren) bağlanmak için aşağıdaki satır
yazılır.

telnet 144.122.156.104 23

Daha önce de belirttiğimiz gibi bazı sunucu programların belirli "port"
lardan hizmet verdiği bilindiği için, bu sunuculara bağlanmak istediğimizde,
"port" numarasını vermeye gerek kalmaz. Bu durumda yukardaki satır

telnet 144.122.156.104

şeklinde de yazılabilir.



Bilgisayar ilk açıldığında üzerinde çalışan sunucu programlar otomatik
olarak açılış dosyalarından çalıştırılabildiği gibi genel kullanım biraz daha
farklıdır.

Değişik "port" ları dinleyen birçok sunucu programın, hiçbir istemciye
cevap vermediği durumda bile, birçok sistem kaynağını gereksiz yere kullandığı
düşünülerek, "inetd" adında istemcilerle diğer sunucu programlar arasında
koordinasyonu sağlayan bir sunucu program düşünülmüştür. Açılış dosyalarından
da başlatılabilen bu sunucu tek başına bütün "port" ları dinler ve herhangi
birisine istek geldiği zaman aşağıdaki prosedürü takip eder:








1- /etc/services dosyasından ilgili "port" a hizmet veren servis ismini
bulur.
2- konfigürasyon dosyası olan "/etc/inetd.conf" dan bu servis için gelen
isteğe nasıl cevap vereceğini belirler ve gerekli programı çalıştırır.
3- bir istek geldiği zaman tekrar 1'e döner.



Paralel portun kullanım amacı ve üstünlükleri

Bir bilgisayar tek başına bilgi toplama ve değerlendirmek için kullanılabilir. Örneğin herhangi bir cihazın veya cihazın bulunduğu ortamın sıcaklığı zamanın fonksiyonu olarak kaydedilmek istenebilir. Ancak algılayıcılardan elde edilen bilgi bir arayüz kartı ile işlendikten sonra bilgisayara iletilmesi gerekmektedir. Peki işlemci dışardan gelen bu ham bilgileri kimin aracılığı ile alacaktır? Seçeneklerden birisi paralel porttur, diğer alternatiflere de ilerleyen konularda değinilecektir.
Paralel portun kullanımı bize ne gibi üstünlükler sunar?
Günümüzde bilgisayarla bilgi iletişimi anakarta takılan PCI, AGP (ekran kartları için) ve SCSI kartları ile gerçekleştirilmektedir. Daha eski model kişisel bilgisayarlarda ISA olarak bilinen kartlar da kullanılmakta idi. Ancak bu tip kartlarla çalışmak beraberinde bir çok dezavantaj da getirmektedir. Bu dezavantajları sırasıyla açıklayalım:
• Bilgisayar anakartına ait yuvalara (slot) takılan kartların laboratuar ortamında sökülüp takılmaları oldukça büyük sorunlara neden olabilir. Hatta bazı durumlarda tüm bilgisayar sisteminin zarar görmesi olasıdır.
• Tüm bilgisayar anakartları eşit sayıda yuvaya sahip değildir ve üstelik dizüstü bilgisayarlarda bu tip kartların oturacağı bir yuva (PCMCIA hariç) söz konusu değildir.
En çok öne çıkan üstünlükleri ise:
• Çoğu uygulamada basit ve ekonomik çözümler yeterli gelmekte ve bu yüzden tercih edilmektedirler.
Paralel port giriş ve çıkışları TTL (5v-0v) seviyesinde olduğu için fazladan gerilim dönüştürme entegrelerine ihtiyaç duymadan çoğu elektronik sistemle haberleşebilir.
• Paralel port üstte açıklanan bazı dezavantajlardan dolayı aranan en iyi alternatiflerden birisidir. Paralel port tüm PC sistemlerde standarttır ve mevcuttur. Her ne kadar çeşitli seri arabirimlerin (USB, Firewire) yaygılaşmasıyla önemini biraz kaybetse de sahip olduğu basitlik ve ekonomiklik bu portun uzun süreler PC standardında mevcut olacağını göstermektedir.
Paralel port 25 adet dişi pine sahiptir ve DB-25F olarak adlandırılır. Bu porta takılacak cihazın yine 25 pine sahip olması ancak erkek pinlere sahip olması gerekir. Her bir pinin hangi işleve sahip olduğu ilerleyen kısımlarda belirtilecektir


Paralel port, endüstride farklı isimlerle anılır: paralel port, paralel yazıcı adaptörü, Centronics adaptörü, Centronics port. Aslında paralel port kavramı bilgileri paralel olarak ileten bir iletişim mekanizmasını tanımlar. Ancak paralel port deyimi kişisel bilgisayarlara yazıcıların bağlantısını sağlayan arabirim olarak anlaşılmaktadır. Örneğin PC içerisindeki IDE konnektörü ve kablosu da paralel bir porttur.
Paralel portun tasarım amacının bilinmesi onun yapısını daha kolay anlamamıza yardım edecektir. Aslında paralel port bilgisayardan gönderilen verilerin bir yazıcıya aktarılması için tasarlanan bir arayüzdür. Bilgisayar ile yazıcı arasındaki veri iletimini sağlayacak bir arayüz tasarlanırken aşağıdaki en önemli üç unsur göz önünde bulundurulmuştur.
• Bir baytlık bir bilgi (8-bit data) bilgisayardan yazıcıya paralel olarak gönderilmelidir.
• Bilgisayar, 8-bit bilginin gönderilmek üzere beklediğini yazıcıya bildirmek zorundadır ve bu sinyal STROBE olarak bilinir. STROBE uyarı, ikaz anlamında kullanılabilir.
• Bilgisayar, yazıcıdan veriyi aldığına dair bir teyit mesajı da laması gereklidir ve bu sinyal ACKNOWLEDGE (ACK) olarak adlandırılır. Bu terim Türkçe'ye kabul ve veya geri bildirim olarak çevrilebilir.
Data, Strobe ve ACK sinyalleri (Şekil 6.2) her ne kadar ham veri iletimi için yeterli de olsa farklı istisnai durumlar düşünüldüğünde daha fazla sinyallere ihtiyaç olduğu açıktır.
Örneğin yazıcılar mekaniksel bir cihazdır ve bilgisayardan almış oldukları verileri belirlenen format içerisinde kağıda basarlar. Bilgisayar gelişiminin ilk yıllarında yazıcılar, bilgisayara son derece yavaş seri portlarla bağlanırlardı. Oldukça yavaş çalışan o dönemdeki yazıcılar için bu, çok da bir problem teşkil etmiyordu. Ancak yazıcıların hızlanması sonucu gelen verilerin yazıcı içerisinde bulunan geçici bir bellekte tutulması ihtiyacı ortaya çıktı. Bu gereksinim için tampon bellek (buffer memory) olarak adlandırılan birimler kullanılmaya başlandı. Bu durumda yazıcıya ait tampon belleğin dolduğunda, yazıcının bu durumu bilgisayara bildirmesi gerekmektedir. Bu sinyal yazıcının meşgul (BUSY) olduğunu bildirir ve bilgisayarın veri göndermesini engeller.
Tüm sistemlerin çok bilinen bir ortak yanları mevcuttur: Hatasız sistem yoktur. Tüm sistemler çalışma süresince er veya geç bir hata ile arızalı duruma düşerler ve bu tüm sistemler için kaçınılmaz bir durumdur. Aynı şekilde yazıcı bir hata ile karşılaştığında, mesela bir kağıt sıkışması söz konusu ise veya toner bitmesi oluştuysa bunun durumun bilgisayar bildirilmesi gerekmektedir. Bu tip durumları bildiren sinyal de ERROR (hata) olarak adlandırılır. Ayrıca yazıcının tamponundaki bilgiler bir hata sonucu ortaya çıkan arızadan dolayı silinip tekrar gönderilmesi istenebilir. Bu durumda tampon belleğin boşaltılması gerekeceğinden bu durum için de bir sinyal üretilmelidir. Bu sinyal de RESET sinyalidir ve bu sinyali alan yazıcı tampon belleğindeki bilgileri siler.

1.DATA port : Çıkış portu, 8-bit veri sinyali
2.STATUS port : Giriş portu, 5 adet durum sinyali
3. CONTROL port : Çıkış portu, 4 adet kontrol sinyali
Burada şu soru akla gelebilir toplam 25 adet pine sahip paralel portun diğer (25-17= 8) pinleri ne işe yarar? Kalan bu 8 pin, elektromanyetik etkilerin azaltılması ve toprak potansiyeline farklı yollardan erişilmesi için kullanılmaktadırlar. Şimdi bu portları sırasıyla inceleyelim.


Sinyal ismi Görevi Kaynak
DATA Yazıcıya gönderilecek 8-bit veri Bilgisayar
Strobe Yeni verinin hazır olduğunu bildirme Bilgisayar
ACK Verilerin alındığına dair geri bildirim Yazıcı
Busy Yazıcının meşgul olduğunu bildirme Yazıcı
Error Yazıcıda bir hata oluştuğunu bildirme Yazıcı
Reset Yazıcıyı ilk haline kurma Bilgisayar



Paralel Port: Seri porta göre hizli olmasina ragmen ayni stabiliteyi saglayamaz. Çogunlukla yazici baglantisi için kulanilan bir porttur. Bu baglanti noktasina ayni zamanda LPT(LinePrinTer) de denmektedir. Bu portun bir pini bir seferde 8 bit veri gönderebilir. DB25 isimli portu kullanir.DB25 ismindeki 25 rakami kablo girisindeki pin sayisini ifade etmektedir. Yazici ve tarayici bu portu kullanmaktadir.Gunumzde paralel port seri port gibi yerini USB ye birakmaya baslamistir. dogabilecek sorunlardan kaçinmak için uzunluklari 5 metreyi asan kablolar kullanilmamalidir. Hedef aygit sadece PC tarafindan gönderilen komutlari islemekle kalmiyor PC' ye kendisi de veri gönderebiliyor

PARALEL PORT ILE:
5 metreyi geçmeyen en az 10 telli
kablo, iki adet 25 pin erkek paralel port konnektörü ile yanda yazili uçlari diger konnektöre baglanir. Eger tel çok ise yazili olmayan numaralar kendi numarasina baglanir.
Konnektör1 Konnektör2
2 15
3 13
4 12
5 10
6 11
7 2
8 3
9 4
10 5
11 6



Portlarla neler yapılabilir?
Klavyenizden bir tusa bastiginizda kablonun içinden 1 ve 0 sifir rakamlari akmaya baslar.Bunun görünürde bir anlami yok ama bu rakamlar bilgisayara ulastiginda ulasan bir ise bilgisayar bunu gücü açiyorum sifir ise gücü kapatiyorum seklinde yorumlar.Yani 1 rakami +5 Volt 0 rakami 0 Volttur.Bu gücü kullarak düsük elektrik gerektiren cihazlari yada ev esyalarini çalistirabiliriz.Piyasada USB portunu kullanan kahve isiticilar, çakmaklar, pil sarj aletleri bulunmaktadir. Bizde portlari kullanarak yeni ürünler yaratabilir yada bilgisayarimizi daha çekici bir hale getirebiliriz.
Elektronikçiden alinicak LEDlerle (Light emitting diode) yada yanip sönen isiklarda deniyor pinleri birbirine baglayarak isik gösterileri olusturabilirsiniz.Bunu yapmak için C++ delphi gibi programlama dillerine ihtiyaciniz var.Portlar sayesinde bilgisayariniza degisik isiklandirmalar yapabilirsiniz.

Ayni sekilde yine portlari kullanan ama piyasada bulunmayan çesitli ürünler yaratabilirsiniz. Örnek olarak bir bilgisayarin portuna baglicagimiz veri kaydedici bir cihaz ile o makinada yapilan tüm islemleri izleyebilir yada müdahale edebiliriz.Makinaniza en iyi firewall lari yükleseniz bile bilgisayarin içini açip portlariniza bakmazsaniz bilgilerinizi kolayca çaldirabilirsiniz.
Teknik servisinizde çalisan bir elemanin yapilmasi çok kolay olan bu cihazi makinaniza yerlestirmesi takdirde kredi karti bilgilerinizden ösym numaraniza kadar herseyinizi çaldirabilirsiniz.Bu yöntem kumarhanelerde tek kollu makinalarda sikça kullanilir.


Visual Basic'te port kontrolu
Open komutu ile seri ve paralel iletisim saglanabilinir.
Bu komutu hatirlayalim;

Open "Dosya Adi" For ErisimModu As #DosyaNo
Örnek olarak: Open sayilar.txt For Output As #1

Buradaki dosya adi yerine seri port "COM1:" veya "COM2:", yada paralel port "LPT1:" veya "LPT2:" kullanilabilinir.

Simdi Open komutu ile LPT2 portunu açalim ve Write# komutu ile bu porta bilgi gönderelim. Gönderdigimiz bilgiler eger LPT2 üzerinde printer varsa çikti alabiliriz.
Kod:
Private Sub Form_Load()
Open "lpt2:" For Output As #1
Write #1, "Bu satirlar yazicidan cikicak"
Write #1, "Bu kod ile printer kablolarinizda bir sorun olup olmadigini"
Write #1, "kontrol edebilirsiniz"
Close #1
End Sub


Eger printerimiz LPT2 portuna bagliysa bu bilgiler yazicidan çikicaktir.Bu kod ile printerimizin fiziksel ayalarinda bir sorun olup olmadigini da denetlemis oluyoruz.

Bir baska örnekte bugünlerde çok moda olan dialer programlarinin benzeri birsey yaratabiliriz
COM2`ye baglanmis bir modem`e 2252442 nolu numarayi çevirmesini söyleyelim. Modeme bir numara çevirmesini söylemek için "ATDT" komutu kullanilir.
Kod:
Private Sub Form_Load()
Open "com2:" For Binary As #1
Put #1, , "ATDT 2252442" & vbCr
Close #1
End Sub
;;;;;;;;;;;;;;;;;;;;;
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

OG

ÖNCE SİTEYE LOGIN OLMAK GEREKİR.

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=33141&lngWId=1

;;;;;;;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=56967&lngWId=1

;;;;;;;;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=60214&lngWId=1

;;;;;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=33181&lngWId=1
;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=63275&lngWId=1
;;;;;;;;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=61281&lngWId=1

;;;;;;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=57030&lngWId=1

;;;;;;;;;;;;;;;;;;;;;;;;
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=64007&lngWId=1

;;;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=59806&lngWId=1

;;;;;;;;;;;;;;;;;;;;;
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=68664&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowZip.asp?lngWId=1&lngCodeId=68664&strZipAccessCode=tp%2FC686648976


;;;;;;;;;;;;;;;;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=48502&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowZip.asp?lngWId=1&lngCodeId=48502&strZipAccessCode=tp%2FL485024691

;;;;;;;;;;;;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=14194&lngWId=1

http://www.planet-source-code.com/vb/scripts/ShowZip.asp?lngWId=1&lngCodeId=14194&strZipAccessCode=tp%2FC141944551
;;;;;;;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=31643&lngWId=1

;;;;;;;;;;;;;;;;;;

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=12410&lngWId=1

;;;;;;;
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.