⏱️ Klopné obvody, čítače a registry

Obvod, který si pamatuje

O čem to je

Stiskneš tlačítko START a pustíš ho, ale motor běží dál, dokud nestiskneš STOP. Linka počítá výrobky na pásu. To kombinační obvod neumí – potřebuješ obvod s pamětí. Nejmenší paměť na jeden bit je klopný obvod, z nich se skládají čítače a registry.

Nové pojmy

Připomenutí: kombinační obvodLogický obvod, jehož výstup závisí jen na okamžitých vstupech. Nic si nepamatuje.
Sekvenční obvodLogický obvod, jehož výstup závisí na vstupech i na předchozím stavu. Má paměť.Čítač, registr, paměť RAM.
Klopný obvodObvod se dvěma stálými stavy (výstup Q = 0 nebo 1), který si stav pamatuje, dokud ho vstup nezmění. Má obvykle i negovaný výstup Q̄.Jeden klopný obvod = jeden bit paměti.
Hodinový signál (CLK)Pravidelné pulzy, které říkají, kdy se má obvod podívat na vstupy a změnit stav. Často se reaguje na náběžnou hranu – okamžik přechodu z 0 na 1.Krystal 16 MHz dává mikrokontroléru 16 milionů pulzů za sekundu.

Klopný obvod RS jako start–stop

Vstup S (set) nastaví Q = 1, vstup R (reset) nastaví Q = 0. Když jsou oba 0, obvod drží poslední stav. Přesně jako START a STOP: krátký stisk START motor zapne a ten běží, dokud nepřijde STOP.

  1. S = 1: Q se nastaví na 1 (motor běží)
  2. S = 0, R = 0: Q drží 1 (paměť)
  3. R = 1: Q se nuluje (motor stojí)
  4. S = 0, R = 0: Q drží 0 (paměť)

Projdi cyklus. Všimni si, že ve stavech „drží“ jsou vstupy stejné (0 a 0), a výstup je přesto jednou 1 a jednou 0 – podle toho, co bylo předtím.

Od klopného obvodu k čítači

Klopný obvod TPři každé hodinové hraně (když je T = 1) změní stav na opačný: 0 → 1 → 0 → 1…Výstup se mění dvakrát pomaleji než hodiny – vydělí frekvenci dvěma.
ČítačŘada klopných obvodů, která počítá hodinové pulzy a stav ukazuje jako dvojkové číslo. Čítač z n klopných obvodů napočítá 2ⁿ stavů (0 až 2ⁿ − 1), pak začne znovu.4bitový čítač počítá 0 až 15.
Čítač ze 4 klopných obvodů T dostává hodiny 1 kHz. Jakou frekvenci má výstup posledního obvodu?
Každý obvod dělí dvěma: 1 000 → 500 → 250 → 125 → 62,5 Hz (1 000 / 2⁴ = 1 000 / 16).
Kolik klopných obvodů potřebuje čítač výrobků do 100?
Potřebuješ aspoň 101 stavů (0 až 100). 2⁶ = 64 nestačí, 2⁷ = 128 stačí. Potřebuješ 7 klopných obvodů.
✗Klopný obvod RS: když stisknu START i STOP najednou (S = 1, R = 1), motor se rozběhne.
✓U klopného obvodu RS je kombinace S = R = 1 nepovolená (výstup je nejednoznačný). V řízení se navrhuje s přednostním vypnutím: STOP má přednost.

Obvod nemůže zároveň nastavovat a nulovat. U strojů je bezpečnější, když při konfliktu vyhraje zastavení.

Sekvenční obvody si pamatují stav. Klopný obvod = 1 bit. RS: S nastaví, R vynuluje. T překlápí a dělí frekvenci 2. Čítač z n obvodů má 2ⁿ stavů.

Druhy a tabulky

O čem to je

Obvod 74HC595 rozsvítí 8 LED a stačí mu k tomu tři vodiče z mikrokontroléru. Uvnitř je posuvný registr z klopných obvodů D. Tady je přehled klopných obvodů RS, D, JK a T a toho, co se z nich staví.

Nové pojmy

Klopný obvodSekvenční obvod se dvěma stabilními stavy, uchová 1 bit. Výstupy Q a Q̄.Integrovaný obvod 74HC74 obsahuje dva klopné obvody D.
Synchronní obvod a hranaSynchronní klopný obvod mění stav jen v okamžiku hodinové hrany (náběžné 0→1 nebo sestupné 1→0), ne kdykoli. Ve značce se hranové řízení kreslí trojúhelníčkem u vstupu C.Všechny bity registru se tak změní přesně najednou.
RegistrSkupina klopných obvodů D se společnými hodinami, která uchová vícebitové číslo. Posuvný registr při každém pulzu posune bity o jednu pozici.8bitový registr uchová 1 bajt.
Modulo čítačePočet různých stavů, kterými čítač projde, než začne znovu.Dekadický čítač má modulo 10 (0–9).

Přehled klopných obvodů

ObvodVstupyChování
RSS, RS = 1 nastaví, R = 1 vynuluje, 0/0 drží, 1/1 nepovoleno
DD, Cpři hraně hodin se Q = D (zapamatuje si vstup)
JKJ, K, Cjako RS, ale J = K = 1 stav překlopí
TT, CT = 1: při každé hraně překlopí, T = 0: drží
  • D: D = 1, přijde náběžná hrana – Q = 1
  • JK: J = 1, K = 1, hrana, Q bylo 0 – Q = 1 (překlopí)
  • JK: J = 0, K = 0, hrana – Q se nemění
  • RS: S = 0, R = 1 – Q = 0
  • T: T = 1, hrana, Q bylo 1 – Q = 0

Ke každé situaci si nejdřív řekni výsledek a pak kartu otoč.

Posuvný registr krok za krokem

Na datový vstup přivedeš první bit.
Pulz hodin: bit se zapíše do prvního klopného obvodu.
Přivedeš další bit, pulz hodin: první bit se posune do druhého obvodu, nový je v prvním.
Po 8 pulzech je v registru celý bajt.
Pulz na vstup „zápis do výstupů“ (latch) ho najednou zobrazí na 8 výstupech.
Do čtyřbitového posuvného registru (na začátku 0000) postupně pošleš bity 1, 0, 1, 1. Bity vstupují zleva. Co je v registru po čtyřech pulzech?
Po 1. pulzu 1000, po 2. 0100, po 3. 1010, po 4. 1101. První poslaný bit je teď úplně vpravo.
Jaký nejmenší počet klopných obvodů potřebuje dekadický čítač (0–9)? Jak ho zastavíš na 9?
Potřebuje 10 stavů: 2³ = 8 nestačí, 2⁴ = 16 stačí → 4 obvody. Při dosažení 10 (1010₂) se čítač pomocí logiky okamžitě vynuluje, takže projde jen stavy 0–9.
✗Klopný obvod D s hranovým řízením přebírá vstup D pořád, dokud jsou hodiny v log. 1.
✓Hranový klopný obvod D převezme vstup jen v okamžiku hrany hodin. Mezi hranami změny D ignoruje.

Přebírání po celou dobu úrovně dělá jiný obvod – záchytný (latch, řízený úrovní). Hranové řízení zaručí, že se všechny bity změní ve stejném okamžiku.

RS nastaví/vynuluje, D si zapamatuje vstup při hraně, JK při J = K = 1 překlopí, T překlápí. Registr = klopné obvody D se společnými hodinami; posuvný registr převádí sériová data na paralelní.