Op 14 maart 2006 18:07:28 schreef johnnie:
Allemaal bedankt voor jullie hulp.
Ik denk dat ik het al aardig begint te begrijpen.

Dus die 4 bits voor de digitaansturing zijn er dus eigenlijk voor om het display soort van aan en uit te zetten zodat je bij het bitje waar er een 1 staat de waarde kan veranderen ?

En volgensmij is die ULN2003A een Stroomversterker als ik het goed begrijp ?

Bedankt en met vriendelijk groet,
Johnnie

Inderdaad...

CD :)

Hallo,

We gebruiken nu de bc557c ipv van de bc327 zal dit veel uit maken? We maken gebruik van een led-display HD1133 0.
We kunnen het nog niet testen omdat de onderdelen nog in bestelling staan.

Johnnie

We hebben de opdracht gekregen om nu meer schakelaars te gebruiken.. maar liefst 10 stuks en sinds we ook al 8 nodig hebben voor het display komen we dus wat ingangen tekort.
Nu hoor ik vaak multiplex schakelingen ?
Hoe gaat dat in zijn werk word er dan gebruik gemaakt van schuifregisters ?

Alvast bedankt

Met vriendelijk groet

Johnnie

Je kunt de schakelaars ook multiplexen :).

Op 21 maart 2006 13:26:25 schreef Berend:
Je kunt de schakelaars ook multiplexen :).

Inderdaad...

10 schakelaars in matrix is 3x4 lijnen = 7 IO's.
16F84 heeft 13 IO's.
Blijven dus nog 6 over voor de displaysturing.
4 IO's voor de 4543 BCD naar 7-segment decoder.
Nog 2 IO's over, te weinig om 4 digits direct aan te sturen.
Dus 74238 decoder/demultiplexer of gelijkaardig gebruiken om via 2 bits 4 digits te selecteren.

Totaal: 13 IO's
Is dus goed te doen.

CD :)

waarom niet gewoon een grotere PIC pakken?

de displays gewoon met 7 I/O's aansturen, en dan de spanningen op de displays over de verschillende displays laten lopen.. softwarematig goed te doen en je hoeft zo alleen maar de PIC te gebruiken en geen andere IC's.. (pic16f877)

Dan kun je er gelijk nog een hele hoop andere functies inbouwen ook...

Suc6... HoOoOiiii

6 bits is toch precies genoeg om 4 displays aan te sturen? 2 bits voor het multiplexen (4 mogelijkheden = 4 displays) en 4 bits voor de data. De overige 7 bits gebruiken om die 10 toetsen te multiplexen. Kom je precies uit:)!

Op 21 maart 2006 13:57:06 schreef Snowboardmaster:
waarom niet gewoon een grotere PIC pakken?

Quote: "Wij moeten voor school een scorebord maken met de pic 16f84a"

4511 of 4543, daarachter een uln2803 daarachter display
die 4511/4543 kan je LATCHEN !!! iederen blijk dat hier te vergeten.
in die dingen zit een 4 bit geheugen die de stand kan onthouden.

dus dan wordt het doodeenvoudig.

4 i/o lijnen om data te sturen
2 i/o lijnen die gebruikt worden om door middel van wat and/or gates een 1 uit 4 selector te maken.
die selector krijgt als ingang een derde i/o lijn die als strobe gebruikt wordt. de uitgang van deselector stuurt de LD ingang.

selecteer een van de 4 displays door middel van de 2 i/o lijnen
zet us getal als 4 bit data klaar
strobe hoog , strobe laag

voila. tis al gelapt met 7 i/o pinnen

Op 21 maart 2006 17:26:21 schreef free_electron:
4511 of 4543, daarachter een uln2803 daarachter display
die 4511/4543 kan je LATCHEN !!! iederen blijk dat hier te vergeten.
in die dingen zit een 4 bit geheugen die de stand kan onthouden.

Dat weet ik ook, en zo doe ik het ook
Ik had al een 4543 voorgesteld.

4 i/o lijnen om data te sturen
2 i/o lijnen die gebruikt worden om door middel van wat and/or gates een 1 uit 4 selector te maken.
die selector krijgt als ingang een derde i/o lijn die als strobe gebruikt wordt. de uitgang van deselector stuurt de LD ingang.

selecteer een van de 4 displays door middel van de 2 i/o lijnen
zet us getal als 4 bit data klaar
strobe hoog , strobe laag

voila. tis al gelapt met 7 i/o pinnen

't Probleem is dat er maar 6 IO's meer overblijven...

't Zou inderdaad gemakelijker gaan met een 16F870/873/876...

CD :)

Ik heb ooit een dartteller gemaakt met een 16F84A.

6 displays en 13 drukknoppen en 1 led uitgang.

Het is dus te doen.

Kijk op mijn site voor schema en code.

