Vous êtes sur la page 1sur 36

Automation and Drives

IX. Éléments de base du PIC 16F887

UNIVERSITÉ MOHAMED V - RABAT


ÉCOLE◼ Un
SUPÉRIEURE
API ? DE TECHNOLOGIE – SALÉ

Périphérie
L◼S7-300/
ICENCE ET200MPROFESSIONNELLE

◼ S7300/S7400

◼ Step7
LP – MES
◼ Les comms NIVEAU : S5
◼ Régulations
MODULE◼ Simatic
3 : INFORMATIQUE
HMI
INDUSTRIELLE
P
◼ ROFESSEUR
API série H/F : EL AYACHI CHATER
◼ Documents

15/12/2021 Informatique Industrielle 1


LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.0 PLAN DU CHAPITRE

1) Brochage du 16F887
2) Éléments essentiels du PIC 16F887
◼ Un API ?
3) Possibilités d’horloge du PIC 16F887
4) Registres de configuration
◼ Périphérie CONFIG1 et CONFIG2
5) S7-300/centrale
Unité de traitement ET200M(CPU)
6) Organisation de la mémoire RAM
◼ S7300/S7400
7) Accès à la RAM par adressage direct
8) Accès à la RAM ◼ Step7
par adressage indirect
9) Exercice ◼ Les comms
Références principales :
1) Génie électrique,◼lesRégulations
microcontrôleurs : étude détaillée du PIC 16F887, Abdelmajid
Oumnad, Technosup, 2012 HMI
◼ Simatic
2) PIC Microcontrollers, Milan Verle
3) https://www.microchip.com
◼ API série H/F
4) https://www.mikroe.com › ebooks › pic-microcontrollers
◼ Documents
5) https://pic-microcontroller.com/

Informatique Industrielle 2
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.1 BROCHAGE DU PIC 16F887

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 3
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.1 BROCHAGE DU PIC 16F887

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 4
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.2 ÉLÉMENTS ESSENTIELS DU PIC 16F887

o Mémoire programme de type EEPROM flash de 8K mots de 14 bits,


o Mémoire EEPROM de 256 octets,
o RAM donnée de◼368 Un octets,
API ?
o 5 ports d'entrée sortie (8bits), PORTA, PORTB, PORTC, PORTD, PORTE(4 bits),
◼ Périphérie
o Convertisseur Analogiques Numériques 10 bits à 14 canaux,
S7-300/ ET200M
o USART, Port série universel, mode asynchrone (RS232) et mode synchrone,
S7300/S7400
o MSSP, Port série◼synchrone supportant I2C,
o 3 TIMERS TMR0, TMR1 et TMR2,
◼ Step7
o 2 modules de comparaison et Capture CCP1 et CCP2,
o Un chien de garde,
◼ Les comms
o 13 sources d'interruption,
◼ Régulations
o Générateur d'horloge : quartz (jusqu’ à 20 MHz) ou à Oscillateur RC,
o Protection de code,
Simatic HMI
o Fonctionnement◼en mode sleep pour réduction de la consommation,
o Programmation ◼ in-situ ICSP
API série H/F(In Circuit Serial Programming) 12V ou 5V,
o Possibilité aux applications utilisateur d’accéder à la mémoire programme,
o Tension de fonctionnement
◼ Documents de 2 à 5V,
o Jeux de 35 instructions .
Informatique Industrielle 5
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.2 ÉLÉMENTS ESSENTIELS DU PIC 16F887

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 6
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.2 ÉLÉMENTS ESSENTIELS DU PIC 16F887

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 7
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.3 POSSIBILITÉ D’HORLOGE DU PIC 16F887

▪ Le 16F887 dispose d’un générateur interne qui délivre une horloge de


