Vous êtes sur la page 1sur 72

INTRODUCTION

LA NAISSANCE DU MICRO-ORDINATEU
IDENTIFICATION DES PICs
ARCHITECTURE EXTERNE DU PIC16
ARCHITECTURE INTERNE DU PIC16
MODES DARESSAGE
JEUX DINSTRUCTIONS EN ASSEM
CONCLUSION
BIBLIOGRAPHIE
Introduction :

Un PIC est un microcontrleur, cest dire une unit


de traitement de linformation de type microprocesseur
laquelle on a ajout des priphriques internes.

La dnomination PIC est sous copyright de Microchip.


PIC = Peripheral Interface Controller

Les PICs sont des composants dits RISC (Reduce


Instructions Construction Set), ou encore composant
jeu dinstructions rduit.
Lide de linvention :

Lide tait dinventer un petit composant qui permet


de faire Les mmes fonctions principales dun
ordinateur .
La naissance du micro-ordinateur :
1971
Intel cre le premier microprocesseur, le 4004. C'est un CPU 4
bits fonctionnant 108 kHz et compos de 2300 transistors. Sa
puissance de calcul norme pour l'poque, lui permet de
raliser 60000 oprations par seconde.

Fig-1 CPU a 4bits (4004).


La naissance du micro-ordinateur :
1974
Texas Instruments met au point le premier microcontrleur 4
bits.

Fig-1 Le 1ere microcontrolleur TMS 1000


Les diffrentes familles des PICs :

La famille des PICs est subdivise en 3 grandes


familles :
1)Base-Line : utilise des mots dinstructions de 12 bits

2)Mid-Range: utilise des mots de 14 bits

3)High-End: utilise des mots de 16 bits.


Identification dun PIC :

16F84-04
Catgorie du Frquence
PIC: horloge maximale
PIC Mid-Range (4 Mhz)
Identification du
Indique une PIC
mmoire de type
FLASH