http://home.versatel.nl/edithenwilliam/william.htm

sectie Dartteller

suc6.

Op 21 maart 2006 17:43:06 schreef Turbokeu:
[...]
Dat weet ik ook, en zo doe ik het ook
Ik had al een 4543 voorgesteld.

khad het niet op jouw. der waren der hier al aant multiplexen in tijd met een 4511 of 4543 ( wat dus compleet onnidg is

bon dan doen we het met 5 IO lijnen
pak een 7474 ( ja tmoet een edge triggered zijn )
aangezien de 4543 niks toont als de twee MSB's 1 zijn ( kan alleen 0 tot 9 tonen )

AND de twee MSB bits met de strobe.
dat signaal wordtr gebruikt om de twee7474 mee te clocken. de data ingangen komen van de twee LSB's

zo kan je twee extra bits creeren. die jaag je door een 74139 als decoder samen met je strobe signaal.

je kan nu een 'address' schrijven:

1100 = display 1
1101 = display 2
1110 = display 3
1111 = display 4

^^_ deze twee bit gaan naar een AND poort

dus om het cijfer 5 naar het 3e display te schrijven doe je dit :
1110
1110 + strobe
1110
0101 <- binaire representatie van cijfer '5'
0101 + strobe
0101

klaar is de kees weeral
kost je een dubbele fliflop , een and poort ( desnoods in elkaar rammen met 2 nands
en een 74139 als decoder

de decoder kan je desnoods ook zelf in elkaar fofelen met een 74142 of iet dergelijk of desnoods met losse logica.

http://img231.imageshack.us/img231/3253/scorebordmultisim5or.th.jpg

bedankt voor de reacties
Hier hebben we al een gedeelte van de schakeling gemaakt.
De 74ls139 heeft ook een 1G aansluiting hebben we die nodig ?
Voor die 10 schakelaars is het daar handig om een demultiplexer te gebruiken ?
We hebben nog maar 3 extra ingangen nodig dus met 2x een 2 to 4 demultiplexer zou het moeten lukken ?

mvg Johnnie

waarom maak je jezelf het zo moeilijk ? nu moet je de displays continue staan refreshen in software.

als je het echt zo wilt doen zou ik die ULN2803 rechtstreeks aan de pic hangen ( die decoder smijt je weg )

je kan de druktoetsen dan multiplexen met de displaydata bijvoorbeeld.

hallo,

we hebben nu een schema waar we gebruik maken van de HD 1133 (display cc) een udn2981a (stroomversterker) en de 4543 (7 sigmentsdecoder)

we zijn nu aan het testen maar zijn erachter gekomen dat de udn2981a en de 4543 niet samen gaan.
Als we ze bijde aansluiten blijft het display op 8 staan ongeacht de binaire code die we de 4543 aanbieden.

Maar als we alleen de 4543 gebruiken werkt dit wel maar geeft het display te weinig licht.
En zal dit bij 4 displays helemaal niet werken.

Gebruiken we nu de verkeerde decoder of stroomversterker ??
Is de 7448 beter om te gebruiken ?

http://img84.imageshack.us/img84/169/schema5oq.jpg

mvg

Johnnie

Op 19 april 2006 12:32:22 schreef johnnie:
we zijn nu aan het testen maar zijn erachter gekomen dat de udn2981a en de 4543 niet samen gaan.

Gaan wél samen, 'k heb het al tientallen keer toegepast.

Als we ze bijde aansluiten blijft het display op 8 staan ongeacht de binaire code die we de 4543 aanbieden.

PH (phase) en BI (blank input) moeten aan GND.

CD :)

PS: schema is echt onleesbaar (zelfs als je inzoomt), en ik kan maar niet overweg met die IEC symbolen...

Idd. als je de datasheets van beide onderdelen bekijkt is er geen enkel probleem om beide samen te laten werken.
De 4543 geeft TTL level uit en de 2981 verwacht TTL level.

Op 19 april 2006 16:30:09 schreef Turbokeu:
PH (phase) en BI (blank input) moeten aan GND.

Jah dat klopt de PH en BI hebben we aan de ground gedaan.

We hadden een klein foutje gemaakt schijnbaar is bij de 2981 de vss de + :)

mvg

Johnnie

Op 19 april 2006 17:53:25 schreef johnnie:
[...]
Jah dat klopt de PH en BI hebben we aan de ground gedaan.
We hadden een klein foutje gemaakt schijnbaar is bij de 2981 de vss de + :)
mvg
Johnnie

De ULN2803 low side driver heeft geen voedingsspanning nodig maar de UDN2981 high side driver wel (mag zelfs tot +50V gaan).

Begrijp ik nu dat het werkt?

CD :)

