10.7. Contor MOD

Funcția unui contor este de a număra prin avansarea conținutului contorului cu un număr la fiecare impuls de ceas.

Contoarele care avansează secvența lor de numere sau stări atunci când sunt activate de o intrare de ceas se spune că funcționează într-un mod "count-up". De asemenea, contoarele care descresc secvența de numere sau stări atunci când sunt activate de o intrare de ceas se spune că funcționează într-un mod "cont-down". Contoarele care operează în ambele moduri UP și DOWN se numesc contoare bidirecționale.

Contoarele sunt dispozitive logice secvențiale care sunt activate sau declanșate de un impuls de temporizare extern sau un semnal de ceas. Un contor poate fi construit pentru a funcționa ca un circuit sincron sau ca un circuit asincron. La contoare sincrone, toți biții de date se schimbă sincron cu aplicarea unui semnal de ceas, pe când un circuit contor-asincron este independent de ceasul de intrare, astfel încât biții de date schimbă starea la timpi diferiți, unul după altul.

Deci, contoarele sunt dispozitive logice secvențiale care urmează o secvență prestabilită de stări de numărare care sunt declanșate de un semnal de ceas extern (CLK). Numărul de stări sau secvențe de numărare prin care un anumit contor avansează înainte de a reveni din nou la prima sa stare originală se numește modulus (MOD). Cu alte cuvinte, modulus (sau doar modulo) este numărul de stări pe care contorul le numără și este numărul divizor al contorului.

Contoarele modulus sau pur și simplu contoarele MOD sunt definite pe baza numărului de stări pe care contorul le va secvenția înainte de a reveni la valoarea inițială. De exemplu, un contor de 2 biți care numără de la 002 la 112 în binar, adică de la 0 la 3 în zecimal, are o valoare modulus de 4 (00 → 01 → 10 → 11 și se întoarce înapoi la 00) prin urmare, va fi numit un contor modulo-4, sau mod-4. Rețineți, de asemenea, că a luat 4 impulsuri de ceas pentru a da de la 00 la 11.

Deoarece în acest exemplu simplu, există doar doi biți (n = 2), atunci numărul maxim de stări de ieșire posibile (modulus maxim) pentru contor este: 2n = 22 sau 4. Dar, contoarele pot fi proiectate să numere orice număr de stări 2n în secvența lor prin legarea în cascadă a mai multor etaje de numărare pentru a produce un contor MOD-N.

De aceea, un contor "Mod-N" va necesita "N" flip-flop-uri conectate împreună pentru a număra un singur bit de date în timp ce furnizează 2n stări diferite de ieșire (n este numărul de biți). Rețineți că N este întotdeauna o valoare întreagă.

Putem vedea că contoarele MOD au o valoare modulus care este o putere integrală de 2, adică 2, 4, 8, 16 și așa mai departe pentru a produce un contor de n-biți în funcție de numărul de flip-flop-uri folosite și cum sunt conectate, determinând tipul și modulul contorului.

Flip-flop tip D

Contoarele MOD sunt realizate folosind "flip-flop-uri" și un singur flip-flop poate produce un număr de 0 sau 1, ceea ce înseamnă un număr maxim de 2. Există diferite tipuri de modele flip-flop pe care le putem folosi, S-R, J-K , J-K Master-slave, tip-D sau chiar flip-flop tip-T pentru a construi un contor. Dar pentru a păstra lucrurile simple, vom folosi un flip-flop tip-D (DFF) cunoscut și sub denumirea Data Latch, deoarece sunt utilizate o singură intrare de date și un semnal de ceas extern și este declanșat pe frontul pozitiv.

Flip-flop tip-D, cum ar fi TTL 74LS74, poate fi realizat din flip-flop-uri declanșate pe front, bazate pe SR sau JK, în funcție de cum doriți să se schimbe starea, pe front pozitiv sau anterior (tranziția 0 la 1) sau pe cel negativ sau posterior (tranziția de la 1 la 0) al impulsului de ceas. Aici vom presupune un flip-flop declanșat pe front pozitiv. Puteți găsi mai multe informații în următorul link despre bistabile de tip D .

