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

Kalkulator seria 74xx/ od podstaw, pomoc w konstrukcji i zasadzie działania

Ender44 05 Maj 2014 16:35 867 4
  • #1 05 Maj 2014 16:35
    Ender44
    Poziom 2  

    Witam, wraz z kolegą, chcemy nauczyć się podstaw informatyki, i elektroniki, wykonując kalkulator z układów scalonych 74xx, Niestety, mamy dosyć nikłe o tym wyobrażenie. Umiemy co prawda za pomocą bramek logicznych, wykonać mnożenie dzielenie itd,(co prawda tylko w teorii) natomiast np komunikacja z pamięcią, jej organizacja, zapisywanie, wprowadzanie liczb, a potem np wyświetlanie ich jest jak narazie czarną magią. Mam co prawda parę teorii jak to powinno działać, ale obawiam że w starciu z rzeczywistością, przestaną istnieć.

    Byłbym wdzięczny za wskazanie literatury, schematów, a także za zwykłą pomoc.

    W Jaki sposób jest zorganizowana, czy mogę stworzyć sobie pewne 3 oddzielne układy, w pierwszych dwóch będę miał zapisane liczby na których będę działał, a w trzecim wynik? Maksymalna liczba jaką mogę zapisać była by z góry ustalona np no nie wiem 32 bity?

    Dalej pobieranie informacji z pamięci, czy istnieje pewne zapytanie pamięci, po czym owa przysyła kolejno bity, do odpowiedniej bramki logicznej z dwoma wejściami, jedno na bit pierwszej liczby drugie na bit drugiej liczby, i jeżeli mamy już dwie to za pomocą odpowiednio układu logicznego możemy wykonać już np dodawanie i zapisać 1 bit wyniku w tym 3 układzie.
    Czy tak jest w istocie?
    Czy może nie ma żadnego zapytania, a pamięć cały czas wysyła pierwsze bity do wszystkich bramek, i dopiero jak już wybierzemy działanie to następuje odblokowanie wybranej bramki startowej?

    Chciałbym również zapytać, czy uważacie takie przedsięwzięcie za realne? My na razie naprawdę nic nie umiemy. ( ale chcemy się nauczyć)

    Ps. Znalazłem takie link na forum,
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=11708838#11708838
    Myśle ze będzie pomocny.

    0 4
  • #2 05 Maj 2014 18:45
    krru
    Poziom 32  

    Odpuść sobie na początek te 32 bity - logika jest taka sama dla 8, 16, 24 czy 32 bitów tylko trzeba więcej układów. TTL-e jednak ciągną trochę prądu i w pewnym momencie będziesz musiał kupić wielki zasilacz.
    Pamięci (w kalkulatorze) to zwykle są rejestry zbudowane z przerzutników D (najczęściej) lub JK. Przerzutnik to właśnie podstawa układów sekwencyjnych. Na bramkach buduje się układy kombinacyjne - takie w których stan wyjść zależy jedynie od stanu wejść w danej chwili. W układach sekwencyjnych stan wyjść zależy też od historii - czyli posiadają one pamięć - właśnie najczęściej z przerzutników. Oczywiście poza tymi przerzutnikami są też bramki. Najczęściej sytuacja wygląda tak zawartość rejestru przechodzi przez jakiś układ bramek i jest zapisywana do rejestru, tego samego lub innego. Wszystko odbywa się w rytm specjalnego sygnału zegarowego.
    Kalkulator (taki prosty) zwykle posiada dwa rejestry, X i Y. Zawartość rejestru X jest wyświetlana na wyświetlaczu. Naciśniecie każdego z klwiszy powoduje wykonanie jednej operacji na zawartości jednego lub obu rejestrów. Czasem dodatkowo są jakieś znaczniki stanu (pojedyncze przerzutniki) Na przykład:
    klawisz cyfry powiduje X := 10*X + cyfra
    klawisz + : zapamiętujemy w jakiejś fladze ze to dodawanie, Y := X; X:= 0;
    klawisz = : X := X (zapamietane dzialanie) Y;
    C (clear) X:=0; Y:=0;

    Na początek ustal, zy chcesz by kalkulator liczył w BCD (bardziej skomplikowana logika, ale prostsze wyświetlanie) czy binarnie.
    Potem spróbuj zaprojektować/zbudować rejestr X z wyświetlaczem, w następnej kolejności do tego klawiatura.

    0
  • #3 06 Maj 2014 14:17
    Ender44
    Poziom 2  

    Wolelibyśmy, żeby liczył binarnie, chyba że powoduje to jakieś monstrualne kłopoty z wyświetlaniem, podejrzewam że , aby sterować 7 segmentowym wyświetlaczem będę musiał i tak robić konwersje w pewnym momencie z NKD na BCD, aby wesprzeć się w konstrukcji jakimś gotowym schematem,.

    Na razie czytam o tych przerzutnikach, jak działają , jak są skonstruowane itp,

    0
  • #4 06 Maj 2014 15:03
    krru
    Poziom 32  

    Przy 8 bitach (a taki chyba był kalkulator pokazany w tym cytowanym wątku - miał 3 cyfry) konwersja to niezbyt skomplikowana rzecz. Nie wiem, na ile jesteś "ortodoksyjny" - jeśli nie bardzo to możesz sobie pomóć układami spoza serii TTL, np. przy pomocy pamieci ROM (EPROM, FLASH) można zrealizować dowolną kombinacyjną funkcję logiczną, która na wejścia na adresach a wyjścia na danych. Na takiej pamięci można od razu zrobić konwersję na 7 segmentów - przykładowo 2716 (2KB EPROM) lub odpowiednik ma 11 wejść adresowych - na 8 wchodzi liczba, na kolejne 2 numer cyfry dziesiętnej a na wyjściach mamy sterowanie wyświetlaczem 7 segmentowym. Sam często używałem podobnych konstrukcji do uproszczenia budowy logiki.

    Można rozważyć zbudowanie kalkulatora szestastkowego albo ósemkowego - będzie prosty w obu aspektach.

    0
  • #5 06 Maj 2014 16:39
    Urgon
    Poziom 36  

    AVE...

    Ja bym radził zacząć od zrobienia układu w jakimś symulatorze, może być nawet jakieś środowisko do projektowania FPGA/CPLD, zwykle pozwalają na tworzenie logiki w formie schematu i na symulowanie jej w ten sposób. Są też różne darmowe i płatne programy specyficznie przeznaczone do symulacji układów cyfrowych i częstokroć też analogowych. Plusem projektowania w programie przeznaczonym do pracy z CPLD jest to, że potem można tanio dość zrealizować cały kalkulator w jednym układzie scalonym...

    Jeśli chcecie się zająć jednak układami TTL/CMOS, to może na początek odtwórzcie układy 74181 i 74182.

    0