waarom maak je geen gebruik van schuifregisters?
Daar stuur ik mijn segmenten van mijn scorebord mee aan.
HEeft als voordeel dat je zoveel segmenten kan gebruiken als je wil en uitbreiden is makkie. Is zo helemaal modulair opgebouwd.

Op 19 april 2006 18:24:29 schreef Stijnos:
waarom maak je geen gebruik van schuifregisters?
Daar stuur ik mijn segmenten van mijn scorebord mee aan.
HEeft als voordeel dat je zoveel segmenten kan gebruiken als je wil en uitbreiden is makkie. Is zo helemaal modulair opgebouwd.

Met schuifregisters is het idd meer uitbreidbaar en modulaire (ikzelf gebruik A6812 20-bit schuifregisters om een 9-digit VFD display aan te sturen) maar voor een 4-digit display vind ik schuifregisters toch wat overkill...

CD :)

Op 19 april 2006 18:06:56 schreef Turbokeu:
[...]
De ULN2803 low side driver heeft geen voedingsspanning nodig maar de UDN2981 high side driver wel (mag zelfs tot +50V gaan).

Begrijp ik nu dat het werkt?

CD :)

Jah dat klopt het werkt nu :)
Volgende stap word het toevoegen van de microcontroller en de rest van de componenten maar dat zal hopelijk geen probleem worden :)

Op 19 april 2006 18:24:29 schreef Stijnos:
waarom maak je geen gebruik van schuifregisters?
Daar stuur ik mijn segmenten van mijn scorebord mee aan.
HEeft als voordeel dat je zoveel segmenten kan gebruiken als je wil en uitbreiden is makkie. Is zo helemaal modulair opgebouwd.

We hebben nu al een schema dat af is en werkt
Maar bedankt voor de tip :)

Met vriendelijke groet

Johnnie

Op 19 april 2006 18:37:31 schreef Turbokeu:
[...]
Met schuifregisters is het idd meer uitbreidbaar en modulaire (ikzelf gebruik A6812 20-bit schuifregisters om een 9-digit VFD display aan te sturen) maar voor een 4-digit display vind ik schuifregisters toch wat overkill...

CD :)

ik vind het geen overkill
of je nou een bcd -> 7 segment decoder gebruikt of een 74HC595 1 ic per 7 segment display. het is maar een idee natuurlijk, ik vind het ideaal werken iig.

Op 20 april 2006 01:28:40 schreef Stijnos:
[...]
ik vind het geen overkill
of je nou een bcd -> 7 segment decoder gebruikt of een 74HC595 1 ic per 7 segment display. het is maar een idee natuurlijk, ik vind het ideaal werken iig.

Ik multiplex altijd mijn displays.
Dan heb je met een 4543 maar 2 IC's nodig tot 8 digits (4543 + 3naar8 decoder voor digit select).

CD :)

Hallo,

We zijn nu bezig met het programmeren van de pic16f84
We lopen wat vast op het telkens laten refreshen van de displays met de juiste waardes.
Springen ze niet telkens op 0 met het refreshen ?
hier een gedeelte van de programmering.

TRISA= $0
TRISB= $FE

DIM Display1 as byte
DIM Display2 as byte
DIM Display3 as byte
DIM Display4 as byte
DIM Reset1 as byte
DIM Reset2 as byte

Main:

Refresh:
PORTA= $10 PORTB= $01
If PORTA= $10 & PORTB= $01
then PORTA= $00 PORTB= $01
Delay_ms(2)

end if

if PORTA= $00 & PORTB= $01
then PORTA= $10 PORTB= $00
Delay_ms(2)

end if

if PORTA= $10 & PORTB= $00
then PORTA= $00 PORTB= $00
Delay_ms(2)

end if

If PORTA= $00 & PORTB= $00
then PORTA= $10 PORTB= $01
Delay_ms(2)

end if

Display1h:
Display1 = display1 + 1

if display1 = 10 then display1 = 0

select case Display1

case Display1= 1
PORTA= $11
PORTB= $01
do
while Display1= 1

case Display1= 2
PORTA= $12
PORTB= $01
do
while Display1= 2

case Display1= 3
PORTA= $13
PORTB= $01
do
while Display1= 3

case Display1= 4
PORTA= $14
PORTB= $01
do
while Display1= 4

case Display1= 5
PORTA= $15
PORTB= $01
do
while Display1= 5

Case Display1= 6
PORTA= $16
PORTB= $01
do
while Display1= 6

Case Display1= 7
PORTA= $17
PORTB= $01
do
while Display1= 7

case Display1= 8
PORTA= $18
PORTB= $01
do
while Display1= 8

case Display1= 9
PORTA= $09
PORTB= $01
do
while Display1= 9

Gosub refresh
return

Tijdens de refresh zouden de displays toch eigenlijk telkens de waarde opnieuw moeten krijgen van de variabelen ?
Alvast bedankt voor de hulp

Met vriendelijke groet

Johnnie