Faculté des Sciences de Tunis (FST)
Electroniques Numériques
TD-TP 3 :
Système de Contrôle de la circulation dans
l'Émulateur 8086
25/11/2024 Élaboré par Aymen Hlali 1
Faculté des Sciences de Tunis (FST)
Electroniques Numériques
Gestion de Trafic en Temps Réel avec l'8086
❑ Ce système de gestion du trafic utilise des feux de signalisation pour chaque direction
(Sud, Est, Nord, Ouest), avec trois feux par direction :
▪ Sud : 3 bits pour gérer les feux (Rouge, Jaune, Vert).
▪ Est : 3 bits pour gérer les feux (Rouge, Jaune, Vert).
▪ Nord : 3 bits pour gérer les feux (Rouge, Jaune, Vert).
▪ Ouest : 3 bits pour gérer les feux (Rouge, Jaune, Vert).
❑ Le système gère 12 bits au total (3 bits par direction).
❑ Ces bits indiquent l'état de chaque feu, qui peut être activé ou désactivé.
25/11/2024 Élaboré par Aymen Hlali 2
Faculté des Sciences de Tunis (FST)
Electroniques Numériques
Gestion de Trafic en Temps Réel avec l'8086
❑ Dans ce système, le port numéro 4 permet au 8086 de communiquer avec les feux de
signalisation. Il envoie et reçoit des données sur les états des feux via ce port.
❑ Le port permet de transmettre ou récupérer ces 12 bits (3 bits par direction) pour
gérer la signalisation.
25/11/2024 Élaboré par Aymen Hlali 3
Faculté des Sciences de Tunis (FST)
Electroniques Numériques
Gestion de Trafic en Temps Réel avec l'8086
❑ Le processeur peut envoyer les états des feux au port 4 en utilisant l'instruction OUT.
❑ Cette instruction permet d'écrire des données dans un port de périphérique.
25/11/2024 Élaboré par Aymen Hlali 4
Faculté des Sciences de Tunis (FST)
Electroniques Numériques
Gestion de Trafic en Temps Réel avec l'8086
❑ Le processeur utilise l'instruction IN pour lire les données d'un périphérique connecté à
un port d'entrée/sortie, et récupérer l'état actuel des feux de signalisation.
➢ Une fois que les données sont lues dans le registre AX, le processeur peut les analyser.
25/11/2024 Élaboré par Aymen Hlali 5
Faculté des Sciences de Tunis (FST)
Electroniques Numériques
Gestion de Trafic en Temps Réel avec l'8086
❑ Le mot de contrôle des feux est une valeur binaire composée de 12 bits, où chaque bit
représente l'état d'un feu.
25/11/2024 Élaboré par Aymen Hlali 6
Faculté des Sciences de Tunis (FST)
Electroniques Numériques
Gestion de Trafic en Temps Réel avec l'8086
❑ Exemple Pratique : Pour une intersection avec les états suivants :
▪ Sud : Rouge actif, Jaune et Vert éteints → 001
▪ Est : Vert actif, Rouge et Jaune éteints → 100
▪ Nord : Jaune actif, Rouge et Vert éteints → 010
▪ Ouest : Tous éteints → 000
❑ Pour envoyer le mot au port 4, convertissez la valeur binaire en hexadécimal.
000 010 100 001 (binaire) = 0x0A1 (hexadécimal)
❑ Une fois calculé, le mot de contrôle est envoyé au port 4 à l'aide de l'instruction OUT.
25/11/2024 Élaboré par Aymen Hlali 7
Faculté des Sciences de Tunis (FST)
Electroniques Numériques
Gestion de Trafic en Temps Réel avec l'8086
Application 1 : Gestion Basique des Feux de Signalisation
Écrire un code en assembleur pour réaliser les tâches suivantes :
1. Mettre le feu de signalisation en rouge pour tous les côtés, en récupérant le mot
de contrôle à partir de l'emplacement mémoire (TFS).
2. Appliquer un délai d'une seconde.
3. Échanger le contenu des registres AX et BX.
4. Obtenir le statut actuel des feux de signalisation, puis envoyer ce statut à
l'emplacement mémoire (TFR).
25/11/2024 Élaboré par Aymen Hlali 8
Faculté des Sciences de Tunis (FST)
Electroniques Numériques
L'instruction de boucle inconditionnelle (LOOP)
❑ L'instruction LOOP est utilisée en langage assembleur pour créer des boucles, permettant
d'exécuter un bloc d'instructions plusieurs fois de manière répétée.
❑ Exemple de code :
▪ L'instruction LOOP décrémente automatiquement le registre CX à chaque itération.
▪ Si CX atteint zéro, la boucle s'arrête.
25/11/2024 Élaboré par Aymen Hlali 9
Faculté des Sciences de Tunis (FST)
Electroniques Numériques
L'instruction de boucle inconditionnelle (LOOP)
Application 2 : Écrire un code en assembleur pour réaliser les actions suivantes en
utilisant une boucle (Loop) :
1. Mettre tous les feux de signalisation au rouge pour chaque côté, en récupérant le
mot de contrôle à partir de l'emplacement mémoire (TFS).
2. Appliquer un délai d'une seconde.
3. Échanger le contenu des registres AX et BX.
4. Obtenir le statut actuel des feux de signalisation et l'envoyer à l'emplacement
mémoire (TFR).
5. Passer les feux de signalisation au vert pour la rue principale (Est et Ouest), tout
en maintenant le rouge pour les rues secondaires (Nord et Sud).
6. Récupérer le mot de contrôle à partir de l'emplacement mémoire (TFS) et
appliquer un délai d'une seconde.
25/11/2024 Élaboré par Aymen Hlali 10