fréquence Fosc. ◼ Cette horloge est utilisée par tous les modules.
Un API ?
▪ L'horloge utilisée pour cadencer l'exécution du programme est Fosc/4.
◼ Périphérie
▪ On l'appelle horloge instruction car le PIC exécute une instruction par période
S7-300/ ET200M
Tcy = 4Tosc de cette horloge.
▪ Sa période Tcy fait référence au cycle machine.
◼ S7300/S7400
▪ Le générateur d'horloge est constitué de 2 oscillateurs :
◼ Step7
Un oscillateur externe et un double oscillateur interne.
▪ L’oscillateur externe nécessite un quartz ou un réseau RC pour fixer la
◼ Les comms
fréquence d‘horloge Fosc.
◼ Régulations
▪ Le choix de l'oscillateur et de Fosc se fait à l'aide de deux registres :
o Le registre de◼ Simatic
configuration
HMI CONFIG1 de type EEPROM qui est flashé au
moment de l'implantation du programme sur le PIC,
◼ API série H/F
o Le registre OSCCON qui est situé dans la RAM et qui peut être changé à
tout moment◼lors de l'exécution du programme.
Documents

Informatique Industrielle 8
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.3 POSSIBILITÉ D’HORLOGE DU PIC 16F887

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

OSCCON ◼ API série H/F

◼ Documents

Informatique Industrielle 9
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.3 POSSIBILITÉ D’HORLOGE DU PIC 16F887

1. Oscillateur à Quartz
Fosc peut atteindre ◼20UnMHz.
API ? Le quartz doit être relié aux entrées OSC1 et OSC2.
Rs, C1 et C2 ne sont pas obligatoires pour les basses fréquences.
◼ Périphérie
Le registre CONFIG1 doitET200M
S7-300/ être configuré par la directive __CONFIG dans l’un
des modes suivants :
o LP : FOSC<2:1:0>= ◼ S7300/S7400
000. Pour les quartz de
fréquence < 200 kHz. Ce mode est adapté
◼ Step7
pour le quartz d'horlogerie 32768 kHz qui
permet d'obtenir une
◼ Leshorloge
comms d'une seconde
par division de fréquence.
o XT : FOSC<2:1:0>= ◼ Régulations
001. Pour les quartz de
fréquence < 8 MHz
◼ Simatic HMI
o HS : FOSC<2:1:0>= 010 : Pour les quartz de
8 MHz à 20 MHz.◼ Dans ce cas,
API série H/F il faut utiliser
C1 et C2.
◼ Documents

Informatique Industrielle 10
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.3 POSSIBILITÉ D’HORLOGE DU PIC 16F887

2. Horloge externe
o CONFIG1 doit◼ Un
être
APIconfiguré
? dans le mode EC :
FOSC<2:1:0>= 011
◼ Périphérie
o L’horloge externe estET200M
S7-300/ appliquée sur l’entrée OSC1.
o La broche OSC2 fonctionne en E/S normale RA6.
◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 11
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.3 POSSIBILITÉ D’HORLOGE DU PIC 16F887

3. Oscillateur interne
Un API ?
Dans ce mode, on ◼n’a pas besoin de composant externes.
L’horloge est issue◼de l’un des 2 oscillateurs internes :
Périphérie
S7-300/ ET200M
HFINTOSC et LFINTOSC.
Le registre CONFIG1 doit être configuré dans l’un des deux modes :
◼ S7300/S7400
o INTOSC : FOSC :<2:1:0>= 101 :
◼ Step7
l'horloge Fosc/4 est disponible sur la broche OSC2 qui fonctionne en
Les comms
CLKOUT alors◼que la broche OSC1 fonctionne en E/S normale RA7
o INTOSCIO : FOSC<2:1:0>=
◼ Régulations 100 :
Les deux broches OSC1 et OSC2 fonctionnent en E/S normales ;
◼ Simatic HMI
o Il faut configurer le registre OSCCON (bank1) pour choisir la fréquence
◼ API série
désirée entre 31kHz H/F
et 8MHz.
◼ Documents

Informatique Industrielle 12
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.3 POSSIBILITÉ D’HORLOGE DU PIC 16F887

Registre OSCCON
◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 13
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.3 POSSIBILITÉ D’HORLOGE DU PIC 16F887

Registre OSCCON
◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 14
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.3 POSSIBILITÉ D’HORLOGE DU PIC 16F887