PIC16F 84 alimentation classique (4.5 5.5V

Le PIC existe en 2 versions

PIC16LF 84 l'alimentation (2 6V).


Organisation du 16F84 :
Les caractristiques principales :
35 instructions
4 sources d'interruption
1K mots mmoire programme Flash
68 octets de donnes RAM
64 octets de donnes EEPROM
13 Entre/Sortie
1 Timer/Compteur
Architecture externe du PIC 16f84 :
LE BROCHAGE DU PIC :
PORTA

PORT B

Oscillateur

Alimentation 5V

Reset (rinitialisation)
Architecture externe du PIC 16f84 :

PORTA :
Il est constitu de 5 pattes,
chacune reprsente un bit de
son registre
TRISA
RA0 RA1 RA2 RA3 RA4
Architecture externe du PIC 16f84 :

PORTB :
Il est constitu de 8 pattes, chaque
patte reprsente un bit de son
registre
TRISB
RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7
Architecture externe du PIC 16f84 :

OSC1/CLOCKIN et OSC2/CLOCKOUT :
Elle reprsente les pattes
dhorloges, plusieurs types
d'horloges peuvent tre utiliss:
quartz ou circuit RC
Architecture externe du PIC 16f84 :

Vdd & Vss :


sont les pattes d'alimentation.
VDD doit tre compris entre 2 et 6 V
en utilisation.
Lors de la programmation:
4,5 V >VDD >5 V
Architecture externe du PIC 16f84 :

MCLR :
est la patte de Reset et d'entre
de la tension de programmation.
Les circuits PIC intgrant en
interne
le circuit de Reset automatique
la mise sous tension.
cette broche doit tre relie la
VDD en utilisation normale.
Tableau comparatif:
:
Structure interne simplifi du
PIC:
Data Free-run
Memory Counter
RAM

Data Program
Memory CPU Memory
EEPROM FLASH

PORTA PORTB
Structure interne du PIC:
Architecture interne simplifi du
PIC:
Architecture interne simplifi du
PIC:
La mmoire programme (flash):

Cette mmoire de 1024 mots stocke le programme. Elle est non volatile et
reprogrammable souhait.
Chaque position de 14 bits contient une instruction. L'emplacement du
programme peut
se situer n'importe quel endroit de la mmoire.
Architecture interne simplifi du
PIC:
L'ALU et le registre W:

C'est une ALU 8 Bits qui ralise les oprations arithmtique et logique
entrel'accumulateur W et n'importe quel autre registre 'F' ou constante K.

L'accumulateur W est un registre de travail 8 bits, il n'a pas d'adresse comme


les autres SFR.
Pour les instructions deux oprandes, c'est toujours lui qui contient un des
deux oprandes.
Pour les instructions un oprande, celui-ci peut tre soit W soit n'importe
quel registre F.

Le rsultat de l'opration peut tre plac soit dans le registre de travail W soit
dans le registre F
Architecture interne simplifi du
PIC:
Le Watchdog TimerWDT
(Chien de garde):
Cest un compteur
L'horloge du WDT est 8 bits incrment
ajuste enLe
pour que permanence (mme
Time-Out arrive si le C
toutes les est en
18 ms.
Ilmode
est cependant
sleep) parpossible
une horloge
d'augmenter
RC intgre
cetteindpendante
dure en faisant
de l'horloge
passer le signal
systme. dans
Time-Out Lorsquil dborde, (WDT
un prdiviseur programmable
TimeOut), (partag
deux situations
avec lesont
timerpossibles
TMR0) :
l'affectation se fait l'aide du bit PSA du registre OPTION_REG
oSiPSA
le C
= 1est
--on
enutilise
fonctionnement
le prdiviseur
normal, le WDT time-out provoque un
oRESET.
PSA = Ceci permet
0 --pas dviter de rester plant en cas de blocage du
de prdiviseur
microcontrleur par un processus indsirable non contrl
Si le C est en mode SLEEP, le WDT time-out provoque un WAKE-UP,
l'excution du programme continue normalement l o elle s'est arrte
avant de rentrer en mode SLEEP. Cette situation est souvent exploite pour
raliser des temporisations
Architecture interne simplifi du
PIC:
La mmoire RAM Registres:

Elle estRAM
La mmoire constitue de 2 parties:
est organis en 2
banks
1) SFR : (Special Function
Pour accder a un registre , il faut
Register), ce sont les registres
tout d'abord se placer dans le bank
du fonctionnement du PIC
ou il se trouve ,ceci est ralis en
,lensemble est appel fichier
positionnant le bit RP0 du registre
des registres
STATUS.
2) GPR : (General Propose
Register), sont des positions
mmoire que l'utilisateur peut
utiliser pour stocker ses
RP0
variables = 0donnes.
et ces Bank 0
RP0 = 1 Bank 1
Architecture interne simplifi du
PIC:
Adresse 00 et 80 ,INDF:

Cette adresse ne contient pas de


registre physique, elle sert pour
ladressage indirect.
Architecture interne simplifi du
PIC:
Adresse 01,TMR0 et 81 OPTION:
Contenu du Timer (8 bits). Il peut tre
incrment par lhorloge (fosc/4) ou
par la broche RA4 du PORTA (mode
compteur)
Le
Enchoix de lhorloge
cas dhorloge se fait, on
externe l'aide
peut du
bit T0CSledufront
choisir registre OPTION_REG
sur lequel le Timer
sincremente.
TOCS=0 Horloge interne
TOSE=0
TOCS=1 Horloge externe
Increm sur frontsappliqu
montanta
RA4
TOSE=1 Increm sur fronts
RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0
descendants
OPTION_REG
Architecture interne simplifi du
PIC:
Adresse 02 et 82 ,PCL:

Le Program Counter est un registre


de 13 bits qui s'incrmente
automatiquement lors de l'excution
du programme. On peut toutefois le
modifier par programme pour raliser
ce qu'on appelle un goto calcul. On
y accde par les registres PCL et
PCLATH PC PC
H L

