0% ont trouvé ce document utile (0 vote)
3 vues13 pages

Introduction aux Microcontrôleurs PIC

Le document présente une introduction à la programmation des microcontrôleurs Microchip PIC, en détaillant leur architecture, les algorithmes, et les avantages par rapport aux microprocesseurs. Il aborde également des concepts fondamentaux comme la numération binaire, les types de mémoire, et les interfaces périphériques, tout en fournissant des exemples de code en C pour la configuration des timers et des interruptions. Enfin, il traite de l'évolution technologique des composants électroniques et des principes de gestion des interruptions.

Transféré par

arij madouri
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues13 pages

Introduction aux Microcontrôleurs PIC

Le document présente une introduction à la programmation des microcontrôleurs Microchip PIC, en détaillant leur architecture, les algorithmes, et les avantages par rapport aux microprocesseurs. Il aborde également des concepts fondamentaux comme la numération binaire, les types de mémoire, et les interfaces périphériques, tout en fournissant des exemples de code en C pour la configuration des timers et des interruptions. Enfin, il traite de l'évolution technologique des composants électroniques et des principes de gestion des interruptions.

Transféré par

arij madouri
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

🎯 Objectifs

Concevoir un programme simple en C pour un microcontrôleur Microchip PIC.


Analyser algorithmes, diagrammes, programmation structurée, jeux
d’instructions et modes d’adressage.
Mettre en œuvre le kit de développement Microchip MPLAB + PICDEM2+.

🖥️ Microprocesseurs vs Microcontrôleurs
Microprocesseur Microcontrôleur
Exemples Pentium, AMD, 68000 8051, 68HC11, PIC18, AVR,
ST6
Intégration Processeur seul, nécessite CPU + RAM, ROM,
RAM/ROM externes périphériques sur le même
puce
Coût Plus élevé (composants Faible coût
séparés)
Consommation Plus importante Faible consommation
Application Ordinateurs, serveurs Petits automatismes,
systèmes embarqués

📊 Avantages des microcontrôleurs


« Microcontrôleurs – Avantages »
Faible coût
Reconfigurables (modification du programme)
Fiabilité : processeur, mémoires et périphériques sur la même puce
Faible consommation
Cette illustration montre la densité fonctionnelle d’un microcontrôleur, soulignant pourquoi
il regroupe tant de fonctions sur une petite surface.

📡 Domaines d’emploi
Petits automatismes : systèmes de contrôle simples (ex. BEE).
Traitement numérique du signal (DSP) : audio, télécommunications.

Le schéma illustre les étapes clés où un microcontrôleur ou un DSP intervient dans la


chaîne de traitement audio.

🧮 Numération binaire et logique


Bit : valeur 0 ou 1.
Logique positive : 0 → 0 V, 1 → 5 V.
Logique négative : 1 → 0 V, 0 → 5 V.

Conversion décimale → binaire (exemple)


[ 182_{10}=10110110_{2} ]
Bit 7 6 5 4 3 2 1 0
Valeur 128 64 32 16 8 4 2 1
poids 1 0 1 1 0 1 1 0

Codage ASCII (extrait)


Hex Caractère Déc
0x41 A 65
0x30 0 48
0x20 espace 32

🏛️ Historique des composants


1. 1906 – Tube à vide triode (Lee De Forest).
2. 1940 – Ordinateurs électromécaniques (Z3, Colossus).
3. 1946 – ENIAC (30 t, 5 000 additions / s).
4. 1947 – Invention du transistor (Bardeen, Brattain, Shockley).
5. 1958 – Premier circuit intégré (TI, inverseur à 2 transistors).
6. 1961 – Explosion technologique (inverseur MOS).
7. 1971 – Intel 4004, premier micro‑processeur (4 bits).
Le transistor a permis la miniaturisation qui a conduit aux microcontrôleurs modernes.

📈 Évolution technologique (Loi de Moore)


Loi de Moore : le nombre de transistors sur une puce double tous les 24 mois.

Année Process (nm) Transistors (M)


1999 180 24
2001 130 48
2004 90 135
2008 60 539

Le diagramme met en évidence la progression exponentielle du comptage de transistors.

📚 Mémoire : SRAM, DRAM, SDRAM


Chaque type a des caractéristiques de vitesse, de consommation et de complexité
différentes.
SRAM : rapide, volatile, utilisée pour les caches.
DRAM : plus dense, nécessite rafraîchissement, utilisée comme RAM principale.
SDRAM : synchronisée avec le bus, améliore la bande passante.

🏗️ Architecture von Neumann


Von Neumann : modèle d’ordinateur où mémoire programme & données partagent le
même espace, reliées par un bus et contrôlées par une unité arithmétique‑logique
(UAL).
Le diagramme visualise les flux de données entre les blocs fonctionnels.

