BCD zu 7-segment Decoder
Ich habe gerade angefangen, VHDL-coding, und jetzt haben, um einen BCD-code zu 7-segment decoder. Ich mache eine Verhaltens-design(es ist erforderlich), aber richtig, jetzt bin ich mit Mühe auf, wie man code im display.
Weiß ich, wie man code dieser decoder mit nur einem Eingang und einem Ausgang, jedoch haben wir einen zweiten Ausgang genannt DIGEN_L die als unsere Darstellung. Es ist ein active-low-bus-Ausgang ermöglicht es, dass jede Ziffer der 7-segment-Anzeige auf unserem board.
Sagte er uns nur das Programm zum '01110 also die vierte Ziffer ist immer auf und die anderen drei sind aus.
Ich nicht wissen, wie man code DIGEN_L in meinem code, und weiß nicht, was die Aussage eigentlich bedeutet (code-Weise). Kann jemand helfen?
Wenn keine Klärung in dieser Frage, einen Kommentar, und ich werde Sie auf Bearbeiten.
Hier ist mein code:
library IEEE;
ise IEEE.std_logic_1164.all;
library unisim;
use unisim.vcomponents.all;
entity decoder is
port( BCD: in STD_LOGIC_VECTOR (3 downto 0);
( SEGS_L: out STD_LOGIC_VECTOR(5 downto 0);
( DIGEN_L: out STD_LOGIC_VECTOR(3 downto 0));
end decoder;
architecture decoder_arc of decoder is
begin
process(BCD)
begin
DIGEN_L <= "0111";
case BCD is
when "0000"=> SEGS_L <="1111110"; -- '0'
when "0001"=> SEGS_L <="0110000"; -- '1'
when "0010"=> SEGS_L <="1101101"; -- '2'
when "0011"=> SEGS_L <="1111001"; -- '3'
when "0100"=> SEGS_L <="0110011"; -- '4'
when "0101"=> SEGS_L <="1011011"; -- '5'
when "0110"=> SEGS_L <="1011111"; -- '6'
when "0111"=> SEGS_L <="1110000"; -- '7'
when "1000"=> SEGS_L <="1111111"; -- '8'
when "1001"=> SEGS_L <="1111011"; -- '9'
when others=> SEGS_L <="-";
end case;
end process;
end decoder_arc;
- Bitte beachten Sie, dass, wenn andere=> SEGS_L <="-"; ist nicht synthetisierbare. Entweder ein richtiger Zuordnung (z.B. alle Lampen an, alle Lampen aus) innerhalb der case-Anweisung oder eine default-Zuweisung an die Spitze des Prozesses: decode_bcd_proc: Prozess (BCD) beginnen SEGS_L <= (others => '0'); case BCD ist ... Ende Prozess decode_bcd_proc;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also im Grunde, Sie haben eine 4-stellige Anzeige mit jeder Ziffer wird eine 7-segment-Anzeige.
Nun, Sie haben vier low-aktive Grabenes enin der Lage DIGEN_L für jede Ziffer. (Btw, warum hat der Vektor haben fünf bits?)
Die Idee hier ist, dass Sie den BCD-code zu 7-seg-decoder, wie Sie normalerweise tun würde. So haben wir unser Unternehmen
Nun, Sie sagte, wie Sie code, der den eigentlichen decoder, so BCD und SEVEN_SEG sollte klar sein. Ihrem professor gebeten, dass Sie liefern einen statischen Wert zu DIGEN_L. So einfach gehen Sie voran und tun:
Die Idee hier ist, dass alle 7-segment-anzeigen teilen die gleichen Signale für die einzelnen Segmente (SEVEN_SIG wenn man so will). Jedoch, alle Abläufe für die LEDs verbunden sind, um einzelne Zeilen, DIGEN_L (oder progrably ein transistor, gesteuert durch DIGEN_L).
Also, wenn Sie wechseln DIGEN_L schnell, während die Versorgung eine andere Ziffer auf jedem switch werden Sie sehen, dass alle vier Ziffern zeigen Ihre jeweiligen Zahl, da der persistence of vision.
Aber, in deinem Beispiel, werden Sie beginnen, mit nur einer Ziffer und einer zukünftigen Zuordnung zum anzeigen von zwei oder mehr stellen, wo Sie lernen werden, wie multiplex-und vielleicht beschäftigen Sie sich mit Puls-weiten-modulation für das Dimmen von einzelnen stellen.