Binære tellere, skiftregistre og deres anvendelser i digitale systemer.
Teljarar og register
I tidlegare kapittel har vi sett på kombinatorisk logikk, der utgangen berre er avhengig av noverande inngangar. No skal vi sjå på sekvensiell logikk – kretsar som har hukommelse. Dei kan «hugse» kva som skjedde ved førre klokkepuls, og dermed telje hendingar eller lagre data.
Teljarar tel opp eller ned i eit bestemt talsystem, typisk binært. Dei blir brukte overalt: i digitale klokker, frekvensteljarar, adresseteljarar i datamaskinar og i styresystem.
Register er grupper av vipper (flip-flops) som lagrar fleire bitar samtidig. Skiftregister kan i tillegg flytte bitane frå posisjon til posisjon.
I dette kapittelet skal du lære:
- Skilnaden på asynkrone og synkrone teljarar
- Korleis binære teljarar tel frå 0 til ein maksverdi
- Kva skiftregister er og korleis dei blir brukte
- Praktiske bruksområde for teljarar og register
Ein binær teljar er ein sekvensiell krets som tel klokkepulsar i binært talsystem.
Ein n-bits teljar:
- Tel frå 0 til 2ⁿ − 1
- Ein 3-bits teljar tel 0, 1, 2, 3, 4, 5, 6, 7 (0 til 7) og byrjar på nytt
- Ein 4-bits teljar tel 0 til 15
Asynkron teljar (ripple counter):
- Klokkesignalet blir berre kopla til den første vippa
- Kvar vippe trigger den neste → signalet «bølgjer» gjennom kretsen
- Enkel konstruksjon, men langsam pga. akkumulert forseinking
- Utgangane endrar seg ikkje samtidig (risiko for feillesing)
Synkron teljar:
- Alle vipper har same klokkesignal
- Ekstra logikk bestemmer når kvar vippe skal endre tilstand
- Raskare og meir påliteleg enn asynkrone teljarar
- Utgangane endrar seg samtidig
- Blir brukt i dei fleste praktiske system
Ein 3-bits oppover-teljar startar på 000. Vis teljesekvensen for dei åtte første klokkepulsane. Oppgje kvart trinn i binært og desimalt.
Ein 3-bits teljar har utgangane Q₂ Q₁ Q₀ og tel frå 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 byrjar teljaren på nytt (wraps around) til 000. Legg merke til mønsteret: Q₀ endrar seg ved kvar puls, Q₁ ved annankvar, Q₂ ved kvar fjerde.
Kor mange ulike tilstandar kan ein 4-bits binær teljar ha?
Forklar skilnaden mellom ein asynkron og ein synkron teljar. Nemn éin fordel og éin ulempe med kvar type.
Eit skiftregister er ei rekkje med vipper (flip-flops) der data blir flytt éin posisjon for kvar klokkepuls.
Typar skiftregister:
- SISO (Serial In, Serial Out): Data blir mata inn serielt og lese ut serielt. Blir brukt som forseinkingslinje.
- SIPO (Serial In, Parallel Out): Data blir mata inn serielt, men alle bitar kan lesast ut samtidig. Blir brukt for seriell-til-parallell konvertering.
- PISO (Parallel In, Serial Out): Alle bitar blir lasta inn samtidig og skuvne ut serielt. Blir brukt for parallell-til-seriell konvertering.
- PIPO (Parallel In, Parallel Out): Data blir lasta inn og lese ut parallelt. Fungerer som eit vanleg lagringsregister.
Bruksområde:
- Seriell datakommunikasjon (UART, SPI)
- Forseinkingslinjer i signalbehandling
- Datakonvertering mellom seriell og parallell overføring
- LED-styring (skiftregister 74HC595)
Eit 4-bits SIPO-skiftregister startar med innhald 0000. Databitane 1, 0, 1, 1 blir mata inn serielt (1 først). Vis tilstanden etter kvar klokkepuls.
Data blir skuvne inn frå venstre (MSB-sida), og alt blir flytt eitt steg til høgre for kvar 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 klokkepulsar inneheld registeret 1101₂. Alle fire bitane kan no lesast ut parallelt. Slik konverterer SIPO-registeret seriell data til parallell.
Kva type skiftregister blir brukt for å konvertere parallelle data til seriell overføring?
Oppsummering
I dette kapittelet har du lært om teljarar og register – viktige byggjeblokker i sekvensiell logikk:
- Binære teljarar tel klokkepulsar i binært: ein n-bits teljar tel frå 0 til 2ⁿ − 1
- Asynkrone teljarar er enkle men har akkumulert forseinking
- Synkrone teljarar er raskare og meir pålitelege – alle vipper blir klokka samtidig
- Skiftregister flyttar data éin posisjon per klokkepuls
- Dei fire typane: SISO, SIPO, PISO og PIPO – blir brukte til datalagring og konvertering
Nøkkelomgrep
| Omgrep | Forklaring |
|---|---|
| Binær teljar | Sekvensiell krets som tel i binært talsystem |
| Asynkron teljar | Teljar der klokkesignalet «bølgjer» gjennom vippene |
| Synkron teljar | Teljar der alle vipper har felles klokkesignal |
| Skiftregister | Rekkje vipper der data blir flytt éin posisjon per klokke |
| Flip-flop (vippe) | Grunnleggjande lagringselement som kan lagre éin bit |
Ein 4-bits synkron oppover-teljar tel frå 0000 til 1111. Etter teljarverdi 1001 (9) ønskjer vi at teljaren skal nullstillast til 0000 i staden for å halde fram til 1010 (10). Denne modifiserte teljaren blir kalla ein dekade-teljar (tel 0–9). Forklar korleis du kan oppnå dette med ekstra logikk, og oppgje kor mange tilstandar denne teljaren har.
Eit 8-bits SIPO-skiftregister blir brukt til å styre 8 lysdiodar (LED-ar) i eit «løpelys»-mønster. Forklar korleis du kan kople systemet slik at berre éin LED lyser om gongen, og lyset «løper» frå venstre til høgre. Kva må inn-signalet til registeret vere etter at den eine 1-biten er lasta 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.