📍 Famille PIC18F – Spécifications


Caractéristique PIC18F2XX/4XXX
Fréquence 0 – 40 MHz
Flash 64 KB
RAM 3 KB
EEPROM 1 KB
Interruptions 17 / 18
Ports A, B, C (, D, E)
Timers 4
Communications SPI, UART, CAN, etc.
Boîtier 28‑pin DIP ou 40‑pin DIP
Ces schémas sont indispensables pour le câblage des projets.

🛠️ Registres clés
Registre STATUS (0xFD8)
Bit Nom Signification
7 N Résultat négatif
6 OV Overflow (complément à 2)
2 Z Résultat nul
0 C Retenue (carry)
Registres d’interruption
RCON – bit IPEN (Interrupt Priority ENable).
INTCON – GEIH (global high‑priority), GEIL (global low‑priority).

Priorité : les interruptions hautes sont traitées avant les basses, même si elles
surviennent plus tard.

Ce schéma aide à comprendre le routage des signaux d’interruption.

⏱️ Timers & Modules CCP/PWM


Timer 1 (16 bits)
Champ Fonction
T1CON Contrôle du préscaler (T1CKPS1:0),
source d’horloge, activation (TMR1ON).
TMR1H/L Registres de comptage.
TMR1IF Flag d’overflow (interrupt).

Timer 2 (8 bits)
Champ Fonction
T2CON T2CKPS (prescaler), T2OUTPS
(post‑scaler), activation (TMR2ON).
PR2 Valeur de période (détermine le duty
cycle).
TMR2IF Flag d’overflow.

Capture/Compare/PWM (CCP)

Le bloc CCP génère des signaux PWM en comparant le compteur à la valeur de CCPR1.
Exemple de configuration PWM (C)

#include <p18f452.h>

void init_pwm(void) {
// Configure le timer2 pour une fréquence de 1 kHz
T2CON = 0b00000101; // Prescaler 1:4, post‑scaler 1:1
PR2 = 199; // (Fosc/(4*Presc*Freq))-1
// Configurer le module CCP1 en mode PWM
CCP1CON = 0b00001100; // PWM mode
// Démarrer le timer2
TMR2ON = 1;
}
🔌 Interfaces périphériques
Interface Type Exemple d’usage
UART/USART Série asynchrone Communication
PC‑microcontrôleur
SPI Série synchrone Flash externe, capteurs
I²C Série à 2 fils EEPROM, horloge temps
réel
CAN Bus véhicule Automobiles, systèmes
industriels
ADC Convertisseur A/D Lecture de capteurs
analogiques
PWM Génération de signaux Contrôle moteur, LEDs
modulés

🧩 Chaîne de compilation (C → Hex)


1. Préprocesseur – #include, #define.
2. Compilateur – Convertit le C en code‑objet (.o).
3. Linker – Lie les objets, résout les adresses, produit le .hex.
4. Programmeur – Charge le fichier .hex dans la mémoire flash du PIC.

# Exemple de ligne de commande MPLAB X


xc8-gcc -mcpu=18F452 -O2 -o main.o main.c
xc8-ld -m [Link] -o [Link] main.o

📊 Gestion des interruptions


Principes
1. Détection : le périphérique met son flag d’interruption.
2. Priorité : le contrôleur vérifie GEIH/GEIL.
3. Vecteur : le PC saute à 0x0008 (haute) ou 0x0018 (basse).
4. Service : routine d’interruption (ISR) exécute le traitement, puis clrwdt ou
return.

Ce diagramme résume le traitement d’un événement d’interruption.


Exemple d’ISR (C)

void __interrupt(high_priority) HighISR(void) {


if (TMR1IF) { // Timer1 overflow
TMR1IF = 0; // Clear flag
// ... code de service ...
}
}

📚 Concepts supplémentaires
Binaire codé décimal (BCD) : chaque groupe de 4 bits représente un chiffre
décimal (ex. 0010 0011 = 23).
Complément à 2 : pour obtenir le négatif, on inverse les bits et on ajoute 1.
Masquage : PORT & 0x0F garde les 4 bits de poids faible.
Forçage : PORT |= 0x80 met le bit 7 à 1.

📋 Questions de révision rapides


1. Avantages des microcontrôleurs ? (coût, reconfigurabilité, fiabilité,
consommation).
2. Différence entre SRAM et DRAM ?
3. Comment calcule‑t‑on le duty cycle d’un PWM ?
4. Quel registre active le Timer 2 ? (TMR2ON).
5. Quel vecteur d’interruption est utilisé pour les interruptions haute priorité ?
(0x0008).

Vous aimerez peut-être aussi