4. Oscillateur RC
Fosc est fixée par ◼Rext et C .
Un API ?ext
CONFIG1 doit être configuré dans l’un des modes suivants :
o RC : FOSC<2:1:0>= ◼ Périphérie
111.
S7-300/ ET200M
Le réseau RC est connecté sur l’entrée
S7300/S7400
OSC1. L'horloge◼instruction Fosc/4 est
accessible sur la◼ sortie
Step7 OSC2, ce qui
permet de mesurer sa fréquence et
◼ Les
d’ajuster les valeurs decomms
Rext et Cext.
o RCIO : FOSC<2:1:0>= 110.
◼ Régulations
Dans ce cas, l'horloge fosc/4 est
inaccessible. ◼ Simatic
La HMI
broche OSC2
fonctionne comme E/S normale RA6
◼ API série H/F
accessible par le bit 6 du port PORTA .
◼ Documents

Informatique Industrielle 15
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.4 REGISTRES DE CONFIGURATION CONFIG1 ET CONFIG2

◼ Un API ?
Pour le PIC16F887, les switchs de configuration sont regroupés dans
deux registres CONFIG1
◼ Périphérie et CONFIG2 situés dans la EEPROM de
S7-300/ ET200M
configuration aux positions 2007h et 2008h.
◼ S7300/S7400
Ces registres ne◼ sont
Step7
pas des SFR que l’on peut modifier durant
l’exécution du programme. Ce sont des registres permanents flashés
◼ Les comms
au même moment que le programme. Les bits de ces registres sont
aussi appelés fusibles ou switchs de configuration.
◼ Régulations

◼ Simatic HMI
Ces deux registres doivent être configurés à l'aide de la directive
__CONFIG. ◼ API série H/F

◼ Documents
Les logiciels de flachage du PIC permettent aussi de les positionner.
Informatique Industrielle 16
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.4 REGISTRES DE CONFIGURATION CONFIG1 ET CONFIG2

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 17
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.4 REGISTRES DE CONFIGURATION CONFIG1 ET CONFIG2

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 18
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.4 REGISTRES DE CONFIGURATION CONFIG1 ET CONFIG2

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents mais

Informatique Industrielle 19
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.4 REGISTRES DE CONFIGURATION CONFIG1 ET CONFIG2

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 20
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.4 REGISTRES DE CONFIGURATION CONFIG1 ET CONFIG2

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400
01
10 ◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 21
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.4 REGISTRES DE CONFIGURATION CONFIG1 ET CONFIG2

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 22
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.5 UNITÉ CENTRALE DE TRAITEMENT (UCT=CPU)

Le PIC16F887 dispose
◼ Un API ?d'une UCT 8 bits d'architecture RISC.
Il reconnait un jeu de 35 instructions simples.
◼ Périphérie
S7-300/ ET200M
Toutes les instructions sont codées sur un nombre fixe et réduit de bits. En
◼ S7300/S7400
effet, toutes les instruction sont codées sur 14 bits et sont exécutées en un
cycle Tcy de l'horloge instruction de féquence Fosc/4.
◼ Step7

◼ Les comms
La mémoire programme et la mémoire de données sont distinctes ce qui
◼ Régulations
facilite la gestion des bus. La mémoire programme est une mémoire de type
EEPROM flash de capacité
◼ Simatic HMI 8 × 1024 mots de 14 bits. Chaque position
contient le code d'une instruction. Cette EEPROM garde son contenu quand
◼ API série H/F
le PIC est éteint et peut être reprogrammée à souhait.
◼ Documents

Informatique Industrielle 23
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.5 UNITÉ CENTRALE DE TRAITEMENT (UCT=CPU)

Structure très simplifiée de l‘UCT


◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 24
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.5 UNITÉ CENTRALE DE TRAITEMENT (UCT=CPU)

La mémoire de données est une RAM appelée fichier des registres.


Elle contient 96◼ registres
Un API ? de configuration appelés SFR (Special Function
Registers) et de 368 registre à usage général GPR (General Propose Registers) où
Périphérie
l’on peut stocker des◼ données utilisateur. Tous les registres (SFR ou GPR) sont des
S7-300/ ET200M
registres 8 bits. Toutes les opérations exécutées dessus sont des opérations 8 bits.
◼ S7300/S7400
Le processeur dispose d'un seul accumulateur nommé W (Working register).
C'est un registre de ◼8 Step7
bits intégré avec l’Unité Arithmétique et Logique. Il ne peut
donc pas être adressé comme les SFR ou les GPR.
On peut avoir : ◼ Les comms
▪ Une opération entre W et une valeur littérale avec résultat dans W ;
◼ Régulations
▪ Une opération entre W et un registre avec résultat soit dans W soit dans le registre.
◼ Simatic
▪ Le processeur dispose HMIpile de 8 positions non accessible par programme.
d'une
Elle est utilisée pour◼ API
sauvegarder
série H/F le compteur programme lors de l'appel de sous-
programmes et au branchement aux interruptions. Donc, le programme ne peut
avoir que 8 appels de◼ fonctions
Documentsimbriquée, au maximum.

