Académique Documents
Professionnel Documents
Culture Documents
uContrFIng PDF
uContrFIng PDF
Abdelouahed ABOUNADA
Département de Génie Electrique 1
Filière Ingénieur Génie électrique 2015-2016
I. Introduction
1.1 microcontrôleur ou microprocesseur
Considérons dans un premier temps le système minimum à
microprocesseur 6809.
le 6809 ne peut pas fonctionner seul . Il requiert différentes ressources qui
sont:
3
•Mémoire de programme. Microcontrôleur
-FLASH,
4
• Mémoire de données. Microcontrôleur
• Entrées/sorties.
5
• Convertisseur CAN. Microcontrôleur
6
Microcontrôleur
Conclusion :
microprogrammés simples.
Sommaire
Architectures d’accès à la mémoire
A A=Adresse
Programme Entrées/ Unité
et données sorties Arithmétique et D=données
D logique
8
Les microcontrôleurs PIC ainsi que bien d ’autres structures sont
construites autour d ’un autre type d ’architecture:
Architecture Harvard.
A A
Entrées/ Unité
Programme
D sorties Arithmétique et D
Données
logique (x2)
Architecture de Harvard
9
1.2 les microcontrôleurs PIC:
Un PIC n’est rien d’autre qu’un microcontrôleur, c’est à dire 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 externes.
Les PIC sont des composants dits RISC (Reduced Instructions Set
Computer), ou encore composant à jeu d’instructions réduit.
10
Il existe trois familles de PIC :
- 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
- yy : Identification
-zz : Vitesse maximum du quartz
Par exemple PIC 16F84 –10:
- 16 : Mid-Line
- F : FLASH
- 84 : Type 11
12
1.2 le PIC 16F84 (principales caractéristiques)
► 35 instructions - RISC
► Instructions codées sur 14 bits - Mide line
► Données sur 8 bits
► Vitesse maximum 10MHz (1 instruction en 400ns )
► 4 sources d’interruption
13
1.3 brochage et fonction des pattes (pic16F84)
► MCLR : reset 0V
1.4 autres exemples : les pic16F874A/877A
- 14,3 Ko de ROM,
- 368 octets de RAM,
- 256 octets d’EEPROM,
- 33 entrées sorties, un CAN,
- 20 MHz,
- 3 compteurs,
- 15 sources d’interruptions
- une USART,
- un MSSP, (Master synchronous serial port)
- 2 comparateurs,
- 2 modules comparateur et PWM .
15
16
III. Le pic16f84:
17
18
3.2 les registres
Selon la version de PIC utilisée, le nombre de registres internes au
circuit est différent.
Registre de travail: W
19
Les registres TRISA et TRISB ont pour fonction de configurer les broches
d’entrées / sorties des ports.
etc.
20
3.3 Séquencèrent des instructions:
21
3.4 l’Horloge système
22
Remarque:
23
3.5 les compteurs
3.5 .1 le TMR0
Le PIC 16F84 est doté d’un compteur 8 bits. La valeur du comptage réalisé
est donnée par le registre TMR0
La période de l’horloge d’entrée est divisée par une valeur comprise entre 2
et 256 suivant les bits PS2, PS1 et PS0 du registre OPTION.
24
Remarques:
25
3.5.2 le chien de garde (watchdog timer WDT)
C’est un compteur incrémenté en permanence (même si le μC
est en mode sleep) par une horloge RC intégrée indépendante de
l'horloge principale. Lorsque ce compteur arrive à (WDT
TimeOut), deux situations sont possibles :
26
3.5.3 le registre de configuration
Le registre OPTION ou OPTION_REG (81H)
Le registre d'OPTION contient les bits de contrôles du PRESCALER, de
l'interruption externe INT, de l'horloge du timer TMR0 et du "tirage au
plus" du PORT B.
BIT 0,1 et 2: Sélectionnent le ratio du PRESCALER.
Ces trois bits déterminent le ratio du prescaler. Les timers TMR0 et WDT
s'incrémente au rythme de l'horloge divisée par le prescaler
27
BIT 3: PSA ( PreScaler Assignment).
Si PSA=1 alors le prescaler est associé avec le WDT.
Si PSA=0 alors le prescaler est associé avec le TIMER.
Remarque:
Lorsque le RESET intervient, le μC peut être :
- En fonctionnement normal
- En mode SLEEP.
30
3.7 la pile:
La pile est une zone mémoire particulière.
Pour le PIC 16F84A, elle est constituée de 8 emplacements de 13 bits.
La pile intervient dans le mécanisme interne des instructions :
CALL
RETURN
RETLW (saut dans un tableau)
RETFIE (fin de la routine d'interruption)
En effet, c'est dans la pile qu'est mémorisée l'adresse de retour d'une routine.
Quand intervient une instruction CALL ou une interruption, l'adresse de
l'instruction suivante (qui se trouve dans le compteur de programme PC) est
sauvegardée dans la pile.
33
34
L'interruption INT (Entrée RBO DU PORTB)
Cette interruption est provoquée par un changement d'état sur l'entrée
RB0 du port B quand elle est programmée en entrée. Elle est gérée par les
bits :
- INTE : bit de validation (1=oui, 0=non)
- INTF : drapeau
- INTEDG : front de déclenchement 1=montant, 0=descendant (registre
OPTION)
L'interruption RBI (RB4 A RB7 DU PORTB)
Cette interruption est provoquée par un changement d'état sur l'une des
entrées RB4 à RB7 du port B, Le front n'a pas d'importance. Les bits
associés sont RBIE (bit de validation) et RBIF (drapeau)
L'interruption TOI : Débordement du Timer TMR0
Cette interruption est provoquée par le débordement du timer TMR0. Les bits
associés sont TOIE (bit de validation) et TOIF (drapeau)
37
BIT 0: RBIF BIT 1: INTF (INT interrupt Flag).
Drapeau de l'interruption RBI qui provient d'un Drapeau d'interruption INT qui provient d'un
changement d'état d'un des bits RB4 à RB7. changement d'état de l'entrée RB0.
RBIF= 1 : drapeau levé. RBIF=1 drapeau levé.
RBIF= 0 : drapeau baissé. RBIF=0 drapeau baissé.
BIT 2: TOIF ( TMRO Overflow Interrupt BIT 3: RBIE (RB Interrupt Enable).
Flag). Bit de validation de l'interruption RBI qui
Drapeau de l'interruption TOI qui intervient au provient d'un changement d'état sur l'une des
débordement du timer TMR0 entrée
TOIF=1 drapeau levé. RB4 à RB7 du port B.
TOIF=0 drapeau baissé. RBIE=1 : Autorise l'interruption.
BIT 4: INTE ( INT interrupt Enable). RBIE=0 : interdit l'interruption
Bit de validation de l'interruption INT qui BIT 5: TOIE (TMRO Overflow Interrupt
provient d'un changement d'état sur l'entrée Enable).
RB0 du Bit de validation de l'interruption TOI qui
port B. intervient au débordement du timer TMR0
INTE=1 : Valide l'interruption INT. TOIE = 1 : Valide l'interruption.
INTE=0 : Interdit l'interruption INT. TOIE= 0 : Interdit l'interruption.
BIT 6 : EEIE (EE write Interrupt Enable).
Bit de validation de l'interruption EEI qui intervient à la fin d'une écriture dans l'EEPROM
EEIE=1 : Valide l'interruption. EEIE=0 : Interdit l'interruption
Remarque : le drapeau de cette interruption se trouve dans le registre EECON1
38
39
III. Programmation d’un PIC
3.1 Les étapes de programmation des PIC.
Les étapes nécessaires permettant de voir un programme s'exécuter sur un PIC sont :
•Compiler ce programme avec l'assembleur MPASM fourni par Microchip. Le résultat est
un fichier avec l'extension .hex contenant une suite d'instruction compréhensible par le
pic.
•Copier le fichier .hex dans la mémoire programme du PIC (mémoire flash) à l'aide d'un
programmateur adéquat. On peut utiliser les programmateurs de Microchip ou tout
autre programmateur de pic.
•Mettre le PIC dans son montage final, mettre sous tension et admirer le
travail.
•Microchip propose gratuitement l'outil de développement MPLAB qui regroupe l'éditeur
de texte, le compilateur MPASM, un outil de simulation et le logiciel de programmation.
Le programmateur lui-même, n'est malheureusement pas gratuit.
•Pour ce qui nous concerne, nous utiliseront MPLAB pour écrire, compiler avec un
compilateur c et simuler nos programmes, ensuite nous utiliserons un programmateur 40
pour copier les programme dans la mémoire flash du PIC.
3.2 Les Bits (ou "fusibles") de configuration.
41
IV. Exemple:
42