37
Pic16f84 Projet microcontrôleur

Projet Microcontrleur Presentation Final CRAFT1

Embed Size (px)

Citation preview

Page 1: Projet Microcontrleur Presentation Final CRAFT1

Pic16f84

Projet microcontrôleur

Page 2: Projet Microcontrleur Presentation Final CRAFT1

I- Introduction

II- Description

III- Les mémoires

IV- Les registres

V- Jeu d’instruction

VI- Modes d’adressages

VII- Timers

VIII- Les interruptions

SOMMAIRE

Page 3: Projet Microcontrleur Presentation Final CRAFT1

Un microcontrôleur est une unité de traitement de

l’information de type microprocesseur à laquelle on a

ajouté des périphériques internes permettant de

réaliser des montages sans nécessiter l’ajout de

composants annexes. Un microcontrôleur peut

fonctionner d’une façon autonome après

programmation.

I-Intorduction

Page 4: Projet Microcontrleur Presentation Final CRAFT1

Un microcontrôleur est un composant électronique Autonome doté:

• d’un microprocesseur,

• de la mémoire RAM,

• de la mémoire permanente,

• des interfaces d’E/S //, série (RS232, I2C, SPI …)

• des interfaces d’E/S analogique- Des Timer pour gérer le temps

• D’autres modules plus au moins sophistiqués selon la taille des µC

Page 5: Projet Microcontrleur Presentation Final CRAFT1
Page 6: Projet Microcontrleur Presentation Final CRAFT1
Page 7: Projet Microcontrleur Presentation Final CRAFT1

Un microcontrôleur se présente sous la forme d’un circuit intégré réunissant tous les éléments d’une structure à base de microprocesseur .voici généralement ce que l’on trouve à l’intérieur d’un tel composant :

• un microprocesseur (C.P.U)

• De la mémoire de donnée (RAM, EEPRROM)

• De la mémoire programme (ROM, OTPROM, UVPROM, ou EEPROM)

• Des interfaces parallèles pour la connexion des entrées /sorties

• Des interfaces séries (synchrone ou asynchrone) pour le dialogue avec les autres unités

II-Description et Structure Interne :

Page 8: Projet Microcontrleur Presentation Final CRAFT1

II-1 Architecture interne:

Les microcontrôleurs, ont des architectures très similaires et sont constitués de modules fondamentaux assurant les même fonctions :

• UAL ;• ports d’E/Interfaces de

communications série, • interfaces d’E/S analogiques , • Timers et horloge temps réels;……….

Page 9: Projet Microcontrleur Presentation Final CRAFT1

Architecture interne du PIC16F84

Page 10: Projet Microcontrleur Presentation Final CRAFT1

• la mémoire de type FlashROM pour le programme;

• la mémoire de type RAM pour les registres;

• la mémoire de type EEPROM pour les données à sauvegarder;

• des registres particuliers: W, FSR et d'état;

• l'Unité Arithmétique et Logique (ALU) ;

• les ports d'entrées / sorties;

• la pile à 8 niveaux.

Parmi les principaux constituants, on remarque:

Page 11: Projet Microcontrleur Presentation Final CRAFT1

A part les cinq pins réservés au cortège des invariants devant nécessairement figurer dans tout montage, les treize autres pins du 16f84 servent d’entrées/sorties.

Elles sont regroupées en deux ports : Port A et Port B.

Le port A possède 5 lignes, nommées :

RA0………….pin 17

RA1………….pin 18

RA2………….pin 1

RA3………..pin 2

RA4………..pin 3(RA4/T0CK1) (NB : RA = Register A)

II-2 Les entrées/sorties:

Page 12: Projet Microcontrleur Presentation Final CRAFT1

Le Port B possède 8 lignes, nommées :

RB0………..pin 6 (RB0/INT)

RB1………..pin 7

RB2………..pin 8

RB3………..pin 9

RB4………..pin 10

RB5………..pin 11

RB6………..pin 12

RB7………..pin 13 (NB: RB=Register B)

Page 13: Projet Microcontrleur Presentation Final CRAFT1

Un PIC est généralement identifié par une référence de la forme suivante : xx(L)XXyy-zz

xx : famille de composant, actuellement «  12,14,16,17 et 18».

L: tolérance plus importante de la plage de tension.

XX: type de mémoire programme.• C:EPROM ou EEPROM.• CR:PROM.• F:Flash

yy: identificateur.

zz: vitesse maximale du quartz de pilotage.

II-3 Identification des PICs :

Page 14: Projet Microcontrleur Presentation Final CRAFT1