Informatique Industrielle 25
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.6 ORGANISATION DE LA MÉMOIRE RAM

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations
direct et indirect
◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 26
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.6 ORGANISATION DE LA MÉMOIRE RAM

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 27
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.7 ACCÈS À LA RAM PAR ADRESSAGE DIRECT

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms
Code machine d’une instruction avec adressage direct
◼ Régulations
CO ◼ Simatic HMI

d ◼ API série H/F


adresse 7 bits
◼ Documents

Informatique Industrielle 28
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.7 ACCÈS À LA RAM PAR ADRESSAGE DIRECT

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

Constitution de l'adresse
◼ Step7 pour
l'adressage physique
◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 29
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.7 ACCÈS À LA RAM PAR ADRESSAGE DIRECT

◼ Un API ?
Page 28
◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 30
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.8 ACCÈS À LA RAM PAR ADRESSAGE INDIRECT

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 31
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.8 ACCÈS À LA RAM PAR ADRESSAGE INDIRECT

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400
Accès à la RAM par
l’adressage INDIRECT
◼ Step7
Organisation de la RAM pour
◼ Les comms
l’adressage indirect
◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 32
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.8 ACCÈS À LA RAM PAR ADRESSAGE INDIRECT

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 33
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


REGISTRES SFR ET LEURS ÉTATS AU DÉMARRAGE

◼ Un API ?

◼ Périphérie
S7-300/ ET200M

◼ S7300/S7400

◼ Step7

◼ Les comms

◼ Régulations

◼ Simatic HMI

◼ API série H/F

◼ Documents

Informatique Industrielle 34
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


9.9 EXERCICES

Question 1.
Dans quel bank◼ Un
seAPI ?
trouvent les cases mémoire d'adresse : 0x1A4,
0xB5, 0x130, 0x58, 0x100, 0x200, 0x250, 0x300, 0x400 ?
◼ Périphérie
S7-300/ ET200M
Question 2.
◼ S7300/S7400
Combien de cases mémoires libres (GPR) y a-t-il dans la zone
◼ Step7
mémoire qui commence à la position 0xA0 et se termine à 0xEA ?
Question 3. ◼ Les comms
Quelle est l'adresse de la dernière position d'une zone mémoire
◼ Régulations
de 40 cases qui◼ commence
Simatic HMI
à la position 0x190 ?
Question 4. ◼ API série H/F
Combien de cases mémoires libres (GPR) y a-t-il dans les bancs
Documents
bank0, bank1, ◼bank2 et bank3 ?
Informatique Industrielle 35
LP : IMB - MES
Automation and Drives

IX. Éléments de base du PIC 16F887


ANNEXE : Structure d'un programme écrit en assembleur

Un programme écrit enAPIassembleur


◼ Un ? doit respecter une certaine syntaxe et un
certain nombre de règles afin qu'il soit facile à lire et à débuguer :
◼ Périphérie
S7-300/ ET200M
Tout ce qui commence à la première colonne est considéré comme une étiquette
S7300/S7400
(label) permettant de◼ faire des renvois et aussi des assignations de constantes et de
variables. ◼ Step7
Tout ce qui suit un point virgule est considéré comme un commentaire non
◼ Les comms
interprété par le compilateur.
◼ Régulations
Un programme apparaît donc comme un texte écrit sur 3 colonnes :
◼ Simatic HMI
- la colonne de gauche contient les étiquettes
- la colonne du milieu contient
◼ API les instructions
série H/F
- la colonne de droite contient des commentaires
◼ Documents

Informatique Industrielle 36
LP : IMB - MES

Vous aimerez peut-être aussi