Binære tellere, skiftregistre og deres anvendelser i digitale systemer.
Tellere og registre
I forrige kapitler har vi sett på kombinatorisk logikk, der utgangen bare avhenger av nåværende innganger. Nå skal vi se på sekvensiell logikk – kretser som har hukommelse. De kan «huske» hva som skjedde ved forrige klokkepuls, og dermed telle hendelser eller lagre data.
Tellere teller opp eller ned i et bestemt tallsystem, typisk binært. De brukes overalt: i digitale klokker, frekvenstenkere, adressetellere i datamaskiner og i styresystemer.
Registre er grupper av vipper (flip-flops) som lagrer flere biter samtidig. Skiftregistre kan i tillegg flytte bitene fra posisjon til posisjon.
I dette kapittelet skal du lære:
- Forskjellen på asynkrone og synkrone tellere
- Hvordan binære tellere teller fra 0 til et maksverdi
- Hva skiftregistre er og hvordan de brukes
- Praktiske anvendelser av tellere og registre
En binær teller er en sekvensiell krets som teller klokkepulser i binært tallsystem.
En n-bits teller:
- Teller fra 0 til 2ⁿ − 1
- En 3-bits teller teller 0, 1, 2, 3, 4, 5, 6, 7 (0 til 7) og begynner på nytt
- En 4-bits teller teller 0 til 15
Asynkron teller (ripple counter):
- Klokkesignalet kobles bare til den første vippen
- Hver vippe trigger den neste → signalet «bølger» gjennom kretsen
- Enkel konstruksjon, men langsom pga. akkumulert forsinkelse
- Utgangene endrer seg ikke samtidig (risiko for feillesing)
Synkron teller:
- Alle vipper har samme klokkesignal
- Ekstra logikk bestemmer når hver vippe skal endre tilstand
- Raskere og mer pålitelig enn asynkrone tellere
- Utgangene endrer seg samtidig
- Brukes i de fleste praktiske systemer
En 3-bits oppover-teller starter på 000. Vis tellesekvensen for de åtte første klokkepulsene. Oppgi hvert trinn i binært og desimalt.
En 3-bits teller har utgangene Q₂ Q₁ Q₀ og teller fra 000 til 111:
| Klokkepuls | Q₂ | Q₁ | Q₀ | Desimal |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 |
| 2 | 0 | 1 | 0 | 2 |
| 3 | 0 | 1 | 1 | 3 |
| 4 | 1 | 0 | 0 | 4 |
| 5 | 1 | 0 | 1 | 5 |
| 6 | 1 | 1 | 0 | 6 |
| 7 | 1 | 1 | 1 | 7 |
Etter klokkepuls 7 begynner telleren på nytt (wraps around) til 000. Legg merke til mønsteret: Q₀ endres ved hver puls, Q₁ ved annenhver, Q₂ ved hver fjerde.
Hvor mange ulike tilstander kan en 4-bits binær teller ha?
Forklar forskjellen mellom en asynkron og en synkron teller. Nevn én fordel og én ulempe med hver type.
Et skiftregister er en rekke med vipper (flip-flops) der data flyttes én posisjon for hver klokkepuls.
Typer skiftregistre:
- SISO (Serial In, Serial Out): Data mates inn serielt og leses ut serielt. Brukes som forsinkelseslinje.
- SIPO (Serial In, Parallel Out): Data mates inn serielt, men alle biter kan leses ut samtidig. Brukes for seriell-til-parallell konvertering.
- PISO (Parallel In, Serial Out): Alle biter lastes inn samtidig og skyves ut serielt. Brukes for parallell-til-seriell konvertering.
- PIPO (Parallel In, Parallel Out): Data lastes inn og leses ut parallelt. Fungerer som et vanlig lagringsregister.
Bruksområder:
- Seriell datakommunikasjon (UART, SPI)
- Forsinkelseslinjer i signalbehandling
- Datakonvertering mellom seriell og parallell overføring
- LED-styring (skifteregister 74HC595)
Et 4-bits SIPO-skiftregister starter med innhold 0000. Databitene 1, 0, 1, 1 mates inn serielt (1 først). Vis tilstanden etter hver klokkepuls.
Data skyves inn fra venstre (MSB-siden), og alt flyttes ett steg til høyre for hver klokkepuls:
| Klokkepuls | Inn | Q₃ | Q₂ | Q₁ | Q₀ |
|---|---|---|---|---|---|
| Start | — | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 0 | 0 | 0 |
| 2 | 0 | 0 | 1 | 0 | 0 |
| 3 | 1 | 1 | 0 | 1 | 0 |
| 4 | 1 | 1 | 1 | 0 | 1 |
Etter 4 klokkepulser inneholder registeret 1101₂. Alle fire bitene kan nå leses ut parallelt. Slik konverterer SIPO-registeret seriell data til parallell.
Hvilken type skiftregister brukes for å konvertere parallelle data til seriell overføring?
Oppsummering
I dette kapittelet har du lært om tellere og registre – viktige byggeblokker i sekvensiell logikk:
- Binære tellere teller klokkepulser i binært: en n-bits teller teller fra 0 til 2ⁿ − 1
- Asynkrone tellere er enkle men har akkumulert forsinkelse
- Synkrone tellere er raskere og mer pålitelige – alle vipper klokkes samtidig
- Skiftregistre flytter data én posisjon per klokkepuls
- De fire typene: SISO, SIPO, PISO og PIPO – brukes til datalagring og konvertering
Nøkkelbegreper
| Begrep | Forklaring |
|---|---|
| Binær teller | Sekvensiell krets som teller i binært tallsystem |
| Asynkron teller | Teller der klokkesignalet «bølger» gjennom vippene |
| Synkron teller | Teller der alle vipper har felles klokkesignal |
| Skiftregister | Rekke vipper der data flyttes én posisjon per klokke |
| Flip-flop (vippe) | Grunnleggende lagringselement som kan lagre én bit |
En 4-bits synkron oppover-teller teller fra 0000 til 1111. Etter tellerverdi 1001 (9) ønsker vi at telleren skal nullstilles til 0000 i stedet for å fortsette til 1010 (10). Denne modifiserte telleren kalles en dekade-teller (teller 0–9). Forklar hvordan du kan oppnå dette med ekstra logikk, og oppgi hvor mange tilstander denne telleren har.
Et 8-bits SIPO-skiftregister brukes til å styre 8 lysdioder (LEDer) i et «løpelys»-mønster. Forklar hvordan du kan koble systemet slik at bare én LED lyser om gangen, og lyset «løper» fra venstre til høyre. Hva må inn-signalet til registeret være etter at den ene 1-biten er lastet inn?
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.