travaux dirigés-microprocesseur microcontroleur (1)

Upload: fatima-bettayeb

Post on 14-Apr-2018

305 views

Category:

Documents


7 download

TRANSCRIPT

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    1/18

    Universit de Savoie

    Travaux DirigsMicroprocesseur et Microcontrleur

    Sylvain MONTAGNY

    [email protected] chablais, bureau 13

    04 79 75 86 86

    TD1 : Rappels et jeu dinstruction

    TD2 : Timer, Port E/S dun microcontrleurTD3 : Les interruptions

    TD4 : Gestion dafficheur 7 segments

    TD5 : Conversion Analogique/Numrique

    Retrouver tous les documents de Cours/TD/TP sur le site

    www.master-electronique.com

    mailto:[email protected]://www.master-electronique.com/http://www.master-electronique.com/mailto:[email protected]
  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    2/18

    Universit de Savoie

    Module ETRS-604

    Microprocesseurs & Microcontrleurs

    TD 1Rappels et jeu dinstruction

    I. Systme microprocesseurUn 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 letableau ci-dessous.

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    3/18

    Circuits A21 A20 A19 A16 A15 A12 A11 A8 A7 A4 A3 A0 Adresses Hexadcimal

    FinRAM 3

    Dbut

    FinRAM 2Dbut

    FinRAM 1

    Dbut

    FinRAM 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.

    Q7. Donnez un exemple darchitecture ralisant le dcodage dadresse.

    II. Instructions dans un PIC 16F877

    Vous trouverez toutes les informations ncessaires dans la documentation du microcontrleur

    PIC16877A.

    1. Taille des mmoires

    Q8. Quelle est la quantit mmoire disponible pour stocker le programme dans votre

    microcontrleur ? Pouvez vous retrouver la cohrence entre la taille de la mmoire

    programme et la taille du registre PC (Program Counter).

    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 ?

    Q11. Combien de cycle horloge 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;

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    4/18

    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 ?

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    5/18

    Universit de Savoie

    Module ETRS-604 : Microprocesseurs & Microcontrleurs

    TD 2Timer, Port E/S dun microcontrleur

    I.Les Timers du PIC 16F87XA

    1. Prsentation des Timer

    1.1. Choix du mode compteur / temporisateur.

    Q1. Quel est la diffrence entre un compteur et un temporisateur ? Donner deux exemplesextrmement simples dutilisation de ces deux modes.

    Q2. Quels sont les bits qui permettent de slectionner le mode compteur ou temporisateurpour 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 dciderdu front dclenchant une incrmentation du compteur ?

    1.2. Caractris tiques des Timers

    Q4. Quelle est la plage de valeur que peut prendre le Timer 0, Timer 1 et Timer 2 ?

    On considre maintenant un cadencement du PIC 4Mhz, et une utilisation en mode

    temporisateur du Timer 0.

    Q5. Expliquer lutilit et le fonctionnement du module PRESCALER.

    Q6. Dans le cas ou le timer nutilise pas de prescaler (PSA=1) quelle sera la priode depositionnement du bit de fin de comptage (overflow) TMR0IF.

    Q7. Quelle valeur doit-on place dans le TMR0 si nous souhaitons mesurer un temps de156s.

    La priode maximal du timer est trs faible au regard de beaucoup dapplications. Ainsi, un

    Prescaler peut tre implment dans le fonctionnement des Timers.

    Q8. Remplir le tableau suivant relatif au temps de dbordement du Timer 0 en fonction duprescaler utilis.

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    6/18

    PSA PS2 PS1 PS0 Timer 0 prescaler Temps de dbordement du Timer 0 (en s)

    0 0 0 0 2

    0 0 0 1 4

    0 0 1 0 8

    0 0 1 1 16

    0 1 0 0 320 1 0 1 64

    0 1 1 0 128

    0 1 1 1 256

    Q9. Donner la configuration que vous choisiriez pour un dbordement du Timer au boutde 1,3ms.

    2. Programmation du timer

    Une mthode classique pour attendre un certain temps dans un programme est de raliser uneboucle 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.

    Q10. Proposez un organigramme qui permettra de compter un temps de 256s (temps leplus lev sans prescaler) qui servira de priode pour excuter un petit programme

    quelconque. La fin du comptage sera surveille par le flag doverflow qui correspond la fin

    de comptage du timer.

    256s Programme quelconque 256 s Programme quelconque 256 s etc

    linfini.

    Note : Un organigramme est une succession de rectangles (actions mener) et de losanges

    (tests) qui reprsentent lalgorithme du programme raliser.

    Q11. Proposez un code langage C pour cet organigramme.

    II.Port dentre sortie du PIC 16F87XA

    1. Structure logique des entres / sortiesLarchitecture des bits 0:3 du port A est prsente dans la datasheet.

    Q1. Quel doit tre le fonctionnement des transistors P et N pour obtenir un 1 logiqueen 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.

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    7/18

    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).

    Larchitecture du bit 4 du port A est prsente dans la datasheet.

    Q4. Quel est le nom de cette structure logique de sortie.

    Q5. Quelle particularit possde la structure logique dentre de RA4 (bit 4 du port A) ?

    2. Programmation des entres / sortiesLe schma ci-dessous reprsente une application simple dallumage dune led par appuis dun

    bouton poussoir.

    Figure 1 : Allumage d'une led par bouton poussoir

    Q6. Donner lorganigramme du programme qui allume la led lors de lappui du boutonpoussoir, et qui teint la led lors du relchement.

    Note : Prenez soin de vrifier comment fonctionne le PORTA en sortie et le PORTB en

    entre.

    Q7. Ecrire le programme C correspondant.

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    8/18

    Universit de Savoie

    Module ETRS-604

    Microprocesseurs & microcontrleurs

    TD 3Les interruptions

    Nous allons tudier deux microcontrleurs dont la gestion des interruptions est sensiblement

    diffrente.

    I. Interruption dans un ADuC812

    Le fabriquant de microcontrleur Analog Device est trs rput pour lutilisation

    dlectronique embarqu dans le domaine de la mesure. Dans le microcontrleur ADuC812, il

    intgre un cur 8051 trs connu et extrmement utilis.

    1. Configuration des interruptionsLa documentation technique du microcontrleur ADUC812 dAnalog Device est donne en

    annexe.

    Q1. Combien de sources diffrentes peuvent interrompre le C ?

    Q2. Quappelle t-on le masquage dinterruption ? Quel registre est concern ?

    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.

    2. Hirarchisation : niveau de priorit

    Q5. Combien de niveaux de priorits peut-on choisir pour les interruptions ? Comment leniveau est- il slectionn ?

    Q6. Daprs le paragraphe interrupt priority et le tableau XXV, expliquez ce quil sepasse si une interruption dune priorit suprieure intervient pendant une routine

    dinterruption de priorit infrieure ?

    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 pourdpartager deux priorits de mme niveau qui arrivent en mme temps ?

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    9/18

    3. Vectorisation

    Q8. Quest ce quun vecteur dinterruption ? Quest ce quune table des vecteursdinterruption ?

    Q9. Remplir la 4me

    colonne du Tableau 1.

    Source Module matriel Explication de lvnement Adress Vector

    IE0

    TF0

    IE1

    TF1

    RI+TI

    ADCI

    PSMI

    Tableau 1 : Source d'interruption, vecteur et vnements

    Q10. Lors dune interruption du Timer 0, quelle adresse le microcontrleur trouvera lesous-programme dinterruption correspondant ?

    Q11. Combien de place mmoire possde t on pour coder lensemble de ce sous programmedinterruption ? Que convient-il de faire si nous devons utiliser plus de place pour coder ce

    sous programme ?

    4. Traitement de linterruptionOn a vu que les vnements crant des interruptions sont grs par le positionnement de flag

    dans des registres.

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    10/18

    Q12. Nous nous plaons dans le cas ou nous avons pris en compte une interruption qui taitsurvenue. 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 ?

    II. Interruption dans un PIC 16F87XA

    On se propose de reprendre lapplication vu dans le TD prcdent en modifiant le cahier des

    charges. La led doit sallumer par un appui du bouton poussoir. Lextinction se fait par un

    second appui du bouton poussoir. Les interruptions devront tre mises en uvre pour le

    dveloppement de cette application.

    1. Mise en uvre dune seule interruption

    Figure 1 : Allumage d'une led par bouton poussoir

    Q1. Quel est lavantage de grer ce systme par interruption ?

    Q2. Dfinir le mot de configuration du registre INTCON.

    Q3. Daprs le paragraphe 14.12- Context Saving During Interrupt de ladocumentation, quel est la sauvegarde qui est faite automatiquement par le microcontrleur ?

    Q4. A quelle adresse du microcontrleur devons nous implmenter le code de notre sousprogramme dinterruption.

    Q5. Raliser lorganigramme complet pour le programme de cette application.

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    11/18

    2. Mise en uvre de deux interruptions

    2.1. Fonctionnement des interruptions dans le PIC

    Dans le microcontrleur ADuC812, chaque interruption possdait un vecteur dinterruption

    particulier. Ici, nous nen possdons quun. Vous pourrez vous rfrer au paragraphe 14.11-

    Interrupts pour rpondre aux questions suivantes.

    Q6. Une fois que notre programme principal a bifurqu vers ladresse 0x0004, commentfait 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.

    Q7. Dans le cas ou deux interruptions arrivent en mme temps, comment lemicrocontrleur fait pour choisir la routine dinterruption quil excutera ?

    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.

    Q8. Expliquez ce phnomne et proposer une solution pour le rsoudre.

    Q9. Proposez un organigramme pour raliser cette application sachant que toute lagestion de ce systme devra se drouler en interruption.

    Note 1 : Le programme principal ne fera que boucler sur lui-mme

    Note 2 : Nous utiliserons le timer 1 pour inhiber les interruptions du bouton poussoir pendantun certain temps.

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    12/18

    III. Annexes : Documentation du C ADuC812

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    13/18

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    14/18

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    15/18

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    16/18

    Universit de Savoie

    Module ETRS-604

    Microcontrleur et Microprocesseurs

    TD 4

    Gestion dafficheur 7 segments

    Lafficheur 7 segments de la carte de dveloppement est constitu de la faon suivante :

    Q1. Reprenez le schma prcdent en reprsentant seulement lafficheur DIS3, et en leremplaant par les LED qui constituent un afficheur 7 segments?

    Q2. Donner les valeurs donner au port D afin dafficher les nombres de 0, 1 et 2.Q3. Raliser lorganigramme dun programme ralisant laffichage du chiffre 0 surlafficheur DIS3

    Q4. Raliser lorganigramme dun programme ralisant laffichage de deux chiffresdiffrents sur DIS3 et sur DIS2.

    Q5. Raliser lorganigramme dun programme ralisant lincrmentation des deux chiffresaffichs toutes les secondes.

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    17/18

    Universit de Savoie

    Module ETRS-604

    Microcontrleur et Microprocesseurs

    TD 5

    Conversion Analogique/Numrique

    1. Datasheet du CAN 10 bits PIC16F877

    La figure ci-dessous montre les diffrents temps de la squence de conversion :

    Q1.

    Quelles sont les tapes dune conversion AN ? Expliquer les 2 temps quiconstituent ces tapes ?

    Q2. Quelle recommandation importante est cite dans la documentation auchapitre 11.1 au sujet du temps dacquisition ? Donner le temps dacquisition typique

    que nous rencontrons pour un montage classique.

    Lire le chapitre 11.2

    Q3. Expliquer ce quest le temps TAD. Quel est le temps minimum que lon peutadmettre pour le temps TAD ?

    Q4. Quel sera donc le temps de conversion : conversion time ? En dduire letemps total de la conversion A/N.

  • 7/30/2019 Travaux Dirigs-Microprocesseur Microcontroleur (1)

    18/18

    Reprendre les 7 tapes de la documentation sur la ralisation dune conversion analogique

    numrique. Nous raliserons une application avec un chantillonnage dune valeur sur la voie

    1 toutes les 500 ms. Nous fonctionnerons sans interruption avec un quartz 8 MHz.

    Q5. Donner lorganigramme entier de votre programme.Q6. Donner le code en langage C de chacune des tapes de votre organigramme.