Vous êtes sur la page 1sur 7

TP3 : Architecture des ordinateurs 1ere année ingénieurs

INTERFACE PARALLELE (P.P.I. 8255)

On donne en figure1 le Circuit de l’interface parallèle 8255 et le mot de control.

Figure 1 : Circuit de l’interface parallèle 8255 et le mot de control

❖ Travail Pratique :

Partie 1 : Manipulations sur l’a fficheur7 segments et LEDs


Description du dispositif :

Soit l 'interface parallèle représentée avec le circuit ci-dessous.


TP3 : Architecture des ordinateurs 1ere année ingénieurs
TP3 : Architecture des ordinateurs 1ere année ingénieurs

Tableau I. Instructions proposées pour le travail demandé.

OUT Adresse, AL Écrire le contenu du registre AL vers l'interface spécifiée par l’Adresse.
IN AL, Adresse Lire dans le registre AL le contenu de l'interface spécifiée par
l’Adresse.
MOV Registre, Valeur Copier la Valeur dans le Registre (adressage immédiat)
MOV Registre1, Registre2 Copier le Registre2 dans le Registre 1
ROL Registre

NOP No Operation
CMP Registre, Valeur Effectue (Registre – Valeur), le résultat est perdu et actualise les flags :
AF CF OF PF SF ZF
XOR registre1, registre2 XOR : registre1= registre1 registre2
DEC Registre Registre = Registre -1
JNZ étiquette IP= étiquette si ZF = 0
JNE étiquette
JLE étiquette IP = étiquette si CF=1 ou ZF =1
JBE étiquette
JMP étiquette IP = étiquette.
{id_Adr} DB valeur Une directive qui définit un octet dans la mémoire est l’initialise avec
valeur. L’adresse de cette case est accessible via id_Adr.

Identificateur EQU valeur Déclaration de constante, une directive pour l’assembleur.

Travail demandé :
1. Écrire un programme qui permet d'allumer La LED verte et affiche 4 sur l'afficher 7 segments.

2. Écrire un programme qui permet d'allumer Les LEDs rouges et affiche 9 sur l'afficher 7 segments.

3. Écrire un programme qui affiche un compteur modulo 10 sur l’afficheur 7 segment, la transition
est effectuée chaque seconde. Une des quatre LEDs doit s’allumer après chaque séquence complète
du compteur.
TP3 : Architecture des ordinateurs 1ere année ingénieurs

II-Feux de Circulation

Figure 2

On désire écrire un programme (en assembleur 8086/8088) pour contrôler les feux de
circulation placés à l'intersection de deux voix. On dispose sur le 'port extérieur' de 16 lampes
'Leds' branchées sur le port de sortie commandés par les ports A et B du 8255.

A B

D
C
TP3 : Architecture des ordinateurs 1ere année ingénieurs

Le tableau suivant donne les commandes binaires pour les différentes combinaisons d'allumage
des feux :

Feux B Feux D Feux A Feux C

Rouge Jaune Vert Rouge Jaune Vert Rouge Jaune Vert Rouge Jaune Vert

1 0 0 1 0 0 0 0 1 0 0 1

1 0 0 1 0 0 0 1 0 0 1 0

0 0 1 0 0 1 1 0 0 1 0 0

0 1 0 0 1 0 1 0 0 1 0 0

Précautions :

– Les Feu A et C sont égaux.


– Les Feu B et D sont égaux.
– Le Feu A est commandé par le port B bas (PB0 : lié au led vert, PB1 : lié au led
jaune, PB2 : lié au led rouge).
– Le Feu C est commandé par le port B Haut (PB4 : lié au led vert, PB5 : lié au led
jaune, PB6 : lié au led rouge).
– Le Feu B est commandé par le port A bas (PA0 : lié au led vert, PA1 : lié au led
jaune, PA2 : lié au led rouge).
– Le Feu D est commandé par le port A Haut (PA3 : lié au led vert, PA4 : lié au led
jaune, PA5 : lié au led rouge).

1 : lampe allumée
0 : lampe éteinte

1) Donner pour chaque combinaison binaire l'état des feux A, B, C et D.


2) Remarquons que les feux suivent, alternativement la même séquence à savoir
* changer au vert (l'autre étant rouge)

* temps d'attente du vert

* changer au Jaune

* temps d'attente du Jaune

Il est alors intéressant d'écrire un seul sous-programme qu'on appellera 'SEQ'' pour piloter les
deux feux A et B. Seulement, 'SEQ' doit faire appel à deux sous programmes :

* CHANGE : pour déterminer la commande binaire d'allumage des feux A, B, C et D

* DELAY pour le temps d'attente qui dépend de la couleur du feux (vert ou Jaune).
TP3 : Architecture des ordinateurs 1ere année ingénieurs

D’où la structure du programme global de contrôle des feux.

Programme principal
‘FEU’

Séquence d’allumage
‘SEQ’

Valeur binaire et drapeau Paramètre de retard


de sélection

‘CHANGE’ ‘DELAY’

a) Procédure 'DELAY'

Une méthode pour obtenir un temps de retard (attente) est donnée par l'organigramme
suivant :

Delay

Initialisation du CX par 65535

Nop
Nop
Nop

Décrémenter CX

Non
CX=0 ?
Oui
Décrémenter DI

Non
DI=0 ?
Oui
Return

En utilisant une paire de registre (DI et CX par exemple) comme compteur, écrire le
programme correspondant.

b) Procédure : 'CHANGE'

Ce sous-programme est responsable du changement correspondant est le suivant :


TP3 : Architecture des ordinateurs 1ere année ingénieurs

CHANGE

Non
SI=1 ?

Oui
Faire la rotation de la donné
(dans BX) 8 fois à gauche

Envoyer la valeur de BL aux 8


lampes commandées par le port A
Et la valeur de BH Aux 8 lampes
commandés par le port B.

Return

1) Écrire le programme tout en expliquant l'utilité de la rotation de la donnée (valeur


binaire de commande), 8 fois
2) Écrire alors le programme 'SEQ' qui commande la séquence de chaque feux (A, B, C et
D)
3) Écrire le programme global de contrôle des feux 'FEU'.

Précaution : Une méthode pour obtenir un temps de retard (attente) est donnée par
l'organigramme suivant :

FEU

Initialisation du SI par 0

CALL SEQ

Initialisation du SI par 1

CALL SEQ

Vous aimerez peut-être aussi