Dezimalzahl auf 7 segment-Anzeige

Ich habe da ein großes problem mit VHDL für ein Projekt. Ich will sehen, auf 7-segment-Anzeige eine Nummer, die Benutzer-sets mit Schalter. Zum Beispiel, wenn das low-order-5-switches eingeschaltet sind, dann werden Sie stellen die binäre Zahl "11111", 31 in dezimal. So will ich sehen, dass 31 auf 7-segment-Anzeige.

Zu tun, dass ich Plane, diese Schritte:

  • Legen Sie die 5 Wert des switch in ein array
  • Konvertieren Sie das array in eine Ganzzahl Anzahl
  • Sehen die integer-Zahl in eine 7-segment-Anzeige,

Punkt 1) einfügen in ein array

     signal first: std_logic_vector (0 to 4);
     signal temp: integer range 0 to 9999:=0;
     for i in 0 to 4 loop
           first(i)<=SW(i);
     end loop;
     temp<=VEC_TOINT(first);
     HEX0<=INT_TO7SEG(temp);

Punkt 2) Vektor von Integer

     Function VEC_TOINT(Vector: in std_logic_vector) return integer is
     variable temp: bit_vector(Vector'range);
     variable result: integer :=0;
     Begin
          for index in Vector'range loop
               result:=result * 2 + bit'pos(temp(index));
          end loop;
          if Vector(Vector'left) = '1' then 
               result:=(-result)-1;
          end if;
          return result;
     End VEC_TOINT;

Für den Dritten Punkt im moment habe ich keine Idee.

Wenn Sie wirklich keine Idee haben für den Dritten Teil sollten Sie bei einem anderen Karriere-Pfad. Wenn auf der anderen Seite, werden Sie eine Idee haben, dann sollten Sie uns sagen, was Sie verstehen, über das problem. Wie es ist, die Sie nur bitten uns zu tun, Ihre Hausaufgaben für Sie.
Deine 7-segment Anzeige hat einen eingebauten encoder, oder, wahrscheinlicher, akzeptiert 7-bit pro Zeichen, jedes bit für ein segment. Mit der Anzeige kommen sollte, eine Dokumentation (oder vielleicht die Nummerierung auf den Steckverbindern), die angibt, welches bit entspricht dem segment. Wenn Sie sind nummeriert, in der rechts-Links-Zeilen von oben nach unten, dann 1,2,4,6,7 wäre das Zeichen "5" und 1,3,6 wäre das Zeichen "7". (Zeichnen Sie aus.) Eine einfache 10-byte-übersetzung-Tabelle konvertieren von zahlen, um Ihre segment-Kodierungen.
Die Ziffern A-F sind ein wenig schwieriger. A, C, E, F sind leicht, B ist in der Regel gerendert als "b", D in der Regel als "d".

InformationsquelleAutor WhatElse88 | 2014-01-01

Schreibe einen Kommentar