Académique Documents
Professionnel Documents
Culture Documents
Travaux Dirigs
Microprocesseur et Microcontrleur
Sylvain MONTAGNY
sylvain.montagny@univ-savoie.fr
Btiment chablais, bureau 13
04 79 75 86 86
TD 1
Rappels et jeu dinstruction
I. Systme microprocesseur
Un processeur 64 bits stocke les donnes binaires quil traite dans des circuits intgrs de
mmoire RAM. La capacit de chaque circuit mmoire est de 4 Mo, les donnes binaires tant
organises en mots de 64 bits. La capacit totale de lensemble des mmoires vives est de 32
Mo.
Q1. De combien de circuits diffrents est constitu lensemble de la mmoire vive associe
ce processeur ?
Q2. Donner le nombre de cases mmoires disponibles dans chaque circuit RAM ainsi que
le nombre total de cases mmoires pour lensemble des circuits.
Q3. Quelle doit tre la taille minimum du bus dadresse de ce processeur ? Quelle est
ladresse la plus haute et ladresse la plus basse (en hexadcimal) accessible par le
processeur ?
La taille du bus dadresse sera dsormais la taille minimum que vous venez de trouvez.
Q4. Parmi lensemble des bits constituant le bus adresse, donner le nombre de bits
rservs la slection dun circuit mmoire (boitier) et le nombre de bits rservs la
slection dun emplacement dans cette mmoire.
Q5. Donner les adresses de dbut et de fin des quatre premiers circuits en compltant le
tableau ci-dessous.
Circuits A21 A20 A19 A16 A15 A12 A11 A8 A7 A4 A3 A0 Adresses Hexadcimal
Fin
RAM 3
Dbut
Fin
RAM 2
Dbut
Fin
RAM 1
Dbut
Fin
RAM 0
Dbut
Tableau 1 : Adressage des circuits RAM
Q6. Reprsentez sur un schma lensemble des circuits, du processeur et des bus (on ne
reprsentera que deux RAMs). On devra faire apparaitre clairement le nombre de fils sur
chaque partie des bus.
Q9. Quelle est la quantit mmoire disponible pour stocker des donnes dans votre
microcontrleur ?
2. Jeu dinstruction
Q10. Combien de cycle instruction prend chacune des instructions ?
Le programme suivant est crit en assembleur. Il fait varier la valeur de sortie du bit 0 du
PORTB. Lutilisateur voudrait raliser un signal carr en sortie.
MOVLW FEh ;
MOVWF TRISB ; // Configuration du bit PORTB.0 en sortie
BOUCLE BCF TRISB,0;
BSF TRISB,0;
GOTO BOUCLE;
Q12. Donner le code C correspondant.
Q13. En prenant en compte les temps de chacune des instructions, tracer le chronogramme
du PORTB. Quelle remarque peut-on faire sur le rapport cyclique du signal par rapport au
souhait initial du programmeur ?
Application du TP :
Q14. Quelle mesure pouvez-vous effectuer pour mesurer le temps de cycle instruction de ce
microcontrleur ?
Universit de Savoie
Module ETRS-604 : Microprocesseurs & Microcontrleurs
TD 2
Timer, Port E/S dun microcontrleur
Q2. Quels sont les bits qui permettent de slectionner le mode compteur ou temporisateur
pour les Timers 0 et Timer 1 ? Quelle est la particularit du Timer 2 vis--vis de ces deux
modes de fonctionnement ?
Q3. Lors du fonctionnement en mode compteur pour le Timer 0, comment peut-on dcider
du front dclenchant une incrmentation du compteur ?
Q6. Dans le cas ou le timer nutilise pas de prescaler (PSA=1) quelle sera la priode de
positionnement du bit de fin de comptage (overflow) TMR0IF.
Q7. Quelle valeur doit-on place dans le TMR0 si nous souhaitons mesurer un temps de
156s.
La priode maximal du timer est trs faible au regard de beaucoup dapplications. Ainsi, un
Prescaler peut tre implment dans le fonctionnement des Timers.
Q9. Donner la configuration que vous choisiriez pour un dbordement du Timer au bout
de 1,3ms.
2. Programmation du timer
Une mthode classique pour attendre un certain temps dans un programme est de raliser une
boucle de temporisation souvent appele par ltiquette : TEMPO. Cette mthode est base
sur la programmation dune boucle en langage assembleur. En effet, en connaissant le nombre
dinstructions utilises ainsi que le nombre de cycles pour excuter ces instructions, on peut
aisment effectuer un temps dattente. Cette mthode est cependant assez lourde puisque quil
faut prendre en compte toutes les instructions de notre boucle. Une mthode plus rigoureuse
est donc dutiliser le timer disponible dans le microcontrleur.
Q1. Quel doit tre le fonctionnement des transistors P et N pour obtenir un 1 logique
en sortie ? Pour obtenir un 0 ?
Q2. Quelle doit tre le fonctionnement des transistors P et N pour une configuration du
port A en entre ? Quelle est le nom de cette structure de sortie logique.
Que le port soit configur en entre ou en sortie, il est toujours possible deffectuer une
lecture du port.
Q3. Expliquez le fonctionnement dune lecture du port A vers le bus de donne interne
(Data Bus).
Q5. Quelle particularit possde la structure logique dentre de RA4 (bit 4 du port A) ?
Q6. Donner lorganigramme du programme qui allume la led lors de lappui du bouton
poussoir, et qui teint la led lors du relchement.
TD 3
Les interruptions
Nous allons tudier deux microcontrleurs dont la gestion des interruptions est sensiblement
diffrente.
Q3. Donnez la procdure pour autoriser lensemble des interruptions suivantes : le timer0,
la liaison srie et le convertisseur A/D.
Q4. Lvnement li au module timer qui cre une interruption, est son dbordement.
Retrouver les vnements lis aux autres modules qui crent interruptions. Vous remplirez la
2me et la 3ime colonne du Tableau 1.
Q7. Si deux interruptions de niveau de priorit diffrent arrivent en mme temps, cest
linterruption qui a la plus forte priorit qui sexcutera en premier. Comment fait-on pour
dpartager deux priorits de mme niveau qui arrivent en mme temps ?
3. Vectorisation
Q8. Quest ce quun vecteur dinterruption ? Quest ce quune table des vecteurs
dinterruption ?
IE0
TF0
IE1
TF1
RI+TI
ADCI
PSMI
Q11. Combien de place mmoire possde t on pour coder lensemble de ce sous programme
dinterruption ? Que convient-il de faire si nous devons utiliser plus de place pour coder ce
sous programme ?
4. Traitement de linterruption
On a vu que les vnements crant des interruptions sont grs par le positionnement de flag
dans des registres.
Q12. Nous nous plaons dans le cas ou nous avons pris en compte une interruption qui tait
survenue. Quelle action faut-il alors ventuellement raliser pendant le sous programme
dinterruption concernant ces flags lis linterruption.
Q13. Quelles sont les autres actions raliser au dbut du sous programme, et la fin du
sous programme dinterruption ?
Q4. A quelle adresse du microcontrleur devons nous implmenter le code de notre sous
programme dinterruption.
Q6. Une fois que notre programme principal a bifurqu vers ladresse 0x0004, comment
fait t on pour savoir quelle interruption est rellement survenue ?
Dans le microcontrleur ADuC812, chaque interruption pouvait tre dfinie par deux niveaux
de priorit, ici il ny a pas de niveau affect. Si une interruption arrive alors quune autre est
dj en cours, elle sera traite lorsque la premire routine se terminera.
2.2. Application
En ralit, le fonctionnement de notre application comme nous lavons vu jusquici ne
fonctionne pas. Ceci est du aux problmes des rebonds du bouton poussoir.
Q9. Proposez un organigramme pour raliser cette application sachant que toute la
gestion de ce systme devra se drouler en interruption.
TD 4
Gestion dafficheur 7 segments
Lafficheur 7 segments de la carte de dveloppement est constitu de la faon suivante :
Q2. Donner les valeurs donner au port D afin dafficher les nombres de 0, 1 et 2.
Q5. Raliser lorganigramme dun programme ralisant lincrmentation des deux chiffres
affichs toutes les secondes.
Universit de Savoie
Module ETRS-604
Microcontrleur et Microprocesseurs
TD 5
Conversion Analogique/Numrique
Q1. Quelles sont les tapes dune conversion AN ? Expliquer les 2 temps qui
constituent ces tapes ?
Q3. Expliquer ce quest le temps TAD. Quel est le temps minimum que lon peut
admettre pour le temps TAD ?