Vous êtes sur la page 1sur 45

Université Sidi Mohammed Ben Abdallah

Faculté des Sciences et Techniques Fès


Département Génie Électrique

Polycopie de Travaux Dirigées

Module: Informatique Industrielle


Microcontrôleur PIC-16F887
2019-2020
Exercice 1.
Chenille à LEDs
Dans ce projet les huit LEDs sont connectées à PORTC d'un microcontrôleur.
Lorsqu'une tension est appliquée au microcontrôleur (ou est réinitialisé), les LEDs
s'allument en alternance. Il y a le délai d’une seconde de sorte qu’une LED peut être vu
tourner sur ON et OFF.

Exercice 2.
Clignotement des LEDs à deux façons différentes
On propose de faire clignoter LEDs branchées au port B d’un microcontrôleur (fig.
4.2) de deux façons différentes :

1. Dès que le microcontrôleur est activé, tous les LEDs clignotent avec une période d’une
seconde (voire la figure ci-dessous). Et ça doit répéter 10 fois

2. Après cela, les LEDs doivent clignoter chaque 500 ms infiniment comme indiqué dans la
figure ci-dessous.
Exercice 3.
RELAI
Dans ce projet la minuterie, sur la base de registre TMR0, est utilisée comme un
compteur.
L'entrée de comptage est reliée à un bouton-poussoir Input (fig. 4.3) de sorte que toute
pression sur Input provoque TMR0 à compter une impulsion. Lorsque le nombre
d'impulsions correspond au nombre stocké dans le registre nommé TEST, la valeur
logique 1 (5V) apparaît sur le pin3 de PORTD. Cette tension active un relais
électromécanique, et ce bit est appelé «RELAI» dans le programme (voire le fichier
RELAI.C de code-source 4.3).
Dans le registre de TEST est stocké un nombre de 5 pour cet Exercice. Bien sûr, il peut
être n'importe quel nombre défini comme une constante. Par ailleurs, le microcontrôleur
peut activer un autre appareil au lieu de relais, tandis que le capteur peut être utilisé à la
place du bouton poussoir. Cet Exercice illustre l'une des applications les plus courantes du
microcontrôleur dans l'industrie; quand quelque chose est effectué autant de fois que
nécessaire, puis quelque chose d'autre doit être activé ou désactivé ....

Exercice 4.
Registres TMR0 et TMR1 comme minuteries

Dans l'Exercice précédent, le microcontrôleur ne fait rien entre des impulsions de


comptage en utilisant des boucles sans fin. Ces déchets du temps est un luxe inadmissible
et par conséquent une autre méthode doit être appliquée.
Considérons le schéma à microcontrôleur 16F887 de l’exercice- 1 qui sera toujours le
même pour réaliser les nouvelles fonctions.

Exercice 5.
Module CCP1 comme générateur du signal PWM
Cet Exercice illustre l'utilisation de module CCP1 en mode PWM. Pour rendre les
choses plus intéressantes, la durée d’impulsions à la sortie P1A/CCP1 (PORTC, 2) peut être
changée avec les touches symboliquement marqués comme "BRILLANT" et "NOIR",
tandis que la durée est considérée comme la combinaison binaire sur le port B (fig.4.4).
Remarque: La diode D1 dans le schéma de simulation dans le PROTEUS (fig. 4.4)
signale que le module CCP1 est activé. Dans le montage réel son état corresponde à l’état
de la diode D2 pendant la simulation.
Le fonctionnement de ce module est sous le contrôle des fonctions appartenant à la
bibliothèque spécialisée PWM. Trois d'entre eux sont utilisés ici :
PWM1_init a le prototype : void Pwm1_Init( long freq) ;
Paramètre Freq détermine la fréquence du signal PWM exprimée en Hz. Dans cet
Exercice, elle
est égale à 5 kHz.
PWM1_Start a le prototype : void Pwm1_Start( void ) ;
PWM1_Set_Duty a le prototype: void Pwm1_Set_Duty( unsigned short duty_ratio);
Duty_ratio paramètre définit la durée d'impulsion dans la séquence d'impulsions.
Afin de rendre cet Exercice fonctionne correctement, il est nécessaire de cocher les
bibliothèques suivantes dans le gestionnaire de bibliothèque avant de compiler:
 PWM
 Bouton

Le programme de ce projet est donné dans le code-source 4.6 (fichier : SIGNAL_PWM.C).

Exercice 6.
Convertisseur A/D
Dans ce projet un signal analogique variable est appliqué à la broche AN2 de
microcontrôleur 16F887, tandis que le résultat de conversion de 10 bits est localisée sur
les ports B et D (8 LSB sur le PORTD et 2 MSB sur le PORTB). GND est utilisé comme
référence de tension négative Vref-.
Le convertisseur A / D génère toujours un résultat binaire de 10 bits, ce qui signifie qu'il
détecte au total de 1024 niveaux de tension et donc il est capable de détecter de légères
modifications de la tension.