Flip-flop tip-D și Tabelul de adevăr

Funcționarea unui flip-flop tip-D (DFF) este foarte simplă, deoarece are doar o singură intrare de date, numită "D", și o intrare suplimentară de ceas "CLK". Acest lucru permite ca un singur bit de date (0 sau 1) să fie stocat sub controlul semnalului de ceas, făcând astfel flip-flopul tip-D un dispozitiv sincron deoarece datele de pe intrări sunt transferate la ieșirea flip-flop numai pe frontul de declanșare al impulsului de ceas.

Deci, din tabelul de adevăr, dacă există un logic "1" (HIGH) pe intrarea Data atunci când se aplică un impuls de ceas pozitiv, flip-flop-ul SET-ează și stochează un logic "1" la "Q" și un complementar ”0” la Ǭ. De asemenea, în cazul în care există un LOW la intrarea Data atunci când se aplică un alt impuls de ceas pozitiv, flip-flop RESET-ează și stochează un „0“ la „Q“, și un rezultant „1“, la Ǭ.

Deci, ieșirea "Q" a flip-flop-ului tip-D răspunde la valoarea intrării "D" atunci când intrarea ceasului (CLK) este HIGH. Când intrarea ceasului este LOW, starea "Q", fie "1", fie "0" este menținută până la următoarea dată când semnalul de ceas merge HIGH la nivel logic "1". Prin urmare, ieșirea la "Q" schimbă starea numai atunci când intrarea de ceas se schimbă de la valoarea "0" (LOW) la "1" (HIGH), făcându-l flip-flop tip-D declanșat pe front pozitiv. Rețineți că flip-flop-urile declanșate pe front negativ funcționează exact în același mod, cu excepția faptului că frontul de declanșare al impulsului de ceas este frontul negativ.

Deci, acum știm cum funcționează un flop-flop tip-D declanșat de front, să privim la conectarea împreună pentru a forma un contor MOD.

Contor Divide-cu-2

Flip-flopul tip-D declanșat de front este un bloc constructiv util și versatil pentru a construi un contor MOD sau orice alt tip de circuit logic secvențial. Prin conectarea ieșirii Ǭ (not Q) la intrarea "D", așa cum este arătat, și crearea unei bucle de feedback, îl putem converti într-un contor binar divide-cu-2 folosind doar intrarea de ceas deoarece semnalul de ieșire Ǭ este întotdeauna inversul semnalului de ieșire Q.

Contor Divide-cu-2 și Diagrama de contorizare

Diagramele de timp indică faptul că forma de undă de ieșire "Q" are o frecvență exact o jumătate din cea a intrării de ceas, astfel că flip-flopul acționează ca un divizor de frecvență. Dacă am adăugat un alt flip-flop tip-D astfel încât ieșirea la "Q" să fie intrarea în al doilea DFF, atunci semnalul de ieșire din acest al doilea DFF ar fi un sfert din frecvența de intrare a ceasului și așa mai departe. Deci, pentru un număr de "n" flip-flop-uri, frecvența de ieșire este împărțită la 2n, în pași de 2.

Rețineți că această metodă de divizare a frecvenței este foarte utilă pentru utilizarea în circuitele de numărare secvențială. De exemplu, un semnal de frecvență de rețea de 60 Hz poate fi redus la un semnal de sincronizare de 1 Hz utilizând un contor divide-cu-60. Un contor divide-cu-6 ar împărți 60 Hz până la 10 Hz, care este apoi trimis la un contor divide-cu-10 pentru a împărți 10 Hz până la un semnal sau impuls de sincronizare de 1 Hz, etc.

Contor MOD-4

