projet microcontrleur presentation final craft1
TRANSCRIPT
![Page 1: Projet Microcontrleur Presentation Final CRAFT1](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/1.jpg)
Pic16f84
Projet microcontrôleur
![Page 2: Projet Microcontrleur Presentation Final CRAFT1](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/5.jpg)
![Page 6: Projet Microcontrleur Presentation Final CRAFT1](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/6.jpg)
![Page 7: Projet Microcontrleur Presentation Final CRAFT1](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/9.jpg)
Architecture interne du PIC16F84
![Page 10: Projet Microcontrleur Presentation Final CRAFT1](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/10.jpg)
• 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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/18.jpg)
- 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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/19.jpg)
- 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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/20.jpg)
- 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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/21.jpg)
- 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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/22.jpg)
-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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/26.jpg)
Opérations de contrôle et opérations sur les littéraux.
![Page 27: Projet Microcontrleur Presentation Final CRAFT1](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/31.jpg)
Apres on va essayer de faire un jeu de lumière de la façon suivante :
![Page 32: Projet Microcontrleur Presentation Final CRAFT1](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/32.jpg)
Et la dernière étape consiste à allumer et éteindre tout les LEDs.
![Page 33: Projet Microcontrleur Presentation Final CRAFT1](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042700/5571fb514979599169948bfd/html5/thumbnails/37.jpg)
FIN