Exercice 7.
Mémoire EEPROM
Dans cet Exercice le registre du PORTB est incrémenté en permanence. Au
moment de l'appui sur le bouton appelé MEMO_EEPROM, un nombre binaire du PORTB
sera sauvegardé dans la mémoire EEPROM. Ce nombre doit être directement lu de
l’EEPROM et ensuite affiché sur PORTD sous forme binaire.

Exercice 8.
Affichage multiplexé pour deux afficheurs 7 segments à LEDs

Dans ce projet de deux afficheurs 7 segments à LEDs (cathode commune) seront


connectées au PORTC d'un microcontrôleur.
La cathode de chiffre 1 (chiffre de gauche) est connecté au PORTB (broche RB0) et la
cathode de chiffre 2 (chiffre de droite) est connecté au PORTB (broche RB1) du
microcontrôleur.
Le programme comptera du 0 à 99 avec un retard d’une seconde entre chaque
comptage.
L'affichage est multiplexé sera assuré par une routine d'interruption toutes les 5 ms.
Exercice 9.
Multimètre avec l’afficheur LCD
Cet Exercice illustre l'utilisation d'un écran LCD alphanumérique. Un message écrit
en deux lignes apparaît sur l'afficheur :
Multimètre
- Mesure de -
Deux secondes plus tard, le message dans la seconde ligne est modifié et affiche tension
présenté sur l'entrée (la broche RA2) de convertisseur A / D.
Multimètre
Tension:
Dans le dispositif vrai, le courant ou une autre valeur mesurée peut être affichée à la place
de la tension.

Exercice 10.
Communication série RS232

Cet Exercice illustre l'utilisation du module UART du microcontrôleur. La


connexion à un PC est possible grâce à la norme RS232. Le programme fonctionne de la
manière suivante. Chaque octet envoyé et reçu via la communication série est affiché sur
l’écran d’ordinateur (voire la figure ci-dessous).
Une des façons de simuler le fonctionnement de cette instalation consiste en l’utilisation
d'un programme représenté dans le fichier COMMUNIC_RS232.c du code-source 4.11. Cet
Exercice illustre l'utilisation de la fonction Software_UART de bibliothèque du compilateur
mikroC PRO.
Dans le schéma de simulation donné par la figure 4.9, la visualisation de chaque octet
envoyéet reçu via la communication série est affichée à l'aide d'un programme standard
de PROTEUS appelé VIRTUAL TERMINAL.

Exercice 11.
Mesure de la température à l'aide du capteur DS1822.
L'utilisation de protocole de '1-Wire‘

Mesure de la température est l'une des tâches les plus courantes effectuées par le
microcontrôleur. Un capteur DS1822 est utilisé pour la mesure. Il est capable de mesurer
la température dans la plage de -55 ° C à +125 ° C avec la précision 0,5 ° C. Pour le but de
transférer des données vers le microcontrôleur, un type particulier de communication
série appelé 1-Wire (1-fil) est utilisée (voire la figure ci-dessous).
En raison d'une utilisation simple de ces capteurs, les commandes utilisées pour exécuter
et contrôler sont stockées sous la forme de fonctions dans la bibliothèque One_Wire du
compilateur mikroC PRO. Il y a trois fonctions au total:
 Ow_Reset est utilisé pour réinitialiser du capteur;
 Ow_Read est utilisé pour recevoir des données provenant du capteur, et
 Ow_Write est utilisé pour envoyer des commandes au capteur.

Exercice 12.
Générateur de sons
Les signaux audio sont souvent utilisés quand il est nécessaire d'attirer votre
l’attention que certains des boutons-poussoirs sont enfoncé, vous avertir que les valeurs
minimales ou maximales sont atteintes, etc. Il peut être juste un «bip» du signal ainsi que
plus ou moins longue mélodie. Cet Exercice montre comment à l'aide des fonctions
appartenant à la bibliothèque Sound du compilateur mikroC PRO réaliser un générateur
de sons (voire le codesource 4.13). Le schéma de simulation pour cet Exercice est
représenté sur la figure 4.11.

Exercice 13
Calculatrice avec CLAVIER et LCD

Le projet est une calculatrice simple qui peut effectuer des opérations
arithmétiques entières. Les touches sont organisées comme suit :
0123
4567
8 9 10 11
12 13 14 15
Les touches sont étiquetées comme suit :
1234
5678
9 0 ; Entrer
+-*/
Les opérations et résultats de calcule doivent être affichés sur l’écran de LCD.

Exercice 14
Calculatrice avec l’interface RS232

Dans cet Exercice, le PC est connecté au microcontrôleur via un câble RS232. Le


projet c’est une simple calculatrice où les données sont envoyées au microcontrôleur en
utilisant le clavier de l'ordinateur et ensuite ils sont affichés sur monitor de PC.
L’Exercice de calcul :
CALCULATRICE PROGRAMME
Entrer Premier Nombre : 12
Entrer Deuxième nombre : 2
Entrer Opération : +
Résultat : 14
Université Sidi Mohammed Ben Abdallah
Faculté des Sciences et Techniques Fès
Département Génie Électrique

Polycopie de Solution des


Travaux Dirigées

Module: Informatique Industrielle