Din punct de vedere tehnic, precum un dispozitiv de stocare pe un bit, un singur flip-flop pe cont propriu ar putea fi considerat ca un contor MOD-2, deoarece are o singură ieșire rezultând un număr de doi, fie 0 sau 1, pe aplicarea semnalului de ceas. Dar un singur flip-flop produce o secvență limitată de numărare, astfel că prin conectarea împreună a mai multor flip-flop-uri pentru a forma un lanț, putem crește capacitatea de numărare și putem construi un contor MOD de orice valoare.

Dacă un singur flip-flop poate fi considerat un contor modulo-2 sau MOD-2, atunci adăugarea unui al doilea flip-flop ne va da un contor MOD-4 care îi permite să numere în patru pași discreți. Efectul general ar fi divizarea semnalului de intrare al ceasului original cu patru. Atunci, secvența binară pentru acest contor MOD-4 pe 2 biți ar fi: 00, 01, 10 și 11, așa cum se arată.

Contor MOD-4 și Diagrama de contorizare

Rețineți că pentru simplitate, tranzițiile de comutare ale QA, QB și CLK în diagrama de timp de mai sus sunt prezentate simultan, chiar dacă această conexiune reprezintă un contor asincron. În realitate ar exista o întârziere de comutare foarte mică între aplicarea semnalului de ceas pozitiv (CLK) și ieșirile la QA și QB.

Putem afișa vizual funcționarea acestui contor asincron pe 2 biți utilizând un tabel de adevăr și o diagramă de stări.

Diagrama de stare a contorului MOD-4

Putem vedea din tabelul de adevăr al contorului și prin citirea valorilor QA și QB, atunci când QA = 0 și QB = 0, numărul este 00. După aplicarea impulsului de ceas, valorile devin QA = 1, QB = 0, dând un număr 01 și după următorul impuls de ceas, valorile devin QA = 0, QB = 1, dând un număr 10. În final, valorile devin QA = 1, QB = 1, dând un număr 11. Aplicarea următorului puls al ceasului determină ca numărătoarea să se întoarcă la 00, iar după aceea se contorizează continuu într-o secvență binară de: 00, 01, 10, 11, 00, 01 ... etc.

Deci, am văzut că un contor MOD-2 constă într-un singur flip-flop și un contor MOD-4 necesită două flip-flop-uri, permițându-i să numere în patru pași discreți. Am putea adăuga cu ușurință un alt flip-flop la capătul unui contor MOD-4 pentru a produce un contor MOD-8 dându-ne o secvență binară 23 de numărare de la 000 până la 111, înainte de a reseta înapoi la 000. Un al patrulea flip-flop ar face un contor MOD-16 și așa mai departe, de fapt, am putea continua să adăugăm flip-flop-uri suplimentare, atâta timp cât ne-am dorit.

Contor MOD-8 și diagrama de stare

Prin urmare, putem construi contoare mod pentru a avea un număr natural de 2n stări care oferă contoare cu numere de mod 2, 4, 8, 16 și așa mai departe, înainte de a se repeta. Dar, uneori, este necesar să avem un contor modulus care să restituie numărul său înapoi la zero în timpul procesului normal de numărare și nu are un modulo care să fie o putere a lui 2. De exemplu, un contor având un modulus de 3, 5, 6, sau 10.

Contoare Modulo "m"

Contoarele, fie sincrone, fie asincrone, progresează un număr la un moment dat într-o setare progresivă binară și în consecință un contor "n" -bit funcționează natural ca un contor modulo 2n. Dar putem construi contoare mod pentru a număra orice valoare dorită prin utilizarea uneia sau mai multor porți logice externe, determinând să sară peste câteva stări de ieșire și să termine la orice număr, resetând contorul la zero, adică toate flip-flop-urile au Q = 0.

