Skocz do zawartości
Komentator

Technika cyfrowa - #7 - sterowanie wyświetlaczem 7-seg.

Pomocna odpowiedź

@wojowcza, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start:

  • Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników.
  • Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć?
  • Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości.

48 minut temu, wojowcza napisał:

A ja mam inny problem: dodałem przycisk wyłączający zliczanie nowych wartości - działa, ale po puszczeniu go licznik zwiększa wartość o 1. Czy to normalne?

Pokaż proszę swój układ lub schemat - co i jak podłączyłeś?

Udostępnij ten post


Link to post
Share on other sites

@wojowcza to tyko dla formalności - chodzi Ci o działanie przycisku dodanego do pinu numer 2, tak?

Udostępnij ten post


Link to post
Share on other sites

Jak to zwykle bywa w przypadku katastrof, przyczyna opisanego zachowania nie jest jedna. Po pierwsze zwróćcie uwagę na strukturę wewnętrzną układu 4026 w okolicach wejścia zegarowego. Mamy tu pin CLOCK, który wprowadzony jest przez jakiś tam bufor na wejście bramki NAND oraz pin CLOCK_INHIBIT puszczony przez inwerter na wejście tej samej bramki. Z jej wyjścia dostajemy zegar głównego licznika. Taki schemat oznacza, że oba wspomniane wejścia nie są niezależne od siebie:

  • 4026 zlicza na narastającym zboczu sygnału CLOCK pod warunkiem, że CLOCK_INHIBIT jest w stanie niskim,
  • wejście CLOCK_INHIBIT działa dobrze, gdy CLOCK jest w stanie niskim.

Schemat zaprezentowany w artukule nie uwzględnia pierwszego warunku tj. "parkuje" CLOCK w stanie wysokim. To jeszcze nie jest źle od warunkiem, że zwieramy CLOCK_INHIBIT do masy i tak jest to zrobione. Jeżeli można mówić o wadach tego rozwiązania to może to, że licznik zlicza podczas puszczania przycisku CLOCK tj. gdy stan linii powraca pod wpływem opornika do stanu wysokiego a nie podczas wciskania - co wydaje się bardziej naturalne. No i jeśli teraz próbujemy ro\budowac układ o dodatkową blokadę zegara za pomocą wejścia CLOCK_INHIBIT to niestety, każda jego zmiana 0->1 będzie powodowała zliczenie dodatkowego impulsu, bo przy CLOCK=1 generowane jest zbocze na wyjściu wewnętrznej bramki NAND. Aby wejście blokady działało porawnie trzeba zmienić obwód sterowania wejściem CLOCK: opornik dać do masy a przycisk musi podawać plus zasilania. Wtedy nie dość, że licznik będzie inkrementowany w chwili przyciśnięcia 🙂 to jeszcze CLOCK_INHIBIT będzie bezboleśnie blokował kolejne impulsy zegara.

  • Lubię! 1
  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Mam takie małe pytanie odnośnie przycisku cyklu zegarowego:

11-sch-sw-lepszy-650x799.thumb.png.213aafb40175e425678ee43b6dd22f27.png

Do czego w filtrze służy właściwie rezystor R1? Myślałem nad tym ale nic mi nie przychodzi do głowy :/

Udostępnij ten post


Link to post
Share on other sites
  1.  Co znaczy "przycisk cyklu zegarowego"? Chodzi o sygnał zegarowy?
  2. W omawianym w tym wątku układzie nie ma mikrokontrolera więc dlaczego narysowałeś "uC"?
  3. Scalaki serii 4000 nie mają żadnych rezystorów podciagających, więc wewnątrz obudowy chipu nie ma opornika ciągnącego w stronę zasilania. I właśnie dlatego by zapodawać stan wysoki musisz mieć zewnętrzny opornik R1.
  4. Opornik R1 jest także częścią filtra. Kondensator ładuje się stałą czasową C1*(R1+R2) a rozładowuje ze stałą (C1*R2). Oczywiście można ten fragment rozwiązać na wiele sposobów, ale w zasadzie układ który narysowałeś powinien być stosowany tylko do wejść wyposażonych w przerzutnik Schmitta, takich jak RESET mikokrontrolera.
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Mam pytanie odnoście wejścia CLOCK. Nie tylko w kontekście tego układu, ale ogólnie. Chciałbym się upewnić czy dobrze je rozumiem.

Rozumiem, że jest na nie podawany sygnał prostokątny, gdzie w równych odstępach czasowych pojawia się zbocze narastające. I teraz, jeśli chcemy wysłać z jednego układu do drugiego informację binarną np. 1101, to aby układ wiedział, gdzie jedna jedynka się kończy a zaczyna druga, każdy bit tej informacji jest odczytywany w momencie wystąpienia zbocza narastającego i interpretowany zgodnie z logiką:

0 = stan niski

1 = stan wysoki

Proszę o potwierdzenie czy dobrze to rozumiem? Pytam, bo z takim wejściem spotykam się bardzo często przy różnego rodzaju układach czy magistralach i chciałbym dokładnie wiedzieć jak działa.

Edytowano przez ghost1313

Udostępnij ten post


Link to post
Share on other sites

@ghost1313 tak, sygnał zegarowy wyznacza zwyczajnie "takt", dzięki któremu układ wie, że to już następna porcja danych (jeśli np. ma on sprawdzać stany wejść).

2 godziny temu, ghost1313 napisał:

Rozumiem, że jest na nie podawany sygnał prostokątny, gdzie w równych odstępach czasowych pojawia się zbocze narastające.

Niekoniecznie sygnał ten musi pojawiać się w równych odstępach czasu. Równie dobrze sygnał zegarowy może być wyznaczony "ręcznie", np. wciśnięcie przycisku może oznaczać kolejny cykl.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...