Visual Basic 6.0 ile Seri ve Paralel Port Programlama

Visual Basic 6.0 ile Seri ve Paralel Port Programlama
VB6 Seri ve Paralel Port Programlama
Visual Basic 6.0 Ortamında RS-232 COM ve LPT Port Kontrol Mimarisi.

📌 Bir Bakışta: Visual Basic 6.0 Donanım Haberleşmesi

Geliştirme Ortamı Microsoft Visual Basic 6.0 (SP6)
Seri Port Kontrolü MSComm32.ocx Bileşeni veya Win32 COM API
Paralel Port Kontrolü InpOut32.dll / Doğrudan Port Adresleme (0x378)
Kullanım Alanı Endüstriyel Otomasyon, Mikrokontrolcü İletişimi (PIC, AVR), Röle Kartları
Avantajı Hızlı Grafik Arayüz Geliştirme, Olay Odaklı (Event-Driven) Veri Okuma
İşletim Sistemi Windows 98, XP, 7 ve 32-bit Uyumluluk Modları

Visual Basic 6.0 eski bir teknoloji olmasına karşın, endüstriyel elektronik laboratuvarlarında ve hobi projelerinde seri port (COM) ve paralel port (LPT) üzerinden donanım kontrolünü öğrenmek için en anlaşılır platformlardan biri olmaya devam etmektedir.

Giriş: Gömülü Dünyaya Açılan Kapı

Modern işletim sistemlerinde doğrudan donanım portlarına erişim güvenlik gerekçesiyle kısıtlanmış olsa da, Visual Basic 6.0 döneminde RS-232 seri hatları ve 25 pinli paralel yazıcı portları, mikrokontrolcüler ve röle kartları ile haberleşmenin ana arteriydi [1].

1. MSComm Bileşeni ile Seri Port Haberleşmesi

VB6 ortamında seri port kontrolü için Microsoft’un yerleşik MSComm nesnesi kullanılır:

Private Sub Form_Load()
    MSComm1.CommPort = 1             ' COM1 Portu
    MSComm1.Settings = "9600,N,8,1"   ' 9600 Baud, Parity Yok, 8 Data Biti, 1 Stop Biti
    MSComm1.InputLen = 0             ' Tüm tamponu oku
    MSComm1.PortOpen = True          ' Portu aç
End Sub

Private Sub MSComm1_OnComm()
    If MSComm1.CommEvent = comEvReceive Then
        txtGelenVeri.Text = txtGelenVeri.Text & MSComm1.Input
    End If
End Sub

2. Paralel Port (LPT1) Üzerinden LED ve Röle Tetikleme

Windows NT tabanlı sistemlerde (XP ve sonrası) doğrudan port okuma/yazma (IN / OUT komutları) engellendiğinden, çekirdek düzeyinde sürücü sağlayan InpOut32.dll kullanılır [2]:

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)

' LPT1 Data Port Adresi: &H378 (Hex)
Private Sub btnLediYak_Click()
    Out &H378, 255 ' Tüm pinleri (D0-D7) 5V Yüksek (HIGH) seviyeye çek
End Sub

Bağımsız Kaynaklar ve Referanslar

[1] Jan Axelson: Serial Port Complete: COM Ports and USB Virtual COM Ports
[2] High Performance Parallel Port Interfacing: Parallel Port Complete and InpOut32 Architecture Reference

DigiLiner editoryal ekibi; iki bağımsız kaynak doğrulaması, düzeltme kaydı ve insan denetimli yapay zekâ kullanımı ilkeleriyle yayın yapar. Editorial Policy