Główna O nas Kontakt Projekty Timer NE555 ST6 Realizer Historia Linki

 

Sterowanie portami PC - Visual Basic 6

www.xradar.prv.pl

Autor: Paweł RABINEK

Poniższy artykuł przedstawia w jaki sposób sterować takimi portami jak np. port drukarki LPT, port szeregowy i inne porty znajdujące się w komputerze PC. Najprościej do tego celu skorzystać z gotowej biblioteki DLL o nazwie inpout32.dll. Została ona napisana w Delphi i zawiera asemblerowe wstawki umożliwiające odczyt i zapis wartości do pamięci. Biblioteka ta wprowadza dwie dodatkowe funkcje: Out(adr,data) oraz Inp(adr).

Teraz jak używać tej biblioteki z wykorzystaniem Visual Basic 6?

Aby korzystać z dobrodziejstwa tej biblioteki dodajemy do projektu Module1 i wpisujemy następujące deklaracje:

Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal port As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal port As Integer, ByVal value As Integer)

Teraz mamy już praktycznie wszystko. Należy pamiętać aby inpout32.dll była w tym samym katalogu co skompilowany exec i że projekt nie zadziała z poziomu VB, zadziała dopiero po skompilowaniu i odpaleniu execa. Aby odczytać wartość jakiegoś portu i przypisać wynik do zmiennej X wystarczy:

Dim X as Integer
X = Inp(&h378)

Ten krótki kod odczyta wartość portu 378 (LPT, choć na niektórych komputerach adres ten może być inny). Wartość 378 jest podana w hexach więc trzeba dodać &h przed adresem.

Aby wysłać jakąś liczbę (daną) na określony port wystarczy napisać tak:

Out (&h378,255)

To polecenie ustawi wszystkie wyjścia (wyjścia danych D7-D0) portu LPT w stan wysoki - liczba 255 zapisana dziesiętnie to 11111111 binarnie.

Adresy portów można sprawdzić we właściwościach Systemu. Przykładowo głośniczek systemowy ma adres h0061. Wysyłanie jednak wartości na niektóre porty może skończyć się zawieszeniem komputera.

Jeżeli używasz Windowsa 2000 lub XP, to nie masz możliwości wysyłania danych na porty. Musisz poszukać w internecie programów które odblokowują tę możliwość. Poniżej przedstawiam prosty schemat jak podłączyć 8 diod LED do portu LPT :

Podłączenie diód LED do złącza LPT

A tu znajdziesz gotowy przykład do artykułu : sterowanieportami.rar

Uwaga! Przedstawiona metoda nie działa na systemach opartych na technologii NT.