Microcontrôleur PIC-16F887

2019-2020
Exercice 1. Chenille à LEDs
Le schéma de principe du projet est illustré à la figure.1

Fig.1. Schéma de simulation pour l’Exercice 1

Le fichier désigné comme LED1.c et donné dans le code-source.1


Exercice 2. Clignotement des LEDs à deux façons différentes

Le fichier nommé LED2.C qui réalise ce projet est représenté dans le code-source .2

Fig.2. Schéma de simulation pour l’Exercice 2


Exercice 3. RELAI

Fig.3. Schéma de simulation pour l’Exercice 3


Une selle constante énumérée RELAI est utilisée dans cet Exercice. Il est attribué un
valeur lorsqu’elle est déclarée :
enum sortie {RELAI = 3};

Si plusieurs broches du PORTD sont reliées à des RELAIS, l’expression ci-dessus pourrait
être écrite comme suit :
enum sortie {RELAI=3, CHAFFAGE, ECLAIRAGE =6, POMPE} ;

Toutes les constantes, après celle avec les valeurs affectées (RELAI = 3 et ECLARAGE = 6),
sont des valeurs automatiquement incrémenté de 1 par rapport à la valeur précédente.
Dans cecas, la constante CHAUFFAGE et celle POMPE seront affectés les valeurs 4 et 7
respectivement
(CHAUFFAGE = 4 et POMPE = 7).

Exercice 4. Registres TMR0 et TMR1 comme minuteries

Le fichier INTERRUP_TMR0.C du code-source .4 montre l’utilisation du registre TMRO


avec prédiviseur pour générer une interruption. Une fois que le registre TMR0 est ’’ trop-
plein’’ la routin d’interruption incrémente automatiquement la variable cnt par 1. Lorsque
sa valeur atteint 400, le PORTB est incrémenté de 1. L'ensemble de la procédure est
‘’masqué’’, qui permet au microcontrôleur de faire autre chose.
On voie que l’Interruption se produit sur chaque débordement du registre TMR0. Le
nombre d’interruption à 400, dans cet Exercice, provoque l’incrémentation du PORTB
comme indique la figure ci-dessous.

Dans le code-source .5 (fichier INTERRUP_TMR1) on utilise l’interruption produit par le


débordement de registre TMR1(TMR1H, TMR1L). Après 76 d’interruption se produit
l’évolution sur le PORTB comme indique la figure ci-dessous.
Exercice 5. Module CCP1 comme générateur du signal PWM
Le programme de ce projet est donné dans le code-source .6 (fichier : SIGNAL_PWM.C).
Fig 4. Schéma de simulation de l’Exercice 5
Exercice 6. Convertisseur A/D

Le fichier CONVERT_A/D.C est donné dans le code–source .7 et le schéma de simulation


du projet est représenté sur la figure.5.

Exercice 7. Mémoire EEPROM

Le fichier EEPROM.c est donné dans le code-source .8.

Le schéma de simulation est représenté sur la figure.6.


Afin de vérifier la simulation de circuit de la figure.5, il suffit d'appuyer sur la touche
MEMO_EEPROM et éteindre la simulation. Après le redémarrage de la simulation, le
programme affichera la valeur enregistrée sur le port D. Rappelez-vous qu’au moment de
l'écriture, cette valeur a été affiché sur le port B.

Fig .5. Schéma de simulation pour l’Exercice 6


Fig. .6. Schéma de simulation de l’Exercice 7

Exercice 8. Affichage multiplexé pour deux afficheurs 7 segments à LEDs

Le schéma de simulation pour cet Exercice est donné par la figure.7.


Le programme du projet (fichier : AFFICH_MULTIPLEX.c) est représenté dans le code-
source
Fig.7. Schéma de simulation de l’Exercice 8
Exercice 9. Multimètre avec l’afficheur LCD

Le schéma de simulation de cet Exercice est donné par la figure.8.


Le fichier MULTIMETRE_LCD.c est donné dans le code-source .10.

Fig.8. Schéma de simulation de l’Exercice 9.


Exercice 10. Communication série RS232
Fig.9. Schéma de simulation de l’Exercice 10

Exercice 11. Mesure de la température à l'aide du capteur DS1822.


L'utilisation de protocole de '1-Wire‘

Le fichier TEMPERATURE_One_Wire est représenté dans le code source .12 et le schéma


de simulation est donné par la figure.10
Fig.10.
Schéma de simulation de l’Exercice 11

Exercice 12. Générateur de sons


Fig.11.
Schéma de simulation pour l’Exercice 12

Exercice 13.
Calculatrice avec CLAVIER et LCD

Le fichier pour cet Exercice appelé CALCUL_LCD.c est présenté dans le code-source .15.
Fig.13. Schéma de simulation pour l’Exercice 14

Exercice 14.
Calculatrice avec l’interface RS232

Le fichier de ce projet appelé CALCUL_RS232.c est donné dans le code-source .16.


Le schéma de simulation pour ce projet est représenté sur la figure.14

Fig .14. Schéma de câblage pour la simulation de l’Exercice 15

Vous aimerez peut-être aussi