hallo,

ik ben bezig met een led matrix. ik heb een eerst een kleine testopstelling gemaakt met 1 led matrix (5x7) en een 74hct164 als schuifregister die stuurt op zijn beurt weer een uln2003A aan, de besturing van de 74hct164 wordt gedaan door een PIC16F690. eerst wil ik elke kolom zien oplichten want als dat gelukt is kan ik daarna gewoon beginnen met die te combineren met de rijen.

ik gebruik de volgende 3 poorten van de PIC:
porta.0 = datapin
porta.1 = clockpin
porta.2 = resetpin

de datapin gaat op de Dsa van de 74hct164 ( de Dsb hangt aan de + omdat het parallel input is en volgen de datasheet moest hij dan aan de +)
de clockpin zit aan de CP ( clockpin van de 74hct164 )
de resetpin zit aan MR ( resetpin van de 74hct164 )

vanuit de 74hct164 gaan er 5 uitgangen naar de uln2003A voor de aansturing van de kolommen

dit is de code die ik tot nu toe heb:

 Device 16F690 
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, MCLRE_OFF
ALL_DIGITAL TRUE

Symbol datapin = PORTA.0
Symbol clockpin = PORTA.1
Symbol resetpin = PORTA.2         

;        76543210
PORTA = %00000000                               
TRISA = %11111000

Clear 

;hoofdprogramma

While 1 = 1

SHOut datapin, clockpin, lsbfirst, [%10101010]
DelayMS 500  

Wend 

End 

alleen weet ik niet precies wanneer ik wat met de resetpin moet doen :(, ik heb al een hoop geprobeerd maar de leds lichten nooit op en ik kan ook niet testen of er wel een signaal uit mijn PIC komt want ik heb geen oscilloscoop :(. ook weet ik niet wat er toegevoegd moet worden aan de code indien nodig.

ik heb al op dit forum rond gekeken net als op picbasic.nl en veel gezocht via google maar er is tot op heden nog geen lichtje boven mijn hoofd gaan branden :)

alvast bedankt voor de hulp,

mister-f-j

Je hebt ook geen scoop nodig om te zien of je PIC wat doet. Zeker bij dingen waarvan ik zeker wil zijn dat het niet aan m'n PIC ligt, zet ik aan een signaallijn een LED: als die oplicht, krijgt de ontvanger het signaal dus ook.

Wat je wanneer met de reset moet doen staat in het datablad.
Zonder naar het datablad gekeken te hebben: heeft de 74hct164 geen strobe of enable ingang?

nee die ingangen heeft hij niet, ik zal het zo even proberen met die led als ik er de kans voor heb ( stom dat ik niet zelf op dat idee ben gekomen :) )

alvast bedankt

edit: ik heb het met een led geprobeerd en hij knippert op zowel de datapin als de clockpin :)

het wil totaal niet lukken zowel de software als de hardware niet :(

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

Stapje voor stapje uitbouwen.

Je gebruikt 3 uitgangen van porta.
Even ledje aan hangen en laten knipperen.

Wat doet je resetpin? Als die laag is, doet je schuifregister niets.

Doe wat testjes "met de hand" op je schuifregister totdat je weet hoe die schakelt.

Daarna het schuifregister aan de pic knopen en 1 bitje wiebelen.
Als dat lukt, dan kun je verder.

Let er wel op dat je klokpuls een laag naar hoog-signaal moet zijn.

Wat doet deze regel precies?
SHOut datapin, clockpin, lsbfirst, [%10101010]

En zet je codeprotection uit (in je config-bits).

Ik zie dat RA0 en RA1 gebruikt worden voor je ICSP-programmeren, terwijl ze nu ook gebruikt worden als digitale uitgang.
Gaat dat goed? Probeer anders een andere poort, dan kun je ook dit uitsluiten.

Bedankt voor je reactie, ik zal er morgen eens mee aan de haal gaan.

Op 1 september 2011 22:45:45 schreef mister-f-j:
Bedankt voor je reactie, ik zal er morgen eens mee aan de haal gaan.

En? Ben je er al verder mee gekomen?

even in de datasheet gekeken en daar staat het volgende:

Data is entered serially through one of two
inputs (DSA or DSB); either input can be used as an active HIGH enable for data entry
through the other input. Both inputs must be connected together or an unused input must
be tied HIGH.

als je de 2de input aan 5Volt hangt moet het werken :)