Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Final 1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 16

Master Systèmes Electroniques et Energies Renouvelables

Mini projet : Algorithme et programmation avancée

DECODEUR

Realisé par :
HIDA Hala Encadré par :
Pr.R.LASRI

Année universitaire : 2023-2024


Table des matières :

I. Introduction générale : ................................................................................................................... 3


II. Etude des decodeur : ...................................................................................................................... 3
Definition .................................................................................................................................... 3
Principe d’un décodeur 1 parmi 4 .............................................................................................. 4
1. Table de vérité : ...................................................................................................................... 5
2. Equations de sorties : ............................................................................................................. 5
3. Logigramme : .......................................................................................................................... 5
Synthèse de décodeurs DCB 7segments : .................................................................................. 5
1. Définition ................................................................................................................................ 5
2. Table de vérité ........................................................................................................................ 6
3. Équations logiques de sorties :............................................................................................... 6
Décodeurs en circuit intégrés : ................................................................................................... 7
1. Décodeur B.C.D 7442 : ............................................................................................................ 7
2. Décodeurs de grande capacité : ............................................................................................. 7
III. Programme Python : ................................................................................................................... 7
Définition : .................................................................................................................................. 7
Explication du code utilisé : ....................................................................................................... 8
1. Fonction binary to decimal (binary) : ..................................................................................... 8
2. Fonction convert_binary_to_decimal () :............................................................................... 9
3. convert_binary_to_decimal() ............................................................................................... 10
Le code complet et l’execution : .............................................................................................. 10
1. Le code complet .................................................................................................................... 10
2. L’exécution : .......................................................................................................................... 13
3. Code Source : ........................................................................................................................ 14
........................................................................................................................................................... 15
IV. Conclusion : ............................................................................................................................... 16

2
I. Introduction générale :

La logique combinatoire concerne l'étude des fonctions dont la valeur de sortie ne dépend
que de l'état logique des entrées se traduisant par une modification de la valeur des sorties et
non pas non plus de ses états antérieurs : à chaque combinaison des variables d'entrée
correspond toujours une seule combinaison des fonctions de sortie.

Figure 1 : circuit combinatoire

La transmission de données nécessite fréquemment des opérations de conversion, de


transpostage et d’aiguillage. On utilise pour cela des circuits combinatoires. Pour réaliser un
circuit logique combinatoire, le concepteur doit utiliser plusieurs portes logiques élémentaires.
Pour faciliter sa tâche, les fabricants fournissent des circuits sous forme intégrés comportant
chacun plusieurs portes à des degrés d’intégration différents.
Il existe plusieurs dispositifs logiques combinatoires couramment utilisé dans les systèmes
numériques. On peut citer les codeurs, les décodeurs, les transcodeurs, les multiplexeurs, les
démultiplexeurs, les comparateurs …

II. Etude des decodeur :


Definition

Un décodeur est un circuit logique combinatoire qui a une entrée binaire de n bits permettant
2ncombinaisons et M sorties telles que 2n≥M.

3
Figure.2 : schéma fonctionnel de décodeur

Suivant le type de décodeur, la sortie peut traduire deux fonctions :

• Convertisseur de code à un code desortie d'entrée correspond un code de


sortie.

Exemple : Un décodeur binaire octal possède 3 bits d'entrés permettant 23=8 combinaisons
pour activer chacun des 8 sortie de l'octal.

• Sélecteur de sortie : Une seule sortie parmi les M disponibles est activée à la fois
en fonction de la valeur binaire affichée à l'entré. Ces fonctions permettent
d'activer (sélectionner) un circuit intégré parmi plusieurs.

Principe d’un décodeur 1 parmi 4

Pour pouvoir activer toutes les 4 voies on a besoin de 2 bits à l'entrée car c'est 22=4

Figure 3 : Schéma de principe d’un Décodeur

4
1. Table de vérité :

2. Equations de sorties :

3. Logigramme :

Remarque :
Certains n'utilisent pas toute la gamme de 2n combinaisons d'entrées possibles. C'est le cas du
décodeur DCB décimal qui a 4 bits d'entrée et 10 sorties donc une seule est active dans chacune
des 10 représentations du DCB