În cazul contoarelor modulo "m", ele nu numără pentru toate stările posibile, ci iau în considerare valoarea "m" și apoi revin la zero. Evident, "m" este un număr mai mic decât 2n, (m <2n). Deci, cum obținem un contor binar pentru a reveni la zero, prin numărătoarea sa?

Din fericire, precum numărarea up sau down, contoarele pot, de asemenea, să aibă intrări suplimentare numite CLEAR și PRESET, ceea ce face posibilă ștergerea contorului la zero (toate Q = 0) sau presetarea contorului la o anumită valoare inițială. TTL 74LS74 are intrări Preset și Clear active-low.

Să presupunem, pentru simplitate, că intrările CLEAR sunt toate conectate împreună și sunt intrări active-high, permițând flip-flop-urilor să opereze normal atunci când intrarea Clear este egală cu 0 (LOW). Dar dacă intrarea Clear este la nivel logic "1" (HIGH), atunci următorul front pozitiv al semnalului de ceas va reseta toate flip-flop-urile în starea Q = 0, indiferent de valoarea următorului semnal de ceas.

Rețineți, de asemenea, că, deoarece toate intrările Clear sunt conectate împreună, un singur impuls poate fi utilizat pentru a șterge ieșirile (Q) tuturor flip-flop-urilor la zero înainte de a începe numărarea pentru a se asigura că numărul real pornește de la zero. De asemenea, unele contoare de biți mai mulți au un pin suplimentar de intrare ENABLE sau INHIBIT, care permite contorului să oprească numărarea la orice moment al ciclului de numărare și să-și mențină starea actuală, înainte de a se permite continuarea numărării. Acest lucru înseamnă că contorul poate fi oprit și pornit la alegere fără a reseta ieșirile la zero.

Un contor Modulo-5

Să presupunem că vrem să proiectăm un contor MOD-5, cum putem face asta? Mai întâi știm că "m = 5", deci 2n trebuie să fie mai mare de 5. Deoarece 21 = 2, 22 = 4, 23 = 8 și 8 este mai mare de 5, atunci avem nevoie de un contor cu trei flip-flop-uri (N = 3) care ne dă un număr natural de 000 la 111 în binar (0 la 7 zecimal).

Luând contorul MOD-8 de mai sus, tabelul de adevăr pentru numărul natural este dat de:

Contor MOD-8 și Tabelul de adevăr

Deoarece construim un contor MOD-5, dorim ca contorul să fie resetat la zero după numărul 5. Totuși, putem vedea din tabelul de adevăr atașat că numărul 6 dă condiția de ieșire: QA = 0, QB = 1 și QC = 1.

Putem decoda această stare de ieșire de 011 (6) pentru a ne da un semnal pentru a șterge (Clr) contorul înapoi la zero cu ajutorul unei porți AND cu 3 intrări (TTL 74LS11) și a unui inversor sau poartă NOT (TTL 74LS04 ).

Intrările circuitului logic combinațional de inversor și poartă AND sunt conectate la QA, QB și respectiv QC cu ieșirea porții AND la nivel logic "0" (LOW) pentru orice combinație de intrare, alta decât cea dorită.

În codul binar, numărul secvenței de ieșire va arăta astfel: 000, 001, 010, 011, 100, 101. Dar când ajunge la starea 011 (6), circuitul logic combinațional va detecta această stare 011 și va produce o ieșire la nivel logic "1" (HIGH).

Atunci, putem folosi ieșirea HIGH rezultată din poarta AND pentru a reseta contorul la zero după ieșirea lui de număr 5 (zecimal), oferindu-ne contorul MOD-5 necesar. Când ieșirea din circuitul combinațional este LOW, nu are nici un efect asupra secvenței de numărare.

Contor MOD-5 și Tabelul de adevăr

Deci, putem folosi circuite de decodificare logică combinaționale în jurul unui contor de bază, fie sincron sau asincron pentru a produce orice tip de Counter MOD dorim, deoarece fiecare dintre stările de ieșire unice ale contoarelor pot fi decodificate pentru resetarea contorului la numărul dorit.

