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.
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.
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