PCLATH
Architecture interne simplifi du
PIC:
Adresse 03 et 83 ,STATUS:
Appel aussi Registre dtat , les cinq
bits de poids faible de ce registre sont
en lecture seule , ce sont des tmoins
(flag en anglais) caractrisant le
rsultat de lopration ralise par
lUAL.
STATUS
IRP RP1 RP0 TO PD Z DC C
Architecture interne simplifi du
PIC:
Adresse 03 et 83 ,STATUS:

C (Carry) :
ce bit est mis 1 lors d'oprations
avec retenue et si le rsultat est
ngatif.

STATUS
IRP RP1 RP0 TO PD Z DC C
Architecture interne simplifi du
PIC:
Adresse 03 et 83 ,STATUS:

DC (Digit Carry) :
ce bit est mis "1" lorsque une
retenue s'est produite entre les bit
3 et 4.

STATUS
IRP RP1 RP0 TO PD Z DC C
Architecture interne simplifi du
PIC:
Adresse 03 et 83 ,STATUS:

Z (Zero) :
ce bit est mis "1" lorsqu un
rsultat arithmtique ou logique est
nul.

STATUS
IRP RP1 RP0 TO PD Z DC C
Architecture interne simplifi du
PIC:
Adresse 03 et 83 ,STATUS:

PD (Power Down) :
caractrise lactivit du chien de
garde WDT

STATUS
IRP RP1 RP0 TO PD Z DC C
Architecture interne simplifi du
PIC:
Adresse 03 et 83 ,STATUS:

TO (Time Out) :
Le bit est mis 1 lors de la mise
sous tension ou lors de l'excution
des instructions CLRWDT et SLEEP.
Ce bit est mis 0 si le timer chien de
STATUS
garde dborde.

IRP RP1 RP0 TO PD Z DC C


Architecture interne simplifi du
PIC:
Adresse 03 et 83 ,STATUS:

RP0 (Time Out) :


Le bit RP0 sert slectionner la
page des registres:
RP0=0 Accs au registre dadresse 00
a 4F
RP0=1 Accs au registre dadresse 80
a CF STATUS
IRP RP1 RP0 TO PD Z DC C
Architecture interne simplifi du
PIC:
Adresse 03 et 83 ,STATUS:

IRP et RP1 :
ne sont pas utiliss par le
PIC16F84A et devrait tre
programm comme effac. utilisation
de ces bits comme usage gnral R
STATUS
/ W bits est pas recommand

IRP RP1 RP0 TO PD Z DC C


Architecture interne simplifi du
PIC:
Adresse 04 et 84 ,FSR:

FSR (File Select Register) :


Appell aussi Registre de slection,
il sert slectionner la mmoire de
donnes, pour pouvoir y accder.
Architecture interne simplifi du
PIC:
Adresse 05,PORTA et 85 ,TRISA:
est un 5 bits de large , bi-directionnelle. Le
registre correspondant de direction de
donnes est TRISA.
La mise a 1 des bits du registre TRISA
configura le PORTA correspondant a une
entre .
La mise a 0 des bits du registre TRISA
PORTA
configura le PORTA correspondant a une
sortie.
-- -- -- RA4/T0CKI RA3 RA2 RA1 RA0

TRISA
- - - TRISA4 TRISA3 TRISA2 TRISA1 TRISA0
Architecture interne simplifi du
PIC:
Adresse 05,PORTA et 85 ,TRISA:
est un 5 bits de large , bi-directionnelle. Le
registre correspondant de direction de
donnes est TRISA.
La mise a 1 des bits du registre TRISA
configura le PORTA correspondant a une
entre .
La mise a 0 des bits du registre TRISA
PORTA
configura le PORTA correspondant a une
sortie.
-- -- -- RA4/T0CKI RA3 RA2 RA1 RA0

