Op zaterdag 26 januari 2002 13:20 schreef Razorfist het volgende:
Maar kun je dit nu ook via de pc aansturen? Ik moet zeggen dat het er geinig uitziet hoor!
Hoe heb je nu die K3 erin gekregen? Door per rij afzonderlijk die leds in te stellen?
oja als alles uit de "alpha-fase" is willen we natuurlijk heel graag schema's zien he

Hij's alleen maar met de pc aan te sturen!
Het ontwerp is gebaseerd op dat van NacNud,
http://members.ams.chello.nl/dvangroe/. Verschil is dat ik er niet meerdere achterelkaar geknoopt heb en ik alleen het dataregister van de printerpoort gebruik.

Heel simpel: Select, BUSY, PE en ACK kunnen aan de GND gehangen worden en op not ERR zet je 5 volt.
Vervolgens verbind je D
0 van de printerpoort aan D van IC
1, D
1 van de printerpoort aan D van IC
2, D
2 aan D van IC
3, D
3 aan D van IC
4 en D
4 aan D van IC
5.
De CP's van de IC's verbind je met elkaar en met D
5 van de printerpoort.
De STR's van de IC's verbind je ook met elkaar en hang je aan D
6 van de printerpoort.
V
SS verbind je met de GND en de 0 van de voeding, V
DD en EO verbind je met de 5V van de voeding.
D van elk IC kan via een 100 kiloOhm weerstand met GND verbinden. STR en CP via een 100 kiloOhm weerstand en parallel daaraan een kleine condensator ook aan de GND hangen.
Aan elke uitgang (D
0 t/m D
7) van elk IC kan nu (via een 330 Ohm weerstand) een led verbonden worden (in totaal dus 40 leds via 40 weerstanden). Als je dan de 8 leds van zo'n ic naast elkaar zet en de 5 rijen van 8 leds onder elkaar heb je een 5*8 display.
Vervolgens kun je met een simpel programmaatje het ding aansturen. Met D
0 t/m D
4 kun je D van IC
1 t/m IC
5 aansturen. Als je dan tegelijkertijd voor een puls op CP zorgt (via D
5) zullen de IC's het signaal op de ingang inlezen (in de buffer zetten). Zodra je voor een puls zorgt op STR (via D
6) zal dat signaal op uitgang D
0 van het IC worden gezet, waardoor het eerste ledje zal gaan branden bij een 1, of uit zal gaan/blijven bij een 0.
De signalen die bij een puls op STR op D
0 t/m D
6 van't IC staan zullen 1 positie opschuiven (D
0 -> D
1, D
1 -> D
2, enz.) waardoor er een scroll-effect ontstaat.
mijn QBasic testprogramma (getest met een 386 laptop, dan kun je niet veel beter...):
code:
1
2
| OUT &H378, 1 + 2 + 4 + 8 + 16 + 32 + 64
OUT &H378, 0 |
In dit voorbeeld worden alle leds van de eerste rij meteen aangezet. De 1 stuurt de eerste led aan, de 2 de tweede, de 4 de derde, de 8 de vierde, de 16 de vijfde, de 32 de CP en 64 de STR (binair, 8-bits: 11111110).
De 1, 2, 4, 8 en 16 (bit 0 t/m 4) kun je veranderen in een 0 waardoor er 1 of meerdere leds uitblijven.
Als de 64 (bit 6, STR) op 0 blijft verandert de buffer van't IC wel, maar de outputs niet. Op deze manier kun je bijvoorbeeld alle leds in 1 keer aan of uitzetten.
De 32 (bit 5, CP) moet aan worden gezet (voor een opgaande flank zorgen) als je een signaal op bits 0 t/m 4 zet, anders worden die bits niet ingelezen. Hij hoeft eigenlijk alleen maar 0 te zijn als je de 64 (bit 6) op 0 hebt gehouden en de buffer op de uitgangen wilt zetten (dan stuur je dus 00000010).
De tweede regel van dit meesterlijke programma zet D
0 t/m D
7 van de printerpoort weer op 0, waardoor CP en STR ook echt een puls krijgen. Zouden ze op 1 blijven staan zullen de IC's geen opgaande flanken meer zien (1 -> 1 blijft 1, 0 -> 1 zorgt voor een opgaande flank) en leestie de invoer niet meer of verandert ie de uitvoer niet meer.
Ik zal eens kijken of ik binnenkort niet eens een duidelijk schema + uitleg kan maken...
edit:
378 het hexadecimale basisadres van de printerpoort van mijn laptop, dit kan op andere pc's ook 278 of 3BC zijn.
K3 erin:
[code]OUT &H378, 32 + 64 'Lege rij
OUT &H378, 0
OUT &H378, 1 + 2 + 4 + 8 + 16 + 32 + 64 'Linkerkant K
OUT &H378, 0
OUT &H378, 4 + 32 + 64 'Midden K
OUT &H378, 0
OUT &H378, 1 + 2 + 8 + 16 + 32 + 64 'Rechterkant K
OUT &H378, 0
OUT &H378, 32 + 64 'Ruimte tussen K en 3
OUT &H378, 0
OUT &H378, 1 + 16 + 32 + 64 'Linkerkant 3
OUT &H378, 0
OUT &H378, 1 + 4 + 16 + 32 + 64 'Midden 3
OUT &H378, 0
OUT &H378, 2 + 8 + 32 + 64 'Rechterkant 3
OUT &H378, 0[/code]