Académique Documents
Professionnel Documents
Culture Documents
GABES
Objectifs :
OO.1 : Identifier un µC. OO.2 : Programmer des applications sous Flowcode
V5.
OO.3 : Etudier les interruptions d’un µC.
OO.4 : Mettre en œuvre le registre timer TMR0 d’un µC.
OO.5 : Appliquer une méthode de résolution d’un problème de logique programmé.
I- Mise en situation:
Réaliser l’activité de découverte .
Compléter par : logique programmée, 16F628A, 16F84A, programme chargé, le circuit programmable.
Le logiciel payant Flowcode, vous permet de créer des programmes relativement complexes pour les
microcontrôleurs de la famille des PIC.
Flowcode vous permet de créer des applications pour des microcontrôleurs en sélectionnant et plaçant
des icônes sur un organigramme pour créer des programmes simples. Ces programmes peuvent
contrôler des périphériques externes connectés au microcontrôleur comme des LEDs, un afficheur LCD
etc.
Une fois que l’organigramme est élaboré, Flowcode vous permet de simuler son comportement avant
de le compiler, de l’assembler et de le transférer dans un microcontrôleur PIC
Pour atteindre cet objectif avec Flowcode, il suffit de réaliser les étapes suivantes :
1. Créer un nouvel organigramme, spécifier le microcontrôleur cible que vous utiliserez au final.
2. Sélectionner et faire glisser les icônes de la barre d’outils sur l’organigramme pour programmer
votre application.
3. Ajouter les périphériques externes nécessaires en cliquant sur les boutons correspondants dans
la barre d’outils des composants, éditer leurs propriétés, spécifier comment ils sont connectés au
microcontrôleur et appeler les macros correspondants aux périphériques utilisés.
4. Faire tourner la simulation pour vous assurer que l’application se comporte comme vous le
voulez.
5. Transférer l’application dans le microcontrôleur cible en compilant le programme en C, puis en
l’assemblant et finalement en produisant le code objet.
L’environnement de Flowcode consiste en une aire de travail principale dans laquelle s’affiche
l’organigramme, plusieurs barres d’outils qui vous permettent d’ajouter des icônes et des composants à
votre application, trois fenêtres spécifiques pour montrer l’état du microcontrôleur ainsi que les
composants attachés et enfin deux fenêtres qui montrent les variables et les appels de macros lorsque
vous simulez votre application.
b) Exemples.
▪Exemple -1- Clignotement d’une diode LED.
Une diode LED branchée sur RA2 clignote périodiquement 2s.
La LED est initialement éteinte.
* Répondre par OUI ou NON.
- La broche RA2 est configurée en entrée : ……….….
- La broche RA2 est configurée en sortie : …………….
* En utilisant les symboles graphiques suivants, traduire le cahier de charge en un programme.
DÉBUT BOUCLE FIN BOUCLE
DÉBUT PROGRAMME FIN PROGRAMME
TANT QUE 1=1 FAIRE TANT QUE
* Programme :
Retaper cet algorigramme sous Flowcode tout en se reposant sur le mini guide suivant :
* Simulation :
Simuler votre programme précédent en respectant la démarche suivante :
* Compilation:
La compilation consiste à traduire le programme source déjà édité en un fichier exécutable ( .Hex )
Compiler alors votre programme en respectant la démarche suivante :
* Simulation:
La simulation est une phase très importante. Elle nous informe sur le comportement du système réel
avant de charger le programme étudié dans le µC.
Sous Isis8, charger votre fichier (.Hex)dans le µC et tester votre application.
* Transfert:
Le transfert est une opération d’implantation d’un programme dans un microcontrôleur. Le transfert de
fichier ( .hex ) vers le microcontrôleur exige deux composantes :
Composante ………….…………………… : ……………..……………………. ;
Composante …….…………….…..……..……… : ………….……….…….…………..…….. ;
Charger alors votre fichier ( .hex ) dans le microcontrôleur en se reposant sur la démarche suivante :
* Essai:
L’essai consiste à mettre le microcontrôleur dans la carte électronique pour valider le fonctionnement.
Valider votre projet en utilisant la valise PIC qui se trouve dans votre laboratoire de Génie Electrique.
Ainsi, pour traduire un cahier de charge en un programme exécutable par un PIC quelconque, il faut
2- Cliquer 2 fois sur l’icône entrée puis cliquer sur variable puis BD
Sur variables Ajout Nouveau
Ajouter Nouveau
Effacer non utilisé(s)
5- Cliquer 2 fois sur l’icône sortie La sortie est sur la broche RB2
Bit unique
Placer la valeur que doit prendre la sortie RB2 : 1 ou 0 suivant le résultat du test
Si a=1 le bit 2 du Port B reçoit la valeur 0 si non il reçoit la valeur 1
N.B On peut écrire la valeur en hexadécimal (précédée par 0x) ou binaire (précédée par 0b)
Finalement on obtient l’algorigramme suivant :
BD sur switch à partir du panneau puis connexion « le bouton est connecté à la broche RB1)
BD sur LED à partir du panneau puis propriétés Ext Choisir la forme et la couleur de la diode
8- Lancer la simulation
Entrées Sorties
a RA0 S1 RB0
b RA1 S2 RB1
S3 RB2
S4 RB3
S5 RB4
1°) Compléter le tableau puis taper l’algorigramme sous Flowcode, enregistrer puis, simuler.
PORTA= 31 PORTA= 21 PORTA=1 PORTA=1
ba
S 11100100S1S2S3S4S5
1 1 1 0
0 1 1 1
TRISA= 1 1 1 1
D’
0 1 1 0
0 1 1 1
TRISB=
D’ PORTB=1 PORTB=1 PORTB= 111 PORTB= 181
PORTB=
Si PORTA=
D’ D’ 0
1
Si PORTA=
D’ 0
1
PORTB=
Si PORTA=
D’ D’ 0
1
PORTB=
D’
TRISB=
D’
▪Exemple -5- Mémoire à arrêt prioritaire : Activité N°10 du manuel d’actvités à la page 140.
a a m Sortie
RA0 RA1 RB0
m X
X = …………………………………………………………………………….
X
Déclarer 3 variables de types Booléennes « a », « m » et « X »
a m Sortie
RA0 RA1 RB0
a
m X
X= m + a . X
Boucle infini
4- Glisser vers la zone de travail une boucle et deux icônes « Routine composant »
7- Tester K:
K : de 0 255
Si aucune touche n’est enfoncée alors le test recommence
Si une touche est enfoncée alors elle sera affichée sur le LCD
8- Algorigramme
2) Sources d’interruptions
EECON1
Le nombre de sources d’interruptions dépend de type du microcontrôleur utilisé.
Microcontrôleur 16F84A 16F628A 16F88 16F876A 16F877A
Sources d’interruptions 4 10 12 14 15
3) Différents types d’interruptions
On distingue deux types d’interruptions:
Les interruptions externes, qui sont déclenchées lorsqu’un
événement exterieur se produit tels que le changement
d’état d’une entrée destinée à l’interruption.
Les interruptions internes, qui sont déclenchées par le
déroulement du pro- gramme tels que le résultat d’un
calcul ou le débordement d’un Timer.
4) Registre de configuration des interruptions (INTCON):
Le registre de configuration des interruptions est en lecture et écriture. Il permet de configurer les
différentes sources d’interruptions.
Bit 0: RBIF = RB Port Change Interrup Flag bit. Ce drapeau doit être remis à zéro par le
programme.
1 = Quand au moins une entrée du port B (de RB4 à RB7) a changé d’état.
0 = Aucune entrée de RB4 à RB7 n’a changé d’état.
NB : dans le cas du 16F84 le bit 6 sert à gérer l’interruption causée par la fin
d’écriture dans l’EEPROM, il est donc impératif de revenir au document constructeur pour plus de
détails.
… … … … … … … …
INTCON = ………..Hex
… … … … … … … …
(instruction Xn+1)
procédure)
c) En se référant au schéma de déroulement d’une interruption ci-dessous, mettre dans l’ordre les
tâches exécutées par le microcontrôleur.
d) Réaliser l’activité N°15 du manuel d’activités à la page 149.
Analyse de fonctionnement :
Bp = 0 (Fonctionnement normal) Bp = 1 (Interruption sur RB0/INT est active)
RA0 R 0s RA0 R 20 s
RA1 O 0s
RA1 O 10 s
RA2 RA2
V Infiniment V 0s
RA3 RA3
V 0s V 20 s
1) Définition :
Le Timer (TMR0) est un module intégré dans les microcontrôleurs type PIC. Il assure la fonction d’un
compteur ascendant à 8 bits qui peut être chargé intialement. Il s’incrémente à chaque coup de
l’horloge interne jusqu’à ce que le débordement ait lieu (passage de FF à 00) ; ou à chaque
changement de niveau logique sur la broche RA4. Le choix de la source d’incrémentation et de mode
Le nombre des timers dans un PIC vari selon de type de celui-ci. Par exemple le PIC 16F84A ne
contient qu’un seul timer TMR0 de 8 bits et les µC 16F628A, 16F877A et 16F88 contiennent chacun 3
2) Configuration de TMR0
Afin de configurer ce Timer, on fait recours au registre interne du PIC (16F84A ou 16F628 ou
16F877A ou …) OPTION_REG
*Ce Timer est incrémenté en permanence soit par l’horloge interne Fosc/4 (mode timer) soit par une
horloge externe appliquée à la broche RA4 du port A (mode compteur). Le choix de l'horloge se fait à
l'aide du bit T0CS du registre OPTION_REG
o TOCS = 0 : horloge interne
* Dans le cas de l'horloge externe, on peut choisir le front sur lequel le TIMER s'incrémente
* Quel que soit l'horloge choisie, on peut la passer dans un diviseur de fréquence programmable
(prescaler) dont le rapport est fixé par les bits PS0, PS1 et PS2 du registre OPTION_REG
L'affectation ou non du prédiviseur se fait à l'aide du bit PSA du registre OPTION_REG
e) En se basant sur la simulation préparée par le professeur, vérifier le bon fonctionnement de deux
schémas ci-dessous.
• Le contenu du timer TMR0 est accessible par le registre qui porte le même nom. Il peut être lu
ou écrit à n'importe quel moment. Après une écriture, l'incrémentation est inhibée pendant deux
cycles instruction
• Au débordement de TMR0 (FF à 00), le drapeau T0IF est placé à 1. Ceci peut déclencher
o Remarques :
• Les fonctions des deux bits de gauche de ce registre ne sont pas données. Ces deux bits sont