ik probeer een kleine lichtkrant (2x 5x7 led display) te maken. met een pic16f877a in combinatie met een 2x uln2003 en 4x shiftregisters 74hc595 programmeer in jal.

de kathode van een enkele display wordt bediend door een uln2003 dat op zijn beurt weer gestuurd wordt door 74hc595.
en de anode wordt bestuurd door een 74hc595.

dit hele gebeuren is 2x uitgevoerd ivm met 2 led displays.

ik krijg het wel voor mekaar om 2 verschillende letters te tonen in de dispays. echter het is zo omslachtig dat dit gewoon niet de juiste manier kan zijn.


spi_transceive(0B_0000_0001) -- 1e--anode
spi_transceive(0b_0000_0001)   --kathode
ss=1
ss=0

spi_transceive(0B_0000_0010) -- 1e--anode
spi_transceive(0b_0000_0001)   --kathode
ss=1
 ss=0

spi_transceive(0B_0000_0100) -- 1e--anode
spi_transceive(0b_0000_0001)   --kathode
  ss=1
 ss=0

spi_transceive(0B_0000_0100) -- 1e--anode
spi_transceive(0b_0000_0010)   --kathode
  ss=1
 ss=0

spi_transceive(0B_0000_0100) -- 1e--anode
spi_transceive(0b_0000_0100)   --kathode
 ss=1
 ss=0
spi_transceive(0B_0000_1000) -- 1e--anode
spi_transceive(0b_0000_0001)   --kathod
  ss=1
 ss=0
spi_transceive(0B_0001_0000) -- 1e--anode
spi_transceive(0b_0000_0001)   --kathode
   ss=1
 ss=0
spi_transceive(0B_0001_0000)  --1eanode
spi_transceive(0b_0000_0100)   --kathode
ss=1
ss=0
spi_transceive(0B_0001_0000)  --1e--anode
spi_transceive(0b_0000_0010)  -- kathode
ss=1
ss=0
spi_transceive(0B_0000_0001) -- 1e--anode
spi_transceive(0b_0000_0001)   --kathode
ss=1
ss=0
(enz enz, hierdoor krijg ik 2x de letter f in beeld)

het probleem is dat je rekening moet houden naar welke shiftregister je data gaat. hierdoor wordt het een hele puzzel.

is er een betere, overzichtelijke methode.

ik denk zelf een om een procedure te maken voor bv een letter a en dat versturen naar de juiste set shiftregisters. En bv de letter b naar het andere paar set shiftregisters.
echter ik zou niet weten hoe ik dat moet aanpakken daar de shiftregister alles zelf door sturen..

of er zijn veel betere manieren.
wie kan mij op weg helpen om dit goed te doen. heb alles al geraadpleegd (google, youtube enz enz) maar kom er niet aan uit..

[Bericht gewijzigd door Henry S. op (0%)]

http://www.uploadarchief.net/files/download/resized/shiftreg.jpg

Hey rolo bedankt voor je reactie.
Het duurde even voor ik een schema kon plaatsen.

zoals je ziet heb ik hier 2x een 5x7 ledmatrix.

op 1 enkele ledmatrix met bij behorende shiftregister en een uln2003 kan ik elke cijfer of letter oplichten. dat is geen probleem.

door 2x de opdracht met de juiste bitjes te versturen

spi_receive(0b_0010_0001) --gaat naar de eerste shiftregister
spi_recieve (0b_0001_0001) ---gaat naar de 2e shiftregister
ss=1 (latch)
ss=0
(Herhaal voor de volgende ledjes die aan moeten)
spi_receive(0b_0010_0001) ---gaat weer naar de eerste shiftregister
spi_recieve (0b_0001_0001) ---gaat weer naar de 2e shiftregister
ss=1
ss=0
(herhaal voor de volgende set ledjes die aan moeten, enz enz)

Omdat ik weet dat de eerste opdracht (met daarbij de te versturen bitjes naar de 1e shiftregister gaat), en de 2e opdracht naar de 2e shiftregister gaat, kan ik hier wel een procedure voor schrijven. Om bv de letter a in beeld te krijgen. dat is nog redelijk te overzien.

echter het wordt een heel ander verhaal als ik 2 of 3 ledmatrixen wil gebruiken.
dan heb ik 6 shiftregisters. om dan een procedure te schrijven voor de letter a word een hele puzzel.

om een lang verhaal kort te maken.

wat is de juiste manier om tekst in beeld te krijgen. moet ik voor elke ledmatrix (dus voor elke letter) een afzonderlijke latch gebruiken?.

hoe hebben andere mensen die een ledmatrix (voor tekst) hebben gemaakt dit opgelost. ik hoef geen kant en klare code ofzo.