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.