Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Kod 7-segmentowy na BCD, jakim układem scalonym?

17 Cze 2008 14:52 5967 19
  • Poziom 10  
    Witam. Na elektrodzie jestem nowy, natomiast w elektronice nie. Tyle o mnie.

    Do rzeczy, nie mogę znaleźć w internecie układu scalonego, którym można z kodu 7-segmentowego przejść na BCD, lub bezpośrednio z 7-segmentowego na jeden z dziesięciu. Zna ktoś taki układ scalony? Jeśli tak to poproszę o nazwę lub od razu Data Sheet. Z góry dziękuję za pomoc.
  • Poziom 18  
    Witam.

    Jakoś nie spotkalem się a układem w tą stronę. Kiedyś stosowałem 2kB EPROM-a na 11 wejść adresowych. Ale czy ktoś ich jeszcze używa? Podpinasz do nich linie do dekodowania wyświelacza 7-segmentowego. A na liniach danych masz już BCD. Oczywiście trzeba zaprogramować "tablicę prawdy" kod wyświetlacza na BCD

    Pozdrawiam
  • Poziom 10  
    spektra: Programować scalaki będę umiał dopiero za rok. Narazie szukam układu przeznaczonego właśnie do takiej operacji. Jeśli posiadasz napisany program do EPROM-a, to zainwestuję w sprzęt i spróbuję go wgrać. Bardzo byś mi pomógł wspomagając mnie takim gotowym programem.

    czopik2004: Widziałem to już, niestety status mówi sam za siebie. Discontinued znaczy produkt wycofany, czyli nie mamy pewności czy nawet był produkowany.

    Jak ostatecznie wszystko zawiedzie to będę próbował zaprojektować takowy dekoder na bramkach, z bramkami zawsze da się coś wykombinować.
  • Poziom 31  
    Witam!

    Mam gdzieś taki plik do zaprogramowania EPROMa, żeby działał jako dekoder: 7-seg/BCD (tak jak pisał kolega spektra ). Mogę poszukać jutro w robocie, jeżeli koniecznie chcesz i będziesz miał czym zaprogramować eproma.

    Pozdrawiam
    PS Taki plik można stworzyć na "piechotę" w edytorze programatora - nie jest skomplikowany, tylko wcześniej trzeba sobie przygotować rozpiskę, co wpisać i pod jaki adres - nie ma tego wiele (cała pamięć jest prawie niewykorzystana). Pamięci o małych pojemnościach np 2716 są obecnie trudno dostępne, nawet z demontażu, ale taki dekoder można zrobić z wykorzystaniem dowolnej pamięci (górne banki będą po prostu niewykorzystane) - problem polega na tym, że im większa pojemność pamięci, to więcej prądu będzie "pożerał" taki dekoder z zasilacza, więc zasilacz musi mieć jakąś konkretną wydajność, czyli w rachubę wchodzi tylko sprzęt stacjonarny (do sprzętu przenośnego takie rozwiązanie raczej się nie nadaje). No i nie stosować starych pamięci wykonanych w technologii MOS (np. 2732), tylko CMOSowe (27C32).
  • Poziom 27  
    Innym sposobem jest zastosowanie układu GAL. Zajmuje mniej miejsca i nie pobiera tyle prądu co EPROM.
  • Poziom 10  
    r2d2004: Czym zaprogramować narazie nie mam, ale to u kolegi mogę zrobić. Powiedz mi, jakie EPROMy mam do tego celu kupić.

    (Apropo urządzenia to będzie ono stacjonarne, nie będzie więc problemów ze zbyt małym prądem.)
  • Poziom 10  
    Widziałem to już kiedyś i w ten sposób planuję to wykonać, tylko u mnie będzie to akurat całkiem inaczej wyglądało. Sygnał pójdzie nie z radiobudzika, tylko ze starej zegarynki (płytka ze starego serwera - dokładny zegar z datą) i będzie wyświetlany na czymś typu NIXIE. Są to takie stare wyświetlacze, jedną cyfrę na szybce podświetla jedna żarówka (dam diody do sekwencyjnego sterowania) i szybki są ułożone jedna za drugą.
  • Pomocny post
    Poziom 31  
    Witam!

    W załączniku masz moje "wypociny" ;-) . pochodzące chyba z czasów "króla Piasta" ;-) , czyli dekoder 7-seg/BCD, ale bardziej uniwersalny od tego, do którego linka zapodał oj. Rozwiązanie nie było testowane praktycznie, bo założenia do ówczesnego projektu uległy zmianie. Ta uniwersalność tego dekodera polega na tym, że oprócz 7 wej. (z segmentów wyświetlacza) przewidziałem dodatkowo 3 wej. sterujące, dzięki którym można dowolnie wybrać poziomy sygnałów na wejściach i wyjściach dekodera (zanegowane lub nie, co może być bardzo przydatne w realizowanym projekcie), a dodatkowo można ustalić z jakiego wyświetlacza 7-seg. będzie pobierał sygnały dekoder: z "pełnymi" cyframi 6,9 czy nie. Do dekodera możesz wykorzystać dowolną pamięć EPROM (wykorzystanych będzie 10 wejść adresowych, pozostałe podpiąć trzeba do masy i 4 wyj. jako 1/2 ośmiobitowego portu danych (dokładny opis dekodera znajduje sie w pliku tekstowym). Plik w załączniku po rozpakowaniu zawiera:

    - C16.zip DOSowa wersja (mało-pamięciożerna, "pójdzie" na każdym kompie, poczynając od klasy XT) znanego MetaCross Assemblera, przy pomocy, którego możesz stworzyć swój plik HEX do programowania EPROMów (tak na marginesie ten assembler zawiera do wyboru tabele instrukcji dla wielu procesorów, opis używania assemblera jest w pliku txt - po angielsku).
    - 7toBCD.hex plik do zaprogramowania pamięci w programatorze
    - 7toBCD.lst listing zawartości dekodera w assemblerze (C16)
    - 7toBCD.txt dokładny opis tekstowy dekodera z tabelą prawdy

    Pozdrawiam
    Załączniki:
  • Poziom 10  
    Super! Wielkie dzięki! Bardzo mi pomogłeś, gdyż nie umiem pisać jeszcze programów do EPROMów a układ będę robił w te wakacje. Najlepsze jest to, że mogę mieć tych układów tyle ile chcę, zawsze można zaprogramować nowy. Przyczyniłeś się do powstania bardzo fajnej samoróbki, tyle Ci powiem. Jak nie zapomnę to po jej wykonaniu dostaniesz maila z fotkami jeśli chcesz.

    Teraz apropo samego programu, bardzo dobrze jest to zrobione, mam do wyboru zanegowane, nie zanegowane, 6 i 9 z ogonkami lub bez, możliwości mam większe niż chciałem! Dobra jest też dowolność, ponieważ będę mógł użyć EPROMa z jakiegoś nie używanego sprzętu wcześniej go kasując.

    Powiedz mi jeszcze, czy do wgrania tego Twojego programu są potrzebne jakieś umiejętności? Niestety z programowania scalaków jestem żółtodziobem. Wierzę, że wgranie tego programu to kwestia programatora i chwili czasu i nie będę musiał się wcześniej czegoś uczyć. Tak na marginesie to plik C16.EXE, według programu do rozpakowywania plików, jest uszkodzony. A na Viście programik mi nie działa.
  • Poziom 31  
    Witam!

    Masz tam gotowy plik .hex do zaprogramowania pamięci. W programatorze wybierasz typ pamięci, jaką będziesz programował, wczytujesz plik hex do bufora programatora, wkładasz skasowaną pamięć w podstawkę ZIF, którą zatrzaskujesz i klikasz "programuj" - ot i cała filozofia, parę min. roboty, przy założeniu, że pamięć zaprogramuje się poprawnie za pierwszym razem (różnie z tym bywa). Po zaprogramowaniu pamięci-dekodera, musisz go jednak sprawdzić statycznie, zadając mu stosowne stany logiczne na wejścia (zgodne z tabelą prawdy z pliku txt) i obserwując odpowiedzi na wyjściach, czy są właściwe, bo tak jak pisałem wcześniej dekoder nie doczekał się testów praktycznych, a jak wiadomo tylko Bill Gates się nie myli! ;-) :-)

    Pozdrawiam
    PS O ile sobie przypominam, to C16 (gdybyś chciał się nim pobawić) generuje dla programatora plik typu .bin (taki plik programatory również akceptują). Do stworzenia pliku hex trzeba użyć programu bintohex.exe Mam go w starych "szpargałach" - jak ci będzie potrzebny to daj znać (zresztą pewnie da się go ściągnąć z netu).

    Kliknięcie na plik C16.exe nic nie da, bo to nie jest program dla "windowsowskich klikaczy". Program jest pod DOS, a więc uruchamiany jest z "prompta" (w okienku DOS) ze wskazaniem na ścieżkę dostępu do kompilowanego pliku - dokładny opis masz w pliku txt, po angielsku co prawda, ale chyba sobie z tym poradzisz (poczytaj również trochę o DOSie - warto czasami sięgnąć do korzeni). Zawsze możesz sobie ściągnąć jakiś Assembler pod "windę" - jest tego sporo w necie.
  • Poziom 10  
    Z opisem po angielsku bez problemu bym sobie poradził, ale on po polsku jest, więc nie ma szans :-)

    DOS-a jeszcze pamiętam, można było go z dyskietki odpalać i bez NORTON-a to trochę ciężko było. Jedyne DOS-owskie komendy jakie pamiętam to "dir" na wyświetlenie listy plików i "format" wiadomo na co.

    Assemblerem będę się bawił za jakiś czas, jak mnie go w trzeciej klasie nauczą. Planuję zrobić sobie taki scalak, który będzie przetwarzał kod 7-segmentowy z pełnymi "6" i "9" na taki z niepełnymi "6" i "9". Rzecz z praktycznego punktu widzenia całkowicie zbędna, ale bardziej podobają mi się te niedokończone cyfry. Możliwość zrobienia czegoś takiego mam nawet teraz zakładając, że transkoder będzie działał. Z BCD są różne scalaki na 7-segment, z pełnymi "6" i "9" i z niepełnymi "6" i "9" (w necie piszą o nich).
  • Poziom 31  
    Witam!

    Daaaawno z tego nie korzystałem, ale to fajnie, że opis do C16 jest akurat po polsku (może więcej osób z niego skorzysta), byłem przekonany, że jest to wersja angielska, z której korzystałem na początku mojej znajomości z C16. Ja do tego mam "specjalnego" PCta (minimalna konfiguracja kompcia z małym monitorkiem vga 9', z prockiem 486 i DOSem 6,22 i nakładką DOS Nawigator), do którego podpięty jest programator. Używane było toto tylko do programowania, ale teraz totalnie nie mam czasu na zabawę w te rzeczy, tak, że obecnie "sprzęcik" ten częściej stoi sobie zakurzony w kącie. ;-)

    Pozdrawiam
  • Pomocny post
    Poziom 17  
    A może taki układzik:
    Kod 7-segmentowy na BCD, jakim układem scalonym?

    Proszę załadować zdjęcie wg reguł z Ogłoszenia 1 w tym dziale. [hefid]
  • Poziom 10  
    Może. Zrobię analizę stanów logicznych i powiem Ci czy to będzie działało jak trzeba. Na pierwszy rzut oka nie jestem w stanie powiedzieć.

    Narazie tyle widzę, że zanegowane "e" w 90 % pokrywa się z sygnałem "A".

    Jak będę na 100 % pewien wszystkiego to zmienię tego posta i dostaniesz PW.
  • Poziom 17  
    To schemat budzika z Radioelektronika z lat osiemdziesiątych więc powinien działać
  • Poziom 10  
    Który numer? Może mam.

    Narazie analizuję układ.
  • Poziom 18  
    Witam.

    Ten układzik z 7402 będzie działał - kiedyś dorabiałem taki budzik do tego zegara.
  • Poziom 10  
    Dokładnie tak, przeanalizowałem wszystkie stany logiczne. Od góry są wyjścia cyfr od zera do dziewięciu, które jednak nie odpowiadają swoim wartościom w kodzie BCD, lecz zawsze
    można wziąć sygnał z wyjścia od innej wartości kodu BCD i tu jest tak zrobione. Dobrze jest to pomyślane. Ważne, żeby każdej cyfrze w kodzie 7-segmentowym odpowiadał dokładnie
    jeden sygnał w kodzie BCD i układ dokładnie spełnia ten warunek.

    Jedyne co mi pozostaje to dopasować układ do swoich potrzeb, bo mam nie zanegowany sygnał kodu 7-segmentowego. Po prostu zamiast bramek NOR dam bramki OR i jeden negator
    (zamiast układu UCY7402 dam układ UCY7432 uwzględniając inną konfigurację rozmieszczenia bramek oraz układ negatorami UCY5404, 05 lub 06).

    Teraz z innej beczki apropo samego forum, jako nowy użytkownik cieszę się zainteresowaniem w związku z moim problemem i dziękuję za udzieloną pomoc.

    Informacja dla moderatora: temat proszę pozostawić otwarty.