0% ont trouvé ce document utile (0 vote)
855 vues9 pages

Série 6 Microcontroleur PIC

Le document présente un exercice sur la programmation d'un microcontrôleur PIC 16F877 pour réaliser diverses tâches, notamment un additionneur BCD, la mesure de vitesse d'un moteur via un ADC, et la gestion d'une file d'attente. Il inclut des questions sur la configuration des registres, des programmes en langage C, et des calculs liés aux temporisations. Les exercices abordent également la commande d'un moteur triphasé et la configuration des registres du microcontrôleur.

Transféré par

sahlimsalah
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)
855 vues9 pages

Série 6 Microcontroleur PIC

Le document présente un exercice sur la programmation d'un microcontrôleur PIC 16F877 pour réaliser diverses tâches, notamment un additionneur BCD, la mesure de vitesse d'un moteur via un ADC, et la gestion d'une file d'attente. Il inclut des questions sur la configuration des registres, des programmes en langage C, et des calculs liés aux temporisations. Les exercices abordent également la commande d'un moteur triphasé et la configuration des registres du microcontrôleur.

Transféré par

sahlimsalah
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

Mr Z.

Youssef Série 6- Microcontroleur PIC Bac 2025

Exercice 1 :
Le schéma incomplet ci-dessous représente notre projet qui consiste à utiliser un additionneur
binaire CI74283, un multiplexeur 8 vers 1 CI74151 et un microcontrôleur PIC 16F877 pour réaliser
un additionneur BCD.

La correction de la somme de deux nombres A et B à un digit chacun est effectuée à l’aide du


microcontrôleur PIC 16F877 à chaque front montant sur la broche RB0.
1- On rappel que l’équation de circuit correction est Ec = C4 + S3.(S2+S1). Compléter les de
liaisons nécessaires du circuit U2 de la Figure 1.
2- Compléter la configuration du registre INTCON.
GIE EEIE T0IE INTE RBIE T0IF INTF RBIF INTCON
…. …. …. …. …. …. …. …. (…….)Hex

3- Configurer le registre ADCON1 en choisissant le porta numérique.


ADFM --- --- --- PCFG3 PCFG2 PCFG1 PCFG0 ADCON1
1 0 0 0 ……. ……. ……. ……. (……..)Hex

[1]
Mr Z.Youssef Série 6- Microcontroleur PIC Bac 2025

4- Écrire le programme en langage C pour effectuer la correction de la somme de A et B en


BCD. Les broches non utilisées sot considérées comme entrées.

void main( )
{
trisa = 0x………………
trisb=0x………………..
trisd=0x………………..
portd=………………….
adcon1=0x………………
intcon=0x……………….
……………………….. //Interruption sur front montant de RB0.

while(1)
{
while (porta<=…………)
{
portd=……………..
}
}
}

…………………….
{
portd = …………………….
intcon=0x………...
}

Exercice 2:
La tension de sortie Vd de la dynamo tachymétrique du moteur est proportionnelle à la vitesse
de rapport 0,01 V/tr.min-1, cette tension sera divisée par 4 puis elle est appliquée à l’entrée
RA1/AN1 de PIC 16F876A. Ce circuit affiche la valeur de la vitesse sur un afficheur LCD

[2]
Mr Z.Youssef Série 6- Microcontroleur PIC Bac 2025

1- Compléter le tableau suivant.


n (tr/min) Vd (V) Vp (V)
2000 …….. ………
…….. 15 ………
…….. …….. 3,62

2- Trouver une relation entre n et N. avec N la valeur de la vitesse convertie par le CAN.
……………………………………………………………………………………………………
…………………………………………………………………………………………………….
3- Quel est le type du signal appliqué sur l’entrée RA1.
……………………………………………………………………………………………………
4- Compléter la configuration du registre ADCON1.
ADFM --- --- --- PCFG3 PCFG2 PCFG1 PCFG0
1 0 0 0 …. …. …. ….

5- Compléter le programme C permettant d’afficher la vitesse du moteur sur un écran LCD.


Programme C Commentaires
……… valeur_conversion ; //Variable de type mot 16bits car la conversion sur 10bits
……… vitesse ; //Type réel afin ne pas avoir un dépassement lors de division
…….. valeur_affichage ……. ; //Chaine de 5 caractères pour afficher la vitesse
Sbit LCD_RS at RC2_bit ; //Connections du module LCD
Sbit LCD_EN …………………
Sbit LCD_D4 …………………
Sbit LCD_D5 …………………
Sbit LCD_D6 …………………

[3]
Mr Z.Youssef Série 6- Microcontroleur PIC Bac 2025

Sbit LCD_D7 …………………


