0% ont trouvé ce document utile (0 vote)
244 vues7 pages

TP 1, Initiation A La Programmation Du Pic 16F877A Premiere Approche Des Logiciels Utilises

Transféré par

delkasraoui
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)
244 vues7 pages

TP 1, Initiation A La Programmation Du Pic 16F877A Premiere Approche Des Logiciels Utilises

Transféré par

delkasraoui
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

BTS _2SE : Travaux d’atelier TP Microcontrôleur

TP 1, INITIATION A LA PROGRAMMATION DU PIC 16F877A


PREMIERE APPROCHE DES LOGICIELS UTILISES

Objectif : L’objectif capital de ce premier TP est de se familiariser avec les outils employés pour réaliser les TPs de ce
module. En bref, nous nous intéressons à la programmation du microcontrôleur PIC de Microship (PIC16F877A) et aux
environnements de conception et de simulation (MikroC et Proteus ISIS).

Les PIC sont des microcontrôleurs RISC (de l'anglais, Reduced Instructions Set Computer) ; qui signifie : calculateur à jeu
réduit d'instructions. Ils sont dédiés aux applications qui ne nécessitent pas une grande quantité de calculs complexes,
mais qui demandent beaucoup de manipulations d’entrées / sorties. En effet, il existe plusieurs familles de microcontrôleurs,
dont les plus connues sont : Atmel, Motorola, Microship, Intel,…etc. La famille des PIC à bus de données 8 bits est
subdivisée, à l’heure actuelle, en 3 grandes catégories :
• Base-ligne : utilisent des mots d’instruction de 12 bits.
• Mid-Range : utilisent des mots d’instruction de 14 bits.
• High-End : utilisent des mots d’instruction de 16 bits.

I- Brève découverte du PIC 16F877A


L’alimentation du circuit est assurée par les pattes VDD (4,5 à 6V) et VSS (GND). Elle permet le fonctionnement du PIC.
Il est possible d’utiliser un oscillateur avec un quartz allant jusqu’à 20 Mhz relié avec 2 condensateurs de découplage
(OSC1/CLKI et OSC2/CLKO), du fait de la fréquence importante du quartz utilisé. Par conséquent, quelque soit
l’oscillateur utilisé, l’horloge système base est obtenue en divisant la fréquence par 4.
La broche MCLR (Master Clear) a pour effet d’exciter la réinitialisation du PIC (RESET) lorsqu’elle est connectée à 0.
Lorsque le RESET est activé, tous les registres sont initialisés.

Port B
Port A

Port E

Port D

Port C

Port D

1/7
Prof : Y. TAHIN
BTS _2SE : Travaux d’atelier TP Microcontrôleur

Le PIC 16F877A, dispose de 5 ports :


• Port A : 6 pins I/O numérotées de RA0 à RA5. En effet, ces broches (sauf RA4) sont multiplexées avec les
entrées du convertisseur analogique numérique (AN0…AN4). RA4 est multiplexée avec le timer0 (T0CKI).
• Port B : 8 pins I/O numérotées de RB0 à RB7. Possibilité de déclenchement d’interruptions.
• Port C : 8 pins I/O numérotées de RC0 à RC7. Partagé, avec liaison, les timers 1 et 2 et les modules CCP.
• Port D : 8 pins I/O numérotées de RD0 à RD7. Possibilité d’interfaçage avec un autre processeur et autres.
• Port E : 3 pins I/O numérotées de RE0 à RE2. Possibilité d’interfaçage avec un autre processeur et autres.
A chaque port correspondent 2 registres :
• Un registre direction pour programmer les lignes en entrée ou en sortie : TRISA, TRISB, TRISC, TRISD, TRISE.
• Un registre de données pour lire ou modifier l’état des broches : PORTA, PORTB, PORTC, PORTD, PORTE.
Pour déterminer les modes des ports (I/O), il faut sélectionner leurs registres TRISX :
• Le positionnement d’un bit à "1" programme la broche correspondante en entrée.
• Le positionnement d’un bit à "0" programme la broche correspondante en sortie.

Remarque : Toutes les lignes des PORTS peuvent fournir un courant de 25 mA par ligne de PORT. Une limite de 40 mA
par PORT doit être respectée pour des questions de dissipation (échauffement).

2/7
Prof : Y. TAHIN
BTS _2SE : Travaux d’atelier TP Microcontrôleur

Le PIC 16F877A, dispose de 3 timers :


• Timer0 (8 bits) : il peut être incrémenté par les impulsions extérieures via la broche (TOCKI/ RA4) ou par
l'horloge interne (Fosc/4).
• Timer1 (16 bits) : il peut être incrémenté soit par l'horloge interne ; par des impulsions sur la broche TICKI/RCO
ou par un oscillateur (RC ou quartz) connecté sur les broches TOSO/RCO et T1OSI/RCI.
• Timer2 (8 bits) : il est incrémenté par l'horloge interne ; celle peut être pré-divisée.

Remarque : Le convertisseur Analogique / Digital du PIC 16F877A est à approximations successives et il possède une
résolution de 10 bits (10-bit A/D). La liaison série USART est une interface asynchrone.

II- MikroC PRO et Programmation du PIC 16F877A


La principale différence entre le microcontrôleur et le microprocesseur est que le microcontrôleur possède en interne le
programme qu'il devra effectuer en fonction de l'application pour lequel il a été conçu.
Le langage machine est le langage compris par les processeurs. Ce langage est difficile à maitriser puisque chaque
instruction est codée par une séquence propre de bits. Afin de faciliter la tâche au programmeur, on a créé différents
langages plus ou moins évolués (langage de haut niveau).
Pour programmer un microcontrôleur, il est possible d'utiliser différents types de langages de programmations de haut
niveau ; tels que : C, C++, JAVA,…etc. Le programme réalisé est ensuite compilé dans le langage assembleur conçu par
le constructeur du microcontrôleur. Le programme ainsi compilé sera injecté, par la suite, du PC dans la mémoire
programmable du microcontrôleur.
En effet, les lignes des programmes que nous écrivons avec les différents types de langages constituent ce qu’on appel
un programme source (xxxx.m, xxx.c,…etc). Le microcontrôleur ne comprend pas ces programmes. Pour que le
microcontrôleur puisse comprendre nos programmes, il faut les compiler (Build) en langage machine, qui est une suite de
codes machine (fichiers avec l’extension [Link]).
Le langage MikroC PRO (pour PIC) a trouvé une large application pour le développement de systèmes embarqués sur
la base de microcontrôleur. Il assure une combinaison de l'environnement de programmation avancée IDE (Integrated
Development Environment), et d’un vaste ensemble de bibliothèques pour le matériel, de la documentation complète et
d’un grand nombre des exemples.
Le MikroC PRO est un compilateur C pour PIC bénéficier d’une prise en main très facile. Il a une capacité à pouvoir
gérer la plupart des périphériques rencontrés dans l'industrie (Bus I2C, 1Wire, SPI, RS485, Bus CAN, cartes compact
Flash, signaux PWM, afficheurs LCD et 7 segments...etc.), de ce fait il est un des outils de développement incontournable
et puissant.
• Pour installer MikroC, télécharger depuis les serveurs et faire l’installation.
• L’environnement de démarrage du logiciel MikroC PRO est le suivant :

