Ik ben een 8x8x8 LED Kubus aan het maken, en om elke LED afzonderlijk te kunnen aansturen gebruik ik een 16F628A als Microcontroller i.c.m. 9x een 74HC595 schuifregister.
Ik heb op internet gelezen dat het inklokken van data in meerdere schuifregisters makkelijker gaat als je ze in serie zet, dat wil zeggen: out pin van het ene schuifregister, op data pin volgende schuifregister. Dus dat heb ik gedaan. Verder zijn alle LATCH en CLOCK pinnen van de schuifregisters parallel geschakeld. Om het geheel dus te kunnen aansturen met de MicroController, heb ik 3 uitgangen van de controller nodig. 1 voor de data die in alle registers moet, 1 voor de clock van alle registers, en 1 voor de latch van de registers. Mijn vraag is nu: Hoe krijg ik nu de data in die dingen? Ik heb de volgende code bedacht, maar heb het nog niet getest (want die registers zijn vrij kwetsbaar
). Klopt deze code?
Ik heb op internet gelezen dat het inklokken van data in meerdere schuifregisters makkelijker gaat als je ze in serie zet, dat wil zeggen: out pin van het ene schuifregister, op data pin volgende schuifregister. Dus dat heb ik gedaan. Verder zijn alle LATCH en CLOCK pinnen van de schuifregisters parallel geschakeld. Om het geheel dus te kunnen aansturen met de MicroController, heb ik 3 uitgangen van de controller nodig. 1 voor de data die in alle registers moet, 1 voor de clock van alle registers, en 1 voor de latch van de registers. Mijn vraag is nu: Hoe krijg ik nu de data in die dingen? Ik heb de volgende code bedacht, maar heb het nog niet getest (want die registers zijn vrij kwetsbaar
QBasic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| Device 16F628A ;We gebruiken een 16F628A type Config XT_OSC, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_ON ;Extern kristal: 20 mHz ALL_DIGITAL TRUE ;Alle ingangen digitaal Symbol DATAKOLOMMEN = PORTB.0 Symbol LATCHKOLOMMEN = PORTB.1 Symbol CLOCKKOLOMMEN = PORTB.2 Symbol DATAVERDIEPINGEN = PORTB.4 Symbol LATCHVERDIEPINGEN = PORTB.5 Symbol CLOCKVERDIEPINGEN = PORTB.6 While 1 = 1 ;Kolommen ; Reg. 1 Reg. 2 Reg. 3 Reg. 4 Reg. 5 Reg. 6 Reg. 7 Reg. 8 SHOut DATAKOLOMMEN, CLOCKKOLOMMEN, msbfirst, [%00010000, %00010000, %00010000, %00010000, %00010000, %00010000, %00010000, %00010000] ;Verdiepingen SHOut DATAVERDIEPINGEN, CLOCKVERDIEPINGEN, msbfirst, [%00010000] ;Latch het Low LATCHKOLOMMEN Low LATCHVERDIEPINGEN DelayMS 2 High LATCHVERDIEPINGEN High LATCHKOLOMMEN Wend |