initiation aux microcontrÔleurs - …demay.iut.lr.free.fr/doc/1a/informatique/i2-2 -...
TRANSCRIPT
![Page 1: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/1.jpg)
IUT Réseaux & Télécoms - La Rochelle
INITIATION AUX MICROCONTRÔLEURS
MICROCHIP PIC 18F4520Gestion du temps
![Page 2: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/2.jpg)
IUT R&T 2
Généralités● Dans un programme, il est souvent nécessaire de
réaliser des temporisations :➢ Réglage de débit pour une transmission de donnée
sur un port.➢ Attente du traitement d'une information par un circuit
périphérique.➢ ...
● Pour cela on va exploiter l'horloge du microcontrôleur pour créer des délais d'attente.
![Page 3: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/3.jpg)
IUT R&T 3
L'horlogeLes microcontrôleurs PIC disposent d'une horloge que l'on peut configurer dans différents modes de fonctionnement :
● LP : Low Power Crystal● XT : Crystal/Resonator● HS : High Speed Crystal/Resonator● HSPLL : High Speed Crystal/Resonator with PLL● RC : External Resistor/Capacitor● INTIO : Internal Oscillator● EC : External clock
Le choix d'un mode de fonctionnement se fait en positionnant des bits de configuration.
![Page 4: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/4.jpg)
IUT R&T 4
Configurations de l'oscillateur● Oscillateur à quartz
● Oscillateur à circuit RC
![Page 5: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/5.jpg)
IUT R&T 5
Bits de configurationLa configuration du mode de fonctionnement de l'oscillateur peut se faire de deux manières :
● par programmation : en positionnant directement les bits du registre de configuration dans le programme
● avec le logiciel MPLAB : en sélectionnant la fenêtre « Configuration bits »
![Page 6: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/6.jpg)
IUT R&T 6
L'instruction NOP( ) L'instruction nop() (acronyme de no operation) est une instruction dont le seul but est de gaspiller un cycle d'horloge du microcontrôleur (4 périodes d'oscillation du quartz). En appelant cette instruction on doit obtenir le plus petit temps d'exécution possible.
Pour la carte de développement Picdem2+, avec un quartz de 4MHz, cette instruction consommera donc 1µs.
En langage C, il suffit d'écrire nop( )
Ex : temporisation de 3µsnop();nop();nop();
Cette méthode est la plus simple à mettre en oeuvre. Elle convient parfaitement pour des petites temporisations (< 10 µs).
![Page 7: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/7.jpg)
IUT R&T 7
Boucle d'attenteUne autre manière simple de créer une temporisation sera de réaliser une boucle qui « consomme du temps ».
ex : for (temps=0 ; temps<100 ; temps++)nop();
Attention : la boucle elle-même prend du temps à se réaliser. Il y a donc trois étapes pour utiliser cette méthode :
➢ Ecriture de la boucle➢ Test et évaluation de la durée de la boucle➢ Réglage de la boucle
Cette méthode est peu précise et nécessite de connaître la durée d'exécution de la boucle. D'autre part, le microcontrôleur est monopolisé pendant toute la durée de la boucle et il est impossible de réaliser d'autres opérations.De plus la limitation de la borne supérieure de la variable ne permet pas de dépasser quelques centaines de ms.
![Page 8: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/8.jpg)
IUT R&T 8
Fonctions C18Le compilateur C18 est fourni avec une bibliothèque (delays.lib) contenant des fonctions qui réalisent des boucles d'attentes calibrées et multiples de « temps de cycles » (Tcy).
Pour calculer la durée d'une temportisation, il faudra prendre en compte la fréquence de fonctionnement de l'oscillateur.
![Page 9: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/9.jpg)
IUT R&T 9
Les TimersLes PIC 18Fxx20 sont équipés de trois « Timers » qui vont permettre de compter des impulsions d'horloge tout en permettant au microcontrôleur d'effectuer d'autres opérations.
Ex : Timer 0 (mode 8bits)
![Page 10: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/10.jpg)
IUT R&T 10
Le Timer 0●Le Timer 0 est composé des éléments suivants :
➢ TMR0L (TMR0H) : c'est un registre 8 bits qui compte les fronts du signal qu'on lui fournit. Arrivé à 255 il repasse à 0 et passe un drapeau (flag) TMR0IF au niveau haut pour indiquer un overflow.
➢ Prescaler : il divise la fréquence du signal qu'on lui fournit par une constante que l'on programmera.
➢ Aiguillages : ils permettent de définir le chemin qu'emruntera le signal
➢ Bits de configuration : ils permettent de configurer le fonctionnement du Timer
➢ Synchro : retarde le fonctionnement du Timer de 2 cycles afin de synchroniser avec l'horloge.
![Page 11: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/11.jpg)
IUT R&T 11
Configuration du Timer 0
![Page 12: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/12.jpg)
IUT R&T 12
Utilisation du Timer en C
#include <p18f4520.h>#define LED PORTBbits.RB0
unsigned char temps=0;
void main(void){ /* Configuration du PortB */
TRISB = 0xF0;LED = 0;
/* Configuration du Timer 0 */T0CON=0x07; /* Predivision par 256 */T0CONbits.PSA=0; /* Prescaler actif */T0CONbits.T0SE=0; /* Front montant */T0CONbits.T0CS=0; /* Horloge interne */T0CONbits.T08BIT=1; /* Mode 8 bits */T0CONbits.TMR0ON=1; /* Validation du Timer */
while(1){if(TMR0L==244)
{temps++;TMR0L=0;}
if(temps==16){LED=!LED;temps=0;}
}}
![Page 13: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/13.jpg)
IUT R&T 13
Registres associés au Timer 0
Le bit TMR0IF (Timer0 Interrupt Flag) est positionné à 1 lorsque le registre TMR0 passe en overflow (FFh à 00h en mode 8 bits). Il permet de déclencher une interruption.
![Page 14: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/14.jpg)
IUT R&T 14
Le TIMER 1
![Page 15: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/15.jpg)
IUT R&T 15
Configuration du Timer 1
![Page 16: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation](https://reader030.vdocuments.site/reader030/viewer/2022020316/5b9713c809d3f2e10f8c2ac0/html5/thumbnails/16.jpg)
IUT R&T 16
Registres associés au Timer 1