TRISA
- - - TRISA4 TRISA3 TRISA2 TRISA1 TRISA0
Architecture interne simplifi du
PIC:
Adresse 05,PORTA et 85 ,TRISA:
Pin RA4 est multiplex avec le module
horloge Timer0 entre pour devenir le
broche RA4 / T0CKI.
Ce Pin est une entre trigger de Schmitt
(type de bascule ).

PORTA
-- -- -- RA4/T0CKI RA3 RA2 RA1 RA0

TRISA
- - - TRISA4 TRISA3 TRISA2 TRISA1 TRISA0
Architecture interne simplifi du
PIC:
Adresse 06,PORTB et 86 ,TRISB:
est un 8 bits de large , bi-directionnelle. Le
registre correspondant de direction de
donnes est TRISA.
.La mise a 1 des bits du registre TRISB
configura le PORTB correspondant a une
entre .
.La mise a 0 des bits du registre TRISB
configura le PORTB correspondant a une
sortie.
Architecture interne simplifi du
PIC:
Adresse 06,PORTB et 86 ,TRISB:

RP4:RB7 :
Ces broches peuvent aussi tre
configurs pour lopration des
interruptions en se servant du registre
INTCON ET OPTION
Architecture interne simplifi du
PIC:
Adresse 06,PORTB et 86 ,TRISB:

RP4:RB7 :
Ces broches peuvent aussi tre
configurs pour lopration des
interruptions en se servant du registre
INTCON ET OPTION
Architecture interne simplifi du
PIC:
Adresse 06,PORTB et 86 ,TRISB:

RP4:RB7 :
Ces broches peuvent aussi tre
configurs pour lopration des
interruptions en se servant du registre
INTCON ET OPTION
Architecture interne simplifi du
PIC:
La mmoire EEPROM:
La mmoire EEPROM de donnes est
constitue de 64 octet que l'on peut lire et
crire depuis un programme. Ces octets
sont conservs aprs une coupure de
courant et sont trs utiles pour conserver
des paramtres.
Cette mmoire nest pas directement
mappe dans l'espace du fichier de
registre. Elle est accessible
indirectement par le biais de la fonction
spciale Registres. Il ya quatre SFR
utiliss pour lire et crire cette mmoire.
Ces registres sont:
Architecture interne simplifi du
PIC:
Adresse 08,EEDATA:
Cest le registre dans lequel est disponible
la donne quon est all chercher une
certaine adresse de la mmoire
EEPROM.

Cest aussi le registre dans lequel on


place la donn pendant une opration
dcriture
Architecture interne simplifi du
PIC:
Adresse 09,EEADR:
Appell aussi EEprom ADRess , cest le
registre dans lequel on crit ladresse de
la mmoire de donnes EEPROM
Architecture interne simplifi du
PIC:
Adresse 88,EECON1:
Appell aussi EEprom CONtrol1 , cest un
registre qui permet de dfinir le mode de
fonctionnement de la mmoire de donnes
EEPROM

EECON1
EEIF WRERR WREN WR RD
Architecture interne simplifi du
PIC:
Adresse 88,EECON1:

RD (ReaD) :
Ce bit se met a 1 pour lire une
donne. La remise a 0 est
automatique

EECON1
EEIF WRERR WREN WR RD
Architecture interne simplifi du
PIC:
Adresse 88,EECON1:

WR (WRite) :
Ce bit se met a 1 pour crire une
donne. La remise a 0 est
automatique

EECON1
EEIF WRERR WREN WR RD
Architecture interne simplifi du
PIC:
Adresse 88,EECON1:

WREN (Write Enable) :


Ce bit se met a 0 pour interdire
lcriture en EEPROM de donnes.

EECON1
EEIF WRERR WREN WR RD
Architecture interne simplifi du
PIC:
Adresse 88,EECON1:

WRERR (Write Error) :


Ce bit se met a 1 sil ya une erreur
decriture

EECON1
EEIF WRERR WREN WR RD
Architecture interne simplifi du
PIC:
Adresse 88,EECON1:

EEIF (EEProm Interrupt


Flag) :
Ce bit se met a 1 quand lcriture
est termine.

EECON1
EEIF WRERR WREN WR RD
Architecture interne simplifi du
PIC:
Adresse 89,EECON2:
Appell aussi EEprom CONtrol2 , cest un
registre de scurit dcriture en EEPROM
de donnes
Architecture interne simplifi du
PIC:
Adresse 0Bet 8B ,INTCON:
Appell aussi INTerrupt CONtrol cest un
registre qui prside au fonctionnement des
interruptions.
Les quatre sources dinterruption possibles
sont :

1) la fin dune programmation de


lEEPROM de donnes .
2) le dbordement du timer interne .
3) une commande externe applique sur la
pin 6 (RB0/INT).
4) un changement dtat sur lune des pins
10, 11, 12 ou 13 (respectivement
RB4,RB5, RB6,RB7).
Architecture interne simplifi du
PIC:
Adresse 0Bet 8B ,INTCON:

RBIF (RB Interrupt Flag) :


Ce bit se met a 1 quand linterruption
est provoque par les broches RB4-
RB7

INTCON
GIE EEIE TOIE INTE RBIE TOIF INTF RBIF
Architecture interne simplifi du
PIC:
Adresse 0Bet 8B ,INTCON:

INTF (Interrupt Flag) :


Ce bit se met a 1 quand linterruption
est provoque par la broche
RB0/INT

INTCON
GIE EEIE TOIE INTE RBIE TOIF INTF RBIF
Architecture interne simplifi du
PIC:
Adresse 0Bet 8B ,INTCON:

TOIF(Timer 0 Interrupt Flag)


:
Ce bit se met a 1 quand le timer est
dborde

INTCON
GIE EEIE TOIE INTE RBIE TOIF INTF RBIF
Architecture interne simplifi du
PIC:
Adresse 0Bet 8B ,INTCON:

RBIE(RB Interrupt Enable) :


Ce bit se met a 1 pour autoriser les
interruptions provoques par un
changement d'tats sur l'une des
broches RB4 RB7.

INTCON
GIE EEIE TOIE INTE RBIE TOIF INTF RBIF
Architecture interne simplifi du
PIC:
Adresse 0Bet 8B ,INTCON:

INTE(Interrupt Enable) :
Ce bit se met a 1 pour autoriser
linterruption provoque par un
changement d'tat sur broche
RB0/INT.

INTCON
GIE EEIE TOIE INTE RBIE TOIF INTF RBIF
Architecture interne simplifi du
PIC:
Adresse 0Bet 8B ,INTCON:

T0IE(Timer 0 Interrupt
Enable) :
Ce bit se met a 1 pour autoriser
l'interruption provoque par le
dbordement du TIMER0

INTCON
GIE EEIE T0IE INTE RBIE TOIF INTF RBIF
Architecture interne simplifi du
PIC:
Adresse 0Bet 8B ,INTCON:

EEIE(EEProm Interrupt
Enable) :
Ce bit se met a 1 pour autorise
l'interruption venant de l'EEPROM

INTCON
GIE EEIE T0IE INTE RBIE TOIF INTF RBIF
Architecture interne simplifi du
PIC:
Adresse 0Bet 8B ,INTCON:

GIE(Global Interrupt Enable) :


masque global dinter

INTCON
GIE EEIE T0IE INTE RBIE TOIF INTF RBIF
Architecture interne simplifi du
PIC:
La mmoire EEPROM
de configuration:
Pendant la phase d'implantation d'un programme dans la mmoire
programme du PIC, on programme aussi une EEPROM de configuration
constitue principalement de :
CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0
Architecture interne simplifi du
PIC:
La mmoire EEPROM
de configuration:
Pendant la phase d'implantation d'un programme dans la mmoire
programme du PIC, on programme aussi une EEPROM de configuration
constitue principalement de :
CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0

