Computing">
Nothing Special   »   [go: up one dir, main page]

Cours Microc

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 30

2006/2007

Introduction au MICROCONTROLEUR : COURS

Répartition horaire :
cours : 2h
TD : 4h
TP : 8h

Auteurs du document :

Myriam CHESNEAU-DEWEIRDT

Responsable du document :
idem

Intervenants

Myriam CHESNEAU-DEWEIRDT
André BETEMPS

Dernière mise à jour : 01/01/2007


1. INTRODUCTION AU
MICROCONTROLEUR

Unité de traitement de l’information de type


microprocesseur
+
Périphériques internes

Réalisation d’applications autonomes sans ajout de
composants externes

IUT ANNECY MPh MC 2007


1
alimentations
1. Présentation du circuit
1.1 Schéma de principe

Mémoire Mémoire RAM Mémoire


FLASH pour de travail EEPROM
stocker le pour stocker
(volatile)
programme les données
(permanente)
(permanente)

Unité Timer
-décodage instructions Compteur
Horloge -traitement
-calculs Ports
I/O
Circuits de
mise en route
et de veille

IUT ANNECY MPh MC 2007


2
IUT ANNECY MPh MC 2007
3
1.2 Les mémoires
Mémoire flash : (16F84)

contient le programme compilé


possède 1024 emplacements de 14 bits (taille d’une instruction)
conserve les données hors tension
RAM

permet le stockage des données temporaires nécessaires à


l’exécution du programme
possède 68 octets + 15 registres spécialisés de 8 bits
son contenu est perdu en cas de coupure
EEPROM

contient des données produites par le programme


conserve les données hors tension

IUT ANNECY MPh MC 2007


4
1.3 Unité « centrale »
Elle récupère les instructions du programme, les décode et les
exécute.

1.4 L’horloge
Elle reçoit un signal périodique issu d’un oscillateur, et fabrique
la référence « temps » du système.

Une instruction élémentaire est en général exécutée en 1 cycle,


soit 4 périodes du signal de l’oscillateur.

Avec un oscillateur à 4 Mhz, un µc PIC16F84-04 peut effectuer


un million (4 M / 4) instructions simples.

IUT ANNECY MPh MC 2007


5
1.5 Les circuits de mise en route et de veille
Ils permettent

de réaliser une bonne mise sous tension du système,


de le mettre en veille en cas de non utilisation,
de sortir convenablement du mode veille.

IUT ANNECY MPh MC 2007


6
2. Les périphériques
2.1 Ports A et B d’entrées – sorties :

Le port A fournit 5 entrées - sorties : RA0 – RA4

RA0 – RA3 :
En entrée : comprennent les niveaux TTL
En sortie : délivrent des niveaux TTL : 0 ou 5 V

RA4
En entrée, trigger de Schmitt pour convertir en TTL
En sortie : drain ouvert
Peut être connectée à l’entrée du timer pour du comptage

IUT ANNECY MPh MC 2007


7
Le port B fournit 8 entrées – sorties

RB0 – RB7 comprennent et reçoivent des niveaux TTL


En entrée : peuvent être connectées au 5 V par programme

de plus
RB0 peut être utilisée pour une interruption externe, elle
fonctionne alors en trigger de Schmitt
RB7 est utilisée pour charger le programme en mémoire
on peut décider par programme de générer une interruption si
la valeur d’une des lignes RB4 à RB7 a changé, quand elles
sont en entrée.

IUT ANNECY MPh MC 2007


8
2.2 Le compteur – timer

Le compteur-timer possède 8 bits.

Il compte les fronts montants ou descendants présents sur son


entrée, ( 0, 1, …254, 255, 0, 1 …)

Son entrée est


- un signal externe (RA4 : T0CKI) ou
- interne : l’horloge de fréquence fo = fosc/4.

On peut diviser la fréquence du signal d’entrée par 2 , 4, 8, 16,


