Hoi!
Ik programmeer al bijna een jaar met qbasic en ik ben nu ook een klein programmatje aan het schrijven voor de paralelle poort aan te sturen (de 8 ledjes van de Parallelle Poort interface), maar ik snap iets niet bij de uitleg ervan van het OUT statement.
Dit is mijn vraag:
Als ik het goed begrijp zet je LED 1 aan door dit te doen in qbasic:
OUT &H378, 1
En B.v LED 5:
OUT &H378, 16
Maar ik snap niet hoe ik b.v alleen LED 5 moet uitmaken, moet ik dan weer
OUT &H378, 16 doen?
Want als ik OUT &H378, 0 doe dan gaan ze toch allemaal uit???
Kan iemand me helpen want ik kom er echt niet uit!
alvast bedankt!
Groeten, Randy
Gerwin
An amplifier is just a modulator for a power supply |Toffe Gebruiker
dan moet je de andere bits van de ledjes die je wel aan wil laten bij elkaar optellen
hier gaat ledje 5 aan:
CLS;scherm wordt leeggemaakt(hoeft er niet perse in)
OUT &H378, 16
SlEEP(1); w8 1 Seconde
END; het programma stopt
wil je b.v ledjes 6 aan laten gaan dan krijg je dit:
CLS;scherm wordt leeggemaakt(hoeft er niet perse in)
OUT &H378, 16;ledje 5 aan
SLEEP(1) ; w8 1 seconde
OUT &H378, 32; ledje 6 gaat aan
SLEEP(1); w8 weer een Seconde
END ; het programma stopt
Dus als ik het goed begrijp moet ik (als voorbeeld) Led 5 laten branden door:
OUT &H378, 16
En om de LEDs 1 en 4 te laten branden en 5 uit te maken moet ik dit doen:
OUT &H378, 9 '(8 + 1)
Begrijp ik het zo goed of verkeerd?
Oke bedankt!
Maar ik heb nog 1 vraagje: als ik b.v LED 1, 3 en 7 aan heb, en ik wil ze allemaal uit hebben, moet ik dan dit doen?
OUT &H378, 0
Precies je hebt 8 uitgangen op poort &H378
LED1: 1
LED2: 2
LED3: 4
LED4: 8
LED5: 16
LED6: 32
LED7: 64
LED8: 128
De LED's die je aan wilt hebben moet je dan noteren, 1, 3, en 7 zijn dus die waarden bij elkaar opgeteld.
Je kunt ook nog 4 extra uitgangen aan sturen op 37A en 5 ingangen inlezen op 379
Jah idd dat heb ik uitgeprobeert in QBasic en het werkt ook.
Maar hoe moet je dan die 4 extra leds aansturen???
volgens mij door de poort te veranderen en daar dan ook weer dezelfde waardes naar toe te schrijven.
De code:
OUT &H378, 0betekend
out -> schrijf iets naar een poort
&H378 -> poort nummer 378 (is hexadecimaal)
0 -> waarde 0.
dus om de poort te veranderen moet je die 378 veranderen in 379 of 37A
Oh zo ik had het verkeert begrepen.
Maar volgens mij is het zo dat de parallelle poort Adres 378, 278 of 3BC is.. ..maar ik zal het wel uns een keer uitproberen als ik de onderdelen heb..
voor te weten welk getal je moet gebruiken om je parallelle poort aan te spreken, kan je het beste eens goed opletten als je pc opstart. Dan krijg je dit erop. Ook kan je het in je bios vinden.
Meestal is het 378 of 278.
Probeer anders eens binaire waardes te sturen. Dat is overzichtelijker, want je ziet direct aan het patroon welke ledjes aan en welke uit zijn.
jeroentje
Hij was al kapot toen je em aan mij gaf!!!
kan je ook een soortgelijk programmatje maken in visual basic 6? daar ben ik namelijk iets beter in...
PowerPC603
4096 LED's of meer afzonderlijk sturen met parallelle poort? Easy...
Natuurlijk lukt dit.
Ik heb een soort van moederbord gemaakt, waar ik 8 "uitbreidingskaarten" op kan aansluiten.
Elke kaart kan dan een specifieke functie uitoefenen.
Zo heb ik een kaart gemaakt met 32 onafhankelijke uitgangen en 32 onafhankelijke ingangen, die ik met de PC kan sturen/inlezen.
Met deze kaart kan ik alles maken: een TTL-IC tester, PLC, multimeter, oscilloscoop,...
Voor die kaart heb ik dus een volledige interface gemaakt (bijna een volledig scherm, resolutie 1024x768) die ik bit per bit kan programmeren.
Voor dit alles heb je wel een hoop logica nodig weliswaar.
Ziehier mijn interface:
http://users.pandora.be/vge/CircuitsOnline/ParControlAtWork.jpg
PowerPC603
4096 LED's of meer afzonderlijk sturen met parallelle poort? Easy...
De meest gebruikte componenten zijn inderdaad schuifregisters, meestal gevolgd door 4-naar-16 decoders.
Ook bidirectionele buffers worden toegepast (om het uigaande en inkomende dataverkeer te regelen).
Ik werk dus in feite serieel op de parallelle poort.
Het hele systeem heeft me ongeveer 2 jaren gekost (niet doorlopend natuurlijk) om het zo uitgebreid mogelijk te maken.
Door die werkwijze kan ik dus (theoretisch) oneindig veel apparaten, led's, relais, ... afzonderlijk aansturen.
In principe kan ik dus, op elk van die 8 kaarten, 4 miljard relais (of led's) onafhankelijk van elkaar bedienen.
En dit terwijl mijn commandobus (voor het aansturen van de kaarten) slechts 3 datalijnen gebruikt.
Voor het inlezen van data gebruik ik ze alle 8.
Op de screenshot zie je natuurlijk dat de eerste 5 gebruikt zijn.
Datalijnen D1 en D2 worden in feite door het moederbord gebruikt (om de juiste kaart te addresseren en zo).
DJGP
DJGP
Geert Vaelen,
Ik heb een soort van moederbord gemaakt, waar ik 8 "uitbreidingskaarten" op kan aansluiten.
Elke kaart kan dan een specifieke functie uitoefenen.Zo heb ik een kaart gemaakt met 32 onafhankelijke uitgangen en 32 onafhankelijke ingangen, die ik met de PC kan sturen/inlezen.
Met deze kaart kan ik alles maken: een TTL-IC tester, PLC, multimeter, oscilloscoop,...
Voor die kaart heb ik dus een volledige interface gemaakt (bijna een volledig scherm, resolutie 1024x768) die ik bit per bit kan programmeren.
Voor dit alles heb je wel een hoop logica nodig weliswaar.
Kan je me wat meer vertellen over project want dit lijkt me wel een heel leuk project. Heb je hier toevallig wat informtie over op internet staan? zoja waar kan ik het vinden?
m.v.g.
DJGP
PowerPC603
4096 LED's of meer afzonderlijk sturen met parallelle poort? Easy...
Jammer genoeg heb ik hierover niets op Internet staan.
Heb een tijd geleden een nieuwe pc gekocht en daardoor ben ik mijn programma om websites te maken kwijtgespeeld.
Wat wil je zoal weten over dit project?
Het is wel tamelijk groot (en duur) 
De minimale opstelling (moederbord + 32-channel I/O board)
bevat 4 pcb's.
Eentje is de interface tussen electronica en computer,
de tweede is een soort van communicatie-beveiliging (zodat je niet per ongeluk een bit ergens zou inklokken bij het aanzetten van de pc), de derde is de kaart-addressering en de vierde is die I/O-kaart (grootte 15x20cm).
Zonder die eerste drie printen werkt het hele systeem niet.
Schema's kan ik niet doorsturen (omdat ze niet op mijn scherm passen), dus een screenshot nemen gaat niet.
Ik kan natuurlijk wel uitzoomen, maar dan kan je niets meer lezen.
Tenzij je EdWin hebt. Dan kan ik ze wel doorsturen als bestand.
Ik zal binnenkort een proberen om ze in te scannen, maar dat zal nog niet voor volgende week zijn, vrees ik.
De meeste printen zijn nog niet klaar (die zijn op breadboards opgebouwd).
En het project ligt al een tijdje stil, omdat ik connectors nodig had (een 30-tal in totaal).
Die zijn besteld, maar ze zijn nog niet binnen bij de electronicaboer.
De software heeft ook een rewrite nodig.
Ik had de fout gemaakt om alle interfaces samen in 1 EXE te gieten.
Nadeel: als je maar 1 kaart zou gebruiken, terwijl er 10 interfaces ontwikkeld zijn, heb je een hoop meer RAM en harddisk space nodig dan normaal.
Nu ben ik voor elke kaart een aparte EXE aan het maken.
Het hele project had misschien wel kleiner gekund met PIC's, maar daar heb ik geen kennis van.
Ik werk het liefste met standaard IC's (dan kan je tenminste iets meten met een gewone multimeter wanneer er iets fout is).