2. Qu’est ce qu’un microcontrôleur?
• Un microcontrôleur est un circuit intégré qui rassemble les éléments
essentiels d'un ordinateur : processeur, mémoires
• Les microcontrôleurs se caractérisent par un plus haut degré
d'intégration, polyvalents utilisés dans les ordinateurs personnels. une plus
faible consommation électrique, une vitesse de fonctionnement plus faible
(de quelques mégahertz jusqu'à plus d'un gigahertz) et un coût réduit par
rapport aux microprocesseurs
3. Comment on identifie les différentes variétés de pic?
• Le nom PIC initialement appelé "Peripheral Interface Controller".
• Un PIC est généralement identifié par une référence de la forme suivante :
xx(L)XXyy-zz
xx : famille du composant actuellement <<12, 14, 16, 17 et 18 >>
(L): tolérance plus importante de la plage de tension
XX: type de mémoire programme
yy: identificateur
zz: vitesse maximale du quartz de pilotage.
4. Les PICs 16F
• Les PIC de la famille 16C ou 16F sont des composants de milieu de gamme.
C'est la famille la plus riche en termes de dérivés.
• Actuellement les modèles Microchip, sont classés en 3 grandes familles,
comportant chacune plusieurs références. Ces familles sont :
- Base-line : les instructions sont codées sur 12 bits.
- mid-line : les instructions sont codées sur 14 bits.
- High-End : les instructions sont codées sur 16 bits.
5. • La famille PIC16F de dispositifs est CMOS (Complementary Metal Oxide Semiconductor)
microcontrôleurs comprenant des types PIC16F83, PIC16C83, PIC16F84, PIC16C84,
PIC16LCR8X et PIC16LF8X.
• TechnologieCMOS offre un certain nombre d'avantages par rapport à d'autres
technologies. Par exemple, les circuits CMOS consomment très peu d'énergie, fonctionnent
sur une gamme assez large de tension et sont assez indulgents de la mauvaise mise en
page et du bruit électrique.
• PIC est une famille de l'architecture des microcontrôleurs modifiés Harvard faites par
MicrochipTechnology, issus de la PIC1650 développé à l'origine par la Division
Microelectronics de General Instrument.
7. Que signifie 16F876-20:
- 16 : le circuit appartient à la série Mid-Line.
- F : la mémoire programme est de type FLASH.
- 876 : type(identificateur)
- 20 : Quartz à 20MHz au maximum.
10. • MCLR : cette broche sert à initialiser le microcontrôleur PIC: à la mise sous
tension par un front montant. Cette broche peut être simplement reliée à
l’alimentationVDD si on n’a pas besoin de RESET externe
• VDD etVSS: broches d’alimentation du circuit (la tensionVDD peut être
comprise entre 4V à 5,5V).
Les ports du microcontrôleur 16F876 sont couplés à différents modules
(Timers (ports A et C), convertisseur analogique numérique (port A),
plusieurs types de liaisons séries (port C).
11. • RA0 à RA5: 6 broches du portA. Chaque ligne peut être configurée
individuellement en entrée ou en sortie.
• RB0 à RB7: 8 broches du port B. Chaque ligne peut être configurée
individuellement en entrée ou en sortie. Les broches RB6/PGC
(ProGramming Clock) et RB7/PGD (ProGramming Data) permettent la
connexion à un module ICD (In Circuit Debugger, mise au point de
programme sur site).
• RC0 à RC7: 8 broches du port C. Chaque ligne peut être configurée
individuellement en entrée ou en sortie.
12. • OSC1 et OSC2: ces broches permettent de faire fonctionner l’oscillateur
interne du microcontrôleur PIC de trois façons différentes.
2- Un quartz ou résonateur céramique permet
d’obtenir une fréquence de fonctionnement
très précise
3- Un oscillateur externe permet une
synchronisation avec un autre circuit
1- Un simple réseau RC peut suffire,
l’oscillateur est peu précis mais
économique.
13. Organisation de la mémoire RAM
• L’espace mémoire RAM adressable est de 512 positions de 1 octet chacune :
• 96 positions sont réservées au SFR ( Special Function Registers ) qui sont
les registres de configuration du PIC.
• Les 416 positions restantes constituent les registres GPR ( General Propose
Registers ) ou RAM utilisateur. Sur le 16F876 et 16F877, 3 blocs de 16 octets
chacun ne sont pas implantés physiquement d’où une capacité de RAM
utilisateur de 368 GPR.
15. Accès à la RAM par adressage DIRECT:
• La RAM apparaît alors organisée en 4 banks de 128 octets
chacun. L'adresse instruction permet d'adresser à l'intérieur
d'un bank alors que les bits RP0 et RP1 du registre STATUS
permettent de choisir un bank . La Figure II-1 montre
l’organisation de la RAM avec les zones allouée au SFR et aux
GPR. Les zones hachurées ne s ont pas implantées
physiquement.
Si on essaye d’y accéder , on est aiguillé automatiquement vers
la zone [ 70h ,7Fh ] appelée zone commune.
17. LE PIC 16F628 : Définition
• Ce composant intègre un microcontrôleur 8 bits, c’est à dire un processeur
et des périphériques, dans un boîtier « Dual in Line » de 18 broches. Il est
réalisé en technologie CMOS et peu cadencé par une horloge allant de 0 à
20 MHz; il doit être alimenté par une tension allant de 3 à 5,5Volts.
18. Brochage du 16F628
• Les broches du composant possèdent plusieurs affectations entre les ports
d’E/S, les périphériques et les fonctions système.
19. - 3Timers (8 et 16 bits);
- 1 module Capture/Compare/PWM;
- 2 comparateurs analogiques; 1 référence de tension;
- USART (émission/réception série synchrone et asynchrone)
En périphérie de l’unité centrale, on peut recenser les ressources
suivantes sur le composant :
Mémoire Flash Programme : 2048 instructions
Mémoire RAM Données : 224 Octets
Mémoire EEPROM Données : 128 Octets
Ports d’E/S : 2 ports 8 bits
Périphériques:
21. Mémoire
Ce microcontrôleur est basé sur une architecture de processeur de type
Harvard, c’est à dire qu’il y a séparation des bus d’instructions et de
données ainsi que de l’espace d’adressage
1) Mémoire programme
- Les instructions du programme sont stockées sur 14
bits dans une zone mémoire dont l’adresse s’étend de
000h à 7FFh (2048 lignes de programme pour le 16f628)
- Il y a 2 adresses réservées pour les vecteurs
d’initialisation (Reset et interruptions) ; le processeur
possède une pile de 8 niveaux pour gérer les adresses de
retour de sous programmes ; il n’y a aucun contrôle sur
l’état de la pile par le processeur.
22. 2) Mémoire données (Registres)
La mémoire données correspond aux registres (File Registers) vus par l’unité
centrale ; ces registres sont de2 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 en écriture suivant leur fonction ; il y a 34 registres de ce type
pour le 16f628
• Registre d’usage général : ils permettent le stockage de variables; ils sont
accessibles en lecture et en écriture par le programme ; il y a 224 registres
de ce type pour le 16f628,
23. Le jeu d’instructions du
processeur ne permet
l’adressage des registres
que sur 7 bits (128
registre), l’espace mémoire
est alors décomposé en 4
bancs de 128 registres ; la
cartographie de la mémoire
données est donnée par la
figure suivante ; les zones
grisées ne sont pas
implémentées
28. Architecture interne
mémoires
Port I/O
Contrôle
ALU
Timers,
EEPROM,
USART
• Programme : mémoire Flash
de 8k (mots de 14 bits)
• RAM : 368 bytes
• Pile matérielle (stack) : jusqu’à
8 fonctions Imbriquées
• 5 ports 5 PORTS (A,B,C,D et
E) ont une double fonction au
moins, D :I/O pure et/ou port
parallèle 8 bits associé au PORT
E, E(3 bits) I/O pure et/ou
pilotage du PORT E
Décode/contrôle
les instructions (CLK)
• formée de W (accumulateur
8bit) et STATUS(registre d’etat)
T0 (8 bits):incrémenté par la
broche (TOCKI/ RA4) ou par
l’horloge interne
T1 (16 bits): incrémenté soit par
l’horloge interne, par des
impulsions sur la broche
T1CKI/RC0 ou par un
oscillateur (RC ou quartz)
T2 (8 bits) : Il est incrémenté par
l’horloge interne
29. Brochage du 16F877/16F874:
Remarque : Les 16F873 et 16F874
présentent peu d’intérêt par rapport
aux 16F876 et 16F877, en effet ils
possèdent moins de mémoires
programmes et ils sont à peu près
au même prix.
30. Le µC dispose de 3 PORTS (A,B et C) pour le 16F876 et 5 PORTS (A,B,C,D et E) pour le 16F877. Tous
les ports d’entrées sorties Input/ Output sont bidirectionnels. La plupart des lignes de PORTs ont une
double fonction.
• Le PORT A (5 bits) I/O pure et/ou convertisseur analogique et/ou TIMER 0. La broche RA4 du PORT
A (Entrée du TIMER 0 T0CKI) est du type DRAIN OUVERT.
• Le PORT B (8 bits) I/O pure et/ou programmation in situ ICSP/ICD (Broche RB3/PGM, RB6/PGC et
RB7/PGD) et l’entrée d’interruption externe RB0/INT.
Remarque : Si le PIC est utilisé en mode ICSP/ICD il faut laisser libre les broches RB3/PGM, RB6/PGC
ainsi que RB7/PGD) et les configurer en entrée.
• Le PORT C (8 bits) I/O pure et/ou TIMER 1 et/ou SPI / I2C et/ou USART.
• Le PORT D (8 bits) I/O pure et/ou port parallèle 8 bits associé au PORT E.
• Le PORT E (3 bits) I/O pure et/ou pilotage du PORT E RE0/RD, RE1/WR et RE2/CS. Toutes les lignes
des PORTs peuvent fournir un courant de 25mA par ligne de PORT. Une limite de 40mA par PORT doit
être respectée pour des questions de dissipation.
33. PIC 16F876 PIC 16F873
Operating Frequency DC-20 MHZ DC-20 MHZ
RESETS (and Delays) POR, BOR
(PWRT, OST)
POR, BOR
(PWRT, OST)
Flash Program Memory (14 bit-
words)
8K 4K
RAM Data Memory (bytes) 368 192
EEPROM Data Memory 256 128
Interrups 13 13
I/O Ports Ports A,B,C Ports A,B,C
Timers 3 3
Capture/compare/PWM Modules 2 2
Serial Communications MSSP,USART MSSP,USART
Parallel Communications -- --
10-bit Analog-to-Digital Module 5 input channels 5 input channels
Instruction Set 35 instructions 35 instructions
Différence entre pic 16F676/73:
34. PIC16F874 PIC16F877
Operating Frequency DC-20 MHZ DC-20 MHZ
RESETS (and Delays) POR, BOR
(PWRT, OST)
POR, BOR
(PWRT, OST)
Flash Program Memory (14 bit-
words)
4K 8K
RAM Data Memory (bytes) 192 366
EEPROM Data Memory 128 256
Interrups 14 14
I/O Ports Ports A,B,C,D,E Ports A,B,C,D,E
Timers 3 3
Capture/compare/PWM Modules 2 2
Serial Communications MSSP,USART MSSP,USART
ParallelCommunications PSP PSP
10-bit Analog-to-Digital Module 8 input channels 8 input channels
Instruction Set 35 instructions 35 instructions
Différence entre pic 16F877/74:
35. Nouveauté concernant les pic16F:
Microchip annonce, depuis le salon DESIGNWest à San José (Californie), l’extension de sa famille de
microcontrôleurs à cœur milieu de gamme amélioré : les microcontrôleurs 8 bits PIC16F(LF)178X
intègrent des périphériques analogiques avancés et de communication, tels que des convertisseurs
analogiques-numériques (CAN) 12 bits, des convertisseurs numériques-analogiques (CNA), des
amplificateurs opérationnels et des comparateurs rapides, ainsi qu’un EUSART compatible LIN et des
périphériques de communication SPI et I2C™.Ces nouveaux microcontrôleurs affichent également le
meilleur niveau de contrôle PWM et de précision du marché grâce aux nouveaux modules PSMC
(Programmable Switch-Mode Controllers - contrôleurs programmables à découpage).
Les modèles « LF » de ces microcontrôleurs sont dotés de la technologie XLP très faible consommation,
affichant une consommation en fonctionnement et en mode veille respectivement d’à peine 32 µA/MHz
et 50 nA, permettant d’améliorer la durée de vie des batteries et de réduire la consommation en veille.
Grâce à leur faible consommation et à leur intégration avancée analogique et numérique, les
microcontrôleurs à usage général PIC16F(LF)178X sont idéaux pour les applications du type éclairage par
LED, gestion de batteries, alimentation numérique et contrôle de moteurs entre autres.
les normes relatives à la consommation énergétique se multiplient dans le monde entier. Grâce aux
microcontrôleurs PIC16F(LF)178X, les développeurs peuvent créer de meilleurs produits moins
gourmands en énergie.Le cœur 8 bits milieu de gamme amélioré de Microchip permet de meilleures
performances, dont une vitesse de 32 MHz, l’enregistrement automatique du contexte pour une gestion
plus rapide des interruptions, plus d’efficacité dans le jeu d’instructions avec une densité de code plus
élevée, ainsi qu’un contrôle direct des ports plus rapide et plus performant.