32 ou 64 avant de l’appliquer en entrée du compteur : on utilise
le prédiviseur.

Un bit est positionné en fin de compte (255 -> 0), il peut alors
générer une interruption.

IUT ANNECY MPh MC 2007


9
En comptage : signal externe
Le compte s’incrémente sur chaque front de RA4 : T0CKl
Il est accessible dans un registre TMR0

En timer : signal de l’horloge (1 MHz)


Le compte s’incrémente sur chaque front de l’horloge interne
On peut positionner le compte à une valeur choisie dans le
registre TMR0

IUT ANNECY MPh MC 2007


10
Chargement
ou Compte

Oscillateur fo/4
Externe
Horloge
fo Diviseur
Clk Out
Source Externe Compteur
RA4(TO CKl)

IUT ANNECY MPh MC 2007


11
3. Les registres du PIC

Les registres spécialisés du PIC permettent

de définir le fonctionnement du PIC


de s’informer sur l’état du PIC
de configurer les périphériques
de communiquer (lecture / écriture) avec les périphériques

IUT ANNECY MPh MC 2007


12
3.1 Les registres du timer
TMR0 permet d’écrire et de lire le compte du timer/compteur

OPTION permet de définir, entre autres, les paramètres permettant


l’utilisation du timer/compteur

source de l’horloge du compteur


utilisation du diviseur
valeur du diviseur

A la mise sous tension, tous les bits sont positionnés à 1.

IUT ANNECY MPh MC 2007


13
NOT RBU INTEDG TOCS TOSE PSA PS2 PS1 PS0
RBi à Vcc Interruption Source Front Diviseur Pré chargement diviseur d’horloge
externe d’horloge source d’horloge
externe
1 : non 1 : front + 1: 1 : front – 1: Timer : Watchdog :
0 : oui 0 : front - externe(*) 0 : front + watchdog 000 : 2 000 : 1
0 : fH/4 0 : timer 001 : 4 001 : 2
(*) RB0 / (*) … …
INT RB4/TOCKl 111 : 256 111 : 128

INTCON…voir paragraphe suivant

IUT ANNECY MPh MC 2007


14
3.2 Le registre des interruptions
INTCON

permet le contrôle des interruptions et leur localisation et


indique la fin de compte du timer

GIE EEIE TOIE INTE RBIE TOIF INTF RBIF


Int non Int Int dépast Int Int Changt Dépast Int Changt
masquées EEPROM timer externe RB4-7 timer externe RB4-7
autorisées autorisée autorisée (RB0/INT) autorisée
autorisée
1 : oui 1 : oui 1 : oui 1 : oui 1 : oui 1 : oui 1 : oui 1 : oui
0 : non 0 : non 0 : non 0 : non 0 : non 0 : non 0 : non 0 : non

IUT ANNECY MPh MC 2007


15
3.3 Les registres des ports
TRISA : indique la direction des lignes du port A

1 : entrée, 0 : sortie

X X X Dir Dir Dir Dir Dir


RA4 RA3 RA2 RA1 RA0

PORTA : lecture – écriture du contenu du port A

TRISB : indique la direction des lignes du port B


1 : entrée, 0 : sortie

Dir Dir Dir Dir Dir Dir Dir Dir


RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

PORTB : lecture – écriture du contenu du port B

IUT ANNECY MPh MC 2007


16
4. Programmation
4.1 Procédure et logiciels
Pour utiliser le PIC, il faut respecter les phases suivantes :

1. Écriture du programme dans un langage évolué

2. Traduction du programme en langage PIC (type assembleur


: 35 instructions)

3. Transfert du fichier obtenu en mémoire flash du PIC

4. Mise en fonctionnement du PIC

IUT ANNECY MPh MC 2007


17
Le positionnement d’une broche du PIC permet de choisir entre les
modes

Chargement du programme (PGN) pour la phase 3


Normal (RUN) pour la phase 4

IUT ANNECY MPh MC 2007


18
Nous utiliserons