În exemplul nostru simplu de mai sus, am folosit o poartă AND cu 3 intrări pentru a decoda starea 011, dar prima dată când QA și QB sunt ambele la logic 1 este atunci când numărul ajunge la 6, deci o poartă AND cu 2 intrări conectată la QA și QB ar putea fi utilizată fără complicația celei de a treia intrări și a inversorului.

Totuși, unul dintre dezavantajele utilizării contoarelor asincrone pentru producerea unui contor MOD de număr dorit este acela că pot apărea efecte nedorite numite "glitches" atunci când contorul atinge starea de resetare. În acest timp scurt, ieșirile contorului pot avea o valoare incorectă, astfel încât este uneori mai bine să utilizați contoarele sincrone pentru contoare modulo-m, deoarece toate flip-flop-urile sunt tactate de același semnal de ceas, astfel încât să se schimbe starea în același timp.

Contor Modulus 10

Un bun exemplu de circuit contor modulo-m care utilizează circuite combinaționale externe pentru a produce un contor cu un modulus de 10 este contorul Decadic. Contoarele decadice (divide-by-10), cum ar fi TTL 74LS90, au 10 stări în secvența de numărare, făcându-le potrivite pentru interfața umană unde este necesar un afișaj digital.

Contorul decadic are patru ieșiri care produc un număr binar pe 4 biți și prin utilizarea porților externe AND și OR putem detecta apariția celei de-a 9-a stare de numărare pentru a reseta contorul la zero. Ca și în cazul altor contoare mod, acesta primește un impuls de ceas de intrare, unul câte unul, și numără de la 0 la 9 în mod repetat.

Odată ce ajunge la numărul 9 (1001 în binar), contorul se întoarce la 0000 în loc să continue până la 1010. Circuitul de bază al unui contor decadic poate fi realizat din flip-flop-uri JK (TTL 74LS73) care comută starea pe frontul negativ posterior al semnalului de ceas, așa cum se arată.

Contor MOD-10 Decadic

Rezumat Contor MOD

Am văzut în acest tutorial despre Contoare MOD că contoarele binare sunt circuite secvențiale care generează secvențe binare de biți ca rezultat al unui semnal de ceas și starea unui contor binar este determinată de combinația specifică formată de toate ieșirile contoarelor împreună.

Numărul de stări de ieșire diferite pe care le poate produce un contor este numit modulo sau modulus contorului. Modulus (sau numărul-MOD) al unui contor este numărul total al stărilor unice pe care le trece într-un singur ciclu de numărare completă, cu un contor mod-n fiind descris și ca un contor divide-cu-n.

Modulus unui contor este dat ca: 2n unde n = numărul de flip-flop-uri. Deci, un contor de 3 flip-flop-uri va avea un număr maxim de 23 = 8 stări de numărare și ar fi numit un contor MOD-8. Numărul maxim binar care poate fi contorizat de către contor este 2n -1 dând un număr maxim de (111)2 = 23 -1 = 710. Atunci, contorul numără de la 0 la 7.

Contoarele comune MOD includ cele cu numere MOD de 2, 4, 8 și 16 și cu utilizarea circuitelor combinaționale externe pot fi configurate să numere la orice valoare predeterminată, alta decât unu cu un modulus maxim de 2n. În general, orice aranjament al unui număr de "m" flip-flop-uri poate fi folosit pentru a construi orice contor MOD.

Un modulus comun pentru contoarele cu secvențe trunchiate este de zece (1010), numit MOD-10. Un contor cu zece stări în secvența sa este cunoscut ca un contor decadic. Contoarele decadice sunt utile pentru interfața cu afișajele digitale. Alte contoare MOD includ contorul MOD-6 sau MOD-12 care au aplicații în ceasurile digitale pentru a afișa ora din zi.