Hjälp med Statusvisning på 7-segment Led (Logikkretsar)

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Joe
Inlägg: 1819
Blev medlem: 3 mars 2006, 17:00:50
Ort: Södermanland

Hjälp med Statusvisning på 7-segment Led (Logikkretsar)

Inlägg av Joe »

Funderar på att göra en krets som visar med hjälp av en 7-seg LED disp olika statusbitar.

74HC174 gör om bitar till BCD och sen kan man ha en 4511 BDC till 7-seg.
Problemet är att 74HC174 prioriterar det högsta nummret som den skickar ut som BCD.
Jag vill att den växlar cykliskt mellan olika siffror (bitar), tex. 1 5 8 och tillbaka till början.

Funderade på en 4017 som pulsas av en 555, men kan inte komma på något enkelt sätt att hoppa över de statusbitar som är 0.
Om 4017 inte hoppar över 0 bitarna så kommer displayen att visas 0 1 0 0 0 5 0 0 8 0 och sen tillbaka till början...

Se: http://www.junsele.com/viewpic.asp?id=88381 för ett utkast till schema.

De öppna benen på 4011'orna skall knytas till statusbitarna

Och nej jag vill inte ha en uC utan bara logikkretsar!
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4763
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Inlägg av Swech »

En perfekt uppgift för en processor men ok då...

Enda idén som jag kommer på för att lösa ditt problem är att
använda sig av ett gammalt hederligt 27256 EPROM

A0-A3 =kopplas till en 4 bitars binärräknare.
A4-A14 dina digitala signaler in.
D0-D6 = 7 segment data
D7 = reset till 4 bits räknaren.

Därefter gör du en riktigt stor och tråkig tabell som fixar biffen....

Endast signal på A4
adress 0000000001 0000 | data = segment för 1
adress 0000000001 0001 | data d7 = 1 -> ger reset

Signal på A4+A5
adress 0000000011 0000 | data = segment för 1
adress 0000000011 0001 | data = segment 2
adress 0000000011 0010 | data d7 = 1 -> ger reset

Signal på A4+A5+A6
adress 0000000111 0000 | data = segment för 1
adress 0000000111 0001 | data = segment 2
adress 0000000111 0010 | data = segment 3
adress 0000000111 0011 | data d7 = 1 -> ger reset

Signal på A7+A9+A12
adress 0100101000 0000 | data = segment för 4
adress 0100101000 0001 | data = segment 6
adress 0100101000 0010 | data = segment 9
adress 0100101000 0011 | data d7 = 1 -> ger reset

osv.....


Swech
Joe
Inlägg: 1819
Blev medlem: 3 mars 2006, 17:00:50
Ort: Södermanland

Inlägg av Joe »

Tja det är ett alternativ, men lite krångligt..

Satt och klurade och tänkte om man utvärderar BCD koden efter 147'an med en quad OR som vid BCD=0 blankar 7-seg samt speedar upp 555 för att snabbt stega förbi nollorna.

Eller ska man ha en frekvensdelare istället för två hastigheter på 555'an?
Joe
Inlägg: 1819
Blev medlem: 3 mars 2006, 17:00:50
Ort: Södermanland

Inlägg av Joe »

Ny fundering:
555'an pulsar en 4518 (BCD räknare) som skickar BCD till en 4511 (7-seg drivare).
En 74150 (16 ingångars multiplexer) styrs av BCD koden och när en input på multiplexern är "0" så blankas 4511'an och 555'an pulsar snabbt tills multiplexern har en "1" in.

Blir några mindre IC än min förra fundering.


Ingen om har nåt förslag på en lösning med färre logik komponenter?
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4763
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Inlägg av Swech »

Måste bara fråga..... varför logiklösning och inte processor?
Användarvisningsbild
Tony
Inlägg: 1038
Blev medlem: 9 november 2003, 16:08:47

Inlägg av Tony »

Kanske lite många kretsar men om inte din egen lösning fungerar så:

Data:
Statusbitar---Mux---DeMux---74HC174---4511

Klocksignal till Mux samt Demux:
Mux---Timer---Clk

Timer är en monovippa, den triggas av att någon statusbit är satt.
Timerns utgång är kopplad till enable på oscillatorn dvs. Aktiverad timer = stoppad klocka.

Förslag på inställningar:
Timer: 0,5-1s
Klocka: 10-100Hz
Joe
Inlägg: 1819
Blev medlem: 3 mars 2006, 17:00:50
Ort: Södermanland

