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.

Licznik synchroniczny typu D

toffik353 21 Lis 2015 14:51 1626 9
  • #1 21 Lis 2015 14:51
    toffik353
    Poziom 11  

    Witam,
    mam zaprojektować licznik synchroniczny z przerzutników typu D liczący w kodzie: 40231 oraz wyświetlający wynik na wyświetlaczu 7-segmentowym.

    Proszę o sprawdzenie i wskazanie mi błędu ponieważ, robiąc go w programie Dsch2 nie działa tak jak powinien.

    Licznik synchroniczny typu D Licznik synchroniczny typu D

    Pozdrawiam i dziękuję za pomoc.

    0 9
  • #2 22 Lis 2015 11:15
    WRadek
    Poziom 21  

    Dawno takich ukladow nie liczylem, ale mam kilka uwag:
    1. To co podajesz na wejscia D powinno zalezec od poprzedniego stanu wyjsc, czyli masz błedy w tabelach prawdy.

    Zakladam, ze ten uklad ma po kolei ustawiac wartosci 4-0-2-3-1 na swoich wyjsciach,a przymujac ze po 1 ma być znowu 4, mamy nastapujaca tabela prawdy dla D0 - w załączniku.

    2. Jesli licznik ma liczyc 4-0-2-3-1 to czemu stan resetu masz na 7?
    3. Reset ustawi wyjscia przerzutnikow na 0 a powinien chyba na 4?
    4. Jeśli 1 jest ostatnim stanem przerzutników, to jaki ma być następny?

    0
  • #3 23 Lis 2015 00:13
    toffik353
    Poziom 11  

    Nie mam pojęcia skąd i jak zrobiłeś taką tablicę prawdy dla D0. Czy możesz wytłumaczyć dokładniej? Licznik ma liczyć 4023140231.... To jak mam ograniczyć licznik żeby liczył tylko w tej kolejności, dać reset z stanu kiedy będzie jedynka?
    Reset miałem na 7 bo myślałem że to może być dowolny stan wymyślony przeze mnie. Po tej odpowiedzi na moje pytanie to straciłem pomysł jak zrobić te tablice prawd.

    Dodano po 22 [minuty]:

    Poprawiłem tabele ale co dać na reset żeby od początku liczył?

    Licznik synchroniczny typu D

    0
  • #4 23 Lis 2015 02:42
    WRadek
    Poziom 21  

    Dobra, w takim układzie jak Twój stan wyjść w chwili t trafia poprzez układ kombinacyjny na wejścia w chwili t+1, czyli to co jest na wyjsciach determinuje co ma byc na wejściach.

    Q2-Q1-Q0 - D2-D1-D0
    1-0-0 na wejscie ma trafic: 0-0-0
    0-0-0 na wejscie ma trafic: 0-1-0
    0-1-0 na wejscie ma trafic: 0-1-1
    0-1-1 na wejscie ma trafic: 0-0-1
    0-0-1 na wejscie ma trafic: 1-0-0
    Teraz widzisz? Za pomocą aktualngo stanu wyjść mamy mieć następny stan wejść. Przerzutnik D to co ma na wejściu przepisuje na wyjście, gdy pojawia się zegar. Nie wiem czy zbocze, czy stan, ale to już mniej istotne.

    I do tego trzeba ułożyć tablice prawdy. Dla D1 musisz poprawić. Dla D2 też masz błąd.

    Reset dla całego układu powinien ustawić pierwszą wartość na przerzutnikach, czyli wartość: 1-0-0. Pamiętaj, że przerzutnik typu D ma dwa wejścia asynchroniczne: set i reset. Set ustawia "1" na wyjściu, a reset ustawia "0" na wyjściu.
    Teraz już powinienieś dać sobie radę. No chyba że mam Ci pomóc jeszcze z wyswietlaczem siedmiosegmenowym? Generalnie są dwa typy wyświetlaczy: ze wspólną anodą lub ze wspołną katodą. Tzn. takie, których LED zaświeca się po podaniu "1" lub po podaniu "0". Nie wiem jak w Twoim symulatorze.
    Pojawia się kolejne pytanie jakie wartości chcesz pokazywać na wyświetlaczu? Pytam, bo żeby wyświetlić czwórkę musisz uaktywnić 4 wejścia wyświetlacza, a masz tylko 3 wyjścia... Więc potrzebujesz jeszcze układ tłumaczący wyjścia Q2-Q1-Q0 na wejścia wyświetlacza. Taki ukłąd kombinacyjny to transkoder.

    0
  • #5 23 Lis 2015 19:09
    toffik353
    Poziom 11  

    Zrobiłem tak jak Ty:
    4->0
    0->2
    2->3
    3->1
    1->4
    Potem zamieniłem na binarny
    Q2 Q1 Q0 - D2 D1 D0
    100-000
    000-010
    010-011
    011-001
    001-100

    Teraz dla każdego D robię tablicę prawdy i wartości biorę: dla D1 z kolumny wyżej o nazwie D1
    Dla D2 z kolumny D2. Nie rozumiem dlaczego mówisz że mam błędy w tabelach prawdy które są wyżej (zdjęcia).

    Z wyświetlaczem nie mam problemu bo wiele rzeczy z nim robilem. Nigdy wcześniej nie robiłem takiego układu który liczy nie pokolei więc mam z tym trochę problem.

    0
  • #6 24 Lis 2015 13:38
    WRadek
    Poziom 21  

    Przeanalizuj swoja tablice prawdy z pierwszego postu dla D0 i ta ca ja podalem dla D0 i sprawdz jakie sa roznice.
    Wolalbym zebys sam doszedl gdzie robisz blad. Jak usiade przed kompem to podam prawidlowe,ale moglbys sam sprobowac.

    0
  • #7 24 Lis 2015 18:33
    toffik353
    Poziom 11  

    W pierwszym poście mam złe tablice to wiem. Pózniej dodałem zdjęcie z innymi które powinny być dobrze i dla D0 wyszła mi tak jak Twoja. Może nie zauważyłeś że dodałem inne.

    0
  • #8 25 Lis 2015 08:11
    WRadek
    Poziom 21  

    Przypomnialo mi sie jak sie taki uklad nazywa: automat Moore'a.
    Nie jestem nieomylny. Zasymuluj w programie czy Ci dziala jak powinno. Jesli dziala, to jest ok, jesli nie to cos jest zle. Zaraz usiade i sam sprawdze. Masz tablice prawdy a funkcje policzyles?
    Dla D1 dla stanu wyjsc 000 powinno byc 1 a Ty masz 0. Dalej na razie nie sprawdzalem bo jade do pracy wlasnie.

    Dla sprawdzenia samego siebie i w ramach nauki dla Ciebie zamieszczam rozwiązanie. Nie wiem, czy się nie pomyliłem. A pewnie tak, bo zwykle sygnały set i reset są aktywne zerem, więc będziesz sobie musiał odpowiednio zmienić. Licznik synchroniczny typu D

    0
  • #9 25 Lis 2015 11:29
    toffik353
    Poziom 11  

    Jest dobrze co wstawiłeś bo dzisiaj się dowiedziałem jak wypełniałeś te tablice :) Mój błąd polegał na tym że nie brałem pod uwagę tych stanów wcześniejszych jak wypełniałem tablicę tylko pozycje w rzędach i normalnie na świecie wypełniałem pozycjami (czytając od góry): 01236745. Chyba wiesz co mam na myśli. Mogłeś zrobić przykładowe dla D1 bo dla D0 wypełniałem zle i wychodziło tak jak Twoje dobrze. Stąd były moje ciągłe pytania.

    W każdym razie dziękuję serdecznie za usiłowanie wytłumaczenia mi jaki błąd popełniałem.

    Dodano po 5 [minuty]:

    Czy set i reset masz dobrze to nie wiem bo pisze to tak na szybko. Wszystko zależy czy przy set i reset są kółeczka (negacja) czy ich nie ma to jest 0 lub 1

    0
  • #10 25 Lis 2015 12:29
    WRadek
    Poziom 21  

    Ja ich nie dodałem. Ale w prawdziwych układach chyba są a wtedy musisz resetować "0" a nie "1" :)

    0