Innholdsfortegnelse:

Digital klokke ved bruk av krystalloscillator og flip -flops: 3 trinn
Digital klokke ved bruk av krystalloscillator og flip -flops: 3 trinn

Video: Digital klokke ved bruk av krystalloscillator og flip -flops: 3 trinn

Video: Digital klokke ved bruk av krystalloscillator og flip -flops: 3 trinn
Video: Не ошибись в 2023 году! Canon 7D Mark II против Canon 6D 2024, Juli
Anonim
Digital klokke ved bruk av krystalloscillator og flip -flops
Digital klokke ved bruk av krystalloscillator og flip -flops

Klokker finnes i nesten alle typer elektronikk, de er hjerterytmen til enhver datamaskin. De brukes til å synkronisere alle sekvensielle kretser. de brukes også som tellere for å holde oversikt over tid og dato. I denne instruksen vil du lære hvordan datamaskiner teller og egentlig hvordan en digital klokke fungerer ved bruk av flip -flops og kombinasjonslogikk. Prosjektet er delt inn i flere moduler som hver utfører en bestemt funksjon.

Rekvisita

For å lære dette trenger du noen forkunnskaper i:

  • Digitale logikkbegreper
  • Multisim -simulator (valgfritt)
  • Forståelse av elektriske kretser

Trinn 1: Bygg tidsbasemodulen

Å bygge tidsbasemodulen
Å bygge tidsbasemodulen

Konseptet bak en digital klokke er at vi egentlig teller opp klokkesykluser. en 1 Hz klokke genererer en puls hvert sekund. i de neste trinnene vil vi se hvordan vi kan telle disse syklusene for å utgjøre sekundene, minuttene og timene til klokken vår. En måte vi kan generere et 1 Hz -signal på er ved å bruke en krystalloscillatorkrets som genererer et 32.768 kHz signal (som det jeg er designet ovenfor som kalles en pierce -oscillator), som vi deretter kan dele ved hjelp av en kjede med flip -flops. Grunnen til at 32.768 kHz brukes er fordi den er høyere enn vår maksimale hørselsfrekvens som er 20 kHz og den er lik 2^15. Årsaken som er viktig er at en JK flip-flop-utgang bytter på den positive eller negative kanten (avhenger av FF) av inngangssignalet, derfor er utgangen effektivt med en frekvens som er halvparten av den opprinnelige inngangen. På samme måte hvis vi kjeder 15 flip -flops, kan vi dele inngangssignalfrekvensen for å få vårt 1 Hz -signal. Jeg brukte nettopp en 1 Hz pulsgenerator for å få fart på simuleringstiden i Multisim. Men på et brødbrett er du velkommen til å bygge kretsen jeg har ovenfor eller bruke en DS1307 -modul.

Trinn 2: Bygg sekundtelleren

Bygge sekundtelleren
Bygge sekundtelleren

Denne modulen er delt opp i to deler. Den første delen er en 4-biters teller som teller opp til 9 som utgjør 1s plass på sekunder. Den andre delen er en 3-biters teller som teller opptil 6 som utgjør 10-tallet av sekundene.

Det er to typer tellere, en synkron teller (hvor klokken er koblet til alle FF) og en asynkron teller der klokken mates til den første FF og utgangen fungerer som klokken til den neste FF. Jeg bruker en asynkron teller (også kalt en ringteller). Tanken er at hvis vi sender et høyt signal til 'J' og 'K' inngangene til FF, vil FF veksle sin tilstand ved hver syklus av inngangsklokken. Dette er viktig fordi det for hver 2 veksling av den første FF produseres en veksling i den påfølgende FF og så videre til den siste. Derfor produserer vi et binært tall som tilsvarer antall sykluser for inngangssignalet.

Som vist ovenfor, til venstre er kretsen min som lager 4-biters telleren for 1-plassen. Under den har jeg implementert en Reset -krets, det er i utgangspunktet en AND -port som sender et høyt signal til tilbakestillingsnålen til flip -flops hvis utgangen til telleren er en 1010 eller en 10 i desimal. Derfor er utgangen til den OG -porten 1 puls per 10 sekunder signal som vi vil bruke som inngangsklokke for telleren vår på ti.

Trinn 3: Sett alt sammen

Av den samme logikken kan vi fortsette å stable tellere for å lage minutter og timer. Vi kan til og med gå lenger og telle dager, uker og til og med år. du kan lage dette på et brødbrett, ideelt sett ville du imidlertid bruke en RTC -modul (sanntidsklokke) bare for enkelhets skyld. Men hvis du føler deg inspirert, trenger du i hovedsak:

19 J-K flip-flops (eller 10 doble JK-ICer som SN74LS73AN)

  • en inngangskilde på 1 Hz (du kan bruke en DS1307 -modul, den genererer en kvadratbølge på 1 Hz)
  • 6 Binære til 7-segmenters dekodere (for eksempel 74LS47D)
  • 23 Omformere, 7 3-inngang OG porter, 10 2-inngang OG porter, 3 4-inngang OG porter, 5 ELLER porter
  • Seks 7-segment hex-skjermer

Jeg håper du har lært hvordan en digital klokke fungerer fra denne instruksjonsfulle, vær så snill å stille spørsmål!

Anbefalt: