Hjälp med Statusvisning på 7-segment Led (Logikkretsar)
Hjälp med Statusvisning på 7-segment Led (Logikkretsar)
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!
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!
- Swech
- EF Sponsor
- Inlägg: 4763
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
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
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
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?
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?
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
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: 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.
Flashminnen ska ha en hålbarhet på över 30år nuförtiden och då är din "produkt" antagligen redan kastad.
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)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.
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.
kanske pratade i nattmössan förra inlägget...
här är en ritning jag skissade fram... enklare kan det väl inte bli?

"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.
här är en ritning jag skissade fram... enklare kan det väl inte bli?

"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.
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
) 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)
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