Synthèse de décodeurs DCB 7segments :


1. Définition

Les 10 chiffres décimaux (0 à 9) et parfois les caractères de l'hexadécimal (A à F) peuvent être


configurés au moyen de 7 segments (voir ci-dessous). Chaque segment est constitué d'un
matériau qui émet de la lumière lorsqu'il est traversé par un courant. Les matériaux les plus
utilisés sont les LED et les filaments incandescents.

5
Figure 4 : Disposition des 7 segments

2. Table de vérité

3. Équations logiques de sorties :

6
Décodeurs en circuit intégrés :
1. Décodeur B.C.D 7442 :

Le décodeur B.C.D est un décodeur à quatre bits d’entrée et à dix sorties, l’une d’entre
elles étant seule validée à zéro. Les dix combinaisons de sortie sur les seize possibles
sont employées pour désigner les dix chiffres décimaux 0 à 9.

a) Table de vérité :

On note que pour toute combinaison supérieure à 9 (1001) à l’entrée, aucune sortie n’est validée
(toutes les sorties sont à l’état haut).

2. Décodeurs de grande capacité :

Compte tenu du nombre limité de connexions sur un circuit intégré, il est souvent utile de mettre
en cascade les décodeurs pour permettre le décodage d’un grand nombre de combinaisons.
Grace aux entrés de validation, on peut augmenter notablement la capacité du système de
décodage.

III. Programme Python :


Définition :

Python est un langage de programmation interprété, orienté objet, haut niveau et


multiplateforme. Il est populaire en raison de sa simplicité, sa clarté et sa polyvalence, ce qui
le rend adapté à une variété de tâches de programmation, allant de l'analyse de données à la
création d'applications web, en passant par la science des données, l'intelligence artificielle,
l'automatisation de tâches, etc.

7
Python est également largement utilisé dans l'enseignement de la programmation, car il
possède une syntaxe facile à comprendre et une large communauté d'utilisateurs qui offrent
une assistance et une documentation en ligne. Il est également open-source, ce qui signifie
que le code source de Python est disponible gratuitement et que tout le monde peut le
modifier ou le distribuer.

Python est livré avec une bibliothèque standard complète qui comprend des modules pour la
gestion de fichiers, la manipulation de chaînes de caractères, la gestion de réseaux, les
mathématiques, les graphiques, les bases de données, etc. En outre, Python a également une
grande variété de bibliothèques tierces, telles que NumPy, Pandas, Matplotlib, TensorFlow,
etc., qui permettent de développer des applications plus avancées pour des tâches
spécifiques.

En résumé, Python est un langage de programmation polyvalent et accessible, qui offre une
variété de fonctionnalités et de bibliothèques pour répondre à des besoins de programmation
divers et variés.

Explication du code utilisé :

Le but de ce code est prend un nombre binaire à 4 bits en entrée de l'utilisateur, le convertit en
décimal, puis affiche un motif graphique correspondant à ce nombre décimal.

1. Fonction binary to decimal (binary):

8
Cette fonction prend une chaîne binaire en argument et retourne la valeur décimale correspondante.

decimal = 0: Initialise la variable decimal à 0.

for i in range(len(binary)): : Parcourt chaque bit de la chaîne binaire.

decimal += int(binary[i]) * 2**(len(binary)-1-i) : Ajoute à décimal la valeur du bit actuel multiplié par
2 élevé à la puissance correspondante.

return decimal : Renvoie la valeur décimale résultante.

2. Fonction convert_binary_to_decimal () :

….

9
Cette fonction gère l'interaction avec l'utilisateur pour la conversion du binaire en décimal et
l'affichage des motifs correspondants.
Boucle while True : : Crée une boucle infinie pour permettre une interaction continue.
Try : : Utilise un bloc try-except pour gérer les exceptions, notamment l'interruption du clavier
(Ctrl+C).
If len(binary_input) == 4 and all(bit in '01' for bit in binary_input): : Vérifie si l'entrée de
l'utilisateur est valide (4 bits et composée uniquement de 0 et 1).
decimal_value = binary_to_decimal(binary_input): Appelle la fonction binary to decimal pour
convertir le binaire en décimal.
for row in pattern[decimal_value]: print(' '.join(row)): Affiche le motif graphique
correspondant au nombre décimal.
except KeyboardInterrupt: : Capture l'interruption du clavier (Ctrl+C) pour permettre une
sortie propre du programme.

