PARALELNI PORT – TESTNO KOLO
U skladu sa signalima koje koristi paralelni port, kolo za testiranje paralelnog
porta bi izgledalo kao na slici.
Iz prikazane šeme kola vidi se da smo koristili za indikaciju stanja
signala: 12 led dioda i 5 DIP prekidača za ulazne signale. Na mestima gde se
nalaze led diode su izlazni signali porta (Data port i Control port) a na
mestima DIP prekidača su ulazni signali porta (Status port). Takođe se vidi da
će led diode pokazivati signal onakav
kakav na njih dolazi tj. ako se na njoj nalazi logička jedinica led dioda će
svetliti i obrnuto ako se nalazi logička nula led dioda neće svetliti. Štampana
pločica za izradu ovog interfejsa prikazana je na donjoj slici.
Način montaže elemenata prikazan je dole.
PCB izgleda štampane pločice možete preuzeti sa downloads kao i napisani program.
Pored standardnih led diooda fi-5mm i to 8 crvenih za Data port, koristili
smo i 4 zelene za Control port. Takođe je potrebno 8+4=12 otpornika od 330W, 5 otpornika od 10kW, jedan DIP-16 prekidač, flet kabal 20X0.25 dužine 1.5 metar,
DB-25 muški konektor i redna stezaljka za štampu. Pinove od 18-25 na DB-25
konektoru treba spojiti zajedno. Prilikom montaže flet kabla moramo biti
pažljivi da odgovarajuće pinove sa testnog kola dovedemo na odgovarajuće pinove
DB-25 muškog konektora.
Bilo kakva izmena dovešće do nepravilnog rada programa, a u krajnjem
slučaju je moguće oštećenje paralelnog porta računara. |
Ovo testno kolo biće osnova našeg razumevanja rada paralalelnog porta sa
primerima njegovog programiranja.
PROGRAMIRANJE PARALELNOG PORTA
Za programiranje paralelnog porta korististi ćemo Visual Basic
6.0. Za pristup paralelnom portu postoji veliki broj gotovih biblioteka koje se
mogu koristiti u pisanju programa. Mi ćemo koristi biblioteku VBIO.DLL verzije 2.3 kao jednu koja se
često koristi a koju je razvio Anjan Rakshita. Ovu biblioteku neophodno je
iskopirati na \windows\system folder
kako bi programi koje ćemo ubuće pisati mogli da je koriste.
Biblioteka VBIO.DLL omogućuje nam
sledeće gotove deklaracije koje možemo da koristimo u našim programima :
Naziv |
Tip |
Opis |
Anjan |
Podprogram |
Daje
unlock na VBIO.DLL |
Inp |
Funkcija |
Čita
jedan bajt sa date adrese porta |
Inpw |
Funkcija |
Čita
jednu reč sa date adrese porta |
Out |
Podprogram |
Upisuje
jedan bajt na datu adresu porta |
Outw |
Podprogram |
Upisuje jednu
reč na datu adresu porta |
Peek |
Funkcija |
Čita
jedan bajt sa date linearne adrese |
Peekw |
Funkcija |
Čita
jednu reč sa date linearne adrese |
Poke |
Funkcija |
Upisuje
bajt na datu linearnu adresu |
Pokew |
Funkcija |
Upisuje jednu
reče na datu lineranu adresu |
GetLptBaseAddr |
Funkcija |
Vraća
basnu adresu specificiranog LPT porta |
GetComBaseAddr |
Funkcija |
Vraća
basnu adresu specificiranog COM porta |
Enable |
Podprogram |
Omogućava
hardverske interapt funkcije |
Disable |
Podprogram |
Onemogućava
hardverske interapt funkcije |
Delay |
Podprogram |
Zadražava
izvršenje programa za 0.85 mikrosek. |
AboutVBIO |
Podprogram |
Prikazuje
informacije o verziji VBIO.DLL |
Treba napomeneti da su neki delovi memorije koje se nalaze pod kontrolom
WIN95 ili WIN98 operativnog sistema zaštićene od čitanja ili upisavanja pa ćemo
prilikom pokušaja čitanja ili pisanje tih adresa kao povratni rezultat dobiti
vrednost -1.
Prilikom pisanja programa u Generalnoj deklaraciji na njegovom početku
neophodne je ubaciti sledeći skup instrukcija:
Private Declare
Sub Anjan Lib "vbio.dll" ()
Private Declare
Function Inp Lib "vbio.dll" (portaddr&) As Integer
Private Declare
Function Inpw Lib "vbio.dll" (portaddr&) As Long
Private Declare
Sub Out Lib "vbio.dll" (port&, bajt%)
Private Declare
Sub Outw Lib "vbio.dll" (port&,
wrd&)
Private Declare
Function Peek Lib "vbio.dll" (memaddr&) As Integer
Private Declare
Function Peekw Lib "vbio.dll" (memaddr&) As Long
Private Declare
Function Poke Lib "vbio.dll" (memaddr&, ByVal byt%) As Integer
Private Declare
Function Pokew Lib "vbio.dll" (memaddr&, ByVal wrd&) As
Integer
Private Declare
Function GetLptBaseAddr Lib "vbio.dll" (lpt&) As Integer
Private Declare
Function GetComBaseAddr Lib "vbio.dll" (com&) As Integer
Private Declare
Sub Enable Lib "vbio.dll" ()
Private Declare
Sub Disable Lib "vbio.dll" ()
Private Declare
Sub Delay Lib "vbio.dll" (ByVal count&)
Private Declare
Sub AboutVBIO Lib "vbio.dll" ()
U svim navedenim deklaracijama lpt
parametar može se nalaziti u granicama od 1-3, com parametar od 1-4 i count od
1-32678.
Za pisanje programa u Visual Basicu neophodno je da provedemo sledeće korake:
Startujemo VB i kliknemo na File – New Project. VB
omogućava upotrebu različitih vrsta projekata a mi ćemo izabrati Standard EXE
Nakon toga na
ekranu se pojavljuje prazna forma sa imenom Form1, pritisnemo desni taster i
pozovemo View Code
Pristisnemo Combo Box na Form i izaberemo (General)
Upišemo deo
prethodno datog koda za upotrebu VBIO.DLL
Razvijamo dalje program
Izvršenje progama se poziva sa Run – Start
Primetite da je VB ubacio automatski sledeći kod:
Private Sub
Form_Load()
End Sub
Ovo je deo koda koji se pokreće
automatski sa učitavanjem forme. Dalji razvoj programa se sastoji od izrade
naših funkcija i podprograma koje će program koristi međusobno povezanih.
Kao primer jednostavnog programa u VB napisaćemo program koji će nam
pročitati adrese Data porta za LPT1, LPT2 i LPT3 štampač u našem računaru.
Sa desne strane forme nalaze se alati koje možemo koristi za izradu forme.
Prvo ćemo koristi alatku TextBox
kako bi ubacili polja na kojima će biti prikazane adrese LPT1, LPT2 i LPT3
porta kao decimalne i heksadecimalne adrese. TextBox pravimo razvlačenjem
mišem, a budući da na formi imamo prikazan raster to nam omogućava lako
crtanje. Nakon ovog prvog koraka naša forma ima izgled kao na slici 1.
Slika 1
Dalje ćemo koristi Label pomoću kojeg ispusujemo tekst pa će
naša forma izgledati kao na slici 2.
Slika 2
Prilikom dodavanja label polja
na formu VB daje im uvek isti naziv Label1. Naziv koji je nama potreban ispravljamo
na taja način što sa desne strane u opisu karakteristika polja u delu Caption ispravimo naziv na onaj koji
nama treba naprimer LPT1. Takođe je moguće promeniti i font pristiskom na polje
Font kao i njegovu veličinu, a za
promenu boje slova koristimo ForeColor.
Ostaje nam da na našoj formi dodamo
polje za Kraj programa pa naša forma nakon dodavanja ovog polja ima oblik kao
na slici 3.
Slika 3
U okviru koda za ovo polje koji je
automatski generisan treba dodati instrukciju End pa tada kod ovog polja ima
oblik :
Private Sub
Command1_Click()
End
End Sub
Sada nam ostaje da napišemo
program koji će ispisati adrese portova koje poseduje naš računar pa je ceo kod
ovog programa sledeći :
' '
Generalna delaracija za upotrebu funkcija VBIO.DLL ' Private Declare Sub Anjan Lib
"vbio.dll" () Private Declare Function Inp Lib
"vbio.dll" (ByVal portaddr&) As Integer Private Declare Function Inpw Lib
"vbio.dll" (ByVal portaddr&) As Long Private Declare Sub Out Lib
"vbio.dll" (ByVal port&, ByVal byt%) Private Declare Sub Outw Lib
"vbio.dll" (ByVal port&, ByVal wrd&) Private Declare Function Peek Lib
"vbio.dll" (ByVal MemAddr&) As Integer Private Declare Function Peekw Lib
"vbio.dll" (ByVal MemAddr&) As Long Private Declare Function Poke Lib
"vbio.dll" (ByVal MemAddr&, ByVal byt%) As Integer Private Declare Function Pokew Lib
"vbio.dll" (ByVal MemAddr&, ByVal wrd&) As Integer Private Declare Function GetLptBaseAddr Lib
"vbio.dll" (ByVal lpt&) As Integer Private Declare Function GetComBaseAddr Lib
"vbio.dll" (ByVal com&) As Integer Private Declare Sub Enable Lib
"vbio.dll" () Private Declare Sub Disable Lib
"vbio.dll" () Private Declare Sub Delay Lib
"vbio.dll" (ByVal count&) Private Declare Sub AboutVBIO Lib
"vbio.dll" () ______________________________________________________________ Private Sub Command1_Click() 'kod za zavrsetak programa
End End Sub ______________________________________________________________ Private Sub Form_Load()
Anjan 'preuzmi adresu LPT1, LPT2 i LPT3
Lpt1 = GetLptBaseAddr(1)
Lpt2 = GetLptBaseAddr(2)
Lpt3 = GetLptBaseAddr(3)
Lpt1h = Hex(Lpt1)
Lpt2h = Hex(Lpt2)
Lpt3h = Hex(Lpt2)
Text1.Text = Lpt1
Text2.Text = Lpt1h
Text3.Text = Lpt2
Text4.Text = Lpt2h
Text5.Text = Lpt3
Text6.Text = Lpt3h End Sub |
Na početku se pre upotrebe
funkcija i podprograma VBIO.DLL mora pozvati podprogram Anjan koji omogućuje upotrebu ove
biblioteke. U slučaju ako to ne uradimo dobićemo poruku da je ova biblioteka
zaključana. Dalje smo smo koristili funkciju GetLptBaseAddr za određivanje adresa Data porta za LPT1, LPT2 i LPT3 printer. Za
njihovu heksadecimalnu prezentaciju adrese koristili smo funkciju VB-a Hex koja decimalni broj pretvara u
heksadecimlani. Na kraju smo poljima na formi za prikaz rezultatat dodeli
pronađene vrednosti. Kao rezultat izvršenja našeg programa dobićemo ekran kao
na slici 4.
Slika 4
http://vojo.milanovic.org
© Copyright, 2003 Milanović Voja
All Rights Reserved.