Lärande sekventiella logik Design för en Digital klocka (2 / 14 steg)
Steg 2: Blockdiagram
För att undvika kramp upp utrymme, ges modulen larm separat blockdiagram. Bearbetning av blockdiagram förklaras i detalj här. Delar av detta avsnitt kan tyckas vara en upprepning av han logiken i den krets som diskuterats tidigare, men ha tålamod med mig.
En 1 Hz (signal vid varje 1 andra intervall) fyrkantsvåg från en astable multivibrator används som klocksignal räknaren S0 som räknar från 0 till 9 efter varje sekund. Efter 9 återställa värdena till 0. När S0 (4 bitar) blir 0000, har en klocksignal som ska genereras. Denna klocksignal tillämpas på S1 räknare som räknar från 0 till 5. När den når 5 och S0 blir 9, nästa puls kommer att göra både S1 & S0 noll.
När S1 (3 bitar) blir 000, en klocka skapas och tillämpas på M0. Detta är utsträckt till M1 precis som S1. Och liknande till S1 när M1 (också 3 bitar) blir 000, en klocka puls tillämpas på HH. HH är en 4-bitars räknare räknar från 1-12. Här blir varje gång HH 12, en klocka puls om används för att växla A till P eller P till A.
Varje S0, S1, M0 och M1 räknares data konverteras till 7 segment display format och tillämpas på en 7 segment display. HH kräver en binär till BCD (Binary Coded decimaler) omvandlare. Så, 7 segment visar showen tiden som det lagras i vippor.
Modulen larm använder en 8-bitars komparator för att acceptera den definierade användningstiden. Som vi förklarat tidigare de första 4 bitarna är tillägnad HH, de nästa 3 bitarna är M1 och den sista biten är att acceptera en/P. 8 bitar data betecknas A. Input från dip-switch ges till motsvarigheten. De motsvarande databitar tillämpas även från vippor. Den loic är att whn tid som räknas b te flip-lops är samma som för dip-switch, motsvarigheten A = B blir 1. Detta används för att växla en annan läpp-floppen (dess avsedda för funktionen ensam) som är ansluten till larmet. Så, när A = B, alarmet ljuder och det håller klingande tills flip-flop återställs manuellt till 0.
Några av er kanske tror, vi kan ställa in alarmet bara för tider som 4:30, 4:40 och under dessa tider A = B kommer att vara '1' i 10 minuter. Till exempel, om vi ställer in te larm för 4:30 PM, sedan komparator utgång A = B kommer att vara 1 för 4:30 PM till 4:39 PM eftersom endast M1 värden jämförs och M1 värden är samma.
Så A = B är 1 i 10 minuter. Är det ett problem? Det är inte eftersom de flesta flip-fops för närvarande anställda är kanten utlöses. Vad utlöser kanten? För att förstå att vi måste förstå flip-flops.