Exercice 1 : Le but de cet exercice est d`écrire un - esprit-AM

publicité
DS
Semestre : 2
Module : Architecture des microcontrôleurs
Enseignants : Hassen Jedidi & Hichem BARGAOUI
Classes : 3 Info B1, Tel B1, Tel B2, 2A1 et 2A2
Documents autorisés :
Date : 20/04/2011
Non
Nombre de pages : 4
Heure 9h
Durée : 1H
Exercice 1 :
Le but de cet exercice est d’écrire un programme en assembleur qui permet de
faire clignoter une LED.
Le schéma du circuit est donné dans la figure suivante.
C1
33p
X?
CRYSTAL
U?
16
15
4
C2
33p
OSC1/CLKIN
OSC2/CLKOUT
MCLR
R1
RA0
RA1
RA2
RA3
RA4/T0CKI
RB0/INT
RB1
RB2
RB3
RB4
RB5
RB6
RB7
100
17
18
1
2
3
6
7
8
9
10
11
12
13
D1
LED-GREEN
PIC16F84A
R2
470
C3
Dés que le système est mis sous tension, la LED devra clignoter indéfiniment.
1. Dessiner l’organigramme de l’application. Pour la temporisation on fera
apparaitre une fonction « Tempo »
2. Fonction Tempo
Le code assembleur suivant est celui d’une fonction de temporisation. Les variables
Tempo_value_B2 et Tempo_value_B1 sont stocké respectivement dans l’adresse 0X020 et
0X021.
Le microcontrôleur est cadencé à 4 MHZ.
Tempo_Wms:
2 BCF STATUS, RP0 ;
3 CLRF Tempo_value_B1 ;
4 Tempo_B1:
5 MOVLW 0xF9 ;
6 MOVWF Tempo_value_B2 ;
7 Tempo_B2:
8 NOP ;
9 DECFSZ Tempo_value_B2,1;
10 GOTO Tempo_B2 ;
11 DECFSZ Tempo_value_B1,1;
12 GOTO Tempo_B1 ;
13 RETURN
a.
b.
c.
Indiquez pour chaque ligne de cette fonction ce qui est réalisé par le microcontrôleur.
En déduire l’organigramme de la fonction Tempo_Wms.
En déduire le temps d’exécution de la fonction Tempo_Wms.
3. Programme Principal
a. Donner les instructions qui permettent de configurer le port B.
b. Ecrire une macro LEDON et une macro LEDOFF qui permettent réciproquement d’allumer
et d’éteindre la LED.
c. Ecrire en assembleur le programme principal qui permet de réaliser le fonctionnement
demandé.
2
Nom & Prénom :……………………………………………………………………………….
Classe :…………………………………………………………………………………………
Exercice 2 :
Cocher la ou les bonnes réponses :
1. Le microcontrôleur 16F84 implémente une mémoire programme:
 dont l’adresse est comprise entre 0x000 et 0x3FF
 dont l’adresse est comprise entre 0x000 et 0x3FFF
 dont l’adresse est comprise entre 0x000 et 0x3FFFF
2. Un microcontrôleur PIC exécute 5 millions d’instructions par seconde:
 possède un cycle instruction de 100 nano sec ;
 possède un cycle instruction de 200 nano sec ;
 possède un cycle instruction de 500 nano sec ;
3. Soit le code suivant :
SUITE1
SUITE2
TEST
……
……
…….
……
INCFSZ reg,1
GOTO SUITE1
GOTO SUITE2
Si avant l’exécution de l’instruction « INCFSZ » le registre « reg » contient la
valeur décimale 255, alors l’instruction qui s’exécute après « INCFSZ » aura
comme label :
 SUITE1;
 FIN ;
 TEST;
 SUITE2;
4. La technique de pagination :
 Permet de réduire le temps d’accès à la mémoire ;
 Permet de réduire le nombre de ligne d’adresse pour l’accès à la mémoire;
 D’augmenter le nombre de cellules accessibles utilisant le même nombre de
lignes d’adresses ;
 Est indispensable lorsque le microcontrôleur adopte l’architecture harvard.
5. Dans un programme, le PIC 16F84:
 A la possibilité d’exécuter 5 appels consécutifs imbriqués de sousprogrammes ;
 A la possibilité d’exécuter 8 appels consécutifs imbriqués de sousprogrammes ;
 A la possibilité d’exécuter 14 appels consécutifs imbriqués de sousprogrammes ;
3
4
Téléchargement