FOSC1 ET FOSC0:
Slection du type d'oscillateur pour l'horloge
11 : Oscillateur RC
10 : Oscillateur HS (High speed) : quartz haute frquence (jusqu'
10 MHz)
01 : Oscillateur XT, c'est le mode le plus utilis, quartz jusqu' 4
MHz
Architecture interne simplifi du
PIC:
La mmoire EEPROM
de configuration:
Pendant la phase d'implantation d'un programme dans la mmoire
programme du PIC, on programme aussi une EEPROM de configuration
constitue principalement de :
CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0

WDTE:
validation du timer WDT (chien de garde)
1 : WDT valid
0 : WDT inhib
Architecture interne simplifi du
PIC:
La mmoire EEPROM
de configuration:
Pendant la phase d'implantation d'un programme dans la mmoire
programme du PIC, on programme aussi une EEPROM de configuration
constitue principalement de :
CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0

PWRTE:
validation d'une temporisation la mise sous tension
1 : temporisation inhibe
0 : temporisation valide
Architecture interne simplifi du
PIC:
La mmoire EEPROM
de configuration:
Pendant la phase d'implantation d'un programme dans la mmoire
programme du PIC, on programme aussi une EEPROM de configuration
constitue principalement de :
CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0

CP:
Protection en lecture du code programme
1 : pas de protection
0 : protection active
Modes dadressage:
1)Adressage immdiat :
La donne est contenue dans l'instruction.

Exemple : movlw 0xC4 ; Transfert la valeur 0xC4dans W


2)Adressage direct :
La donne est contenue dans un registre. Ce dernier peut tre par
un nom (par exemple W)ou une adresse mmoire.

Exemple : movf 0x2B, 0 ; Transfert dans W la valeur contenue


l'adresse 0x2B.
3)Adressage indirect
L'adresse de la donne est contenue dans un pointeur .Dans les PIC,
un seul pointeur est disponible pour l'adressage indirect : FSR.
Contenu l'adresse 04h dans les deux banques, il est donc accessible
indpendamment du numro de banque.
Les directives de MPASM :
Les directives de l'assembleur sont des instructions qu'on ajoute dans
le programme et qui seront interprtes par l'assembleur MPASM.les
plus utilises sont :
LIST: permet de dfinir un certain nombre de paramtres comme
le processeur utilis (p), la base par dfaut pour les nombres (r),
le format du fichier hex produire (f) ainsi que d'autres
paramtres. Exemple :
LIST p=16F84A, r=dec, f=inhx8m
INCLUDE: permet d'insrer un fichier source. Par exemple le
fichier p16f84A.inc exemple :
INCLUDE "p16f84A.inc"
_CONFIG: permet de dfinir les 14 fusibles de configuration qui
seront copi dans l'EEPROM de configuration lors de
l'implantation du programme dans le PIC exemple :
_CONFIG _CP_OFF & _XT_OSC & _PWRTE_OFF& _WDT_OFF
Jeux dinstructions en assembleur
du PIC:
Jeux dinstructions en assembleur
du PIC:
Conclusion:

Il est recommande aux programmeurs de bien choisir u


du point de vue performance ,Sa mmoire , le prix , et
sa disponibilit dans le march du cot hardware et softw
comme les outils de dveloppement .
BIBLIOGRAPHIE
[1] PIC16F8X, document DS30430C, www.microchip.com
[2] PIC16F84a, document DS35007A, www.microchip.com
[3] Programmation des PIC, Premire partie-PIC16F84-Rvision 5,
http://www.abcelectronique.com/bigonoff/organisation.php?2654c
[4] PIC16F684 Data Sheet CMOS Microcontrollers with nanoWatt Technology
[5] ] PIC16F684A Data Sheet
[6] Le microcontrleur PIC 16F84 ,Lauteur Pierre LOGLISCI
[7] PIC 16F84 ,Lauteur Philippe Hoppenot
http://lsc.univ-evry.fr/~hoppenot/presentationfrancaise.html