Sbit LCD_RS_Direction at TRISC2_bit ; //Direction du module LCD
Sbit LCD_EN_Direction ……………………
Sbit LCD_D4_Direction ……………………
Sbit LCD_D5_Direction ……………………
Sbit LCD_D6_Direction ……………………
Sbit LCD_D7_Direction ……………………
…………………………………………………….. //Initialisation de l’LCD
…………………………………………………….. //Désactivation du curseur de l’LCD
…………………………………………………….. //Afficher VITESSE_MOTEUR sur ligne 1, colonne 1
…………………………………………………….. //Afficher n= sur ligne 2, colonne 1
ADCON1 =........................................................... //Justification à droite et RA1 analogique
……………………………………………………. //Initialiser le module ADC
While (1) {
valeur_conversion =……………………………… //Lecture du convertisseur
vitesse =(valeur_conversion*…….)/ …… ; //Calcul de la vitesse
……………. (…………… , valeur_affichage) ; //Conversion de la vitesse calculée en texte
………….. (2, 4, …………………………….) ; //Affichage de la valeur de la vitesse
…………………………………………………….. //Afficher tr/min sur la ligne 2, colonne 8
…………………………………………………….. //Attente de 0,5s
……………………………………………………..

Exercice 3 :
Systèmes de gestion d’une file d’attente : Les salles d’attente de certaines administrations
publiques, disposent généralement d’un système électronique de gestion de la file d’attente.
ce système est généralement composé d’ :
- Un distributeur de tickets.
- Un afficheur à deux digits.
- Un bouton poussoir INC pour incrémenter le numéro à servir.
- Un avertisseur sonore incorporé dans l’afficheur.
- Un bouton RAZ de remise à zéro.
Schéma de simulation :

Figure 2

[4]
Mr Z.Youssef Série 6- Microcontroleur PIC Bac 2025

1- Quel est le type des afficheurs utilisés dans la Figure 2.


……………………………………………………………………………………………………
2- Compléter le tableau ci-dessous en indiquant les états des segments de l’afficheur 7
segments pour afficher les chiffres (0..9).
Chiffre RB7/RC7 g f e d c b a Portb /portc
0 1 = (…..)Hex
1 1 = (…..)Hex
2 1 = (…..)Hex
3 1 = (…..)Hex
4 1 = (…..)Hex
5 1 = (…..)Hex
6 1 = (…..)Hex
7 1 = (…..)Hex
8 1 = (…..)Hex
9 1 = (…..)Hex

3- Compléter la configuration du registre OPTION_REG pour avoir un compteur modulo 100


qui s’incrémente à chaque appui sur le bouton INC. (Voir document constructeur du TMR0).
RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
1 1 …. …. …. …. …. ….

4- Ecrire un programme C qui permet de réaliser la gestion d’une file d’attente. Les broches
non connectées sont considérées comme des entrées.
const afficheur[10] = {0xBF,.......................................................................................................}; //codage décimal/7segments.
……………………………… //unite, dizaine de type byte.
#define …………………… //affectation de INC et RAZ.
#define ……………………
void main() {
trisa=0x……… trisb=0x……… trisc=0x……. adcon1=0x…… option_reg=0x…… TMR0=……
sound_init(&porta,0);
while(1)
{
if (…......>………) TMR0=0;
unite = ……………………….
dizaine = ……………………..
portc = ………………………. //affichage de cycle.
portb = ………………………
if (RAZ==1) TMR0=0;
if (INC==1) sound_play(1200,1000); //……………………………………………………………………………..

}
}

[5]
Mr Z.Youssef Série 6- Microcontroleur PIC Bac 2025

Exercice 4 :
On propose de commander un moteur triphasé avec un démarrage étoile-triangle à l’aide d’un
PIC 16F877. Le principe de fonctionnement est donné selon le grafcet PC ci-contre avec :
- m : Bouton poussoir de marche.
- A : Bouton poussoir d’arrêt.
- ARU : Bouton d’arrêt d’urgence. 0
- F : Contact auxiliaire du relais thermique. m . ARU . F
- KM1 : Contacteur principal.
KM1 KM2 T
- KM2 : Contacteur pour couplage étoile. 1
- KM3 : Contacteur pour couplage triangle. t / X1 / 15s

KM1 KM3
2
A + ARU + F

Schéma de simulation :

1- Le temporisateur T est réalisé à l’aide du module Timer0 avec une pré-division DIV=256 et
une fréquence Fosc = 4MHz.
a- En se référant au document constructeur du Timer0, compléter la configuration de
registre OPTION_REG.
RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
1 1 …. 1 …. …. …. ….
b- Calculer le nombre d’itérations i pour obtenir une temporisation de 15s.
……………………………………………………………………………………………………
……………………………………………………………………………………………………

[6]
Mr Z.Youssef Série 6- Microcontroleur PIC Bac 2025

2- Compléter les instructions manquantes du programme ci-dessous. Les broches non


connectées sont considérées comme des sorties.
……………………………… // X0,X1,X2 et T de type bit.
……………………. // i de type octet.
// Connection de LCD
sbit lcd_rs at ………..
sbit lcd_en at rb2_bit;
sbit lcd_d4 at ………..
sbit lcd_d5 at ………..
sbit ……….. at rb5_bit;
sbit ……….. at rb6_bit;
//Configuration de direction deTRISB
sbit lcd_rs_direction at trisb1_bit;
sbit lcd_en_direction at trisb2_bit;
sbit lcd_d4_direction at trisb3_bit;
sbit lcd_d5_direction at trisb4_bit;
sbit lcd_d6_direction at trisb5_bit;
sbit lcd_d7_direction at trisb6_bit;

void main()
{
trisa=0x………..
trisc=0x………..
portc=………..
tmr0=………..
adcon1=0x87; //………..………..………..………..
option_reg=0x………..
………..………..………..……….. //Initialisation des étapes du grafcet.
………..………..……….. //Initialisation du module LCD.
lcd_cmd(_lcd_cursor_off); //………..………..………..………..………..

[7]
Mr Z.Youssef Série 6- Microcontroleur PIC Bac 2025

while(1)
{
if ………..………..………..………..………..………..………..
{ X0=0; X1=1;
………..………..………..……….. //Afficher ‘Couplage etoile’ sur la ligne 2, colonne 1.
}
if………..………..………..
{X1=0; X2=1;
…..………..…..………..…..……….. //Afficher ‘Couplage triangle’ sur la colonne 1, ligne 2.
}
if…..………..…..………..…..………..…..………..…..………..
{X2=0; X0=1;}
//Programmation des sorties.
…..………..…..………..…..………..
…..………..…..………..…..………..
…..………..…..………..…..………..

//Programmation du temporisateur T
if (X1==0) T=..…..………..
else
{
if(intcon.T0IF==1) { ..…..……….. ..…..……….. ..…..………..}
if (i==..…..………..) {..…..………....…..………..}
}
..…..……….. ..…..……….. ..…..………..//Ecrire ‘Moteur Triphase’ sur la 1ére Colonne, 1ére ligne
}
}

[8]
Mr Z.Youssef Série 6- Microcontroleur PIC Bac 2025

Exercice 5 : Cocher la bonne réponse. Exercice 6 :


1- On donne la configuration de registre option_reg ci-dessous :
1- Quelle est la valeur de registre option_reg au reset
du microcontrôleur : Option_reg RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
0x00 0xFF 0xF0 Cas1 1 1 1 1 1 0 0 0
2- Quelle est la valeur de registre intcon au reset du Cas2 1 0 1 0 0 1 1 1
Cas2 0 0 0 1 0 1 1 0
microcontrôleur :
En se basant sur le document constructeur, compléter le tableau ci-dessous en cochant la case
0x00 0xFF 0xF0
correspondante.
3- Quelle est la valeur de registre adcon1 au reset du
microcontrôleur : TRM0 en mode Incrémentation à front Pré-diviseur affecté au DIV
0x00 0xFF 0xF0 Compteur Temporisateur Montant Descendant watchdog TMR0 128 256
4- La valeur du registre intcon=0x88 autorise Cas1
l’interruption sur : Cas2
RB0 RB4àRB7 TMR0 Cas3
5- Registre de configuration du convertisseur ADC :
Adcon0 Adcon1 Cmcon 2- Se référer au document constructeur, compléter la configuration de registre adcon1 dans les
6- Registre de configuration des entrées / sorties : cas suivants :
Tris Trisa Portb Cas 1 : justification à droite et choix de PortE analogique.
7- Registre de contrôle et configuration des ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0
interruptions : … … … … … … … …
Adcon1 Trisb Intcon Cas2 : justification à gauche et chois de PortA analogique et PortE numérique.
8- Registre de configuration et de contrôle du module ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0
timer0 : … … … … … … … …
TMR0 RA4/T0CKI Option_reg
Cas3 : justification à droite et choix de PortA et RE0 uniquement des entrées analogiques.
9- Quelle est la broche d’entrée d’horloge externe du
timer0. ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0
RB0 RA4 RB4 … … … … … … … …
10- Quelles sont les sources d’interruption externe :
RB0 RA4 RB6 AN4

RB4 RB5 RB7 T0CKI

[9]

Vous aimerez peut-être aussi