37 1 5MB
Module : Systèmes Microprogrammés --Systèmes à Microcontrôleurs--
FILIERE : Génie Mécatronique d’Automobile
Réalisé par :
Soufiane Mnioulat Omar Louarrat
17005177 17004925
TP1 : FAMILIARISATION AVEC MPLAB X Objectif Le but de ce travail pratique est de se familiariser avec la programmation en assembleur associé au microcontrôleur PIC16F848A et de savoir travailler sous MPLAB X IDE pour la compilation et PROTEUS ISIS pour la simulation du fonctionnement des programmes sous forme de schéma
TRAVAIL 1 Le premier travail consiste à réaliser un montage qui va nous permettre de faire une simulation d’un programme écrit en assembleur dans le but d’allumer ou éteindre une led branchée sur RB1 selon les états de l’interrupteur qui est sur la broche RB0. Le montage sous PROTEUS ISIS est comme suit :
Etape1 : l’écriture du programme sous MPLAB X IDE et le compiler.
La compilation s’est bien passée comme vous voyez dans la capture suivante.
Etape 2 : téléversement du code qu’on a écrit en assembleur au PIC16F84A.
Le travail 1 est bien réalisé, comme vous voyez sur la capture d’écran la led s’allume lorsqu’on appuie sur l’interrupteur.
TRAVAIL 2 Dans le deuxième travail nous élaborons un programme qui a pour fonction la réalisation de clignotement d’une LED montée sur la broche RB1 du port B du PIC16F84A dont la fréquence de clignotement est fixée par le sous-programme, de temporisation, suivant :
1. La fréquence de clignotement de la LED : La fréquence de l’horloge est f = 8MHZ. La période de clignotement de la LED fixée par le sous-programme est :
Tcl= Ti*2*[1+1+100+100*(99*1+2+99*2) +99*1+2+99*2+2] *4 = Ti*242424 Avec Ti=1/Fi=1/ (8*10^6) s Donc Fcl=1/Tcl=Fi/242424 d’où Fcl= 33HZ
2. Le programme de clignotement sous MPLAB X IDE est comme suit :
3. Le schéma sous PROTEUS ISIS :
TRAVAIL 3 : Le travail 3 consiste à élaborer un programme en assembleur pour un PIC16F84A qui permet de réaliser un compteur 8 bits. L’état du compteur est visualisé par 8 LEDs branchées sur le port B du PIC16F84A. On se sert du sous-programme de temporisation qu’on a utilisé sur le travail 2 pour passer d’un état à l’autre du compteur. Il faut ajouter à ce sous-programme un troisième compteur, comp3, pour augmenter la temporisation.
Le programme est le suivant :
Le schéma sous PROTEUS ISIS :
Le travail est bien réalisé.
TP2 : TRAFIC ROUTIER A BASE DU PIC 16F84 SOUS MPLAB X Objectif L’objectif de ce TP est de permettre à l’élève ingénieur de maitriser la programmation en assembleur, associée au microcontrôleur PIC16F84A. Dans ce TP sont abordés les notions de sous-programme, le Timer, TMR0, et les interruptions.
TRAVAIL On a compilé le programme suivant sous le logiciel MPLAB
On a réalisé le schéma suivant sous ISIS PROTEUS
Apres simulation sous isis PROTEUS on a eu le résultat dessus.
2-
Verification du temps de temporisation 10s
3-
on a défini le registre option_reg de la façon suivante
On aura une pré-division de 256 T=256*256=0.065536s - Nombredefois(1s)=1/T=15.25 - Nombredefois(10s)=1/T=152.58 Donc on aura
4-
le programme avec int interruption est le suivant
Le schéma est le suivant :
TP3 : FAMILIARISATION avec mikroc Pro for PIC Introduction A travers ce TP, nous allons aborder les notions de base D’un microcontrôleur PIC16F84A. Pour atteindre ce but nous allons réaliser deux exercices en utilisant le logiciel MikroC for PIC pour écrire les programmes nécessaires en langage C et le logiciel PROTEUS ISIS pour réaliser les schémas demandés. La fonction principale d’un port est de faire entrer et sortir une information. Notre pic est constitué de deux ports : Le PORTA qui est constitué de 5 pins. Le PORTB qui est constitué de 8 pins. Ses ports peuvent être configurés en entrée ou en sortie en fonction de nos besoins.
TRAVAIL1 Durant ce premier exercice, nous allons connecter deux LED (LED_GREEN et LED_RED) sur les broches RA0 et RA1, et deux interrupteurs (G_LED, R_LED) aux broches RB1 et RB4. Nous allons illustrer ce propos à travers le schéma ci- dessous réalisé sur PROTEUS ISIS
1)
Interrupteurs=PORTB & 0x12 : Les 4 valeurs possibles de la variable interrupteurs sont :
2)
0x00 : les deux leds sont éteintes.
0x02 : la led red clignote.
0x10 : la led green clignote. 0x12 : les deux leds clignotent
Ecrire du Code sur MIKRO C et simulation sous ISIS -
Les ports B sont configurés en entrées, les ports A sont configurés en sorties.
-
Nous allons illustrer ce propos à travers le schéma ci- dessous réalisé sur PROTEUS ISIS
-
Voila le code sous MIKROC
Dans cette figure on appuie sur le button poussoir pour la LED_GREEN, et automatiquement la LED s’allume par contre la LED rouge reste eteinte
Par contre cette fois ci on appuie sur Le Button poussoir rouge et la LED ROUGE s’allume et la VERTE reste éteinte
TRAVAIL2 On réalise le montage suivant sous ISIS PROTEUS
a) On écrit le code suivant sous MIKRO C
Ce programme permet de faire clignoter les 8LEDs 20fois avec une périodicité de 1seconde.
2)
Nous allons écrire un programme pour réaliser la consigne de la question même temps.
a et b au
Ce code permet de faire clignoter toutes les 8LEDs 20fois pour une periode de 1seconde.
DI
LED-RED
D3 PIC16F84A
D3 PIC16F84A
DI
D3 PIC16F84A