III-1 La mémoire de programme:Comme son nom l'indique, c'est dans cette mémoire qu'est mémorisé le programme à exécuter. De type Flash ROM, elle est organisée en 1024 mots de 14 bits, ce qui permet de coder sur un seul mot l'instruction et l'opérande, à la différence des microcon trôleurs plus classiques à 8 bits où l'instruction et l'opérande sont écrits sur plusieurs adresses consécutives.

III-2 La mémoire de données :une mémoire de données (Data Memory) EEPROM flash, de

64 emplacements à 8 bits, allant de l’adresse 00 à l’adresse 3F, auxquels on accède uniquement par l’intermédiaire de quatre registres spéciaux:

-EEADR (EEprom ADRess) pour ce qui concerne les adresses

- EEDATA (EEprom DATA) pour ce qui concerne les données

- EECON1 et EECON2 (EEprom CONtrol) permettant de définir le mode de fonctionnement de cette mémoire.

III-Les mémoires :

Page 15: Projet Microcontrleur Presentation Final CRAFT1

III-3 La mémoire RAM: Une mémoire RAM à 8 bits, que Microchip appelle Register File, réservée aux données.A plus proprement parler, il s’agit d’une RAM statique (SRAM). Cet espace est à son tour réparti en deux zones :a) une zone RAM de 24 emplacements à 8 bits réservée aux

registres spéciauxb) une zone RAM de données, constituée de 68 emplacements à 8 bits (adresses de 0C à 4F) situés juste au dessous des registres spéciaux, formant la RAM utilisateur proprement dite.

III-4 La mémoire EEPROM :Une toute petite mémoire EEPROM, contenant seulement 8 cases, de l’adresse 2000 à l’adresse 2007, réservées au microcontrôleur.Les adresses 2000, 2001, 2002 et 2003 correspondent aux emplacements dans lesquels l’utilisateur peut stocker un code d’identification .L’adresse 2007 correspond au registre de configuration du microcontrôleur.

 

Page 16: Projet Microcontrleur Presentation Final CRAFT1

IV-1 Organisation:La mémoire donnée correspond aux registres (File Registrs) vus par l’unité central. C’est registres sont de 2 types :

-Registres système :ils permettent la configuration et la surveillance de l’état du processeur et de ses périphériques; ces registres sont accessibles en lecture ou écriture suivant leur fonction.

-Registres d’usages général :ils permettent le stockage de variables, ils sont accessibles en lecture et en écriture par le programme.

-Baptisé du nom de registre à usage général par Microchip, chacune de ces mémoires est adressable directe ment.

-À ce bloc de 68 registres à usage général, le fabricant a associé 11 registres internes et organisé les adresses selon le tableau

IV-Les registres:

Page 17: Projet Microcontrleur Presentation Final CRAFT1

Adresses Registres Registres Adresses

00 INDF INDF 80

01 TMR0 OPTION 81

02 PCL PCL 82

03 STATUS STATUS 83

04 FSR FSR 84

05 PORTA TRISA 85

06 PORTB TRISB 86

07     87

08 EEDATA EECON1 88

09 EEADR EECON2 89

0A PCLATH PCLATH 8A

0B INTCON INTCON 8B

0C à 4F 68 mémoires disponibles

Accès aux mêmes mémoires que page 0

8C à CF

Page 0 Page 1

Page 18: Projet Microcontrleur Presentation Final CRAFT1

- Registre INDF : Le registre INDF d'adresse 00 est utilisé pour l'adressage indi rect.il contient la valeur du registre pointé par le FSR

- Registre TMRO : Le registre TMRO d'adresse 01 est lui aussi particulier puisqu'il constitue un compteur programmable incrémenté continuelle ment à une cadence constante indépendante de l'exécution du reste du programme. Après avoir atteint la valeur 255, le comp teur reprend à 0.

-Registre PCL et PCLATH : Le registre PCL d'adresse 02 contient les 8 bits de poids faible du PC qui est codé sur 13 bits. Lors d'opérations d'écriture dans le registre PCL, le nouveau compteur programme est calculé à partir des 8 bits du registre PCL et des 5 bits du registre PCLATH d'adresse OA.

IV-2 description des registres inernes:

Page 19: Projet Microcontrleur Presentation Final CRAFT1

- Registres PORTA et PORTB :Les registres PORTA d'adresse 05 et PORTB d'adresse 06 sont les registres des ports d'entrées/sorties. Chaque broche de chaque port peut être utilisée en entrée ou en sortie: le sens de fonction nement des ports est défini par le contenu des registres TRISA et TRISB : un bit à 0 programme la broche correspondante en sortie, un bit à 1 la programme en entrée.

