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

 

@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 -> [0 ,1 ,1 ,0 ,0 ,0 ,0 ]; "     a
             2 -> [1 ,1 ,0 ,1 ,1 ,0 ,1 ]; "    ---
             3 -> [1 ,1 ,1 ,1 ,0 ,0 ,1 ]; " f | g | b
             4 -> [0 ,1 ,1 ,0 ,0 ,1 ,1 ]; "    ---
             5 -> [1 ,0 ,1 ,1 ,0 ,1 ,1 ]; " e | d | c
             6 -> [1 ,0 ,1 ,1 ,1 ,1 ,1 ]; "    ---
             7 -> [1 ,1 ,1 ,0 ,0 ,0 ,0 ];
             8 -> [1 ,1 ,1 ,1 ,1 ,1 ,1 ];
             9 -> [1 ,1 ,1 ,1 ,0 ,1 ,1 ];

TEST_VECTORS "************* Simulation ************************************
  (dipschalter -> leds); "oder [in3..in0]->[a,b,c,d,e,f,g]
  0 -> .x.;
  @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

 Ablaufdiagramme BCD-7-Segment-Codeumsetzer

ohne @dcset (Don’t-Care-Set) mit @dcset (Don’t-Care-Set)
Vom Compiler erzeugte Logikgleichungen
ohne @dcset (Don’t-Care-Set)
Vom Compiler erzeugte Logikgleichungen
mit @dcset (Don’t-Care-Set)
a = (!in3 & !in2 & !in0
  #   in3 & !in2 & !in1
  #  !in3 &  in1
  #  !in3 &  in2 &  in0);

b = (!in3 &  in1 &  in0
  #  !in2 & !in1
  #  !in3 & !in1 & !in0
  #  !in3 & !in2);

c = (!in2 & !in1
  #  !in3 &  in2
  #  !in3 &  in0);

d = (!in3 & !in2 & !in0
  #  !in3 &  in1 & !in0
  #   in3 & !in2 & !in1
  #  !in3 &  in2 & !in1 &  in0
  #  !in3 & !in2 &  in1);

e = (!in2 & !in1 & !in0
  #  !in3 &  in1 & !in0);

f = (!in2 & !in1 & !in0
  #  !in3 &  in2 & !in0
  #   in3 & !in2 & !in1
  #  !in3 &  in2 & !in1);

g = (!in3 &  in2 & !in0
  #   in3 & !in2 & !in1
  #  !in3 &  in2 & !in1
  #  !in3 & !in2 &  in1);
a = (!in2 & !in0
  #   in3
  #   in1
  #   in2 &  in0);

b = ( in1 &  in0
  #  !in2
  #  !in1 & !in0);

c = (!in1
  #   in2
  #   in0);

d = ( in1 & !in0
  #   in3
  #   in2 & !in1 &  in0
  #  !in2 &  in1
  #  !in2 & !in0);

e = (!in2 & !in0
  #   in1 & !in0);

f = ( in2 & !in0
  #   in3
  #   in2 & !in1
  #  !in1 & !in0);

g = ( in2 & !in0
  #   in3
  #   in2 & !in1
  #  !in2 & in1);