Inlägg av Joe »

Vill göra det idiotsäkert, dvs går nån krets sönder är det bara att köpa en ny på Elfa och smacka dit så funkar det igen.
En processor måste man programmera först och alla har inte kunskap eller utrustning....

Tony: din idé med timer och klocka verkar bra, ska spinna vidare på den.
Användarvisningsbild
Icecap
Inlägg: 26763
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Det kan ju vara att jag inte fattar speciellt mycket men VARFÖR så konstig lösning?

Varför inte bara 8 st LED?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Joe: Det är väl bara programmera 10st billiga enchipsdatorer och lägga i lådan om det finns risk att de går sönder. Vid en vettig lösning så ska det inte vara något problem. Microprocessorer håller lika bra som logikkretsar.

Flashminnen ska ha en hålbarhet på över 30år nuförtiden och då är din "produkt" antagligen redan kastad.
Användarvisningsbild
jesse
Inlägg: 9241
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Inlägg av jesse »

En 74150 (16 ingångars multiplexer) styrs av BCD koden och när en input på multiplexern är "0" så blankas 4511'an och 555'an pulsar snabbt tills multiplexern har en "1" in.
Jag kanske inte fattar hur du menar nu, men en multiplexer fungerar ju inte som en "or"-grind med 16 ingångar som ger en etta ut om det finns någon etta på någon av ingångarna... Du ska väl istället ha en 8-ingångars or-grind? (om du har 8 st bitar - har du fler får du seriekoppla flera or-grindar)

Ett alternativ till en or-grind är ju förstås en diod för varje bit och ett motstånd till jord. Då får du logisk OR ut på ett mycket billigt sätt.

en 16-bitars multiplexer kan ju bara välja en ingång i taget för att vidarebefordra data till utgången.
Användarvisningsbild
jesse
Inlägg: 9241
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Inlägg av jesse »

kanske pratade i nattmössan förra inlägget...

här är en ritning jag skissade fram... enklare kan det väl inte bli?

Bild

"BCD"-koden genereras då av räknaren och skickas till MUX och till BCD-7-segmentsavkodaren.

Utgången på mux går till dels oscillatorn och dels till 7-segm avkodarens "enable"-ingång (om det finns någon sådan - alternativet är att den gemensamma anoden/katoden på displayen kopplas till en transistor som leder vid "på" och är strypt vid "av")

Oscillatorn kör hög hastighet vid "nolla" och stannar upp vid "etta" Detta kan lösas på många sätt... om man inte vill justera oscillatorns frekvens direkt kan man välja att ha två räknare - en som delar frekvensen och en annan som räknar BCD-nummer... och låter klock-ingången på BCD-räknaren matas av antingen en mycket snabb utgång eller en mycket långsam utgång från den andra räknaren.
Joe
Inlägg: 1819
Blev medlem: 3 mars 2006, 17:00:50
Ort: Södermanland

Inlägg av Joe »

Det var precis det jag svamlade om i förra inlägget.. :D
Användarvisningsbild
jesse
Inlägg: 9241
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Inlägg av jesse »

jo, det verkade ju så.... jag ville bara göra en bild för att få det hela klart för mig... det som krånglade till det var att någon tyckte man skulle ha både mux och demux... ? Men det behövs ju inte efter som man kör in BCD direkt till omvandlaren.

Nu vet jag inte exakt vad en 16-bitars demultiplexer kan kosta, men om du vill komma billigt undan kan du använda 2st 8 bitars multiplexers, t.ex. 4051istället, men du måste då ha en OR grind på utgången (eller 2 dioder + ett motstånd :whoho: ) samt dra den fjärde BCD-biten till "enable input" på de båda 4051:orna, fast med en inverterare på den ena. Kanske lite väl mycket extra kringlogik? (ta en transistor som inverterare)
Användarvisningsbild
Tony
Inlägg: 1038
Blev medlem: 9 november 2003, 16:08:47

Inlägg av Tony »

Jag glömde bort att Mux'en styrs av BCD, därav demux & 74HC174.
Kombinera det jag skrev om klocksignal med Jesses schema så borde det funka.

Timer och klocka byggs av ett par 555:or (inte en 556, du måste ha searata enable).

Utgång från timer via inverterare (transistorswitch) till enable på klock.
Skriv svar