Académique Documents
Professionnel Documents
Culture Documents
Système embarqué
Année Universitaire : 2022/2023.
Réalisé par :
TAMOUHH Younes
Encadré par : M.
Introduction :
Un système embarqué est un système informatique intégré dans un appareil ou une machine
plus large pour effectuer des tâches spécifiques. Contrairement à un ordinateur de bureau ou à
un ordinateur portable qui est conçu pour être polyvalent, un système embarqué est conçu pour
exécuter une fonction ou un ensemble spécifique de fonctions de manière dédiée.
Les systèmes embarqués se trouvent dans de nombreux appareils et machines couramment
utilisés, tels que les smartphones, les tablettes, les systèmes de navigation GPS, les appareils
électroménagers, les véhicules automobiles, les équipements médicaux, les dispositifs de
contrôle industriel, les drones, les systèmes de surveillance, les consoles de jeux vidéo, etc.
Les systèmes embarqués sont généralement basés sur des microcontrôleurs ou des
microprocesseurs spécialisés qui exécutent un logiciel spécifique. Ils intègrent souvent des
composants matériels et des interfaces dédiés pour se connecter à d'autres appareils, capteurs
ou actionneurs. Ces systèmes peuvent fonctionner de manière autonome ou être connectés à
d'autres systèmes ou réseaux pour échanger des données.
I. Le microcontrôleur Atmel 16 :
Les microcontrôleurs Atmel 16 sont des circuits intégrés programmables qui combinent un
processeur central, une mémoire, des périphériques d'entrée/sortie et d'autres fonctionnalités
sur une seule puce. Ils sont couramment utilisés dans une variété d'applications électroniques,
tels que les systèmes embarqués, les contrôleurs industriels, les dispositifs médicaux, les
appareils électroménagers et les jouets, pour n'en nommer que quelques-uns.
Atmel studio 7 :
Atmel Studio 7 est un environnement de développement intégré (IDE) spécifiquement conçu
pour la programmation des microcontrôleurs AVR et ARM de la société Atmel, qui est
maintenant une filiale de Microchip Technology. Il fournit un ensemble d'outils logiciels pour
faciliter la création, la compilation, la programmation et le débogage des applications destinées
aux microcontrôleurs Atmel.
Remarque :
Les afficheurs 7 segments peuvent être divisés en deux catégories principales : les
afficheurs à anode commune et les afficheurs à cathode commune. Dans un
afficheur à anode commune, les segments sont reliés à une alimentation positive
commune, tandis que dans un afficheur à cathode commune, les segments sont
reliés à une alimentation négative commune. Le choix entre les deux types dépend
de la configuration électrique du circuit dans lequel l'afficheur est utilisé.
Figure 1
L’interpretation :
Sous Proteus j’ai tracé la figure 2, le circuit d'affichage 7 segments avec un microcontrôleur
Atmega16, un décodeur BCD 7447 et un afficheur 7 segments :
1- microcontrôleur Atmega16 : générer les codes BCD correspondant aux chiffres à afficher sur
l'afficheur 7 segments. Il envoie ces codes au décodeur BCD 7447 pour contrôler les segments de
l'afficheur.
2- Le décodeur BCD 7447 : convertit les codes BCD en signaux de commande pour les segments de
l'afficheur 7 segments.
IV-Le code :
#define F_CPU 16000000 UL : Cette ligne définit la fréquence de l'horloge du microcontrôleur. Ici, la
fréquence est définie comme 16 MHz (16 000 000 Hz). Cela est généralement utilisé par les bibliothèques
pour effectuer des calculs de synchronisation.
#include <avr/io.h> : Cette ligne inclut le fichier d'en-tête io.h qui contient les définitions des registres et
des fonctions pour accéder aux broches d'E/S du microcontrôleur AVR.
#include <util/delay.h> : Cette ligne inclut le fichier d'en-tête delay.h qui contient des fonctions pour
introduire des délais dans le programme.
DDRD=0b11111111 ; Cette instruction configure les broches D0 à D7 du port D comme des broches de
sortie. Les broches D0 à D7 sont utilisées pour contrôler les sorties.
PORTD=0x00 ; Cette instruction initialise les broches D0 à D7 du port D avec une valeur de 0, ce qui
signifie que toutes les sorties sont à l'état bas.
DDRB=0b00000000 ; Cette instruction configure les broches B0 à B7 du port B comme des broches
d'entrée. Les broches B0 à B7 sont utilisées pour lire les entrées.
PORTB=0xFF ; Cette instruction active les résistances de pull-up internes pour les broches B0 à B7
du port B. Cela signifie que lorsque les broches ne sont pas connectées à un signal externe, elles
seront maintenues à l'état haut.
Switch (PINB) : Cette instruction vérifie la valeur lue sur les broches B0 à B7 du port B.
16-25. Les cas 1 à 9 correspondent aux différentes valeurs possibles lues sur les broches B0 à B7.
Selon la valeur lue, la broche D correspondante du port D est activée avec la même valeur. Par
exemple, si la broche B3 est lue, la broche D3 sera activée avec une valeur de 3.
Default : PORTD =0 ; : Si aucune des valeurs précédentes n'est lue, toutes les broches D du port D
sont désactivées (mise à l'état bas).
_delay_ms (200); Cette fonction introduit un délai de 200 millisecondes entre chaque itération de la
boucle while(1).
Après la réalisation du code j’ai stock le code sous le microcontrôleur Atmega16 finalement
j’ai lancé la simulation.
Cas 1 :
Cas 2 :