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.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
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.
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 er et nytig eksempel på aller enkleste port programering, hvor ”Out” komandoen brukes (ingen oppsett av porten).
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
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 |
|
For og eksperimentere med parallell porten er denne enkle kretsen utrolig nyttig.
Her er en oversikt over mye brukte I/O fungsjoner