PARALLELL PORTEN OG VISUAL BASIC

AV

KONGEN

 

 

 

 

 

Innhold og filer:

 

 

 

I tillegg til denne artikkelen trenger du følgene for og bygge demonkretsen:

 

Program:

inpout32.dll

inpout32.bas    bas moduler til VB

Lpt_test           selve testprogrammet og kildekoden i VB 5.0

Lpt_kongen     kildekode i VB til et lite program som skriver 00000000 og 01010101 til data porten.

 

Kretskorttegning:

 

Kretskort  bmp

Kretskort  i proteus 4.0

 

Annet:

 

Para14             er et diagnostikk og innformasjonsprogram fra Parallell Technologies

 

 

 

Innledning

 

Denne artikkelen forklarer litt skjenegrelt om VB og parallell port og viser hvordan man kan bygge en enkel

krets, som styre funksjoner (i dette tilfele LEDer) ved hjelp av parallell porten.

Skall du bygge avanserte kretser så anbefaler jeg på det sterkeste Jan Axelson geniale bok

Parallell Port Complete, hvor jeg har hentet programmet Lpt_test fra . (Nei det er ikke brud på copyrayten

 så lenge programmet inngår i noe annet (eks. artikkel ,oppgave, program) i følge boken).

Jeg går også med planer og skrive noe om seriellporten (rs-232) og om Basic Stamp.

Hvis noen trenger hjelp til parallell port relaterte saker så kan du maile meg på runarbu@online.no og jeg skal prøve

og hjelpe så gått jeg kan.

 

 

VB

 

For at man skall kunne skrive til parallell porten må  man:

 

- Kopier "inpout32.dll" til standard Windows direktori ( vanligvis "c:\windows" ) elle til standard system direktori

 ( vanligvis "c.\windows\system" ).

 

- Leg til "inpout32.bas" til dit VB prosjekt (”File” ”Meny”, ”Add File”)

 

 

For og kunne kommunisere med parallell porten i VB er det vanlig med direkte skriving ved hjelp av inpout32.dll  (funker bara i

WIN 95/98 skall du jobbe i NT/WIN2000 må du finne ”drivere” her (se under ” Programming Tools for Port I/O and Interrupts)

da NT/WIN2000 programmering er mye vanskeligere og få til siden man ikke kan skrive direkte til porten vil jeg ikke komme nærmere inn på

dette her)

 

 

Input dll/bas har disse grunnkommandoene:

 

            Out PortAddress, ValueToWrite

Eksempel: Out &h378, &h55

Og

ValueRead = Inp(PortAddress)

            Eksempel: ValueRead = Inp(&h378)

 

Disse kommandoene er likedan som i QuickBasic's ”Inp” og ”Out”.

 

Eksempel er denne koden fra Lpt_kongen:

 

Private Sub Command1_Click()

                        Out &H378, &H55     'Out PortAddress, ValueToWrite

End Sub

 

Som skriver ”10101010” nor Command1 clickes til adresse H378, og denne koden skriver 00000000 nor Command2

clickes.

 

            Private Sub Command2_Click()

                        Out &H378, &H0      'Out PortAddress, ValueToWrite

End Sub

 

 

Lpt_Kongen

 

Lpt_kongen er et nytig eksempel på aller enkleste port programering, hvor ”Out” komandoen brukes (ingen oppsett av porten).

 

 

Lpt_test

 

Lpt_test er utmerket til og teste små parallell port kretser på, dessuten er det let og forandre på, hvis kretsen

er enkel (et par brytere og noen lyddioder) og man ikke orker og lage noe avanserte greier.

 

 

 

Åpningsbildet

 

 

Det første man må gjøre er og sette opp parallell porten under ”Setup”

(dene settupen er fin og låne også til andre prosjekter)

 

 

Trykk deretter på ”Read All” knappen, da vil statusen på alle pinene vises.

 

 

 Man skriver til porten med og trykke på knappene, hvis du har bygd en LED krets så vil lysdioden

tene/slokke hvis du trykker på ”Data Port” og tallene 0-7

 

Hardvare

Parallell porten består av 25 pinner ( se fig. 1.1 ). Fordelt slik:

 

-12 utganger

-5 inganger

-8 signaljord

 

Utgangene kan enkelt settes til ”0” eller ”1” (0 og 5 volt) ved hjelp av shoftware.

 

 

Parallell Port Oversikt fig. 1.1

 

Pin D-sub

Signal

Function

Innverted

1

nStrobe

Strobe D0-D7

Y

2

D0

Data Bit 0

N

3

D1

Data Bit 1

N

4

D2

Data Bit 2

N

5

D3

Data Bit 3

N

6

D4

Data Bit 4

N

7

D5

Data Bit 5

N

8

D6

Data Bit 6

N

9

D7

Data Bit 7

N

10

nAck

 

N

11

busy

 

Y

12

paper end

 

N

13

select

 

N

14

nAutoLF

 

Y

15

nError

 

N

16

nInit

 

N

17

nSelectIN

 

Y

18

GND

Ground return for nStrobe, D0

 

19

GND

Ground return for D1, D2

 

20

GND

Ground return for D3, D4

 

21

GND

Ground return for D5, D6

 

22

GND

Ground return for D7, nAck

 

23

GND

Ground return for NnSelect

 

24

GND

Ground return for busy

 

25

GND

Ground return for nInit

 

 

Chassi

Chassi GND

 

 

 

 

Demokrets

 

For og eksperimentere med parallell porten er denne enkle kretsen utrolig nyttig.

I/O

Her er en oversikt over mye brukte I/O fungsjoner