2016-03-27 14 views
0

Ich benutze Digilent Basys 3 Board. Es hat 4 x 7-Segment-Anzeigen. Derzeit sind meine CodesAnzeigen verschiedener Zahlen auf 7 Segment

module segmentdisplay(input clk, 
         output segA, segB, segC, segD, segE, segF, segG, segDP,D1,D2,D3,D4 
); 


assign D1 = 1'b1; //to switch off the Right most 7 segment display 

assign {segA, segB, segC, segD, segE, segF, segG, segDP} = 8'b00100100; // light the leds to display '2' 

endmodule 

ab sofort, alle meine drei 7 Segmente zeigen die Ziffer "2".

Ich verstehe, dass, dass alle 4 7segments auf den gleichen a gebunden sind, b, c, d, e, f, g

Wie ich sie '1' '2' '3' auf der Messe machen gleiche Zeit? Danke Leute.

+1

Normalerweise sind die Kathodenstifte mit den Segmentbits und die Anodenstifte mit "D1 ... D4" verbunden. Sie müssen einen Zeitmultiplexalgorithmus implementieren, der die Segmentbits entsprechend auf die Ein-Hot-kodierten Anodenstifte umschaltet. – Paebbels

Antwort

0

7-Segment-Anzeige arbeitet mit 4 Eingabe bei D1 bis D4, und Sie haben Recht, alle 4 Anzeigen verwendet die gleiche a bis g.

Der Trick besteht darin, das Display so einzustellen, dass nur eine 7-Segment-Anzeige aufleuchtet und die Nummer zu jedem Zeitpunkt anzeigt. Die Dauer, in der der Code zur nächsten Anzeige wechselt, um die nächste Nummer anzuzeigen, sollte jedoch sehr gering sein.

Was bedeutet es im Wesentlichen, dass bei einer so schnellen Rate der Umschaltung zwischen D1 bis D4, und während jedes Display zeigt eine andere Nummer, unsere Augen sind in der Annahme, dass die Displays tatsächlich zeigt ein paar Zahlen auf einmal (oder in deinem Fall 3).

Da Sie nur eine 3-stellige Nummer anzeigen möchten, sollte der Code nur zwischen D2 bis D4 wechseln, mit dem entsprechenden Eingang für die anzuzeigende Ziffer.