10.6. Contor BCD
10.6. Contor BCD
Un contor BCD este un tip special de contor digital care poate număra la zece, la aplicarea unui semnal de ceas.
Am văzut anterior că flip-flop-urile toggle tip-T pot fi utilizate ca contor individual divide-cu-2. Dacă conectăm mai multe flip-flopuri într-un lanț serie, putem produce un contor digital care stochează sau afișează numărul de repetări ale unei anumite secvențe de numărare.
Flip-flop-urile de tip T cu ceas funcționează ca un contor binar divide-cu-2 și în contoare asincrone, ieșirea unui etaj de numărare oferă impulsul de ceas pentru următorul etaj. Atunci, un contor flip-flop are două stări posibile de ieșire și prin adăugarea mai multor etaje de flip-flop, putem face un contor divizide-cu-2N. Dar problema cu contoarele binare pe 4 biți este că acestea numără de la 0000 la 1111. Aceasta este de la 0 la 15 în zecimal.
Pentru a face un contor digital care numără de la 1 la 10, trebuie să avem contor care numără numai numerele binare de la 0000 la 1001. Aceasta este de la 0 la 9 în zecimal și din fericire pentru noi, circuitele de numărare sunt disponibile imediat ca circuite integrate, un astfel de circuit fiind Asynchronous 74LS90 Decade Counter.
Contoarele digitale numără în sus de la zero până la o valoare de număr predeterminată pe aplicarea unui semnal de ceas. După atingerea valorii de numărare, resetarea acestora readuce contorul la zero pentru a porni din nou.
Un contor decadic numără într-o secvență de zece și apoi revine la zero după numărul 9. Evident, pentru a număra în sus până la o valoare binară de 9, contorul trebuie să aibă cel puțin patru flip-flop-uri în lanțul său pentru a reprezenta fiecare cifră zecimală, după cum se arată.
Diagrama de stare a contorului BCD
Atunci, un contor decadic are patru flip-flop-uri și 16 stări potențiale, din care doar 10 sunt utilizate și dacă am conectat o serie de contoare împreună am putea număra la 100 sau 1.000 sau chiar ce număr doriți.
Numărul total de numere pe care un contor le poate număra se numește MODULUL său. Un contor care revine la zero după n numere este numit contor modulo-n, de exemplu un contor modulo-8 (MOD-8) sau modulo-16 (MOD-16) etc., și pentru un contor pe n biți întreaga gamă de numere este de la 0 la 2n-1.
Dar, așa cum am văzut, un contor care se resetează după zece numere, cu o secvență de numărare divide-cu-10 de la binar 0000 (zecimal "0") până la 1001 (zecimal "9") se numește contor zecimal-codat-binar, sau BCD Counter pe scurt, și un contor MOD-10 poate fi construit folosind cel puțin patru flip-flop-uri toggle.
Se numește contor BCD deoarece secvența sa de 10 stări este cea a unui cod BCD și nu are un model obișnuit, spre deosebire de un contor binar direct. Atunci, un contor BCD cu un singur etaj, cum ar fi 74LS90, numără de la 0 zecimal la 9 zecimal și poate, prin urmare, să numere până la maximum nouă impulsuri. Rețineți, un contor digital poate număra Up sau număra Down sau număra Up și Down (bidirecțional) în funcție de semnalul de control al intrării.
Codul BCD este un cod 8421 compus din patru cifre binare. Denumirea 8421 se referă la ponderea binară a celor patru cifre sau biți utilizați. De exemplu, 23 = 8, 22 = 4, 21 = 2 și 2o = 1. Principalul avantaj al codului BCD este că permite conversia ușoară între formele zecimale și binare ale numerelor.
Contorul BCD 74LS90
Circuitul integrat 74LS90 este practic un contor decadic MOD-10 care produce un cod de ieșire BCD. Modelul 74LS90 este compus din patru flip-flop-uri JK master-slave conectate intern pentru a realiza un contor MOD-2 (numără-la-2) și un contor MOD-5 (numără-la-5). Dispozitivul 74LS90 are un flip-flop JK toggle independent, acționat de intrarea CLKA și trei flip-flop-uri JK toggle care formează un contor asincron acționat de intrarea CLKB, așa cum este arătat.
Contoarele cu patru ieșiri sunt desemnate prin simbolul literei Q cu un indice numeric egal cu ponderea binară a bitului corespunzător din codul circuitului contor BCD. Deci, de exemplu QA, QB, QC și QD. Secvența de numărare 74LS90 este declanșată pe frontul negativ al semnalului de ceas, deci când semnalul de ceas CLK trece de la logic 1 (HIGH) la logic 0 (LOW).
Pinii suplimentari de intrare R1 și R2 sunt pini de "reset" contor, în timp ce intrările S1 și S2 sunt pini "set". Când sunt conectați la logic 1, R1 și R2 resetează contorul înapoi la zero 0 (0000), iar când intrările Set S1 și S2 sunt conectate la logic 1, ele setează contorul la maxim, sau 9 (1001) indiferent de numărul sau poziția numărului prezent.
Contorul 74LS90 constă dintr-un contor divide-cu-2 și un contor divide-cu-5 în cadrul aceluiași pachet. Atunci, putem folosi un contor pentru a produce numai un contor de frecvență divide-cu-2, numai un contor de frecvență divide-cu-5 sau împreună pentru a produce un contor BCD divide-cu-10 dorit.
Cu cele patru flip-flop-uri care fac secțiunea de contor divide-cu-5 dezactivată, dacă un semnal de ceas este aplicat la pinul de intrare 14 (CLKA) și ieșirea obținută de la pinul 12 (QA), putem produce un contor binar standard divide-cu-2, pentru utilizarea în circuitele de divizare a frecvenței, așa cum se arată.
Contorul divizor-cu-2 74LS90
Pentru a produce un contor standard divide-cu-5, putem dezactiva primul flip-flop de mai sus și aplicăm semnalul de intrare a ceasului direct la pinul 1 (CLKB) semnalul de ieșire fiind preluat de la pinul 11 (QD), după cum se arată.
74LS90 Contorul divide-cu-5
Rețineți că, cu această configurație de contor divide-cu-5, forma de undă de ieșire nu este simetrică, dar are un raport mark-space de 4:1. Deci patru semnale ceas de intrare creează o ieșire LOW sau logic "0", iar cel de-al cincilea semnal ceas de intrare produce o ieșire HIGH sau logic "1".
Pentru a produce un contor decadic BCD divide-cu-10, se folosesc ambele circuite interne, oferind o valoare de 2 ori 5 divide-cu. Cum prima ieșire QA de la flip-flop A nu este conectată intern la etajele următoare, contorul poate fi extins pentru a forma un contor BCD pe 4 biți prin conectarea acestei ieșiri QA la intrarea CLKB, așa cum se arată.
74LS90 Contorul divide-cu-10
Vedem că contoarele BCD sunt contoare binare care numără de la 0000 la 1001 și apoi se resetează deoarece are capacitatea de a șterge toate flip-flop-urile după numărul 9. Dacă conectăm un comutator push-buton (SW1) la intrarea de ceas CLKA, de fiecare dată când comutatorul push-buton este eliberat, contorul va număra cu unu. Dacă am conectat LED-uri la terminalele de ieșire QA, QB, QC și QD, după cum se arată, putem vizualiza numărul zecimal codat binar în timp ce are loc.
Contor decadic BCD 74LS90
Aplicațiile succesive ale comutatorului push-buton SW1 vor crește numărul până la 9, 1001. La a zecea aplicare, ieșirile ABCD vor reveni la zero pentru a porni o nouă secvență de numărare. Cu un astfel de număr rotund de impulsuri MOD-10 putem folosi contorul decadic pentru a comanda un afișaj digital.
Dacă dorim să afișăm secvența de numărare folosind un afișaj cu șapte segmente, ieșirea BCD trebuie să fie decodificată corespunzător înainte de a putea fi afișată. Un circuit digital care poate decoda cele patru ieșiri ale contorului BCD 74LS90 și luminează segmentele necesare ale display-ului se numeste Decodor.
Comanda unui display
Din fericire pentru noi, cineva a proiectat deja și a dezvoltat un BCD to 7-segment Display Decoder IC, cum ar fi 74LS47 pentru a face exact asta. 74LS47 are patru intrări pentru cifrele BCD A, B, C și D și ieșiri pentru fiecare dintre segmentele afișajului cu 7-segmente.
Rețineți că un afișaj LED standard cu 7-segmente are în general 8 conexiuni de intrare, unul pentru fiecare segment LED și unul care acționează ca un terminal comun sau o conexiune pentru toate segmentele interne de afișare. Unele afișări au, de asemenea, o opțiune de punct zecimal (DP).
74LS47 BCD to 7-segment Driver
Decodorul de afișare 74LS47 primește codul BCD și generează semnalele necesare pentru a activa segmentele LED corespunzătoare, responsabile de afișarea numărului de impulsuri aplicate. Deoarece decodorul 74LS47 este proiectat pentru a comanda un afișaj cu anod comun, o ieșire LOW (logic-0) va lumina un segment LED în timp ce o ieșire HIGH (logic-1) o va dezactiva. Pentru operare normală, LT (Test Lampă), BI/RBO (Blanking Input/ Ripple Blanking Output) și RBI (Ripple Blanking Input) trebuie să fie toate deschise sau conectate la logic-1 (HIGH).
Rețineți că în timp ce 74LS47 are ieșiri active LOW și este proiectat să decodeze un afișaj LED cu 7-segmente cu anod comun, decodorul/driver 74LS48 IC este exact același cu excepția faptului că are ieșiri HIGH active, proiectate pentru a decoda un afișaj de 7-segmente cu catod comun. Deci, în funcție de tipul de afișaj LED cu 7 segmente pe care îl aveți, este posibil să aveți nevoie de un decodor 74LS47 sau 74LS48 IC.
Intrările zecimale codate binare 74LS47 pot fi conectate la ieșirile corespunzătoare ale contorului BCD 74LS90 pentru a afișa secvența de numărare pe afișajul de 7-segmente, după cum se arată de fiecare dată când butonul SW1 este apăsat. Prin schimbarea poziției butonului și a rezistorului de 10 kΩ, numărul poate fi modificat la activarea sau eliberarea comutatorului cu buton, SW1.
Circuitul contor BCD pe 4 biți final
Rețineți că un afișaj cu 7 segmente este alcătuit din șapte diode emițătoare de lumină individuale. Cea mai bună metodă de limitare a curentului printr-un afișaj cu șapte segmente este utilizarea unui rezistor limitator de curent în serie cu fiecare dintre cele șapte LED-uri, așa cum se arată. Dar putem face acest lucru în două moduri.
Rezistoare de limitare a curentului
Un singur rezistor - aici este folosit un singur rezistor R de limitare a curentului. Dacă nu sunteți de preocupat de o luminozitate constantă a afișajului, atunci aceasta este cea mai ușoară și mai simplă opțiune pentru controlul afișajului pe 7-segmente.
Cantitatea de lumină emisă de un LED variază în funcție de curentul, prin dispozitiv, care trece prin rezistorul care este împărțit între segmentele de afișare. Deci luminozitatea ecranului depinde acum de câte segmente sunt iluminate în același timp.
Rezistoare multiple - aici fiecare segment are propriul rezistor de limitare curent, așa cum se arată în circuitul nostru simplu BCD.
În general, afișajele pe 7-segmente necesită circa 12 până la 20 miliamperi pentru a ilumina segmentele, astfel încât valoarea rezistivă a rezistorului de limitare curent (toate vor fi identice) este aleasă pentru a limita curentul în interiorul acestor valori. Rețineți că unele afișaje pot fi distruse dacă sunt acționate la 40 mA și mai sus.
Avantajul este că luminozitatea unui anumit segment LED nu depinde de starea celorlalte șase LED-uri dând afișajului o luminozitate constantă. Valorile rezistoarelor de limitare curente pot fi alese pentru a furniza cantitatea corectă de luminozitate, deoarece cantitatea de lumină ambientală va determina, de asemenea, intensitatea LED-ului necesară.
Circuitul nostru prezintă un contor simplu de la 0 la 9 folosind un contor 74LS90 BCD și un driver de afișare cu 7 segmente de 74LS47. Pentru a număra mai sus de 10 și pentru a produce un contor și afișaj de bază zece cu două cifre, am fi nevoiți să legăm în cascadă două contoare separate divide-cu-10. Un contor BCD cu 2 cifre va număra în zecimal de la 00 la 99 (0000 0000 la 1001 1001) și apoi va reveni la 00. Rețineți că, deși va fi un contor cu 2 cifre, valorile reprezentând numere hexazecimale de la A la F nu sunt valabil în acest cod.
De asemenea, dacă vrem să numărăm între 0 și 999 (0000 0000 0000 până la 1001 1001 1001), atunci sunt necesare trei contoare de decadă în cascadă. De fapt, contoarele de mai multe decade pot fi construite simplu prin legarea în cascadă împreună a circuitelor de contor BCD individuale, câte unul pentru fiecare decadă, așa cum este arătat.
Contor BCD de 2 cifre de la 00 la 99
Rezumat Contor BCD
În acest tutorial am văzut că un Contor BCD este un dispozitiv care trece printr-o secvență de zece stări când este tactat și se întoarce la 0 după numărul 9. În exemplul nostru simplu de mai sus, impulsurile ceasului de intrare sunt de la un comutator push-buton dar contoarele pot fi utilizate pentru a număra multe evenimente din lumea reală, cum ar fi numărarea obiectelor în mișcare.
Dar, pot fi necesare circuite adecvate pentru a genera impulsuri electrice pentru fiecare eveniment de numărat, deoarece aceste evenimente pot avea loc la intervale de timp discrete sau pot fi complet aleatorii.
În multe circuite și aplicații electronice digitale, contoarele digitale sunt implementate folosind flip-flop-uri Toggle sau cu orice alt tip de flip-flop care poate fi conectat pentru a da funcția de comutare necesară sau cu ajutorul unor IC dedicate de numărare, cum ar fi 74LS90. Contoarele binare sunt contoare care trec printr-o secvență binară și un contor binar n-bit este realizat din "n" flip-flop-uri numărând de la 0 la 2n-1.
Contoarele BCD urmează o secvență de zece stări și numără folosind numere BCD de la 0000 la 1001 și apoi revin la 0000 și se repetă. Un astfel de contor trebuie să aibă cel puțin patru flip-flop-uri pentru a reprezenta fiecare cifră zecimală, deoarece o cifră zecimală este reprezentată de un cod binar cu cel puțin patru biți, dând un număr MOD-10.
De asemenea, am văzut că ieșirea codată BCD poate fi afișată utilizând patru LED-uri sau cu un afișaj digital. Dar, pentru a afișa fiecare număr de la 0 la 9, este necesar un circuit decodor, care traduce o reprezentare numerică codificată binar în nivele logice corespunzătoare pe fiecare dintre segmentele de afișare.
Afișarea circuitelor decodoare poate fi construită din elemente logice combinaționale și există multe circuite integrate dedicate pe piață pentru a efectua această funcție, cum ar fi 74LS47 BCD to 7-segment decoder/driver IC.
Cele mai multe display-uri cu 7 segmente sunt de obicei utilizate în aplicații de numărare cu mai multe cifre, astfel încât prin legare în cascadă împreună a mai multor contoare BCD, pot fi construite contoare de 4 cifre care oferă afișaje cu o valoare maximă de 9999.
Contorul BCD 74LS90 este un circuit de numărare foarte flexibil și poate fi folosit ca divizor de frecvență sau făcut pentru a împărți orice număr întreg de la 2 la 9 prin alimentarea ieșirilor corespunzătoare înapoi la intrările de reset și set ale IC.