Circuit de contorizare BCD
Am văzut anterior că flip flopurile basculante de tip T pot fi folosite ca și contoare individuale de împărțire la doi. Dacă conectăm împreună mai multe flip-flops toggle într-un lanț în serie, putem produce un contor digital care stochează sau afișează numărul de ori de câte ori a avut loc o anumită secvență de numărare.
Flipsurile de tip T cu ceas acționează ca un contor binar de împărțire la doi, iar în cazul contoarelor asincrone, ieșirea unei etape de numărare furnizează impulsul de ceas pentru următoarea etapă. Apoi, un contor cu flip-flops are două stări de ieșire posibile și, prin adăugarea mai multor etaje de flip-flops, putem realiza un contor de împărțire la 2N. Dar problema cu contoarele binare pe 4 biți este că acestea numără de la 0000 la 1111. Adică de la 0 la 15 în zecimal.
Pentru a realiza un contor digital care numără de la 1 la 10, trebuie să facem ca numărătorul să numere doar numerele binare de la 0000 la 1001. Adică de la 0 la 9 în zecimal și, din fericire pentru noi, circuitele de numărare sunt ușor disponibile sub formă de circuite integrate, unul dintre aceste circuite fiind numărătorul asincron 74LS90 Decade Counter.
Contoarele digitale numără de la zero până la o anumită valoare de numărare predeterminată la aplicarea unui semnal de ceas. Odată ce valoarea de numărare este atinsă, resetarea lor readuce contorul la zero pentru a o lua de la capăt.
Un contor de decadă numără într-o secvență de zece și apoi revine la zero după numărarea a nouă. Evident, pentru a număra până la o valoare binară de nouă, contorul trebuie să aibă cel puțin patru flip-flops în cadrul lanțului său pentru a reprezenta fiecare cifră zecimală, după cum se arată.
Diagrama de stare a contorului BCD
Înseamnă că un contor de decadă are patru flip-flops și 16 stări potențiale, din care doar 10 sunt folosite și dacă am conecta o serie de contoare împreună am putea număra până la 100 sau 1.000 sau până la orice număr final de numărare pe care îl alegem.
Numărul total de numărători până la care un numărător poate număra se numește MODULUL său. Un contor care revine la zero după n numărători se numește un contor modulo-n, de exemplu un contor modulo-8 (MOD-8), sau modulo-16 (MOD-16), etc., iar pentru un „contor pe n biți”, intervalul complet de numărare este de la 0 la 2n-1.
Dar, așa cum am văzut în tutorialul Contoare asincrone, că un contor care se resetează după zece numărători cu o secvență de numărare împărțită la 10 de la 0000 binar (zecimal „0”) până la 1001 (zecimal „9”) se numește „contor zecimal codificat binar” sau, pe scurt, contor BCD, iar un contor MOD-10 poate fi construit folosind cel puțin patru flip-flops de basculare.
Se numește contor BCD deoarece secvența sa de zece stări este cea a unui cod BCD și nu are un model regulat, spre deosebire de un contor binar direct. Apoi, un contor BCD cu un singur etaj, cum ar fi 74LS90, numără de la 0 zecimal la 9 zecimal și, prin urmare, este capabil să numere până la un maxim de nouă impulsuri. Rețineți, de asemenea, că un contor digital poate număra în sus sau în jos sau poate număra în sus și în jos (bidirecțional) în funcție de un semnal de control de intrare.
Codul binar codificat-decimal este un cod 8421 format din patru cifre binare. Denumirea 8421 se referă la greutatea binară a celor patru cifre sau biți utilizați. De exemplu, 23 = 8, 22 = 4, 21 = 2 și 20 = 1. Principalul avantaj al codului BCD este că permite conversia ușoară între formele zecimale și binare ale numerelor.
Contatorul BCD 74LS90
Circuitul integrat 74LS90 este practic un contor zecimal MOD-10 care produce un cod de ieșire BCD. Circuitul 74LS90 este format din patru flip-flops JK master-slave conectate intern pentru a furniza un contor MOD-2 (count-to-2) și un contor MOD-5 (count-to-5). 74LS90 are un flip-flop JK cu basculare independent comandat de intrarea CLK A și trei flip-flops JK cu basculare care formează un contor asincron comandat de intrarea CLK B, după cum se arată.
74LS90 BCD Counter
Cele patru ieșiri ale contoarelor sunt desemnate prin litera simbol Q cu un indice numeric egal cu greutatea binară a bitului corespunzător în codul circuitelor contorului BCD. Astfel, de exemplu, QA, QB, QC și QD. Secvența de numărare 74LS90 este declanșată pe frontul negativ al semnalului de ceas, adică atunci când semnalul de ceas CLK trece de la 1 logic (HIGH) la 0 logic (LOW).
Pinii de intrare suplimentari R1 și R2 sunt pinii de „resetare” ai contorului, în timp ce intrările S1 și S2 sunt pinii de „setare”. Atunci când sunt conectate la 1 logic, intrările de resetare R1 și R2 resetează contorul la zero, 0 (0000), iar atunci când intrările de setare S1 și S2 sunt conectate la 1 logic, acestea setează contorul la maxim, sau la 9 (1001), indiferent de numărul real de numărare sau de poziție.
După cum am spus mai devreme, contorul 74LS90 este format dintr-un contor cu divizare prin 2 și un contor cu divizare prin 5 în cadrul aceluiași pachet. Apoi, putem folosi oricare dintre aceste contoare pentru a produce doar un contor de frecvență divide-by-2, doar un contor de frecvență divide-by-5 sau cele două împreună pentru a produce contorul BCD divide-by-10 dorit.
Cu cele patru flip-flops care alcătuiesc secțiunea de contor divide-by-5 dezactivate, dacă un semnal de ceas este aplicat la pinul de intrare 14 (CLKA) și ieșirea luată de la pinul 12 (QA), putem produce un contor binar standard divide-by-2 pentru utilizare în circuitele de divizare a frecvenței, așa cum este arătat.
74LS90 Divide-by-2 Counter
Pentru a produce un contor standard divide-by-5, putem dezactiva primul flip-flop de mai sus și să aplicăm semnalul de intrare de ceas direct la pinul 1 (CLKB), semnalul de ieșire fiind preluat de la pinul 11 (QD), așa cum se arată.
74LS90 Divide-by-5 Counter
Rețineți că în cazul acestei configurații de contorizare divide-by-5, forma de undă de ieșire nu este simetrică, ci are un raport de marcaj-spațiu 4:1. Adică patru semnale de ceas de intrare creează o ieșire LOW sau „0” logic, iar al cincilea semnal de ceas de intrare produce o ieșire HIGH sau „1” logic.
Pentru a produce un contor deceniu BCD cu împărțire la 10, ambele circuite interne ale contorului sunt utilizate, ceea ce dă o valoare de împărțire la 2 ori 5. Deoarece prima ieșire QA de la flip-flop „A” nu este conectată intern la etapele 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 Divide-by-10 Counter
Atunci putem vedea că numărătoarele BCD sunt contoare binare care numără de la 0000 la 1001 și apoi se resetează, deoarece are capacitatea de a șterge toate flip-flops-urile sale după a noua numărătoare. Dacă conectăm un întrerupător cu buton (SW1) la intrarea de ceas CLKA, de fiecare dată când întrerupătorul cu buton este eliberat, contorul va număra cu unu. Dacă am conectat diode emițătoare de lumină (LED) la bornele de ieșire, QA, QB, QC și QD, așa cum este ilustrat, putem vizualiza numărătoarea zecimală codificată binar pe măsură ce are loc.
74LS90 BCD Decade Counter
Aplicarea succesivă a comutatorului cu buton, SW1 va crește numărătoarea până la nouă, 1001. La a zecea aplicare, ieșirile ABCD se vor reseta înapoi la zero pentru a începe o nouă secvență de numărare. Cu un astfel de număr rotund de impulsuri MOD-10 putem folosi contorul decadal 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 decodificată corespunzător înainte de a putea fi afișată. Un circuit digital care poate decodifica cele patru ieșiri ale contorului nostru BCD 74LS90 și care poate aprinde segmentele necesare ale afișajului se numește decodor.
Direcționarea unui afișaj
Din fericire pentru noi, cineva a proiectat și dezvoltat deja un circuit integrat decodor de afișaj BCD la 7 segmente, cum ar fi 74LS47, pentru a face exact acest lucru. 74LS47 are patru intrări pentru cifrele BCD A, B, C și D și ieșiri pentru fiecare dintre segmentele afișajului cu șapte segmente.
Rețineți că un afișaj standard cu LED-uri cu 7 segmente are, în general, opt conexiuni de intrare, una pentru fiecare segment de LED-uri și una care acționează ca un terminal comun sau conexiune pentru toate segmentele interne ale afișajului. Unele afișaje au, de asemenea, o opțiune de punct zecimal (DP).
74LS47 BCD to 7-segment Driver
Decodificatorul de afișaj 74LS47 primește codul BCD și generează semnalele necesare pentru a activa segmentele corespunzătoare de LED-uri responsabile pentru afișarea numărului de impulsuri aplicate. Deoarece decodorul 74LS47 este proiectat pentru pilotarea unui afișaj cu anod comun, o ieșire LOW (logică-0) va ilumina un segment de LED, în timp ce o ieșire HIGH (logică-1) îl va „opri”. Pentru o funcționare normală, LT (Lamp test), 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 pentru a decoda un afișaj LED cu 7 segmente cu anod comun, circuitul integrat de decodare/driver 74LS48 este exact la fel, cu excepția faptului că are ieșiri active HIGH proiectate pentru a decoda un afișaj cu 7 segmente cu catod comun. Așadar, î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 circuit integrat decodor 74LS47 sau 74LS48.
Intrațiile zecimale cu cod binar 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 cu 7 segmente, așa cum se arată de fiecare dată când este apăsat butonul SW1. Prin schimbarea poziției butonului de apăsare și a rezistenței de 1kΩ, se poate face ca numărătoarea să se schimbe la activarea sau eliberarea butonului de apăsare, SW1.
Circuitul final al contorului BCD pe 4 biți
Rețineți că un afișaj cu 7 segmente este alcătuit din șapte diode emițătoare de lumină individuale pentru a forma afișajul. Cea mai bună metodă de limitare a curentului prin intermediul unui afișaj cu șapte segmente este de a utiliza o rezistență de limitare a curentului în serie cu fiecare dintre cele șapte LED-uri, așa cum se arată. Dar putem face acest lucru în două moduri.
Rezistențe de limitare a curentului
Rezistență unică – aici se folosește o singură rezistență de limitare a curentului în serie, R. Dacă nu sunteți deosebit de preocupat de o luminozitate constantă a afișajului, atunci aceasta este cea mai ușoară și mai simplă opțiune pentru a controla afișajul cu 7 segmente.
Cantitatea de lumină emisă de un LED variază în funcție de curentul prin dispozitiv, curentul care trece prin rezistor fiind împărțit între numărul de segmente de afișaj. Apoi, luminozitatea afișajului depinde acum de câte segmente sunt iluminate în același timp.
Rezistențe multiple – aici fiecare segment are propria sa rezistență de limitare a curentului, așa cum am arătat în circuitul nostru simplu de contor BCD de mai sus.
În general, afișajele cu 7 segmente au nevoie de aproximativ 12 până la 20 de miliamperi pentru a ilumina segmentele, astfel încât valoarea rezistivă a rezistenței de limitare a curentului (toate vor fi identice) este aleasă pentru a limita curentul în aceste valori. Rețineți că unele afișaje pot fi distruse dacă sunt acționate la 40mA și mai mult.
Avantajul aici este că luminozitatea unui anumit segment de LED-uri nu depinde de starea celorlalte șase LED-uri, oferind afișajului o luminozitate constantă. Valorile rezistențelor de limitare a curentului pot fi alese pentru a oferi luminozitatea corectă, deoarece cantitatea de lumină ambientală va determina, de asemenea, intensitatea necesară a LED-urilor.
Circuitul nostru prezintă un contor digital simplu de la 0 la 9 folosind un contor BCD 74LS90 și un driver de afișaj cu 7 segmente 74LS47. Pentru a număra mai mult de 10 și pentru a produce un contor și un afișaj de 2 cifre de tip base-ten, ar trebui să punem în cascadă două contoare separate de împărțire la zece împreună. Un contor BCD cu 2 cifre ar număra în zecimal de la 00 la 99 (0000 0000 0000 la 1001 1001) și apoi s-ar reseta înapoi la 00. Rețineți că, deși va fi un contor de 2 cifre, valorile reprezentând numere hexazecimale de la A la F nu sunt valabile în acest cod.
În mod similar, dacă am dori să numărăm de la 0 până la 999 (0000 0000 0000 la 1001 1001 1001 1001), atunci sunt necesare trei contoare de decadă în cascadă. De fapt, se pot construi mai multe contoare de decade pur și simplu prin conectarea în cascadă a unor circuite individuale de contorizare BCD, câte unul pentru fiecare decadă, după cum se arată.
Contator BCD de 2 cifre de la 00 la 99
Contator BCD Rezumat
În acest tutorial am văzut că un contor BCD este un dispozitiv care trece printr-o secvență de zece stări atunci când este sincronizat și revine la 0 după numărarea a 9 cifre. În exemplul nostru simplu de mai sus, impulsurile de ceas de intrare provin de la un comutator cu buton, dar contoarele pot fi utilizate pentru a număra multe evenimente din lumea reală, cum ar fi numărarea obiectelor în mișcare.
Cu toate acestea, pot fi necesare circuite adecvate pentru a genera impulsurile electrice pentru fiecare eveniment care urmează să fie numărat, deoarece aceste evenimente pot apărea la intervale de timp discrete sau pot fi complet aleatorii.
În multe circuite și aplicații electronice digitale, contoarele digitale sunt implementate folosind flip-flops Toggle sau cu orice alt tip de flip-flop care poate fi conectat pentru a oferi funcția de comutare necesară, sau cu ajutorul unor circuite integrate de numărare dedicate, cum ar fi 74LS90. Contoarele binare sunt contoare care trec printr-o secvență binară, iar un contor binar pe n biți este alcătuit dintr-un număr „n” de flip-flops care numără 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, apoi revine la 0000 și se repetă. Un astfel de contor trebuie să aibă cel puțin patru flip-flops pentru a reprezenta fiecare cifră zecimală, deoarece o cifră zecimală este reprezentată de un cod binar cu cel puțin patru biți care oferă o numărătoare MOD-10.
Am văzut, de asemenea, că ieșirea codificată BCD poate fi afișată folosind patru LED-uri sau cu un afișaj digital. Dar pentru a afișa fiecare număr de la 0 la 9 este nevoie de un circuit decodor, care să traducă reprezentarea unui număr codificat binar în nivelurile logice corespunzătoare pe fiecare dintre segmentele de afișaj.
Circuitele decodificatoare de afișaj pot fi construite din elemente logice combinaționale și există pe piață multe circuite integrate dedicate pentru a îndeplini această funcție, cum ar fi circuitul integrat 74LS47 BCD to 7-segment decoder/driver IC.
Majoritatea afișajelor cu 7 segmente sunt, de obicei, utilizate în aplicații de numărare cu mai multe cifre, astfel încât, prin conectarea în cascadă a mai multor contoare BCD, pot fi construite contoare cu 4 cifre care oferă afișaje cu o citire maximă de 9999.
Contorul BCD 74LS90 este un circuit de numărare foarte flexibil și poate fi folosit ca divizor de frecvență sau poate fi folosit pentru a împărți orice număr întreg de la 2 la 9 prin alimentarea ieșirilor corespunzătoare înapoi la intrările Reset și Set ale IC.
.