Προς το περιεχόμενο

SevenSegmentDisp σε γλωσσα vhdl


deppara

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα,εχω ενα προβλημα το οποιο ειναι,

πρεπει σε 2sevensegment απο τα 4 να εμφανιζεται σε δεκαεξαδικη μορφη ο αριθμος που ειναι στην κορυφη μιας στοιβας.

Εχω λοιπον

μετα απο εντολες καταληγω στην αποθηκευσει του αριθμου.

mem1:RAM

port map

(

clk,

ram_enable1,

ram_address2,

total_number,

Number_out

);

 

Number_out<=total_number;

 

καταληγω εδω.Εχω τον τελικο μου αριθμο και πρεπει να τον εμφανισω σε 2 seven segment.Αυτο δεν ξερω να το κανω.

Δημοσ.

Τα 7segment είναι είτε active-low είτε active-high, αυτό θα το δεις στο manual του board... Εκεί θα δεις και τα πίνς απο τα 2 7segment σε ποια πίνς του fpga αντιστοιχούν... Μετά δες τα Led του 7segment, έχουν μια αρίθμηση, ανάλογα με το αν βάλεις high τάση ή low στο αντίστοιχο πινάκι του led αυτό θα ανάψει ή θα σβήσει,

 

Έτσι μπορείς να στείλεις κάποιον αριθμό σε κάποια οντότητα (ή και απο την ίδια που είσαι...) και γίνεται μετατροπή αυτού σε 7segment και έξοδος προς τα πινάκια αυτού.

 

Να και ένας κώδικας που πέτυχα που είχα παλιά απο ένα board με active low 7segment... Δηλαδή όπου δίνεις 0 ανάβει το αντίστοιχο LED.

>LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY bcdto7seg IS
PORT(bcdin:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
seg7out: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END bcdto7seg;

ARCHITECTURE display OF bcdto7seg IS
BEGIN
seg7out<="1000000" WHEN bcdin="0000" ELSE --Για είσοδο 0
	"1111001" WHEN bcdin="0001" ELSE --Για είσοδο 1
	"0100100" WHEN bcdin="0010" ELSE --Για είσοδο 2
	"0110000" WHEN bcdin="0011" ELSE --Κτλπ
	"0011001" WHEN bcdin="0100" ELSE
	"0010010" WHEN bcdin="0101" ELSE
	"1000010" WHEN bcdin="0110" ELSE
	"1111000" WHEN bcdin="0111" ELSE
	"0000000" WHEN bcdin="1000" ELSE
	"0010000" WHEN bcdin="1001" ELSE
	"0111111";
END display;

 

Καλή τύχη...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...