Vous êtes sur la page 1sur 5

TP n°3 : Affichage d’un nombre hexadécimal sur un afficheur

7-segments.

Elèves : AIT MEBROUK Sofiane / DURU Ugochukwu Uzoma


Groupe EEA601A11

3.1 Etude du fonctionnement des afficheurs 7-segments

3.1.1 Comportement électrique

23.
Pour allumer une led, il faut appliquer une tension de 0 volt (soit un niveau logique bas) sur les
signaux qui gèrent la cathode ou l’anode. En effet , les cathodes et les anodes sont mis en commun à
l’alimentation. Pour que le courant puisse passer dans la diode il faut que le potentiel dans chaque
partie de la LED soit différente. Ainsi, pour avoir une différence de potentielle sur la LED afin
qu’elle s’allume il faut appliquer un niveau bas sur la cathodes ou l’anode par rapport à
l’alimentation.

24.
La table de vérité pour le codage des digits du code hexadécimal est la suivante :

hex CG CF CE CD CC CB CA
0 1 0 0 0 0 0 0
1 1 1 1 1 0 0 1
2 0 1 0 0 1 0 0
3 0 1 1 0 0 0 0
4 0 0 1 1 0 0 1
5 0 1 1 0 0 0 0
6 0 0 0 0 0 1 0
7 1 1 1 1 0 0 0
8 0 0 0 0 0 0 0
9 0 0 1 0 0 0 0
A 0 0 0 1 0 0 0
B 0 0 0 0 0 1 1
C 1 0 0 0 1 1 0
D 0 1 0 0 0 0 1
E 0 0 0 0 1 1 0
F 0 0 0 1 1 1 0

3.1.2 Signaux d’entrée

25. Les digits hexadécimaux vont de 0 à 15 ; ce qui correspond à du 4 bits. Ainsi le nombre minimal
de bits à utiliser est 4 bits.
On appellera hex ce signal de codage.

26.Le nombre minimal de bits aux choix d’un des 4 afficheurs est 3 bits car il y 4 afficheurs.
On appellera aff ce signal.

27. Le nombre de bits nécessaires à l’illumination ou à l’extinction du point est 1 bit.


On appellera pt ce signal.

3.1.3 Signaux de sortie


28. La taille du bus qui adresse les cathodes d’un afficheur 7-segments est de : [6,0] soit 7 bits.
On appellera cathodes ce signal.

29. La taille du bus qui adresse les anodes du bloc des 4-afficheurs est de : [3,0] soit 4 bits
On appellera anodes ce signal.

3.2 Description VHDL du module hex2seg

30.
HEX [3;0] CATHODES [6;0]

AFF [2;0] ANODES [3;0]

PT[0] DP [0]

HEX2SEG

Entrées du HEX2SEG Sorties du HEX2SEG

Symbole hex2seg

31.
Pour déclarer l’entité du symbole, nous avons définis les entrées et les sorties du port comme étant
des bus. Ainsi nous avons écrit le code suivant :
- - Déclaration d’un afficheur 7-segments
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity hex2seg is
Port ( hex : in STD_LOGIC_VECTOR (3 downto 0);
aff : in STD_LOGIC_VECTOR (1 downto 0);
pt : in STD_LOGIC_VECTOR (0 downto 0);
cathodes : out STD_LOGIC_VECTOR (6 downto 0);
anodes : out STD_LOGIC_VECTOR (3 downto 0);
dp : out STD_LOGIC_VECTOR (0 downto 0));
end hex2seg;

32.
architecture Behavioral of hex2seg is
begin
with aff select
anodes<= "1110" when "00", -- L’anode 1 est sélectionnée
"1101" when "01", -- L’anode 2 est sélectionnée
"1011" when "10", -- L’anode 3 est sélectionnée
"0111" when "11"; -- L’anode 4 est sélectionnée
with hex select
cathodes<="1000000" when "0000",-- Correspond au codage du tableau
"1111001" when "0001",-- hexadécimal ci-dessus
"0100100" when "0010",
"0110000" when "0011",
"0011001" when "0100",
"0110000" when "0101",
"0000010" when "0110",
"1111000" when "0111",
"0000000" when "1000",
"0010000" when "1001",
"0001000" when "1010",
"0000011" when "1011",
"1000110" when "1100",
"0100001" when "1101",
"0000110" when "1110",
"0001110" when "1111";
dp<=not pt; -- Codage du point
end Behavioral;

La logique séquentielle est un type de logique dont les résultats ne dépendent pas seulement des
données actuellement traitées mais aussi des données traitées précédemment. L’architecture décrit
une entité qui ne dépend pas des états précédents sur les entrées. Ainsi la nature de ce module est
combinatoire.

3.3 Synthèse, implémentation et configuration


33.
Le fichier ucf que nous avons écrit est le suivant :
- - Codage de la carte Nexys pour les afficheurs 7-segments
- - Affectation des entrées et sorties de l’entité au Spartan 6
NET "hex<0>" LOC = "T10" ;
NET "hex<1>" LOC = "T9" ;
NET "hex<2>" LOC = "V9" ;
NET "hex<3>" LOC = "M8" ;
NET "aff<0>" LOC = "V8";
NET "aff<1>" LOC = "T5";
NET "pt" LOC = "U8";
NET "cathodes<0>" LOC = "T17";
NET "cathodes<1>" LOC = "T18";
NET "cathodes<2>" LOC = "U17";
NET "cathodes<3>" LOC = "U18";
NET "cathodes<4>" LOC = "M14";
NET "cathodes<5>" LOC = "N14";
NET "cathodes<6>" LOC = "L14";
NET "anodes<0>" LOC = "N16";
NET "anodes<1>" LOC = "N15";
NET "anodes<2>" LOC = "P17";
NET "anodes<3>" LOC = "P18";
NET "dp" LOC = "M13";
Schématic de la carte Nexys 3

Questions 35 et 36 faits sur carte Nexys 3