Licence SPI – AGE Travaux Pratiques Langage .compilateur traduit des instructions interprétables

download Licence SPI – AGE Travaux Pratiques Langage .compilateur traduit des instructions interprétables

of 18

  • date post

    13-Sep-2018
  • Category

    Documents

  • view

    212
  • download

    0

Embed Size (px)

Transcript of Licence SPI – AGE Travaux Pratiques Langage .compilateur traduit des instructions interprétables

  • Licence SPI AGE

    Travaux Pratiques Langage C18

  • Julien Marotjulien.marot@fresnel.fr

    Zouhair Haddizouhair.haddi@lsis.org

    Marc Allainmarc.allain@fresnel.fr

    Table des matires1. Avant de commencer.....................................................................................................................1

    2. Le Matriel..................................................................................................................................... 12.1. Le Kit PICDEM 2 Plus et PIC 18F4520..................................................................................12.2. MPLAB Integrated Development Environment...................................................................... 12.3. Le programmateur ICD3..........................................................................................................2

    3. TP n1 : Initiation la programmation en langage C................................................................33.1. Introduction : assembleur et compilateur C.............................................................................33.2. Gnration d'un signal carr.................................................................................................... 43.3. dition et Compilation du programme.................................................................................... 43.4. Simulation et programmation du micro-contrleur................................................................. 53.5. Applications............................................................................................................................. 5

    4. TP n2 : Ecriture d'un driver pour LCD.................................................................................... 74.1. Le contrle de l'afficheurs LCD...............................................................................................74.2. Fonctions de pilotage du LCD................................................................................................. 74.3. Cration de la libraire afficheurlcd .................................................................................. 11

    5. TP n3 : Interruptions et Priphriques....................................................................................135.1. Programme Clignotant avec interruption.........................................................................135.2. Chronomtre.......................................................................................................................... 14

    mailto:marc.allain@fresnel.frmailto:marc.allain@fresnel.frmailto:marc.allain@fresnel.fr

  • Travaux Pratiques de Microcontrleur PIC 18F4520

    1. Avant de commencer

    Ces sances de travaux pratiques (TP) sont destines illustrer les notions qui vous ont t prsentes en cours. Pour cela, vous aurez concevoir et tester un certain nombre de programmes en langage C.

    Pour chaque tche que vous aurez raliser, nous vous invitons enregistrer votre programme sous un nom particulier pour garder une sauvegarde de travail. Pour faciliter le dbogage et assurer la maintenance et la portabilit de vos codes, il est primordial que vous commenciez par rdiger un algorigramme, que vous commentiez clairement votre programme et que vous pensiez le rendre le plus clair possible (ex : en choisissant des noms appropris pour les labels).

    Concernant l'valuation de votre travail, nous vous demanderons de nous prsenter le programme correspondant chaque tche que vous aurez programmer sur le simulateur ou sur le kit de dmonstration (cf. plus bas). Nous corrigerons galement vos codes en portant une attention particulire la lisibilit (pensez donc aux commentaires !). Enfin, vous devrez galement nous rendre les algorigrammes qui correspondent aux codes.

    2. Le Matriel

    2.1. Le Kit PICDEM 2 Plus et PIC 18F4520Le kit PICDEM 2 Plus est un kit simple qui permet de mettre en vidence les capacits de diffrents micro-contrleurs du fabricant Microchip travers divers priphriques et accessoires reproduis sur le schma de la figure 1.

    Le micro-contrleur utilis est le PIC18F4520 de Microchip. C'est un micro-contrleur 8 bits disposant d'une mmoire de programme de 32 Ko, de 1536 octets de RAM (Random Access Memory), d'une EEPROM (Electrically Erasable Programmable Read Only Memory) de 256 octets et de 36 entres/sorties.

    2.2. MPLAB Integrated Development EnvironmentMPLAB IDE est un environnement gratuit de programmation pour les micro-contrleurs de la famille Microchip. Lenvironnement intgre un diteur dassembleur, un dbogueur complet ainsi que tous les outils permettant de grer les programmateurs de composants. La possibilit dintgrer un compilateur C dans lenvironnement de dveloppement MPLAB sinscrit directement dans la politique du service qui est dutiliser des langages de programmation volus dans les dveloppements en lectronique.

    L3 SPI AGE S5 1

    Figure 1: Le kit PICDEM 2 Plus, Priphriques et Accessoires

    Microcontrleur LCD

    ContrlesRA1...RA3

    DonnesRD0...RD3

    LEDsRB0...RB3

    BuzzerRC2

    RS232RC6, RC7

    PoussoirsRA4, RB0

    Entre AnalogiqueRA0

    Reset MCLR

    ICD RB6,RB7 Bus I2CRC4, RC5(In Circuit Debugger)

    (Liquid Crystal Display )

    Capteur de Temprature

    RC3

  • Travaux Pratiques de Microcontrleur PIC 18F4520

    2.3. Le programmateur ICD3Il permet de transfrer le programme directement de MPLAB dans le micro-contrleur via un port USB d'un PC.

    L3 SPI AGE S5 2

  • Travaux Pratiques de Microcontrleur PIC 18F4520

    3. TP n1 : Initiation la programmation en langage C

    3.1. Introduction : assembleur et compilateur CL'objectif de cette sance est de vous initier la programmation en langage C d'un micro-contrleur. Par

    rapport l'assembleur, le recours un langage de haut niveau tel que le C s'est notablement dvelopp en pratique car il permet de simplifier l'criture des codes ainsi que leurs portabilits et leurs maintenabilits. Notamment, vous pourrez crire des instructions du type if(x==y) ou temp = 0x27 pour effectuer un test d'galit ou une affectation. Le code que vous crirez devra tre crit en C standard ANSI. La compilation des instructions C se fera par le compilateur C18 qui permet de gnrer du code pour la famille des PIC 18XXXX. Comme l'assembleur, le compilateur traduit des instructions interprtables pour un oprateur humain en un code machine excutable par le PIC. Comme nous le verrons, l'criture et la compilation de vos programmes sources C se fera dans l'environnement MPLAB. Comme pour le dveloppement de codes en assembleur, MPLAB sera donc l'environnement qui vous permettra d'crire, de compiler et de dboguer vos sources C (cf., section 3 de ce TP).

    On notera que, dans le cadre d'un mme projet, il est possible de dvelopper des parties en C et des parties en assembleur. Ds lors, la construction d'un code machine excutable est illustr par le diagramme de la figure 2. Dans cet exemple, un code source en assembleur et deux codes sources en C ont t crits. Pour chaque source, l'assembleur (MPASMWIN) ou le compilateur(MCC18) est utilis pour gnrer des fichiers objets (file1.o,...,file3.o). Le fichier objet file3.o est ensuite utilis avec un fichier pr-compil existant file4.o de manire former un fichier de librairie lib1.lib. Finalement, les fichiers objets restants sont utiliss avec le fichier de librairie par l'diteur de lien (MPLINK) pour crer un excutable output.hex. Notez bien galement le fichier script.lkr (cf., figure 2) qui permet de configurer correctement l'diteur de lien pour le micro-contrleur utilis.

    L3 SPI AGE S5 3

    Figure 2: Diagramme de construction d'un excutable

    Compilateur CAssembleur

    Fichiers pr-compils

    script de configuration de l'diteur de lien

  • Travaux Pratiques de Microcontrleur PIC 18F4520

    3.2. Gnration d'un signal carrPour vous familiariser avec la programmation en C du micro-contrleur, le premier projet sera de reprendre le

    programme de clignotement d'une LED que vous aviez crit en assembleur. Le source C ci-aprs fait clignoter la LED L1, broche RB0, une frquence de 1Hz. Ltat de la LED change donc toutes les 500ms.

    // Author: ???//================================================// Description :// Programme de gnration d'un signal carr // sur le port RB[0] de priode de 1 s //================================================

    En-tte du programme

    //------------------------------------------------// Directives au prprocesseur//------------------------------------------------// fichier d'en-tte pour le PIC184020#include // fichier d'en-tte pour les fonctions de tempo#include

    // Dsactivation du WatchDog#pragma config WDT = OFF

    Fichiers d'en-tte pour le PIC184520 (p18f4520.h) et pour l'utilisation des fonctions de temporisation (delays.h)

    Directive pragma de dsactivation du watchdog.

    // Programme Principalvoid main(){

    //------------------------------------------------// Dclaration des variables locales//------------------------------------------------

    // 1/2 Periode d'oscillation en Nb de cyclesTYPE DemiPeriode = ARGUMENT;

    // Configuration du portBTRISB = 0x00; // PORTB en sortiePORTB = 0x00; // RAZ du PORTB// Config. RB0-RB3 en mode I/O numeriqueADCON1 = 0x0F;

    Dclaration et affectation de la variable dfinissant le nombre de cycles ncessaire une demi-priode d'oscillation ( complter).

    Configuration du port B

    // --> Boucle TantQue : On boucle indfiniement...while(1){

    // basculement du bit 0 du PORTBPORTB = PORTB ^ 0x01;// Utilisation d'une fonction de delays.h FONCTION(ARGUMENT);}

    // --> Fin de boucle TantQue}

    Boucl