Obwód licznika BCD
Widzieliśmy wcześniej, że toggle T-type flip flops mogą być użyte jako indywidualne liczniki dzielenia przez dwa. Jeśli połączymy ze sobą kilka klapek toggle w łańcuch szeregowy, możemy uzyskać licznik cyfrowy, który przechowuje lub wyświetla liczbę wystąpień określonej sekwencji zliczania.
Taktowane klapki typu T działają jako binarne liczniki dzielenia przez dwa, a w licznikach asynchronicznych wyjście jednego etapu zliczania dostarcza impulsu zegarowego dla następnego etapu. Wtedy licznik klapkowy ma dwa możliwe stany wyjściowe i dodając kolejne stopnie klapkowe możemy zrobić licznik typu divide-by-2N. Ale problem z 4-bitowymi licznikami binarnymi jest taki, że liczą one od 0000 do 1111. To jest od 0 do 15 w systemie dziesiętnym.
Aby zrobić licznik cyfrowy, który liczy od 1 do 10, musimy mieć licznik liczy tylko liczby binarne 0000 do 1001. To jest od 0 do 9 w systemie dziesiętnym i na szczęście dla nas, obwody liczące są łatwo dostępne jako układy scalone z jednym z takich obwodów jest Asynchroniczny 74LS90 Decade Counter.
Liczniki cyfrowe liczą w górę od zera do pewnej wstępnie określonej wartości liczenia na zastosowanie sygnału zegarowego. Po osiągnięciu wartości zliczania, wyzerowanie ich powoduje powrót licznika do zera i rozpoczęcie od nowa.
Licznik dekadowy zlicza w sekwencji dziesięciu, a następnie wraca do zera po zliczeniu dziewięciu. Oczywiście, aby liczyć do binarnej wartości dziewięciu, licznik musi mieć co najmniej cztery przerzutniki w swoim łańcuchu, aby reprezentować każdą cyfrę dziesiętną, jak pokazano na rysunku.
Schemat stanów licznika BCD
Wtedy licznik dekadowy ma cztery przerzutniki i 16 potencjalnych stanów, z których tylko 10 jest używanych i gdybyśmy połączyli serię liczników razem, moglibyśmy liczyć do 100 lub 1000 lub do jakiejkolwiek końcowej liczby, którą wybierzemy.
Całkowita liczba zliczeń, którą może liczyć licznik, nazywana jest jego MODUŁEM. Licznik, który powraca do zera po n zliczeniach nazywany jest licznikiem modulo-n, na przykład licznik modulo-8 (MOD-8), lub modulo-16 (MOD-16), itd, a dla „licznika n-bitowego” pełny zakres zliczania wynosi od 0 do 2n-1.
Ale jak widzieliśmy w tutorialu Liczniki asynchroniczne, że licznik, który resetuje się po dziesięciu zliczeniach z sekwencją liczenia divide-by-10 od binarnego 0000 (dziesiętne „0”) do 1001 (dziesiętne „9”) jest nazywany „binary-coded-decimal counter” lub w skrócie BCD Counter i licznik MOD-10 może być skonstruowany przy użyciu minimum czterech toggle flip-flops.
Nazywany jest licznikiem BCD, ponieważ jego sekwencja dziesięciu stanów jest tym z kodu BCD i nie ma regularnego wzoru, w przeciwieństwie do prostego licznika binarnego. Następnie jednostopniowy licznik BCD, taki jak 74LS90, liczy od dziesiętnego 0 do dziesiętnego 9 i dlatego jest w stanie zliczyć do maksymalnie dziewięciu impulsów. Należy również pamiętać, że licznik cyfrowy może zliczać w górę lub zliczać w dół lub zliczać w górę i w dół (dwukierunkowo) w zależności od wejściowego sygnału sterującego.
Kod dwójkowy dziesiętny jest kodem 8421 składającym się z czterech cyfr binarnych. Oznaczenie 8421 odnosi się do wagi binarnej czterech użytych cyfr lub bitów. Na przykład 23 = 8, 22 = 4, 21 = 2 i 20 = 1. Główną zaletą kodu BCD jest to, że pozwala na łatwą konwersję między dziesiętnymi i binarnymi formami liczb.
Licznik BCD 74LS90
Układ scalony 74LS90 jest w zasadzie licznikiem dekadowym MOD-10, który wytwarza kod wyjściowy BCD. 74LS90 składa się z czterech klapek JK master-slave wewnętrznie połączonych w celu zapewnienia licznika MOD-2 (count-to-2) i licznika MOD-5 (count-to-5). 74LS90 ma jedną niezależną, przełączaną klapkę JK napędzaną przez wejście CLK A i trzy przełączane klapki JK, które tworzą asynchroniczny licznik napędzany przez wejście CLK B, jak pokazano na rysunku.
74LS90 Licznik BCD
Cztery wyjścia licznika są oznaczone symbolem literowym Q z indeksem liczbowym równym wadze binarnej odpowiedniego bitu w kodzie obwodów licznika BCD. Tak więc na przykład QA, QB, QC i QD. Sekwencja zliczania 74LS90 jest wyzwalana na ujemnym zboczu sygnału zegarowego, to jest wtedy, gdy sygnał zegarowy CLK przechodzi od logicznej 1 (HIGH) do logicznej 0 (LOW).
Dodatkowe piny wejściowe R1 i R2 są pinami „reset” licznika, natomiast wejścia S1 i S2 są pinami „set”. Gdy podłączone do logiki 1, wejścia Reset R1 i R2 resetują licznik z powrotem do zera, 0 (0000), a gdy wejścia Set S1 i S2 są podłączone do logiki 1, ustawiają licznik na maksimum, lub 9 (1001), niezależnie od rzeczywistej liczby zliczeń lub pozycji.
Jak powiedzieliśmy wcześniej, licznik 74LS90 składa się z licznika divide-by-2 i licznika divide-by-5 w tym samym pakiecie. Możemy więc użyć jednego z nich do wyprodukowania licznika częstotliwości dzielenia-by-2, licznika częstotliwości dzielenia-by-5 lub obu razem do wyprodukowania naszego pożądanego licznika BCD dzielenia-by-10.
Przy wyłączonych czterech przerzutnikach tworzących sekcję licznika dzielenia-by-5, jeśli sygnał zegarowy jest przyłożony do pinu wejściowego 14 (CLKA), a wyjście jest pobierane z pinu 12 (QA), możemy wyprodukować standardowy licznik binarny dzielenia-by-2 do użycia w obwodach dzielenia częstotliwości, jak pokazano na rysunku.
74LS90 Divide-by-2 Counter
Aby wyprodukować standardowy licznik divide-by-5, możemy wyłączyć pierwszą klapkę powyżej i zastosować wejściowy sygnał zegarowy bezpośrednio do pinu 1 (CLKB) z sygnałem wyjściowym pobieranym z pinu 11 (QD), jak pokazano na rysunku.
74LS90 Divide-by-5 Counter
Zauważ, że w tej konfiguracji licznika divide-by-5, przebieg wyjściowy nie jest symetryczny, ale ma stosunek 4:1 mark-space. Oznacza to, że cztery wejściowe sygnały zegarowe tworzą wyjście LOW lub logiczne „0”, a piąty wejściowy sygnał zegarowy tworzy wyjście HIGH lub logiczne „1”.
Aby wyprodukować licznik dekadowy BCD divide-by-10, oba wewnętrzne obwody licznika są używane, dając 2 razy 5 wartość podziału. Ponieważ pierwsze wyjście QA z flip-flopu „A” nie jest wewnętrznie połączone z kolejnymi stopniami, licznik może być rozszerzony do postaci 4-bitowego licznika BCD przez podłączenie tego wyjścia QA do wejścia CLKB, jak pokazano na rysunku.
74LS90 Divide-by-10 Counter
Wtedy widzimy, że liczniki BCD są licznikami binarnymi, które liczą od 0000 do 1001, a następnie resetują się, ponieważ mają możliwość wyczyszczenia wszystkich swoich klapek po dziewiątym zliczeniu. Jeśli do wejścia zegarowego CLKA podłączymy przełącznik przyciskowy (SW1), to za każdym razem, gdy przełącznik przyciskowy zostanie zwolniony, licznik będzie zliczał o jeden. Jeśli do zacisków wyjściowych QA, QB, QC i QD podłączymy diody elektroluminescencyjne (LED), jak pokazano na rysunku, to będziemy mogli obserwować przebieg liczenia dziesiętnego kodowanego binarnie.
74LS90 licznik dekadowy BCD
Kolejne naciśnięcia przełącznika przyciskowego, SW1 zwiększą liczbę do dziewięciu, 1001. Przy dziesiątym przyłożeniu wyjścia ABCD zostaną wyzerowane, aby rozpocząć nową sekwencję liczenia. Przy takiej MOD-10 okrągłej liczbie impulsów możemy użyć licznika dekadowego do wysterowania wyświetlacza cyfrowego.
Jeśli chcemy wyświetlić sekwencję zliczania za pomocą wyświetlacza siedmiosegmentowego, wyjście BCD musi być odpowiednio zdekodowane zanim będzie mogło być wyświetlone. Układ cyfrowy, który może zdekodować cztery wyjścia naszego licznika BCD 74LS90 i podświetlić wymagane segmenty wyświetlacza jest nazywany dekoderem.
Driving a Display
Na szczęście dla nas, ktoś już zaprojektował i opracował układ scalony dekodera BCD do 7-segmentowego wyświetlacza, taki jak 74LS47, aby właśnie to zrobić. Układ 74LS47 posiada cztery wejścia dla cyfr BCD A, B, C i D oraz wyjścia dla każdego z segmentów wyświetlacza siedmiosegmentowego.
Zauważ, że standardowy 7-segmentowy wyświetlacz LED ma generalnie osiem połączeń wejściowych, jedno dla każdego segmentu LED i jedno, które działa jako wspólny terminal lub połączenie dla wszystkich wewnętrznych segmentów wyświetlacza. Niektóre wyświetlacze posiadają również opcję przecinka dziesiętnego (DP).
74LS47 BCD do sterownika 7-segmentowego
Dekoder wyświetlacza 74LS47 odbiera kod BCD i generuje niezbędne sygnały do aktywacji odpowiednich segmentów LED odpowiedzialnych za wyświetlanie zastosowanej liczby impulsów. Ponieważ dekoder 74LS47 jest przeznaczony do sterowania wyświetlaczem typu common-anode, wyjście LOW (logiczne-0) spowoduje podświetlenie segmentu LED, podczas gdy wyjście HIGH (logiczne-1) spowoduje jego wyłączenie. Dla normalnej pracy, LT (test lampy), BI/RBO (wejście wygaszania/wyjście wygaszania pulsacyjnego) i RBI (wejście wygaszania pulsacyjnego) muszą być otwarte lub podłączone do logiki-1 (HIGH).
Zauważ, że podczas gdy 74LS47 ma aktywne wyjścia LOW i jest przeznaczony do dekodowania wspólnego anodowego 7-segmentowego wyświetlacza LED, dekoder/sterownik 74LS48 jest dokładnie taki sam z tym wyjątkiem, że ma aktywne wyjścia HIGH przeznaczone do dekodowania wspólnego katodowego 7-segmentowego wyświetlacza. Tak więc w zależności od typu posiadanego wyświetlacza 7-segmentowego LED może być potrzebny dekoder IC 74LS47 lub 74LS48.
Binarnie kodowane wejścia dziesiętne 74LS47 mogą być podłączone do odpowiednich wyjść licznika 74LS90 BCD, aby wyświetlić sekwencję zliczeń na wyświetlaczu 7-segmentowym, jak pokazano po każdym naciśnięciu przycisku SW1. Zmieniając położenie przycisku i rezystora 1kΩ, można sprawić, że licznik będzie się zmieniał po włączeniu lub zwolnieniu przycisku SW1.
Ostatni układ 4-bitowego licznika BCD
Zauważ, że wyświetlacz 7-segmentowy jest zbudowany z siedmiu pojedynczych diod elektroluminescencyjnych tworzących wyświetlacz. Najlepszą metodą ograniczenia prądu przez wyświetlacz siedmiosegmentowy jest użycie rezystora ograniczającego prąd w szeregu z każdą z siedmiu diod LED, jak pokazano na rysunku. Ale możemy to zrobić na dwa sposoby.
Rezystory ograniczające prąd
pojedynczy rezystor – tutaj użyty jest pojedynczy szeregowy rezystor ograniczający prąd, R. Jeśli nie zależy nam szczególnie na stałej jasności wyświetlacza, to jest to najprostsza i najłatwiejsza opcja sterowania wyświetlaczem 7-segmentowym.
Ilość światła emitowanego przez diodę LED zmienia się wraz z prądem płynącym przez urządzenie, przy czym prąd płynący przez rezystor jest dzielony pomiędzy liczbę segmentów wyświetlacza. Wtedy jasność wyświetlacza zależy teraz od tego, ile segmentów jest podświetlanych w tym samym czasie.
Wielokrotne rezystory – tutaj każdy segment ma swój własny rezystor ograniczający prąd, jak pokazano w naszym prostym obwodzie licznika BCD powyżej.
Generalnie wyświetlacze 7-segmentowe wymagają około 12 do 20 miliamperów do podświetlenia segmentów, więc wartość rezystancji rezystora ograniczającego prąd (wszystkie będą identyczne) jest tak dobrana, aby ograniczyć prąd do tych wartości. Należy pamiętać, że niektóre wyświetlacze mogą ulec zniszczeniu, jeśli są zasilane prądem 40mA i większym.
Zaletą jest to, że jasność danego segmentu LED nie zależy od stanu pozostałych sześciu diod LED dając wyświetlaczowi stałą jasność. Wartości rezystorów ograniczających prąd mogą być dobrane tak, aby zapewnić odpowiednią ilość jasności, ponieważ ilość światła otoczenia również określi wymaganą intensywność świecenia diod LED.
Nasz układ pokazuje prosty licznik cyfrowy od 0 do 9 wykorzystujący 74LS90 BCD Counter i 74LS47 7-segmentowy sterownik wyświetlacza. Aby liczyć powyżej 10 i wyprodukować 2-cyfrowy licznik base-ten i wyświetlacz, musielibyśmy połączyć kaskadowo dwa oddzielne liczniki divide-by-ten razem. 2-cyfrowy licznik BCD liczyłby w systemie dziesiętnym od 00 do 99 (0000 0000 do 1001 1001), a następnie resetowałby się z powrotem do 00. Zauważ, że chociaż będzie to licznik dwucyfrowy, wartości reprezentujące liczby szesnastkowe od A do F nie są ważne w tym kodzie.
Podobnie, jeśli chcielibyśmy liczyć od 0 do 999 (0000 0000 0000 do 1001 1001 1001), to wymagane są trzy kaskadowe liczniki dekadowe. W rzeczywistości wiele liczników dekadowych może być zbudowane po prostu przez kaskadowanie razem indywidualnych obwodów licznikowych BCD, po jednym dla każdej dekady, jak pokazano na rysunku.
2-cyfrowy licznik BCD od 00 do 99
Podsumowanie licznika BCD
W tym poradniku zobaczyliśmy, że licznik BCD jest urządzeniem, które przechodzi przez sekwencję dziesięciu stanów, gdy jest taktowane zegarem i powraca do 0 po zliczeniu 9. W naszym prostym przykładzie powyżej, impulsy zegarowe pochodzą z przełącznika przyciskowego, ale liczniki mogą być używane do liczenia wielu rzeczywistych zdarzeń, takich jak liczenie poruszających się obiektów.
Jednakże odpowiednie obwody mogą być wymagane do generowania impulsów elektrycznych dla każdego zdarzenia, które ma być liczone, ponieważ zdarzenia te mogą występować w dyskretnych odstępach czasu lub mogą być całkowicie losowe.
W wielu cyfrowych obwodach elektronicznych i aplikacjach, liczniki cyfrowe są realizowane za pomocą Toggle flip-flops lub z dowolnym innym typem flip-flop, który może być podłączony do podania wymaganej funkcji przełączania, lub za pomocą dedykowanych układów scalonych liczących, takich jak 74LS90. Liczniki binarne są licznikami, które przechodzą przez sekwencję binarną i n-bitowy licznik binarny jest wykonany z „n” liczby klapek liczących od 0 do 2n-1.
Liczniki BCD śledzić sekwencję dziesięciu stanów i liczą za pomocą liczb BCD od 0000 do 1001, a następnie wraca do 0000 i powtarza. Taki licznik musi mieć co najmniej cztery przerzutniki do reprezentowania każdej cyfry dziesiętnej, ponieważ cyfra dziesiętna jest reprezentowana przez kod binarny z co najmniej czterema bitami dającymi MOD-10 count.
Widzieliśmy również, że wyjście kodowane BCD może być wyświetlane za pomocą czterech diod LED lub za pomocą wyświetlacza cyfrowego. Ale do wyświetlenia każdej liczby od 0 do 9 potrzebny jest obwód dekodera, który przekłada zakodowaną binarnie reprezentację liczby na odpowiednie poziomy logiczne na każdym z segmentów wyświetlacza.
Obwody dekodera wyświetlacza mogą być zbudowane z kombinacyjnych elementów logicznych i istnieje wiele dedykowanych układów scalonych na rynku do wykonywania tej funkcji, takich jak 74LS47 BCD do 7-segmentowego dekodera/drivera IC.
Większość wyświetlaczy 7-segmentowych jest zwykle używana w aplikacjach liczenia wielocyfrowego, więc poprzez kaskadowe połączenie większej ilości liczników BCD można skonstruować liczniki 4-cyfrowe dające wyświetlacze o maksymalnym odczycie 9999.
Licznik 74LS90 BCD jest bardzo elastycznym układem liczącym i może być użyty jako dzielnik częstotliwości lub do dzielenia dowolnej liczby całkowitej od 2 do 9 poprzez doprowadzenie odpowiednich wyjść z powrotem do wejść Reset i Set układu scalonego.
.