Inhoudsopgave:

Digitale klok met kristaloscillator en slippers - Ajarnpa
Digitale klok met kristaloscillator en slippers - Ajarnpa

Video: Digitale klok met kristaloscillator en slippers - Ajarnpa

Video: Digitale klok met kristaloscillator en slippers - Ajarnpa
Video: Lesson 99: Building Arduino Digital Clock using DS3231 LCD and Seven Segment Display 2024, November
Anonim
Digitale klok met kristaloscillator en slippers
Digitale klok met kristaloscillator en slippers

Klokken zijn te vinden in bijna alle soorten elektronica, ze zijn de hartslag van elke computer. Ze worden gebruikt om alle sequentiële circuits te synchroniseren. ze worden ook gebruikt als tellers om tijd en datum bij te houden. In deze instructable leer je hoe computers tellen en in wezen hoe een digitale klok werkt met behulp van flip-flops en combinatorische logica. Het project is opgedeeld in meerdere modules die elk een specifieke functie vervullen.

Benodigdheden

Voor deze instructable heb je enige voorkennis nodig in:

  • Digitale logische concepten
  • Multisim-simulator (optioneel)
  • Inzicht in elektrische circuits

Stap 1: De tijdbasismodule bouwen

De tijdbasismodule bouwen
De tijdbasismodule bouwen

Het concept achter een digitale klok is dat we in wezen klokcycli tellen. een klok van 1 Hz genereert elke seconde een puls. in de volgende stappen zullen we zien hoe we die cycli kunnen tellen om de seconden, minuten en uren van onze klok te vormen. Een manier waarop we een signaal van 1 Hz kunnen genereren, is door een kristaloscillatorcircuit te gebruiken dat een 32,768 kHz-signaal genereert (zoals het signaal dat ik hierboven heb ontworpen en dat een pierce-oscillator wordt genoemd), dat we vervolgens kunnen delen door een reeks flip-flops te gebruiken. De reden dat 32,768 kHz wordt gebruikt, is omdat deze hoger is dan onze maximale hoorfrequentie, die 20 kHz is en gelijk is aan 2^15. De reden die belangrijk is, is dat een JK-flip-flop-uitgang schakelt naar de positieve of negatieve flank (afhankelijk van de FF) van het ingangssignaal, daarom heeft de uitgang effectief een frequentie die de helft is van de oorspronkelijke ingang. Op dezelfde manier kunnen we, als we 15 flip-flops aan elkaar koppelen, de frequentie van het ingangssignaal delen om ons 1 Hz-signaal te krijgen. Ik heb zojuist een pulsgenerator van 1 Hz gebruikt om de simulatietijd in Multisim te versnellen. Voel je echter vrij om op een breadboard het circuit te bouwen dat ik hierboven heb of een DS1307-module te gebruiken.

Stap 2: De secondenteller bouwen

De secondenteller bouwen
De secondenteller bouwen

Deze module is opgedeeld in twee delen. Het eerste deel is een 4-bits opteller die tot 9 telt, wat de 1's plaats van de seconden vormt. Het tweede deel is een 3-bits opteller die tot 6 telt, wat de tienden van de seconden vormt.

Er zijn 2 soorten tellers, een synchrone teller (waarbij de klok is aangesloten op alle FF) en een asynchrone teller waarbij de klok wordt toegevoerd aan de eerste FF en de uitgang fungeert als de klok van de volgende FF. Ik gebruik een asynchrone teller (ook wel een rimpelteller genoemd). Het idee is dat als we een hoog signaal naar de 'J'- en 'K'-ingangen van de FF sturen, de FF bij elke cyclus van de ingangsklok van status verandert. Dit is belangrijk omdat voor elke 2 toggles van de eerste FF een toggle wordt geproduceerd in de opeenvolgende FF en zo verder tot de laatste. Daarom produceren we een binair getal dat gelijk is aan het aantal cycli van het ingangskloksignaal.

Zoals hierboven getoond, is aan de linkerkant mijn circuit dat de 4-bits teller maakt voor de 1's plaats. Daaronder heb ik een Reset-circuit geïmplementeerd, het is in feite een EN-poort die een hoog signaal naar de reset-pin van de Flip Flops stuurt als de output van de teller een 1010 of een 10 in decimaal is. Vandaar dat de output van die EN-poort een signaal van 1 puls per 10 seconden is dat we zullen gebruiken als de ingangsklok voor onze 10-plaatsenteller.

Stap 3: Alles samenbrengen

Door diezelfde logica kunnen we tellers blijven stapelen om de minuten en uren te vormen. We kunnen zelfs verder gaan en dagen, weken en zelfs jaren tellen. je kunt dit op een breadboard maken, maar idealiter zou je voor het gemak een RTC-module (real time clock) gebruiken. Maar als je je geïnspireerd voelt, heb je in wezen nodig:

19 JK Flip Flops (of 10 Dual JK IC's zoals de SN74LS73AN)

  • een ingangsbron van 1 Hz (u kunt een DS1307-module gebruiken, deze genereert een blokgolf van 1 Hz)
  • 6 binaire tot 7-segment decoders (zoals de 74LS47D)
  • 23 omvormers, 7 EN-poorten met 3 ingangen, 10 EN-poorten met 2 ingangen, 3 EN-poorten met 4 ingangen, 5 OF-poorten
  • Zes 7-segments hex-displays

Ik hoop dat je hebt geleerd hoe een digitale klok werkt van deze instructable, stel gerust vragen!

Aanbevolen: