Informatyka
Grupa 11
Laboratorium Technik Cyfrowych
nr 5 – liczniki
Licznik - układ cyfrowy, którego zadaniem jest zliczanie wystąpień sygnału zegarowego. Licznik złożony najczęściej z kilku przerzutników. Działanie licznika cyfrowego opiera się najczęściej na układzie dzielnika częstotliwości.
Przerzutnik JK połączony podaje na wyjście Q sygnał o częstotliwości będącej połową częstotliwości zegara. Następny przerzutnik również dzieli częstotliwość o połowę, itd. Bramki AND w układzie powodują, że przełączenie przerzutnika starszego bitu następuje tylko wtedy, gdy wszystkie młodsze bity będą ustawione na ‘1’. 4-bitowy licznik można z łatwością rozszerzyć o kolejne bity.
Najczęściej
rzeczywiste
układy
cyfrowe
również
posiadają
wyjście
(przepełnienia licznika) pozwalające na połączenie kilku liczników o małej ilości bitów w kaskadowy licznik wielobitowy. Oprócz tego rzeczywisty licznik posiada najczęściej wejście ‘reset’ kasujące obecny stan licznika (ustawiające wszystkie bity licznika na 0).
Pod tym względem wyróżniamy:
o Liczniki liczące w przód
o Liczniki liczące w tył
o Liczniki rewersyjne (możliwość zmiany)
Liczniki dzielimy także na szeregowe i równoległe oraz na synchroniczne i asynchroniczne.
Zadanie 1.
Zbudować dwójkę licząca za pomocą przerzutnika:
a) JK
b) T
c) D
Ad. a) JK
Tabela prawdy dla przerzutnika JK:
J K C
Q
NOT Q
X X 0
Qn-1
NOT Qn-1
X X 1
Qn-1
NOT Qn-1
0 0 X
Qn-1
NOT Qn-1
1 0 1 -> 0 1
0
0 1 1 -> 0 0
1
1 1 1 -> 0 NOT Qn-1 Qn-1
1
Podanie jedynki logicznej na wejście J powoduje ustawienie przerzutnika, co skutkuje pojawieniem się stanu wysokiego na wyjściu Q. Ustawienie wejścia K
w stan wysoki przestawia przerzutnik w stan niski. Jeżeli jedynka logiczna zostanie ustawiona na obydwu wejściach to nastąpi zmiana stanu przerzutnika na przeciwny, czyli jeżeli układ był w stanie wysokim to przejdzie w stan niski i odwrotnie. Negacja w tym wypadku została użyta w układzie po to aby przerzutnik JK był wywoływany stanem wysokim. JK jest przerzutnikiem synchronicznym, co oznacza, że reaguje na stan wejść tylko przy podaniu odpowiedniego sygnału na wejście zegarowe jednak tutaj zastosowałem wejścia asynchroniczne CLEAR i PRESET. Podanie stanu wysokiego na wejście PRESET powoduje ustawienie w stan wysoki przerzutnika niezależnie od tego, czy został dostarczony sygnał zegarowy. Wejście CLEAR w analogiczny sposób zeruje przerzutnik.
Ad. b) T
Jeżeli z układu z podpunktu
„a” usuniemy negację zegara oraz
zsynchronizujemy wejścia J i K jedną wartością to otrzymamy przerzutnik T.
Jest to skrót od słowa Toogle (przełączenie). Przerzutnik tego rodzaju po podaniu wartości logicznej 1 na wejście i wyzwoleniu zboczem sygnału zegarowego, zmienia stan wyjść na przeciwny. Podanie 0 na wejście T
powoduje zachowanie bieżącego stanu przerzutnika.
2
Ad. c) D
Przerzutnik ten przepisuje stan wejścia informacyjnego D na wyjście Q.
Przepisanie informacji następuje tylko przy odpowiednim stanie wejścia zegarowego. Na bazie tego przerzutnika można zbudować asynchroniczny przerzutnik typu T. W tym celu wystarczyło połączyć wyjście Q z wejściem D.
Wejście
C
traktujemy
wtedy
jako
wejście
informacyjne
T.
Prócz
synchronicznego wejścia typu D przerzutnik posiada również asynchroniczne wejścia typu PRE (PRESET) i CLR (CLEAR). Służą one do ustawiania (PRE) i zerowania przerzutnika (CLR). Wejścia asynchroniczne mają większy priorytet od wejścia synchronicznego i działają nawet wtedy, gdy na wejście zegarowe nie jest podawany odpowiedni stan.
Zadanie 2.
Zbudować licznik BCD mod 10.
Łącząc 4 dwójki liczące otrzymujemy licznik mod 16. Aby uzyskać licznik mod 10 stosujemy bramkę AND, której wyjście podłączamy do resetu, a wejści do jedynek, które dają binarne 10. Układ stworzony jest z przerzutników typu D
połączonych szeregowo inwerterem (ponieważ przy kliknięciu CLK otrzymamy 1 na każdym wyjściu co powoduje liczenie od tyłu). Przyciskiem PUSH
aktywujemy układ, a następnie Bramka AND resetuje układ.
3
Możemy ten układ zbudować za pomocą Countera.
Zadanie 3.
Zbudować licznik BCD mod 13.
W tym przypadku nie mamy do czynienia z licznikiem zliczającym kolejne potęgi dwójki ale nie jest to żadnym problemem, ponieważ jego realizację robimy na sposób licznika mod 10. Tworzymy licznik liczący do następnej potęgi dwójki po zadanej liczbie oraz uaktywnić wejście zerujące w momencie gdy osiągnie wymaganą wartość. Poniższy układ zbudowany za pomocą
przerzutnika typu D.
Możemy ten układ zbudować za pomocą Countera.
4
Podsumowanie:
Złożenie układu liczącego (do jednego) jest bardzo prostym układem ponieważ zależy tylko od jednego przerzutnika. Sprawa komplikuje się gdy chcemy otrzymać licznik o większym zakresie. W takim przypadku musimy użyć odpowiednią ilość bramek = n, którą możemy wyznaczyć korzystając z zależności 2n, ponieważ 2 jest podstawą systemu binarnego. Tzn. aby skonstruować bramkę liczącą do np. 60 musimy wykorzystać 6 przerzutników z, których każdy zwróci nam jeden z sześciu bitów składających się na liczbę 60 (111100).
W większości zadań wykorzystałem przerzutniki JK ponieważ mają szerokie zastosowanie i najbardziej odpowiadały mi przy składaniu poszczególnych układów. W pozostałych dwóch zadaniach zastosowałem przerzutniki typu T co także świadczy o ich prostocie.
5