L’éditeur de texte ConText pour écrire le programme en


langage C : fichier xxx.c, puis à partir de cette éditeur, nous
appellerons

Cc5x pour la création du fichier en langage PIC : xxx.exe

NTPicprogVf pour le transfert de ce fichier de l’ordinateur vers


la mémoire flash du PIC par liaison série

IUT ANNECY MPh MC 2007


19
4.2 Adresse des registres
Chaque registre possède une adresse dans la RAM :
Exemple : PORTB est un registre 8 bits situé à l’adresse 06 de la
RAM

Dans le logiciel utilisé, le nom d’un registre coïncide avec son adresse
PORTB = 0b01011100
permet d’écrire les 8 bits 01011100 à l’adresse 06 de la RAM

On peut utiliser les bases 2, 10 ou 16 :


PORTB = 0b01011100, PORTB =92, PORTB = 0x5C

Pour désigner le bit n°i du port XXX, on utilise XXX.I


Exemple TRISA.0 désigne le bit 0 du registre TRISA.

IUT ANNECY MPh MC 2007


20
Grâce à l’ajout d’un fichier en tête spécial (16f84.h), un nom est
associé à chaque bit de certains ports :

RA0 = 1

Permet de mettre à 1 le bit 0 du port A sans modifier les autres.

IUT ANNECY MPh MC 2007


21
On peut ajouter de telles définitions au sein du programme :

(en C)

# define TOIF INTCON.2


Permet de nommer TOIF le bit n°2 du registre des interruptions
INTCON

IUT ANNECY MPh MC 2007


22
4.3 Exemple de programmation des ports
Pour utiliser les lignes des ports A et B, il faut :

Définir la direction des lignes : entrée ou sortie


Écrire sur les lignes en sortie ou lire les lignes en entrée

On peut travailler sur un port en entier ou sur une ligne :

TRISA.0 = 0;
TRISB.5 = 1;
RA0 = RB5;
TRISB = 0b00000000;
PORTB = 0b01010101;

IUT ANNECY MPh MC 2007


23
4.4 Programmation du timer OPTION.210
(voir exemples en TD) PS2 PS1 PS0
prescaler

Chargement
ou Compte
TMR0
Oscillateur fo/4
Externe
Horloge
fo Diviseur
Clk Out
Source
Externe Compteur
INTCON.2
RA4(TO CKl) TOIF

OPTION.4
TOSE : source edge

OPTION.5 OPTION.3
TOCS : clock source PSA

IUT ANNECY MPh MC 2007


24
4.5 Remarques complémentaires

On travaille principalement avec des bits ou des octets.

On peut utiliser la représentation binaire avec le logiciel ConText :


Unsigned char octet;

Octet = 0b11001110;

IUT ANNECY MPh MC 2007


25
5. Interruptions
5.1 généralités nécessité de
mémoriser
l'endroit, les
programme variables….
arrivée utilisateur
interruption

4
1
3
traitement de
l'interruption :
lecture et
2
sauvegarde

IUT ANNECY MPh MC 2007


26
demande d’interruption
sauvegarde du contexte

traitement de l'interruption en exécutant des lignes de programme


: lecture et stockage des données

restitution du contexte et reprise de la tâche initiale

IUT ANNECY MPh MC 2007


27
5.2 Sources d’interruption
Le PIC utilisé en possède 4, le programme en cours peut-être
interrompu si
- un front (+ ou -) est présent sur RB0
- une des lignes RB4 à RB7 change d’état (lignes placées en entrée)
- le timer atteint la fin de son cycle (débordement)
- une écriture dans l’EEPROM est terminée
Pour utiliser une interruption, il faut
- autoriser les interruptions en général
- autoriser une (ou +) interruptions en particulier

5.3 cas du PIC


Voir documentation en TP pour la programmation

IUT ANNECY MPh MC 2007


28
IUT ANNECY MPh MC 2007
29

Vous aimerez peut-être aussi