01/12/2024
Programmer un microcontrôleur pour la commande
d’un système industriel
Architecture d’un microcontrôleur :
Un microcontrôleur est un circuit intégré rassemblant un microprocesseur et
d’autres composants tels que de la mémoire et des périphériques. Il permet
de réaliser des montages sans nécessiter l’ajout de composants annexes.
01/12/2024
Architecture d’un microcontrôleur :
Les avantages des microcontrôleurs sont :
– un faible encombrement,
– un circuit imprimé relativement simple,
– un coût modeste,
– une bonne fiabilité,
– une bonne rapidité,
– une faible consommation
Architecture d’un microcontrôleur :
Structure générale:
Un microcontrôleur est composé au minimum des éléments suivants :
– un microprocesseur (CPU pour Central Processing Unit, unité centrale),
– une horloge (avec éventuellement un quartz externe),
– de la mémoire,
– des interfaces parallèles pour la connexion des entrées et des sorties.
01/12/2024
Architecture d’un microcontrôleur :
Ces différents éléments de la structure des microcontrôleurs sont reliés par un ou
plusieurs bus.
Deux architectures différentes existent :
• la structure de Von Neumann qui utilise une • la structure de Harvard où la mémoire pour
mémoire unique pour le programme le programme est séparée de la mémoire
et les données. pour les données .
Architecture d’un microcontrôleur :
Outre les ports parallèles, on peut trouver :
– des interfaces série RS232 ou I2C pour la communication ;
– des compteurs (timers) permettent de générer des impulsions ou de mesurer
des durées avec une grande précision ;
– des convertisseurs analogique-numérique pour le traitement de signaux
analogiques ;
– des modules de modulation de largeur d’impulsion (PMW, pulse-width
modulation) pour la commande de charges de puissance comme les moteurs, etc
01/12/2024
Architecture d’un microcontrôleur :
Microprocesseur :
Il exécute les instructions présentes dans la mémoire de programme de façon
séquentielle. Il est constitué des éléments suivants :
– une unité arithmétique et logique (UAL ou ALU pour Arithmetic Logic Unit) qui
effectue les opérations ;
– un séquenceur qui commande le fonctionnement du microprocesseur ;
– un décodeur d’instruction qui détermine la tâche à exécuter
– un compteur ordinal qui génère l’adresse de l’instruction à exécuter ou de la
donnée à traiter ;
– un ou plusieurs registres accumulateurs qui contiennent temporairement les
opérandes et les résultats ;
– différents registres associés aux périphériques
Architecture d’un microcontrôleur :
Microprocesseur :
01/12/2024
Architecture d’un microcontrôleur :
Horloge:
Le signal d’horloge cadence le fonctionnement du microprocesseur. Il est
produit par un oscillateur à quartz qui est souvent formé d’un circuit actif
interne (inverseur et résistance) et d’un quartz et de condensateurs externes
Il existe également des horloges totalement internes. Plus la fréquence d’horloge
est élevée, plus le processeur travaille vite.
Architecture d’un microcontrôleur :
Mémoire de programme :
Elle contient les instructions du programme. C’est une mémoire morte dont le
type exact dépend du modèle de microcontrôleur :
– ROM, dont le contenu est programmé par son constructeur ;
– PROM, inscrite par l’utilisateur grâce à un programmateur ;
– EPROM ou UVPROM, programmable par l’utilisateur et pouvant être effacée par
un rayonnement ultraviolet ;
– EEPROM, programmable et effaçable électriquement ;
– flash, programmable et effaçable électriquement, mais plus rapide.
01/12/2024
Architecture d’un microcontrôleur :
Mémoire de données:
Elle contient les données utilisées par le microprocesseur et elle est accessible en
lecture et en écriture. On en trouve deux catégories :
– RAM, mémoire volatile (les données sont perdues quand l’alimentation est cou-
pée) dont les temps de lecture et d’écriture sont courts ;
– EEPROM, mémoire non volatile (les données sont conservées quand l’alimenta-
tion est coupée) ayant un temps de lecture court, mais un temps d’écriture beau-
coup plus long.
Architecture d’un microcontrôleur :
Interfaces parallèles:
Elles peuvent être configurées soit en entrées, soit en sorties, ce qui leur permet de :
– prendre en compte des états logiques représentant des informations externes,
comme les résultats de mesure par des capteurs ;
– générer des états logiques destinés à la commande d’actionneurs.
Les interfaces parallèles sont regroupées en plusieurs ports d’entrées/sorties.
La configuration et les états logiques des différentes broches sont définis dans des
registres associés aux ports.
01/12/2024
Architecture d’un microcontrôleur :
Interfaces série
Une interface série permet de communiquer avec d’autres systèmes. On
rencontre principalement une liaison ou une liaison I2C .
Architecture d’un microcontrôleur :
• Convertisseur analogique-numérique
Il permet de prendre en compte des informations analogiques, par exemple des
résultats issus de capteurs. Il utilise la méthode des approximations successives.
• Convertisseur numérique-analogique
Il permet de produire un signal analogique (tension) à partir des états logiques
internes.
01/12/2024
Architecture d’un microcontrôleur :
Compteur (timer) :
Il sert à différentes fonctions :
– comptage d’événements,
– temporisation,
– génération d’une impulsion calibrée,
– génération d’un signal périodique
Architecture d’un microcontrôleur :
Chien de garde (watchdog)
Cette structure vérifie le bon déroulement du programme.
Bus
On distingue trois types de bus :
– le bus d’adresses,
– le bus de données,
– le bus de commande.
01/12/2024
Architecture d’un microcontrôleur :
Bus : Il s’agit de plusieurs pistes électroniques qui sont reliées au
microprocesseur. Ces bus assurent la communication interne et externe du
microprocesseur.
Le bus de données : c’est un ensemble de fils bidirectionnels qui va permettre
le transfert de données entre les différents éléments du système.
Le bus d’adresses : il permet d’adresser un élément par le microprocesseur .il
est unidirectionnel
Le bus de commandes et de contrôle : c’est un bus qui permet de véhiculer les
signaux de contrôles et de commandes tels que l’horloge les signaux Rd/Wr etc …
les microcontrôleurs PIC
Familles de microcontrôleurs PIC:
Parmi les nombreuses références disponibles, nous prendrons comme exemple les
microcontrôleurs PIC de Microchip. Ce sont des microcontrôleurs à architecture
Harvard : les mémoires de programme et de données sont séparées. Ils utilisent des
processeurs RISC, c’est-à-dire employant un jeu d’instructions réduit, ce qui accélère
l’exécution du programme.
Il existe trois familles de PIC :
– base-line : les instructions sont codées sur 12 bits,
– mid-range : les instructions sont codées sur 14 bits,
– high-end : les instructions sont codées sur 16 bits.
01/12/2024
les microcontrôleurs PIC
Identification des PIC
Un PIC est identifié par un numéro. Considérons par exemple le modèle 16F84.
Les deux premiers chiffres (qui peuvent être 12, 14, 16, 17, 18) précisent la
famille : 16 pour mid-range.
La lettre suivante donne le type de mémoire de programme :
F signifie mémoire flash (ce serait C pour EPROM ou CR pour PROM).
Les deux chiffres suivants forment un numéro d’identification.
Il peut ensuite y avoir deux chiffres après un tiret indiquant la fréquence
maximale du quartz (10 pour 10 MHz).
pour le 16F84-04 Par exemple –04 pour un 4MHz.
les microcontrôleurs PIC
Description du PIC 16F877
01/12/2024
les microcontrôleurs PIC
Exercice :
Consulter la documentation technique du PIC 16F877.
1. Quel est le nombre de bits de ce microcontrôleur ?
2. Quel est le type de mémoire de programme ? Comment repère-t-on cette
information sur le numéro du composant ? Sur combien de bits sont codées les
instructions ?
Quelle est la capacité de cette mémoire ?
3. Quels sont les types de mémoire de données ? Sur combien de bits sont codées
les données ? Quelle est la capacité de ces mémoires (en octets puis en bits) ?
4. Quel est le nombre de bornes d’entrées-sorties ?
les microcontrôleurs PIC
1. Le PIC 16F877 est un microcontrôleur 8 bits.
2 La mémoire de programme est du type flash (mémoire effaçable
électriquement). C’est la signification de la lettre F dans le numéro du PIC.
Les instructions sont codées sur 14 bits.
La capacité de cette mémoire est de : 8K x 14 mots
3- Les mémoires de données sont d’une part une RAM (mémoire vive) et d’autre
part une EEPROM (mémoire programmable et effaçable électriquement). Les
données sont codées sur 8 bits. La capacité de la RAM est de 368 octets, soit 368
× 8 = 2944 bits. La capacité de l’EEPROM est de 256 octets, soit 256 × 8 = 2048
bits.
4- Le composant possède 33 bornes d’entrées-sorties réparties sur 5 ports.
Port A : RA0RA5 Port B :RB0RB7 Port C: RC0RC7 , Port D: RD0RD7
, Port E : RE0RE2
01/12/2024
les microcontrôleurs PIC
La mémoire d'un PIC 16F877 est divisée en 3
sections :
- Mémoire programme
- Mémoire de données
- EEPROM de données
Architecture interne du PIC 16F877
les microcontrôleurs PIC
Mémoire programme :
les microcontrôleurs PIC16F877 ont un compteur
de programme de 13 bits qui est capable
d'adresser un espace mémoire de programme de
8K × 14 bits. Cette mémoire est principalement
utilisée pour stocker les programmes qui sont
écrits pour être utilisés par le PIC.
Ces microcontrôleurs disposent également de
8K*14 bits de mémoire flash qui peuvent être
effaçables/reprogrammés électriquement.
organisation de la mémoire programme
01/12/2024
les microcontrôleurs PIC
Mémoire de données :
La puce PIC16F877 n'a que quatre banques (BANK 0, BANK 1,
BANK 2 et BANK4) comme le montre la figure
La sélection des banques est déterminée par les bits de
contrôle RP1, RP0 dans le registre STATUS
les microcontrôleurs PIC
Les périphériques du microcontrôleur PIC16F877
- Les ports d’entrée/sortie du microcontrôleur PIC16F877 :
- Le Timer:
- Les convertisseurs analogiques/numériques:
- Le compteur :
- Les interruptions du microcontrôleur PIC16F877 :
01/12/2024
Architecture interne du PIC 16F877
Les périphériques du microcontrôleur PIC16F877
Les ports d’entrée/sortie du microcontrôleur PIC16F877
La série PIC 16F877 a normalement cinq ports
d'entrée/sortie.
PORTB
PORTA
Ils sont utilisés pour l'interface d'entrée/sortie avec d'autres
appareils/circuits.
La plupart de ces broches de port sont multiplexées pour
PORTE
gérer d’autre fonction.
PORTD PORTC PORTD
Tous les ports d'une puce PIC sont bidirectionnels.
PORTC
PORTD
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Les ports d’entrée/sortie du microcontrôleur PIC16F877
PORTA et le registre TRISA
Le PORT A est un port bidirectionnel de 6 bits de large, la
direction de ce port est contrôlée par le registre de direction
des données TRISA.
La définition d'un TRISA (= 1) fait de la broche PORTA
correspondante une entrée, la suppression du TRIS A (= 0)
fait de la broche PORTA correspondante une sortie.
La broche RA4 est multiplexée avec l'entrée d'horloge du
module "Timer0" .
Les périphériques du microcontrôleur PIC16F877
Les ports d’entrée/sortie du microcontrôleur PIC16F877
PORTB et le registre TRISB
Le PORTB est également un PORT bidirec onnel 8 bits.
Sa direction est contrôlée et maintenue par le registre de
direction de données TRISB.
Trois broches du PORTB sont mul plexées avec la fonc on de
programmation basse tension : RB3/PGM, RB6/PGC et
RB7/PGD.
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Les ports d’entrée/sortie du microcontrôleur PIC16F877
PORTC et le registre TRISC
Le PORTC est un PORT bidirectionnel de 8 bits de large qui est
contrôlé et maintenu par le registre de direction de données
TRISC.
Les périphériques du microcontrôleur PIC16F877
Les ports d’entrée/sortie du microcontrôleur PIC16F877
PORTD et le registre TRISD
Le PORTD est un PORT 8 bits à caractère bidirectionnel. chaque broche
de ce PORTD étant configurable individuellement en entrée ou en
sortie.
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Les ports d’entrée/sortie du microcontrôleur PIC16F877
PORTE et le registre TRISE
Le PORT E n'a que trois broches (RE0/RD/AN5, RE1/WR/AN6 et
RE2/CS/AN7) qui sont configurables individuellement comme
entrées ou sorties.
Les périphériques du microcontrôleur PIC16F877
Les interruptions du microcontrôleur PIC16F877
une routine d’interruption est un sous-programme particulier, déclenché par l’apparition
d’un événement spécifique.
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Les interruptions du microcontrôleur PIC16F877
Le microcontrôleur 16F877A possède 15 sources d’interruptions :
- Timer 0
- Timer 1
- RB0 du port B
- Changement d’état du port B
- Port parallèle (lecture/ecriture)
- Convertisseur ADC
- Transmission sur UART
- Réception sur UART
- Synchronisation du port série
- CCP1 (Capture, Compare, PWM)
- CCP2 (Capture, Compare, PWM)
- Timer 2
- Comparateur
- Opération d’écriture dans la mémoire EEPROM
- Collusion de bus.
Les périphériques du microcontrôleur PIC16F877
Les interruptions du microcontrôleur PIC16F877
. Chaque interruption a un bit d’autorisation (Enable) et un bit indicateur (Flag).
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Les interruptions du microcontrôleur PIC16F877
registre INTCON
GIE (Global Interrupt Enable) – Bit 7 RBIE (RB Port change Interrupt Enable) – Bit 3
o ‘1’ : Activer toutes les interruptions o ‘1’ : Activer l’interruption de changement du port B
o ‘0’ : Désactiver toutes les interruptions o ‘0’ : Désactiver l’interruption de changement du port B
PEIE (Peripheral Interrupt Enable ) – Bit 6 TM0IF (Timer 0 Overflow Interrupt Flag) – Bit 2
o ‘1’ : Activer toutes les interruptions des périphériques o ‘1’ : Indicateur d’interruption de débordement du Timer 0 (active)
o ‘0’ : Désactiver toutes les interruptions des périphériques o ‘0’ : Indicateur d’interruption de débordement du Timer 0 (non active)
TMR0IE (Timer 0 Interrupt Enable) – Bit 5 INTF (RB0/INT External Interrupt Flag) – Bit 1
o ‘1’ : Activer l’interruption du TIMER0 o ‘1’ : Indicateur d’interruption externe (active)
o ‘0’ : Désactiver l’interruption du TIMER0 o ‘0’ : Indicateur d’interruption externe (non active)
INTE (RB0/INT External Interrupt Enable) – Bit 4 RBIF (RB Port Change Interrupt Flag) – Bit 0
o ‘1’ : Activer l’interruption externe o ‘1’ : Indicateur de d’interruption du changement du port B (active)
o ‘0’ : Désactiver l’interruption externe o ‘0’ : Indicateur de d’interruption du changement du port B (non active)
Les périphériques du microcontrôleur PIC16F877
Les interruptions du microcontrôleur PIC16F877
Exemple :
Une interruption externe, action sur la broche INT/RB0.
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Les interruptions du microcontrôleur PIC16F877
Exercice d’application :
Soit le montage de la figure suivante :
Ecrire un programme qui accepte des interruptions sur RB4 et :
- A chaque impulsion sur le bouton poussoir B4 le moteur s’arrete pendant 1 s et continue a
tourner.
Les périphériques du microcontrôleur PIC16F877
Les interruptions du microcontrôleur PIC16F877
Interruption primaire
1) Valider le bit concernant cette interruption
2) Valider le bit GIE (General interrupt enable) qui met toutes les interruptions choisies en service
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Les interruptions du microcontrôleur PIC16F877
Interruption périphérique
Voici donc les 3 étapes nécessaires à la mise en service d’une telle interruption :
1) Validation du bit concernant l’interruption dans le registre concerné (PIE1 ou PIE2)
2) Validation du bit PEIE (PEripheral Interrupt Enable bit) du registre INTCON
3) Validation du bit GIE qui met toutes les interruptions en service.
Les périphériques du microcontrôleur PIC16F877
Caractéristiques du CAN interne des PIC 16F877
Il s’agit d’un convertisseur A/N 10 bits à 8 entrées. Les 5 premiers sont sur le PORTA en
RA0, RA1, RA2, RA3 et RA5. Les 3 entrées supplémentaires sont sur le PORTE en RE0, RE1,
RE2.
Ce dernier permet de convertir une tension analogique comprise entre Vref- et Vref+ en
une valeur numérique comprise entre 0 et 1023.
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Caractéristiques du CAN interne des PIC 16F87XA
La configuration du microcontrôleur est assurée par les registres suivant :
Les périphériques du microcontrôleur PIC16F877
Caractéristiques du CAN interne des PIC 16F87XA
Pour exploiter ce convertisseur il est nécessaire de configurer certains registres dans le
microcontrôleur, dans la suite on s’intéressera uniquement au registre ADCON1 pour sélectionner et
activer les entrées analogiques multiplexées avec le port A et le port E du PIC16F877.
Le Registre ADCON1 :
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Caractéristiques du CAN interne des PIC 16F87XA
Les périphériques du microcontrôleur PIC16F877
Le Timer
Le microcontrôleur 16F877A contient 3 TIMERs
•Timer0 : 8 bits en mode compteur/timer programmable.
•Timer1 : 16 bits en mode compteur/timer programmable.
•Timer2 : 8 bits en mode compteur/timer avec un registre de 8 bits programmable.
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Timer0
Les registres en relation avec le Timer0 :
•TIMR0
•OPTION_REG
•INTCON
TIMER0 :
8 bits en lecture et écriture, c’est le registre qui
contient la valeur du timer.
On peut compter les impulsions reçues sur le pin RA4/TOKI (mode compteur) ou compter le
nombre des cycles du microcontrôleur (mode timer).
Les périphériques du microcontrôleur PIC16F877
Timer0
OPTION_REG :
C’est le registre qui va nous permettre de choisir le mode fonctionnement du Timer0 et
définir le facteur d’échelle.
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Timer0
Comment calculer la valeur du compteur pour un temps donné ?
On va calculer la valeur de Count pour TMR0=0, Prescaler =256, Fclk=4MHz et Fout =1Hz (Tout =1s) :
Les périphériques du microcontrôleur PIC16F877
Timer1
Le Timer1 fonctionne sur le même principe que le Timer0, mais avec un registre de
comptage plus gros : 16 bits au lieu de 8, ce qui étend notablement ces capacités de comptage. Il
est accessible en lecture/écriture par l'intermédiaire des registres 8 bits TMR1H et TMR1L, On le
configure à l'aide du registre T1CON.
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Timer1
Les périphériques du microcontrôleur PIC16F877
Timer1
Comment configurer le TIMER1 :
Bit 0 : TMR1ON - Timer1 On bit 1 - Enable timer TMR1.
0 - Stop timer TMR1.
Bit 1 : TMR1CS - Timer TMR1 Clock Source Select bit
1 - Count pulses on the T1CKI pin (on the rising edge 0-1).
0 - Count pulses of the microcontroller internal clock
Bit 2 : T1SYNC = 1
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Timer2
Le TIMER2 :
Le Timer2 a un fonctionnement différent des Timer0 et Timer 1. C'est un compteur 8 bits avec
prédiviseur et postdiviseur. Son horloge ne peut être que l'horloge interne divisée
par 4 (Fosc/4).On s'en sert pour générer des signaux carrés, ou, en association avec le module
CCP, des signaux PWM.
Les périphériques du microcontrôleur PIC16F877
Timer2
Comment configurer le TIMER2 :
Bit 0 , Bit 1: T2CKPS1, T2CKPS0
Bit 2 : TMR2ON
•the timer TMR2 on.
1 - Timer TMR2 is on.
0 - Timer TMR2 is off
01/12/2024
Les périphériques du microcontrôleur PIC16F877
Timer2
Comment configurer le TIMER2 :
TOUTPS3 - TOUTPS0
Les périphériques du microcontrôleur PIC16F877 : PWM
Définition du Signal PWM (PWM, pour Pulse Width Modulation en anglais) :
Le PWM consiste à générer un signal carré où la durée de l'impulsion (la partie où le signal
est haut) varie tout en gardant la période constante. La proportion de temps où le signal est
haut par rapport à la période totale est appelée le rapport cyclique, et c'est ce rapport qui
détermine la puissance moyenne fournie au dispositif.
01/12/2024
Les périphériques du microcontrôleur PIC16F877 : PWM
•PWMx_Init () :
•PWMx_Set_Duty() :
•PWMx_Start() :
•PWMx_Stop() :
Les périphériques du microcontrôleur PIC16F877 : I2C
L'I2C, ou Inter-Integrated Circuit, est un protocole de communication série qui permet à
plusieurs périphériques de partager le même bus de communication à deux fils. Il est
couramment utilisé dans les systèmes embarqués et est pris en charge par de nombreux
microcontrôleurs.
01/12/2024
59
Programmation du microcontrôleur
Programmation C d’un PIC
Comme toute solution programmable, le microcontrôleur nécessite un outillage informatique
et éventuellement un programmateur. A chaque microcontrôleur correspond son outil de
développement .
Pour développer une application fonctionnant à l’aide d’un microcontrôleur, il faut disposer de :
IDE : MPLAB C, Assembleur ====> langage machine
MICRO C FOR PIC
60
Programmation du microcontrôleur
Programmation C d’un PIC
01/12/2024
61
Programmation du microcontrôleur
Programmation C d’un PIC
Le programmateur : Transfert le programme compilé (langage machine) dans la mémoire du
microcontrôleur. Il est constitué d’un circuit branché sur le port série du PC, sur lequel on
implante le PIC, et d’un logiciel permettant d’assurer le transfert.
62
Programmation du microcontrôleur
Un algorithme est une suite d’instructions qui une fois exécutée correctement, conduit à un résultat
donnée.
Exemple d’algorithmes dans notre vie quotidienne: Préparer une recette de gâteau , ranger et classer
ces courses…
01/12/2024
Programmation du microcontrôleur
Algorithmique et programmation
Pourquoi apprendre l’algorithmique pour apprendre à programmer ?
Traduction
4
Algorithme Programme
l’algorithmique exprime les instructions résolvant un problème donné indépendamment des particularités
de tel ou tel langage.
Programmation du microcontrôleur
Avec quelles conventions écrit-on un algorithme ?
Organigramme
Un organigramme en informatique, est une représentation graphique d'un problème, de son analyse et de sa
résolution à l'aide de symboles traduisant des opérations, des données, des liaisons ou des appareils.
Symboles de base d'un algorigramme
5
01/12/2024
Programmation du microcontrôleur
Symboles de base d'un algorigramme
Programmation du microcontrôleurs PIC
LES STRUCTURES ALGORITHMIQUES:
Les structures algorithmiques sont réparties en 3 catégories :
- structures linéaire d'opérations;
- structures alternatives (ou conditionnelles) ou de choix : en fonction
d'une condition, le programme exécute des opérations différentes;
- structures itératives ou répétitives: sous contrôle d'une condition,
une séquence d'opérations est exécutée répétitivement.
01/12/2024
Programmation du microcontrôleurs PIC
Structure linéaire
Programmation du microcontrôleurs PIC
Structures alternatives
Structure SI ... ALORS ...
01/12/2024
Programmation du microcontrôleurs PIC
Structures alternatives
Structure SI ... ALORS ...SINON ...
Programmation du microcontrôleurs PIC
Structures alternatives
Structure de choix multiple
01/12/2024
Programmation du microcontrôleurs PIC
Structures itératives (ou répétitives)
Structure REPETER ... JUSQUA ...
Programmation du microcontrôleurs PIC
Structures itératives (ou répétitives)
Structure TANT QUE ... FAIRE ...
01/12/2024
Programmation du microcontrôleurs PIC
Structures itératives (ou répétitives)
Structure POUR Indice DE ... A .... FAIRE ...
Programmation du microcontrôleurs PIC
Organigramme du contrôle de la température :
01/12/2024
Programmation du microcontrôleur
Structure d’un programme en C :
La structure d’un programme en C pour un PIC est donnée comme suit :
Programmation du microcontrôleur
Structure d’un programme en C :
01/12/2024
Programmation du microcontrôleur
Les variables en C :
Les différents types de variables utilisées en C sont les suivantes :
Programmation du microcontrôleur
Remarque : on notera les variables hexa et binaires comme suit :
• 0x : HEXA
• 0B : Binaire
• 0xff,0x55 etc…
• 0b01010101 / 0b10101110
01/12/2024
Programmation du microcontrôleur
Les opérateurs en C :
Les opérateurs arithmétiques :
Ces opérateurs permettent d’effectuer les opérations arithmétiques traditionnelles : addition,
soustraction, multiplication et division entière entre des variables.
Programmation du microcontrôleur
Les opérateurs en C :
Les opérateurs d’affectation
01/12/2024
Programmation du microcontrôleur
Les opérateurs logiques :
Programmation du microcontrôleur
Les opérateurs de tests conditionnels :
01/12/2024
Programmation du microcontrôleur
Les opérateurs de comparaison :
Programmation du microcontrôleur
Les structures en C :
Les structures répétitives :
- La boucle While :
Elle permet de construire une structure pour laquelle le bloc d’instructions à répéter peut
´éventuellement n’être jamais exécute car la condition est vérifiée avant le bloc.
01/12/2024
Programmation du microcontrôleur
Les structures en C :
Les structures répétitives :
- La boucle Do …. While
Cette forme permet de construire une structure répétitive dans laquelle la condition de re-bouclage est
vérifiée `a la fin : on est donc certain d’exécuter au moins une fois le bloc d’instruction à répéter.
Programmation du microcontrôleur
Les structures en C :
Les structures répétitives :
- La boucle For :
Répète un nombre fixé de fois une suite d’instruction
01/12/2024
Programmation du microcontrôleur
Les structures en C :
Les structures répétitives :
- La boucle For :
Répète un nombre fixé de fois une suite d’instruction
Programmation du microcontrôleur
Les structures en C :
Les structures conditionnelles :
La structure conditionnelle if permet de réaliser un test et d'exécuter une instruction
ou non selon le résultat de ce test.
01/12/2024
Programmation du microcontrôleur
Les structures en C :
La structure Switch … case :
Le langage C offre une instruction switch qui est un if généralisé.
90
Programmation du microcontrôleur
PORTx et registre TRISx
• Le port x désigné par PORTx.
• La configuration de direction pour chaque bit du port est déterminée avec le registre TRISx.
• Bit i de TRISx = 0 bit i de PORTx configuré en sortie
• Bit i de TRISx = 1 bit i de PORTx configuré en entrée
x = {A,B,C,D,E} pour le PIC16F877
01/12/2024
91
Programmation du microcontrôleur
Allumer une LED
TPx :
01/12/2024
Programmation du microcontrôleur
Les résistances de pull-up et de pull-down :
Les résistances de pull-up et de pull-down sont des types de résistances utilisées dans des
circuits électroniques pour définir un niveau logique par défaut sur une broche (pin) d'un
composant électronique, notamment dans les microcontrôleurs, les microprocesseurs et
d'autres dispositifs intégrés.
Programmation du microcontrôleur
Les résistances de pull-up et de pull-down :
Résistance de Pull-Up :
•Une résistance de pull-up connecte la broche à la tension d'alimentation (VCC ou une source positive). Elle
établit un niveau logique haut (1) par défaut sur la broche en l'absence d'une influence externe.
Lorsqu'aucun dispositif externe ne force la broche à un niveau bas (0), la résistance de pull-up maintient le
niveau logique à 1.
01/12/2024
Programmation du microcontrôleur
Les résistances de pull-up et de pull-down :
Utilisation pratique :
•Les résistances de pull-up et de pull-down sont souvent utilisées pour garantir que les broches
d'un microcontrôleur ou d'un autre composant électronique ont des niveaux de signal définis,
même en l'absence d'une entrée explicite. Elles sont particulièrement utiles dans les circuits
numériques où les broches doivent être maintenues à un niveau connu pour éviter des états
indéterminés.
Cahiers des charges :
Gestion de deux feux tricolores de circulation (carrefour)
1- Réaliser un programme en MikroC qui permet de piloter deux
feux tricolores de carrefour. Vérifier le bon fonctionnement du
programme réalisé en utilisant Proteus ISIS.
2-Charger le programme sur le microcontrôleur PIC 16F877 en
utilisant le programmateur du PIC.
3- Réaliser la partie Hardware sur Labdec (plaque d’essai).
4-Vérifier le fonctionnement du cahier des charges.
Durée : 2H
01/12/2024
Cahiers des charges :
Gestion de deux feux tricolores de circulation (carrefour)
Durée : 2H
AFFICHAGE 7 SEGMENTS
AFFICHAGE DES DONNEES : AFFICHAGE 7 SEGMENTS
01/12/2024
AFFICHAGE 7 SEGMENTS
AFFICHAGE 7 SEGMENTS.
Comment utiliser un afficheur 7 segment avec un microcontrolleur:
• Connecter l’afficheur 7 segment avec un port du microcontrôleur.
• Configurer le port en sortie.
• Afficher le chiffre/ lettre voulu sur l’afficheur.
Figure :Décodeur 7 segments ( 74LS48) Figure :Décodeur 7 segments ( 74LS47)
AFFICHAGE 7 SEGMENTS
AFFICHAGE 7 SEGMENTS.
Comment utiliser un afficheur 7 segment avec un microcontrolleur:
• Connecter l’afficheur 7 segment avec un port du microcontrôleur.
• Configurer le port en sortie.
• Afficher le chiffre/ lettre voulu sur l’afficheur.