Vous êtes sur la page 1sur 3

SUPAERO Niveau :3eme 15/16

Examen

Microprocesseurs- Microcontrôleurs-(I) Durée 2H

1. Question de cours: (4pts)

1.1) Donner le rôle des registres TRISA et TRISB.


1.2) Donner le rôle des bits C, Z et RP0 du registre STATUS.

2. Exercice 1 (4pts)
Soit une partie d’un programme assembleur comme suivant :

Ligne Etiquette Assembleur


………
1 Bcl MOVF PORTA,w
2 ANDLW 0XF0
3 MOVWF PORTB
4 CALL TEMPO
…….
5 GOTO Bcl
2.1) Commenter chaque ligne du programme.
2.2) Donner le traitement réalisé par cette partie du programme.

3. Exercice 2 (4pts)

3.1) Ecrire une partie d’un programme qui permet de configurer le port A en et le
port B en sortie.
3.2) Puis, écrire un code permet de lire le contenu de deux variables V_lo et V_hi et
d’écrire leurs contenus respectivement sur le port A et le port B.
3.3) faire l’appel d’un sous-programme de temporisation SP-tempo.

4. Exercice 3 (4pts)

Soit le sous-programme assembleur suivant :

Ligne Etiquette Assembleur


1 SPrg1 MOVLW 0X5F
2 MOVWF Compt1
3 L1 NOP
4 NOP
5 NOP
6 DECFSZ Compt1,f
7 GOTO L1
8 RETURN

4.1) Commenter chaque ligne de sous-programme.


1
SUPAERO Niveau :3eme 15/16

4.2) En simplifiant et en considérant un seul cycle par instruction, calculer le


nombre total Ntotal de cycles consommés par le sous-programme.
4.3) En prenant une durée de 1s par cycle, calculer la durée T réalisée par le
sous-programme en fonction de la constante N=0x5F.
4.4) Recalculer la valeur N de la constante à donner pour avoir une durée T
de 1ms.

5. Exercice 4 (4pts)
On veut réaliser une partie d’un programme permettant de simuler le feu tri
couleur d’un croisement routier.
Dans chaque voie est installé un panneau de 3 couleurs Rouge, Orange et Vert.
Le cycle simplifier de fonctionnement est le suivant :

Cycle Cycle1 Cycle2


Voie1 Rouge1 Vert1 Orange1
Voie2 Vert2 Orange2 Rouge2
Durée (sec) 24 8 24 8
Sous-programme T_vert T_orange T_vert T_orange

Principe :
On allume le rouge1 sur la voie1 pendant 32sec, pendant ce temps on allume
le vert2 sur la voie2 pendant 24sec puis l’orange2 pendant 8sec (24+8=32).
A la fin c’est le tour du rouge2 et du vert1 et orange1 avec les mêmes
temporisations.
5.1) Donner le code permettant de programmer le port B en sortie.
5.2) Sachant que les commandes actives des six lampes seront à l’état haut ‘1’
et seront câblées comme suivant :

Lampes Rouge1 Vet1 Orange1 Rouge2 Vet2 Orange2


PORT B Bit0 Bit1 Bit2 Bit3 Bit4 Bit5
Poids 1 2 4 8 16 32

a) Donner le code décimal puis hexadécimal du mot (octet) à sortir sur le port B
pour chaque étape dans chaque cycle et la temporisation correspondante et
compléter le tableau suivant :
Cycle Etape C.Décimal C.Hexadécimal Durée SP Tempo
Cycle1 Etape1 17(1+16) 0x11 T_vert SP_T24
Etape2
Cycle2 Etape1
Etape2

b) Donner alors le code assembleur permettant de réaliser les deux cycles ci-
dessus dans une boucle infinie.

2
SUPAERO Niveau :3eme 15/16

Documentation :
1)Jeux d’instructions :

2) Registres :
Registre d’état (STATUS).

Vous aimerez peut-être aussi