3. convert_binary_to_decimal()

Une appel à la fonction principale : lance l'exécution du programme en appelant la fonction


principale

Le code complet et l’execution :


1. Le code complet
def binary_to_decimal(binary):
decimal = 0
for i in range(len(binary)):
decimal += int(binary[i]) * 2**(len(binary)-1-i)
return decimal

10
def convert_binary_to_decimal():
# Votre motif de segments
pattern = [
[['#', '#', '#'],
['#', ' ', '#'],
['#', ' ', '#'],
['#', ' ', '#'],
['#', '#', '#']],

[[' ', '#', ' '],


[' ', '#', ' '],
[' ', '#', ' '],
[' ', '#', ' '],
[' ', '#', ' ']],

[['#', '#', '#'],


[' ', ' ', '#'],
['#', '#', '#'],
['#', ' ', ' '],
['#', '#', '#']],

[['#', '#', '#'],


[' ', ' ', '#'],
['#', '#', '#'],
[' ', ' ', '#'],
['#', '#', '#']],

[['#', ' ', '#'],


['#', ' ', '#'],
['#', '#', '#'],
[' ', ' ', '#'],
[' ', ' ', '#']],

[['#', '#', '#'],


['#', ' ', ' '],
['#', '#', '#'],
[' ', ' ', '#'],
['#', '#', '#']],

[['#', '#', '#'],


['#', ' ', ' '],
['#', '#', '#'],
['#', ' ', '#'],
['#', '#', '#']],

[['#', '#', '#'],


[' ', ' ', '#'],
[' ', ' ', '#'],
[' ', ' ', '#'],
[' ', ' ', '#']],

11
[['#', '#', '#'],
['#', ' ', '#'],
['#', '#', '#'],
['#', ' ', '#'],
['#', '#', '#']],

[['#', '#', '#'],


['#', ' ', '#'],
['#', '#', '#'],
[' ', ' ', '#'],
['#', '#', '#']]
]

while True:
try:
# Demander à l'utilisateur d'entrer le nombre
binaire
binary_input = input("Entrez un nombre binaire (4
bits) : ")

# Vérifier si l'entrée est valide


if len(binary_input) == 4 and all(bit in '01' for
bit in binary_input):
# Convertir le binaire en décimal
decimal_value =
binary_to_decimal(binary_input)

# Afficher le motif correspondant


if 0 <= decimal_value <= 9:
for row in pattern[decimal_value]:
print(' '.join(row))
else:
print("Nombre binaire invalide. Assurez-
vous que le nombre binaire a 4 bits et ne contient que des 0
et des 1.")
else:
print("Nombre binaire invalide. Assurez-vous
que le nombre binaire a 4 bits et ne contient que des 0 et des
1.")
except KeyboardInterrupt:
# Gérer l'interruption du clavier (Ctrl+C) pour
permettre une sortie propre
print("\nProgramme interrompu. Au revoir!")
break

# Appeler la fonction pour convertir et afficher le motif


correspondant
convert_binary_to_decimal()

12
2. L’exécution :

13
3. Code Source :

14
15
IV. Conclusion :

Le décodeur réalise dans ce mini projet représente une application pratique de


la théorie des codes BCD pour convertir efficacement des données binaires en
décimales. La compréhension approfondie des principes théorique sous-jacents,
tels que la représentation BCD et les opérations de conversion, a été essentiel
pour élaborer une solution fonctionnelle.

La programmation en Python a permis de traduire ces concepts théoriques en


un code informatique efficace et flexible. Les choix de structures de contrôle et
de manipulation des données ont été guidés par une approche modulaire pour
faciliter la maintenance et l’extension du code.

En résumé, ce mini projet a permis de combiner avec succès la théorie et la


pratique, démontrant la capacité à concevoir et implémenter un décodeur BCD
fonctionnel en utilisant le langage python.

16

Vous aimerez peut-être aussi