- Registre INTCON :Le registre INTCON d'adresse OB, présenté dans le tableau , est utilisé pour le contrôle et la gestion des interruptions.

 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

GIE EEIE T0IE INTE RBIE T0IF INTF RBIF

Page 20: Projet Microcontrleur Presentation Final CRAFT1

- Registres EEDATA, EEADR, EECON1 et EECON2:

-Le registre EEDATA d'adresse 08 contient, selon l'opération, la donnée lue ou la donnée à écrire.

 

-Le registre EEADR d'adresse 09 contient son adresse.(donnée)

 

-Le registre EECON1 d'adresse 88 définit le mode de fonctionnement de l'EEPROM.

 

-Le registre EECON2 d'adresse 89 n'est pas physiquement implanté et ne sert qu'à la sécurisation lors de la phase d'écriture. L'EEPROM ne contenant que 64 octets d'adresse 00 à 3F, les 2 bits de poids fort de EEADR sont donc toujours à 0.

Page 21: Projet Microcontrleur Presentation Final CRAFT1

- Registre STATUS

Le registre STATUS, ou registre d'état d'adresse 03.

-Le bit C (Carry), est mis à 1 lors d'opérations avec retenue. Ce bit est également utilisé par les instructions de rotation.

-Le bit DC(Digit Carry),est mis à 1 quand une retenue apparaît après le bit 3.

-Le bit Z (Zero), est mis à 1 quand un résultat arithmétique ou logique est nul.

-Le bit PD (Power Down), est mis à 1 lors de la mise sous tension ou lors de l'exécution de CLRWDT. Ce bit est mis à 0 par l'instruction SLEEP. 

-Le bit TO (Time Out), est mis à 1 lors de la mise sous tension ou lors de l'exécution des instructions CLRWDT et SLEEP. Ce bit est mis à 0 si le timer chien de garde déborde.

-Le bit RP0 sert à sélectionner la page des registres

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

IRP RP1 RP0 TO PD Z DC C

Registre STATUS.

Page 22: Projet Microcontrleur Presentation Final CRAFT1

-Registre de travail W (Working register) et Unité Arithmétique et Logique (ALU) :

Le registre de travail est l'équivalent des accumulateurs des microcontrôleurs classiques. C'est à travers l'Unité Arithmétique et Logique que s'effectuent les opérations arithmétiques et booléennes entre les données d'un registre et le registre de travail W.

Page 23: Projet Microcontrleur Presentation Final CRAFT1

V-1definition:

Les PICs sont conçus selon une architecture RISC( reducd instruction set computer).

Une architecture RISC propose un jeu d'instructions relativement réduit. Les modes d'adressage sont plus simples que dans une architecture CISC. L'architecture propose en général un nombre important de registres généraux. Ces caractéristiques favorisent une utilisation optimale du pipeline au niveau de la micro-architecture.

V-Jeu d'instructions :

Page 24: Projet Microcontrleur Presentation Final CRAFT1

Mnémonique OpérandeDescription CyclesBits affectés

ADDWF f,d Add W and F 1 C, DC, Z

ANDWF f,d AND W with f 1 ZCLRF f Clear f 1 ZCLRW   Clear W 1 ZCOMF f,d Complement f 1 ZDECF f,d Decrement f 1 ZDECFSZ f,d Decrement f, Skip if 0 1(2)  INCF f,d Increment f 1 ZINCFSZ f,d Increment f, Skip if 0 1(2)  IORWF f,d Inclusive OR W with f 1 ZMOVF f,d Move f 1 ZMOVWF f Move W to f 1  NOP   No Operation 1  RLF f,d Rotate Left throogh Carry 1 CRRF f,d Rotate Right throogh Carry 1 CSUBWF f,d Subtract W from f 1 C, DC, ZSWAPF f,d Swap nibbles in f 1  XORWF f,d Exclusive OR W with f 1 Z

Opérations sur des octets.

Page 25: Projet Microcontrleur Presentation Final CRAFT1

Mnémonique

Opérande DescriptionCycles

Bits affectés

BCF f,b Bit Clear f 1  

BSF f,b Bit Set f 1  

BTFSC f,b Bit Test f, Skip if Clear 1(2)  

BTFSS f,b Bit Test f, Skip if Set 1(2)  

Opérations des bits:

Page 26: Projet Microcontrleur Presentation Final CRAFT1

Opérations de contrôle et opérations sur les littéraux.

