Visual Basic en de printerpoort
De Visual Basic 6 code
In dit gedeelte van de uitleg over de sturing met een LPT poort wordt een klein stukje software gemaakt wat hopelijk duidelijk moet kunnen maken, hoe en wat je allemaal op een eenvoudige manier kan doen met de combinatie VB6 en de LPT poort.
We starten Visual Basic 6 en maken een gewoon EXE bestand:
Het maken van een nieuw project
Vervolgens start VB en krijg je een standaard "Form1". Hierin maak je uiteindelijk je programma. Maar wie het nog niet weet. Windows 2000 en XP zijn gebaseerd op NT technologie. Dat wil niks anders zeggen dan dat hier in elke module, driver, proces en services buiten de harde kern (kernel) draaien. Of wel als een programma een fout maakt, niet meteen je gehele Windows onderuit gaat en een blauw scherm geeft. Dit heeft wel als groot nadeel dat de hardware en dus de poorten niet meer zomaar te benaderen zijn. Wat in de Windows 9x en DOS familie wel mogelijk was. Dit is makkelijk op te lossen door zelf en module en driver te schrijven die Windows op zijn beurt als kernel driver ziet. deze module is op internet gewoon te vinden als open source dus iedereen kan deze gebruiken. Hier is de module te downloaden die ik gebruik in de uitleg. Deze moet je alleen nog wel in je software zien te krijgen. Gelukkig is Visual Basic een Microsoft product en wat iedereen ook zegt. Iedereen draait toch op Windows? Waarom omdat het lekker makkelijk is :).
Het invoegen van de module gebeurt dan ook als volgt:
Het toevoegen van een module
Inderdaad, in het zip bestand wat je gedownload hebt zit ook een io.dll. Dit is de werkelijke driver alleen omdat VB een verwijzing hier naar toe moet hebben, hebben we een module met de nodige informatie moeten adden. Deze DLL moet alleen nog wel in je Windows System32 map geplaatst worden. Meestal C:\Windows\system32 dan wel C:\WinNT\system32.
Nu kan eigenlijk het programmeren de vrije loop nemen. Hier laat ik een simpel programma zien hoe je een lamp aan en uit kan doen met 2 knopjes:
Het formulier
Dubbelklik nu op de eerste knop. Deze knop is gedefinieerd als Command1, de 2de als Command2. Als je er op dubbel klikt krijg je een text venster wat er zo uit komt te zien:
Private Sub Command1_Click()
End Sub
Private Sub Command2_Click()
End Sub
Tussen de 2 blauwe regels komt de code die de knop moet uit voeren als hij wordt ingedrukt. Als we er de code:
Private Sub Command1_Click()
Call LPT_DataReg_PinHigh(BIT0)
End Sub
Private Sub Command2_Click()
Call LPT_DataReg_PinLow(BIT0)
End Sub
Tussen zetten en drukken op de knop dan zal datalijn 0 op de printerpoort hoor worden. Drukken we op de 2de knop zal deze de data lijn weer laag maken.
Dit kan ook met 1 knop wat in sommige gevallen handiger kan zijn. Dan moet het met de volgende code:
Private Sub Command1_Click()
Call LPT_DataReg_PinHigh(BIT0)
Call Sleep(100)
Call LPT_DataReg_PinLow(BIT0)
End Sub
Private Sub Command2_Click()
Call LPT_DataReg_PinHigh(BIT1)
Call Sleep(100)
Call LPT_DataReg_PinLow(BIT1)
End Sub
Nu kan je met knop 1 datalijn 0 hoog en laag maken met van een pulsje van 100 ms. Met een flipflopje is dit ideaal voor allerlei verschillende doeleinden. En met de tweede knop kan je nu datalijn 1 hoog en laag maken. Met Parmon is ideaal te zien wat er gebeurt. Ook als je zoals eerder beschreven, niet over de hardware oplossing beschikt.