3/7
Prof : Y. TAHIN
BTS _2SE : Travaux d’atelier TP Microcontrôleur

• Pour débuter un projet, il faut suivre les étapes suivantes :


✓ Créer un nouveau dossier; dans le disque dure de votre PC.
✓ Créer un nouveau projet (Project / New Projet Wizard / Next).
✓ Sélectionner le type du PIC (P16F877A / Next).
✓ Préciser le Clock (8.000000 MHz / Next).
✓ Spécifier le chemin d’enregistrement (Ouvrir / chemin du dossier créé) puis donner un nom type mikroC
Project (*.mcppi) et Enregistrer.
✓ Une fois cette première étape terminée, saisissez votre programme, compilez, corriger les erreurs et exécuter.

III- Proteus ISIS et vérification de l’application par simulation


C’est un très bon logiciel de simulation en électronique. C’est un éditeur de schémas qui intègre un simulateur
analogique, logique ou mixte. Proteus ISIS est capable de vérifier et simuler le comportement du PIC 16F877A.
En effet, la simulation permet d’ajuster et de modifier les paramètres du circuit étudié comme si on manipulait un
montage électronique réel. Ceci permettra d’accélérer le prototypage et de réduire le coût de réalisation.

IV- Exemples pratiques de programmation du PIC 16F877A


Exercice1 (Lancer Proteus ISIS et l’éditeur MikroC PRO)
• Réaliser le premier circuit de test qui permet de faire clignoter une LED (ON durant 1 sec et OFF durant 1 sec) ?

4/7
Prof : Y. TAHIN
BTS _2SE : Travaux d’atelier TP Microcontrôleur

Decimal Binary Octal Hexadecimal Remarque : Il est possible d’accéder individuellement


0 0b00000000 00 0x00 à 1 seul bit du PORT. A titre d’exemple, on écrit :
1 0b00000001 01 0x01 TRISB.F0 = 0 ;

128 0b10000000 0200 0x80 PORTB.F0 = 1 ;

255 0b11111111 0377 0xFF portb.F0 = 0 ;

• Visualiser le contenu du fichier enregistré avec l’extension .hex ?


:020000001628C0
:0E0006008312031321088A00200882000800DC
:1000140003208A110A128000840AA00A0319A10A83
:08002400F003031D0A28080087
:10002C00831603130610831206140B30FB002630C4
:10003C00FC005D30FD00FD0B2128FC0B2128FB0B87
:10004C0021280000000006100B30FB002630FC00BD
:10005C005D30FD00FD0B3028FC0B3028FB0B3028ED
:08006C000000000019283928EA
:02400E004A2 37
:00000001FF

5/7
Prof : Y. TAHIN
BTS _2SE : Travaux d’atelier TP Microcontrôleur

Exercice 2
• Dans le même projet, réaliser un 3ème circuit de test qui permet de faire allumer 1 LED parmi 8 durant 0,5 sec?
• Vérifier le fonctionnement de votre programme ?

Exercice 3
• Dans le même projet, réaliser un 3ème exercice de test qui permet d’afficher un chiffre 7 segments de 0 à 9 avec
une cadence de 500ms ? (déclarer un tableau tab[10] contenant les 10 codes 7 segments des chiffres de 0 à 9 et
avec une boucle for repérer le code à envoyer).
• Vérifier le fonctionnement de votre programme via PROTEUS ISIS ?
• Matériels utilisés (16F877A, RES, et 7SEG-COM-CATHODE )
Remarque : MikroC vous permet de déterminer le code 7 segments ; en allant dans : Tools → Seven Segment Editor

6/7
Prof : Y. TAHIN
BTS _2SE : Travaux d’atelier TP Microcontrôleur

Exercice 4
• Dans le même projet, réaliser un 4ème exercice de test qui permet d’incrémenter le chiffre
affiché en appuyant un bouton poussoir ?
• Vérifier le fonctionnement de votre programme via PROTEUS ISI

Prof : Y. TAHIN 7/7

Vous aimerez peut-être aussi