Page 27: Projet Microcontrleur Presentation Final CRAFT1

Il existe trois grands types d'accès à une donnée ou modes d'adressage :  

- Adressage immédiat : La donnée est contenue dans l'instruction.

- Adressage direct : La donnée est contenue dans un registre.

- Adressage indirect : L’adresse de la donnée est contenue dans un pointeur.

VI- Modes d'adressages :

Page 28: Projet Microcontrleur Presentation Final CRAFT1

Il s’agit d’un compteur/temporisateur,le microcontroleur le PIC16F84 ne comporte qu’un seul timer sur 8 bits.

Les différents modes de fonctionnement:

-on peut compter les impulsions recues sur la pin RA4/TOKI.

-on peut compter les cycles d’horloge du PIC meme.

Objectifs :

Les Timers ou compteurs de temps écoulé permettent :

-De réaliser des temporisations précises puisqu’ils utilisent des oscillateurs de référence à quartz.

-De générer des signaux électriques 0V / 5V.

-De mesurer des durées.

-De compter des évènements extérieurs sur des fronts montants ou descendants.

VII-Le timers

Page 29: Projet Microcontrleur Presentation Final CRAFT1

Une interruption provoque l’arrêt du programme principal pour aller exécuter une procédure d'interruption.

A la fin de cette procédure, le microcontrôleur reprend le programme principal à l’endroit où il l’a laissé. A chaque interruption sont associés deux bits, un bit de validation et un drapeau. Le premier permet d'autoriser ou non l'interruption, le second permet au programmeur de savoir de quelle interruption il s'agit.

VIII-Les interruptions

Page 30: Projet Microcontrleur Presentation Final CRAFT1

Dans cette expérience on va essayer d’allumer les LEDs reliés au pins B0 à B7 et les éteindre dans un premier temps de la façon suivante :

Réalisation d’un projet à l’aide de microcontrôleur

Page 31: Projet Microcontrleur Presentation Final CRAFT1

Apres on va essayer de faire un jeu de lumière de la façon suivante :

Page 32: Projet Microcontrleur Presentation Final CRAFT1

Et la dernière étape consiste à allumer et éteindre tout les LEDs.

Page 33: Projet Microcontrleur Presentation Final CRAFT1

Pour commencer on doit mettre tout les pins comme sortie en utilisant le TRISB=0;

Et vu qu’on va allumer tout les LEDs on doit écrire les 2commandes suivantes :

PORTB=0B11111111; permet d’avoir une tension de 5V

PORTB=0; permet de faire la liaison à la masse

On doit insérer la commande delay_ms(1000) pour qu’on puisse voire l’allumage des LEDs car le microcontrôleur exécute les 2 premières commande tellement vite qu’on saura pas voire les 2 actions

Explication du programme

Page 34: Projet Microcontrleur Presentation Final CRAFT1

void main() {

TRISB=0;PORTB=0;

loop:

PORTB=0B00000001;delay_ms(500); //L0 ON

PORTB=0B00000011;Delay_ms(500); //L0,L1 ON

PORTB=0B00000111;delay_ms(500); //L0,L1,L2 ON

PORTB=0B00001111;delay_ms(500); //L0,L1,L2,L3 ON

PORTB=0B00011111;delay_ms(500); //L0,L1,L2,L3,L4 ON

PORTB=0B00111111;delay_ms(500); //L0,L1,L2,L3,L4,L5 ON

PORTB=0B01111111;delay_ms(500); //L0,L1,L2,L3,L4,L5,L6 ON

Code programme1 partie

Page 35: Projet Microcontrleur Presentation Final CRAFT1

PORTB=0B11111111;delay_ms(500); //L0,L1,L2,L3,L4,L5,L6,L7 ON

PORTB=0B00000000;delay_ms(500); //ALL LEDs OFF

C’est la partie ou tout les LEDs s’allument et s’eteignent

Code programme 2 partie

Page 36: Projet Microcontrleur Presentation Final CRAFT1

PORTB=0B11111111;delay_ms(500); //ALL LEDs ON

PORTB=0B00000000;delay_ms(500); //ALL LEDs OFF

goto loop;

}

Partie final du programme qui demande l’allumage de tout les LEDs ainsi que leur extinction.

La repétition du prgramme en continu c’est du a l’instruction:

loop:

-- - - - - - - - code programme

-- - - - - - - -

goto; commande qui permet d’aller à l’adresse loop et commencer à refaire les instructions

Code programmepartie 3

Page 37: Projet Microcontrleur Presentation Final CRAFT1

FIN