Professional Documents
Culture Documents
Dr : A. ABBOU
IGA 2013
ABBOU 1
DEFINITION
Processeur
Mmoires
Units priphriques et interfaces dE/S
ABBOU 2
Du -processeur au -contrleur
ABBOU 4
Caractristiques dun -Contrleur
ABBOU 5
Applications
Informatique et tlcommunication (souris,
modems)
Contrle de processus industriels (rgulation,
pilotage)
Vido (Appareil photos et camra numriques),
Multimdia (tlviseur, carte audio, carte
vido,MP3,)
Systmes embarqus, comme les contrleurs des
moteurs automobiles (ABS, injection,GPS, airbag),
les tlcommandes, jouets, la tlphonie mobile,
ABBOU 6
Familles de microcontrleurs
-Architecture Harvard :
Le programme et les donnes sont stockes dans
des mmoires physiquement spares.
ABBOU 8
Architecture
Architecture de Von Neumann :
Un seul Bus malgr la
sparation de lespace
mmoire donnes et
mmoire programme.
Occupation mmoire dune
instruction variable.
Architecture Harvard :
Un bus pour chaque Mmoire
(Donnes et programme)
Occupation mmoire fixe
pour toutes les instructions
ABBOU 9
Architecture
RISC & CISC
RISC Reduced Instruction Set Computer
Toutes les instructions ont la mme taille
Les modes d'adressage sont simples (immdiat, registre)
- Jeu dInstruction rduit
ABBOU 10
Architecture
RISC & CISC
Exemple: on dplace 100 octets de l'adresse mmoire src vers l'adresse mmoire dst.
A gauche on utilise une macro-instruction (RISC) REP MOVSB quivalent la partie figure en
vert droite.
ABBOU 11
Structure en Pipe Line
Dcomposition des tches
Optimisation pour larchitecture RISC
Prparation de linstruction suivante durant
lexcution de celle prsente
Squencement
movlw 0xFF
movwf Portb
call sub1
movf Portc,w
ABBOU 12
Microcontrleurs
Architecture interne
ABBOU 13
Les diffrentes familles des PICs
ABBOU 14
Rfrence des MCU
ABBOU 15
Rfrence des MCU
PIC 16F877
Le numro 16 signifie qu'il fait partie de la famille
"MID-RANGE". C'est la famille de PIC qui travaille
sur des mots de 14 bits.
ABBOU 17
lments constitutifs du PIC 16F877
ABBOU 18
Structure du PIC 16F877
ABBOU 19
Le cur du PIC : le microprocesseur
ABBOU 20
La mmoire
ABBOU 21
La Pile et le Compteur Programme
ABBOU 22
Les Ports dEntres/Sorties gnraux : PORTA, PORTB,
PORTC, PORTD, PORTE
ABBOU 23
Le Port Parallle Esclave (PSP : Parallel Slave Port)
ABBOU 24
Le circuit de gnration dhorloge
ABBOU 25
Le TIMER0
ABBOU 26
Le TIMER1
ABBOU 27
Le TIMER2
ABBOU 28
Les modules CCP1 et CCP2
ABBOU 29
Le convertisseur Analogique Digital 10bits
ABBOU 30
LUSART
ABBOU 31
Le SSP, Synchronous Serial Port
32
Brochage du PIC 16F877
33
Organisation de la mmoire RAM
ABBOU 34
Organisation de la mmoire RAM
ABBOU 35
Plan Mmoire des registres
ABBOU 36
Organisation de la mmoire RAM
ABBOU 37
Organisation de la mmoire RAM
ABBOU 38
Accs la RAM par adressage direct
Accs la RAM par Adressage direct
ABBOU 39
Accs la RAM par adressage indirect
Accs la RAM par Adressage indirect
ABBOU 40
La mmoire Programme ou mmoire flash
ABBOU 41
Organisation mmoire programme
42
Organisation mmoire programme
-La pile utilise par les sous programmes nest pas implante
en mmoire de donne comme avec les microcontrleurs
classiques, mais dans la mmoire programme.
ABBOU 43
Les mmoires permanentes
La mmoire EEPROM de donnes
ABBOU 44
Les instructions du 16F876/877
- Les instructions orientes Registre
- Les instructions orientes bits
- Les instructions oprant sur une constante
- Les instructions de saut et appel de procdures
Exercice 1)
Dans quel bank se trouvent les cases mmoire d'adresse : 1A4h, B5h, 130h, 58h,
100, 200, 250, 300, 400
Exercice 2)
Combien de cases mmoires libres (GPR) y a-t-il dans la zone mmoire qui
commence la position A0h et se termine EAh.
Exercice 3)
Quelle est l'adresse de la dernire position d'une zone mmoire de 40 cases qui
commence la position 190h.
Exercice 4)
Combien de cases mmoires libres (GPR) y a-t-il dans le bank1. Mme question pour
le bank2. ABBOU 45
Dcodage dadresse des mmoires
Exercice A: Pour un microprocesseur disposant de 16 lignes d'adresses et 8 lignes
de donnes, tablir le dcodage permettant de situer 8 Ko de donnes aux adresses
hautes de la mmoire. On dispose pour cela de boitiers de 4 Ko de mmoire.
Rechercher l'adresse des boitiers mmoire, faire le mapping mmoire puis le schma
lectrique.
Exercice B: on dsire raliser le dcodage dadresse par EPROM dun circuit
mmoire M de 8Ko. En fait, pour raliser M, on dispose uniquement de 4 boitiers
mmoire de capacit 2Ko chacun implants suivant le tableau suivant:
ABBOU 48
Jeu dinstructions
ABBOU 49
Les paramtres des instructions agissant sur registre
Exemple:
ADDWF 70h,1 ou ADDWF 70h,f
Signifie : additionner le contenu de W avec le contenu de la case mmoire
dadresse 70h et placer le rsultat dans la case mmoire 70h
Exemple:
XORWF 35h,0 ou XORWF 35h,w
Signifie : faire un ou exclusif entre W et le contenu de la case mmoire
dadresse 35h et placer le rsultat dans laccumulateur W
ABBOU 50
Les paramtres des instructions agissant sur bit
Exemples:
ABBOU 51
Les instructions MOVWF et MOVF
Exemples:
btfsc F,b : bit test skip if clear : teste le bit b du registre F et saute
linstruction suivante si le bit test est nul
btfss F,b : bit test skip if set : teste le bit b du registre F et saute
linstruction suivante si le bit test est gal 1
ABBOU 53
Les instructions incfsz et decfsz
Exemples:
ABBOU 54
Linstruction goto
Exemple:
ABBOU 55
Linstruction call
Linstruction call permet dappeler une fonction. Une fonction est un sous
programme crit la suite du programme principal. Sa premire ligne doit
comporter une tiquette et elle doit se terminer par return.
Exemple:
57
Les particularits de programmation du 16F87x
La directive _CONFIG
ABBOU 58
Les particularits de programmation du 16F87x
CP1/CP0 : bits 13/12 ; Dterminent quelle zone de la mmoire
programme sera protge contre la lecture externe (via ICSP) ou
l'criture par programme conformment l'tat du bit 9 (WRT).
On peut choisir de protger la totalit de la mmoire ou seulement une
partie.
ABBOU 59
Les particularits de programmation du 16F87x
DEBUG : bit 11 : Debuggage sur circuit. Permet de ddicacer RB7 et RB6 la
communication avec un debugger.
1 : RB6 et RB7 sont des I/O ordinaires (_DEBUG_OFF)
0 : RB6 et RB7 sont utiliss pour le debuggage sur circuit (_DEBUG_ON)
ABBOU 60
Les particularits de programmation du 16F87x
CPD : bit 8 : Protection en lecture de la mmoire EEPROM de donnes.
1 : mmoire EEPROM non protge (_CPD_OFF)
0 : mmoire EEPROM protge contre la lecture externe via ICSP (_CPD_ON)
avec r=dec, les nombres sans spcification particulire seront considrs par
l'assembleur comme des nombre dcimaux,
Exemple :
ABBOU 64
Les particularits de programmation du 16F87x
ABBOU 67
Boucles de temporisation
ABBOU 68
Exercices
Exercice 5) : Accs la RAM par l'adressage direct
Donner le programme qui copie :
35 dans la position 20h, 'A' dans la position A0h
b1010 dans la position 110h, 35h dans la position 190h
Exercice 6) : Soustraction
Donner le programme qui :
-soustrait la constante 33 de l'accumulateur W (W-33)
-Soustrait la constante 40h de la case mmoire d'adresse 70h ([70h]-40h
[70h])
-qui soustrait le contenu de la case mmoire 70h de l'accumulateur W avec
le rsultat dans W ( W [70h] W )
- qui soustrait le contenu de la case mmoire 71h de l'accumulateur W avec
le rsultat dans la case mmoire ( W [71h] [71h] )
Exercice 7) : Accs la RAM par l'adressage indirect
Donner le programme qui copie l'alphabet majuscule dans la RAM partir
de la position 190h
Exercice 8) : (comp1.asm)
Comparer les contenus des cases mmoire 6Fh et EFh, sil son gaux mettre
zro tous les bits de la case 16Fh ABBOU
sinon mettre 1 tous les bits de la case
69
1EFh
outils de dveloppement
Loutil de dveloppement principal est lenvironnement de
dveloppement intgr MPLAB fournit gratuitement par Microchip
Procdure de travail:
Les tapes ncessaires permettant de voir un programme s'excuter sur un PIC sont :
Ecrire un programme en langage assembleur dans un fichier texte et le sauvegarder
avec l'extension .asm
Compiler ce programme avec l'assembleur MPASM fourni par Microchip. Le rsultat
est un fichier excutable avec l'extension .hex contenant une suite d'instruction
comprhensible par le pic.
Transplanter le fichier .hex dans la mmoire programme du PIC (mmoire flash)
l'aide d'un programmateur adquat. On peut utiliser les programmateurs de Microchip
ou tout autre programmateur achet .
Mettre le PIC dans son montage final, mettre sous tension.
Sance de
Prise en main de MPLAB
ABBOU 71
Les ports parallles d'entre sortie
Le 16F877 possde 5 ports diffrents :
le port A (6 broches)
le port B (8 broches)
le port C (8 broches)
le port D (8 broches)
le port E (3 broches)
accessibles.
analogiques (CAN ),
ABBOU 73
Les registres utiliss par le port A
En sortie, RA4 est une E/S drain ouvert, pour l'utiliser comme
sortie logique, il faut ajouter une rsistance de pull-up externe.
Partag avec les liaisons sries, les Timers 1,2 et les modules CCP,
ABBOU 76
Le port D
PORTE contient seulement 3 bits RE0, RE1 et RE2. Les 3 sont configurables
en entre ou en sortie laide des bits 0, 1 ou 2 du registre TRISE.
PORTE nest pas implment sur tous les processeurs 16F87X, il est
disponible sur le 16F877, le 16F874 et le 16F871
ABBOU 78
EXERCICES
ABBOU 80
LES TIMERS
ABBOU 81
Le Timer 0 - TMR0
0
1
1
0
ABBOU 83
Registres utiliss par le timer TMR0
ABBOU 84
Le Timer 0
ABBOU 85
Le Timer 0
* Si on dcide de travailler en mode compteur, on doit prciser lors de
quelle transition de niveau le comptage est effectu. Ceci est prcis grce
au bit 4 du registre OPTION : T0SE pour Timer0 Source Edge select bit.
T0SE = 1 : comptage si lentre RA4/TOKI passe de 1 0
T0SE = 0 : comptage si lentre RA4/TOKI passe de 0 1
ABBOU 86
Le Timer 0: Le mode dinterruption
ABBOU 87
Le Timer 0: Le prdiviseur
Quelque soit l'horloge choisie, on peut la passer dans un diviseur de
frquence programmable (prescaler) dont le rapport est fixs par les
bits PS0, PS1 et PS2 du registre OPTION_REG.
ABBOU 88
Le Timer 0: Le prdiviseur
ABBOU 89
Le Timer 0:Programme mikroC
void main ()
{ void interrupt ( )
INTCON.GIE = 1 ; {
}
}
}
ABBOU 90
APPLICATIONS
ABBOU 91
INTERRUPTIONS
Une interruption est un signal demandant au processeur de
suspendre temporairement lexcution du programme courant afin
deffectuer des oprations particulires.
..
.
ABBOU 94
INTERRUPTIONS
ABBOU 95
INTERRUPTIONS
ABBOU 96
INTERRUPTIONS
- Le registre INTCON
ABBOU 97
Droulement d'une interruption
ABBOU 98
Droulement d'une interruption
ABBOU 100
Droulement d'une interruption
Deux remarques importantes sont faire :
Exercice (int.asm)
ABBOU 103
CONVERTISSEUR ANALOGIQUE NUMERIQUE
Il est compos de :
Un chantillonneur bloqueur.
ABBOU 105
CONVERTISSEUR ANALOGIQUE NUMERIQUE
ABBOU 107
CONVERTISSEUR ANALOGIQUE NUMERIQUE
ABBOU 108
CONVERTISSEUR ANALOGIQUE NUMERIQUE
Le registre ADCON1
Il permet de choisir une configuration parmi les 16 proposes
Remarque : La configuration de ce registre ADCON1 ne
dispense pas de configurer les registres de directions des
PPORTA et PORTE respectivement TRISA et TRISE.
ABBOU 109
CONVERTISSEUR ANALOGIQUE NUMERIQUE
ABBOU 110
CONVERTISSEUR ANALOGIQUE NUMERIQUE
De plus le bit ADFM permet de choisir entre deux types de
justification pour le rsultat.
ABBOU 111
CONVERTISSEUR ANALOGIQUE NUMERIQUE
Le registre ADCON0
Ce registre permet de dfinir lhorloge de conversion (bit
ADCS1 et ADCS0), le canal convertir (CHS2, CHS1 et
CHS0) et ADON bit de mise en fonctionnement
ABBOU 112
Le registre ADCON0
ABBOU 113