MezData-Logo Lösungen Button :ISP: 7 Segmentanzeige

Synopsis [TIL311.pdf] [TIL311.jpg]

Aufgabe: Entwickeln Sie einen Code-Umsetzer BCD -> 7 Segmentanzeige

Mit den 4 DIP-Schalter eingestellte BCD-Zahl (Ziffern 0 bis 9 möglich) wird in der 7-Segment-Anzeige angezeigt.

Klassisch

Zn X3 X2 X1 X0  a   b   c   d   e   f   g 
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1

Füllen Sie die Tabelle aus für 0..9. Die Zustände 10..15 kommen bei BCD nicht vor und können als Don't care verwendet werden. Entwickeln Sie mit KV-Diagrammen die Schaltfunktionen für a..g und daraus einen Schaltplan. Testen Sie Ihre Lösung mit LogiFlash oder dem Digtalboard.

ISP

Hier der Vorgabe-Quellcode, Ihr Job ist es, die Funktionstabelle zu erstellen.

@dcset; "Don’t-Care-Set: Auswirkungen siehe Simulationsergebnisse
DECLARATIONS "*************** Ein- und Ausgänge ***************************
  in3..in0 PIN 25,26,27,28; "Eingänge
  a,b,c,d,e,f,g PIN 4,3,6,7,8,9,10 ISTYPE'BUFFER,COM'; "Anzeige-Ausgänge ohne Flipflops
  "********************* SET Deklarationen ********************************
  dipschalter = [in3..in0]; "Zusammenfassung der Eingänge
  leds = [a,b,c,d,e,f,g]; "Zusammenfassung der Ausgänge

EQUATIONS "****************************************************************

TRUTH_TABLE "************** Funktionstabelle ******************************
  (dipschalter -> [a ,b ,c ,d ,e ,f ,g ]) "Eingänge -> Ausgänge
             0 -> [1 ,1 ,1 ,1 ,1 ,1 ,0 ]; " LEDs high-aktiv!
             1 -> [ ]; "     a
             2 -> [ ]; "    ---
             3 -> [ ]; " f | g | b
             4 -> [ ]; "    ---
             5 -> [ ]; " e | d | c
             6 -> [ ]; "    ---
             7 -> [ ];
             8 -> [ ];
             9 -> [ ];

TEST_VECTORS "************* Simulation ************************************
  (dipschalter -> leds); "oder [in3..in0]->[a,b,c,d,e,f,g]
  @const i = 0; "Angangswert der Zählvariablen
  @repeat 16 "in { } folgendes 16 mal wiederholen
    { i -> [.x.,.x.,.x.,.x.,.x.,.x.,.x.];
      @const i = i+1; "Zählvariable um 1 erhöhen
    }
END

loes.html