Académique Documents
Professionnel Documents
Culture Documents
5.1- Introduction
Dans ce cinquième chapitre nous allons aborder :
i) Interface : LCD
ii) Moteur- Contrôle ;
iii) Génération de signaux des ports pour convertisseurs
iv) Contrôle des appareils DC/AC ;
v) Mesure de la fréquence et
vi) Système d'acquisition de données
b) Dipôle électrique
Les cristaux liquides sont, généralement, constitués de molécules (molécules organiques).
Les molécules, globalement neutres, peuvent posséder un moment dipolaire ce qui permet
de les assimiler à un dipôle électrique permanent.
Entre deux plaques de verres collées, une cavité de quelques dizaines microns d’épaisseur
est remplie de cristaux liquides dans la phase nématique (la plus employée pour les applications en
électronique. Elle est caractérisée par l’absence d’ordre de position. Seul un ordre d’orientation est
présent et une direction moyenne est définie)
Toutes les molécules sont orientées localement dans
la même direction. Elles sont parallèles aux surfaces de la
cavité, qui leur imposent de plus un axe préférentiel grâce au
dépôt d’une couche de polymères qui sont striés dans une
direction. Les deux surfaces imposent des directions
perpendiculaires de sorte que l’orientation locale des
molécules est forcée de tourner de façon continue de 90° à
l’intérieur de la cellule. On dit que le liquide nématique est
twisté.
d) Fonctionnement
Pour un ensemble de segments de cristaux liquides :
- Lorsqu'ils ne sont pas dans un champ électrique, les cristaux sont organisés selon un
modèle aléatoire.
1
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
2
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
Les connexions à réaliser sont simples puisque l'afficheur LCD dispose de peu de broches. Il
faut, évidement, l'alimenter, le connecter à un bus de donnée (4 ou 8 bits) d'un microprocesseur, et
connecter les broches Enable (validation), Read/Write (écriture/lecture) et Register Select
(instruction/commande).
9 : E : Entrée de validation (ENABLE); elle est active sur front descendant. Il est important ici de
tenir compte des 2 seuils durées de commutation importantes en pratique: lorsque RS et R/
ont atteint un niveau stable, il doit se passer un intervalle de 140 ns minimum avant que la
ligne "E" ne passe au niveau haut. Cette ligne doit ensuite, être maintenue à ce niveau pendant
450 ns au moins et les données doivent rester tables sur le bus de données jusqu'au début du
flanc descendant de ce signal. Lorsque E=0 les entrées du bus de l'afficheur sont à l'état haute
impédance.
10 : R/ : Lecture ou écriture.(READ/WRITE)
Lorsque R/ est au niveau bas, l'afficheur est en mode "écriture", et lorsque R/ est au niveau
haut, l'afficheur est en mode "lecture".
3
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
11 : RS: Sélection du registre.(REGISTER SELECT)Grâce à cette broche, l'afficheur est capable
de faire la différence entre une commande et une donnée. Un niveau bas indique une
commande et un niveau haut indique une donnée.
12 : VLC : Cette tension permet le réglage du contraste de l'afficheur. C'est une tension négative et
tournant autour de -1,5 V.(selon l'angle de visualisation)
13 : VDD : + 5 V
14 : VSS : Masse.
4
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
Lcd_Config
Lcd_Init
Lcd_Out
Lcd_Out_Cp
Lcd_Chr
Lcd_Chr_Cp
Lcd_Cmd
Lcd_Config
La fonction Lcd_Config est utilisée pour configurer l'interface LCD. La connexion
par défaut entre le LCD et le microcontrôleur est la suivante :
FR → 3
D4 → 4
D5 → 5
D6 → 6
D7 → 7
La patte R / W de l'écran n'est pas utilisé et doit être reliée à la masse. Cette fonction devrait
être utilisée pour modifier la connexion par défaut. Il devrait être appelé avec les paramètres dans
l'ordre suivant :
nom de port, RS patte, EN patte, R/W patte, D7 patte, D6 patte, D5 patte, D4 patte
Le nom du port doit être spécifié en passant son adresse. Par exemple, si RS patte
est connectée à RB0, EN patte à RB1, D7 patte à RB2, D6 patte à RB3, D5 patte à RB4, et D4
patte à RB5, alors la fonction doit être appelée comme suit :
Lcd_Init
La fonction Lcd_Init est appelée pour configurer l'interface entre le microcontrôleur et
l'écran
LCD lorsque les connexions sont faites par défaut que vient d'être illustré. Le nom du port doit être
spécifié en passant son adresse. Par exemple, en supposant que LCD est reliée à PORTB et les
connexions par défaut précédentes sont utilisées, la fonction doit être appelée en tant que:
Lcd_Init();
Lcd_Out
La fonction Lcd_Out affiche du texte à la ligne indiquée et la position des
colonnesde l'écran LCD. La fonction doit être appelée avec des paramètres dans l'ordre suivant :
ligne, colonne, texte Par exemple, pour afficher du texte "Ordinateur" à la ligne 1 et la colonne 2 de
l'écran LCD nous devrions appeler la fonction comme suit :
Lcd_Out (1, 2, "Ordinateur");
Lcd_Out_Cp
La fonction Lcd_Out_Cp affiche le texte à la position actuelle du curseur.Par
exemple, pour afficher le texte "Ordinateur" à la position actuelle du curseur, la fonction
devrait être appelé en tant que :
Lcd_Out_Cp ("Ordinateur");
5
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
Lcd_Chr
La fonction Lcd_Chr affiche un caractère à la ligne indiquée et la colonne la position du
curseur. La fonction doit être appelée avec les paramètres dans le l'ordre suivant :
ligne, colonne, caractère
Par exemple, pour afficher caractère "K" à la ligne 2 et la colonne 4 de l'écran LCD nous devrions
appeler la fonction de :
Lcd_Chr(2, 4, ‘K’);
Lcd_Chr_Cp
La fonction Lcd_Chr_Cp affiche un caractère à la position actuelle du courser. Par exemple,
pour afficher le caractère "M" à la position actuelle du curseur, la fonction doit être appelée en tant
que :
Lcd_Chr_Cp ('M');
Lcd_Cmd
La fonction Lcd_Cmd est utilisée pour envoyer une commande à l'écran LCD. Avec
ce commande, nous pouvons déplacer le curseur vers n'importe quelle ligne, désactiver
l'écran LCD, faire clignote le curseur, décaler l'affichage, etc. Une liste des plus couramment
utilisés commandes LCD est donnée dans Tableau 3.4.
Par exemple, pour effacer l'écran LCD nous devrions appeler la fonction comme suit :
Lcd_Cmd (Lcd_Clear);
6
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
Code source
/****************************************************************************
REDACTION D'UN TEXTE A L’ECRAN LCD
==================================
Un contrôleur de texte LCD est relié à un microcontrôleur PIC dans le mode
(4,5,3,2,1,0). Ce programme affiche les textes "AFFICHAGE" sur la 1 ère ligne
et ”display_LCD_4bit” sur la 2ème ligne d'écran LCD.
Microcontrôleur: 16F887
Oscillateur: HS, 10.0000 Mhz
Compilateur: microC PRO v.1.56
Fichier: LCD.c
Date: Juillet 2016
***************************************************************************/
// Connections de LCD
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// Fin de connections
void main()
{
C1ON_bit = 0;
C2ON_bit = 0;
TRISB = 0;
PORTB = 0xFF;
TRISB = 0xff;
8
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
Reste à protéger les interrupteurs du BEMF (tensions de retours) avec les diodes placées au
bon endroit (diodes anti retours ou diodes roues libre):
NB :
Dans nous applications, nous utiliserons la L293D car cela nous évite de
régler nous-mêmes le problème des diodes.
9
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
NB :
Les tabes de vérités suivantes doivent être pris en considération pour en avoir une rotation
donnée : Vérifier les dans le TP5
10
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
5.3.1.3- Commande d’un moteur DC par un microcontrôleur (16F887)
Où on observe, que :
i- La broche Vss et EN1 sont toujours au niveau 1 ;
ii- Vs sur 12V ;
iii- IN1 et IN2 sont alterner entre 1 et 0 (ou 3).
b) Programme en Mikroc
void main()
{
ANSEL = ANSELH 0; // To turn off analog to digital converters
C1ON_bit = C2ON_bit = 0; // To turn off comparators
while(1)
{
//To turn motor clockwise
PORTB.F0 = 1;
Delay_ms(2000); // 2 seconds delay
11
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
Alors, le moteur tourne ‘clockwise’ pendent 2sec puis il s’arrête 2sec ensuite il tourne sens inverse ‘anticlockwise’ 2sec
et s’arrête 2sec, et le cycle se répète. Vérifier le dans le TP5
EXERCICE TP5
Reprendre l’application précédente ; de laquelle on demande de développer deux applications :
a) Insertion deux boutons poussoirs pour commander la rotation et la rotation inverse
b) En plus des deux boutons poussoirs, insertion d’un afficheur LCD indiquant les deux directions
de rotation.
Où les schémas des applications sont donnés par ;
Dans les chapitres précédents, CH2CH4, on abordé la génération des différents types de
signaux (numérique, analogique), mais on n’a pas cité le signal MLI (PWM), en tant fréquence et
rapport cyclique. Dans cette partie, nous allons voir comment petons nous l’obtenir à partir du
module PWM/CCP1/CCP2 du MC16F887.
12
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
A titre d’exemple, si on veut entraîner un moteur à courant continu (MCC) avec un demi-
pont, bien sûre avec deux sources de tension, le schéma principe de ce système d’entraînement est
donné sur la Fig. 3.4, où l’amorçage deux interrupteurs MOSFET est obtenu des broches RC2/P1A
et RC2/P1B. A noter qu’il est très dangereux de fermer les deux MOSFET en même temps court-
circuit sur des circuit d’amorçage. Pour cette raison, toujours en trouve un retard td entre les deux
états : fermeture ‘ on’ et ouverture ‘off’, comme le montre la figure suivante.
Charge
MCC
Il est possible d’utiliser le même schéma de principe précédent pour réaliser un système
d’entraînement de quatre quadrants ou en pont complet, seulement des inverseurs de signes.
Puisque le PIC16F887 possède 4 sorties PWM, on peut les utiliser pour alléger la demande du
courant qui ne doit pas dépasser 20mA.
13
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
RC2/P1A
RD7/P1D
Hardware
On ne trouve pas des broches sur le PIC16f887 nommés PWM. On a vue dans les cours
précédents (architecture du PIC16f887) qu’il y a un module responsable de ça désigné par
CCP/PWM (Figure 3.9). Les 4 sorties de ce module sont indiquées par RC2/P1A, RC1/P1B, etc.. (.
Module CCP/PWM
Quatre routines (fonctions), de mikroc, peuvent nous aider à générer des signaux MLI
(PWM). Ces routines sont gérées par la fonction PWM qu’on trouve dans le manager des fonctions
de bibliothèque:
1- PWM1_Init
14
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
2- PWM1_Set_Duty
3- PWM1_Start
4- PWM1_Stop
Exemple 1 (TP5) intégrer le HEX du programme dans le schéma Protus et déduire le but du
programme
Exercice1: TP5
Après une bonne lecture de ce programme :
1- déduire la tâche de ce programme
2- pour quel schéma de principe est utile ce programme pour entraîner une charge en boucle
ouverte
3- Suggérer un montage qu’on peut réaliser en TP5
4- Tracer le son schéma Proteus et confirmer sa tâche déduite.
while (1)
{
if (Button(&PORTA, 0,1,1)) // Si le bouton connecté à RA0 est poussé
current_duty++ ; // incrémentation de la variable current_duty
Remarque :
Quelques MCs possèdent plus d’un module PWM, donc les routines précédentes s’écrivent :
PWMx_Init(), PWMx_Set_Duty( ), PWMx_Start( ) et PWMx_Stop( ) ;
Elle initialise le module PWM par ‘freq’ en Hz. Elle est appelée avant l’utilisation de
n’importe quelles autres fonctions
16
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
Introduit le rapport cyclique ‘duty_ratio’, qui prend les valeurs de 0 à 255 ; où 0 correspond
à 0%, 127 correspond à 50% et 255 correspond à 100%. Les autres valeurs du rapport cyclique
peuvent être calculées par :
duty_ratio = (Percent*255)/100
Remarque :
Toutes ces routines ne renvoient pas de valeurs void et cette dernière ne demande
pas de valeur comme argument.
Exercice2: TP5
Après une bonne lecture de ce programme :
1- déduire la tâche de ce programme
2- pour quels schémas de principe est-il utile ce programme pour entraîner une charge en
boucle ouverte.
3- En TP5, confirmer le fonctionnement de ce programme par:
a) Schéma Proteus de la Figure en bas
b) Schéma Proteur (a) avec deux moteurs DC
while (1)
{
17
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
if (RA0_bit) // Si le bouton de RA0 est poussé
{
Delay_ms(40);
current_duty++; // incrémentation de ‘current_duty’
PWM1_Set_Duty(current_duty);
}
while (1)
{
For(i=0 ; i<=255, i=i+25)
{
current_duty = current_duty + i; // incrémentation de la variable current_duty
PWM1_Set_Duty(current_duty); // Met la valeur de PWM égale à la valeur nouvelle,
Delay_ms(40);
}
19
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
20
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
21
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
22
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
Annexe
Le HD44780 est l'un des contrôleurs de cristaux liquides les plus appréciés, étant utilisé
dans l'industrie et dans les applications commerciales. Le module est monochrome et vient dans
différentes formes et tailles. Des modules avec 8, 16, 20, 24, 32 et 40 caractères sont disponibles.
Selon le modèle, l'écran LCD est fabriqué avec 14 ou 16 pattes pour l'interface.
Le tableau en bas présente la configuration des pattes et les fonctions des pattes d’un LCD à
14 pattes. La patte VSS est à 0V ou du sol. La patte VDD doit être connectée à la borne
positive d’alimentation. Bien que les fabricants spécifient une alimentation 5V DC, les modules
travaillent habituellement aussi avec une alimentation un peu bas que 3V ou aussi haut que 6V.
La patte 3 VEE est désigné pour réglage du contraste de l'affichage et doit être reliée à une
alimentation en courant continu. Un potentiomètre est généralement connecté à l'alimentation avec
son curseur raccordé à la patte VEE et l'autre patte du potentiomètre relié à la masse. De cette
façon la tension à la patte VEE, et où le contraste de l'affichage, peut être réglée à volonté.
La patte 4 est le registre de sélection (RS) et lorsque cette patte à 0 V, les données
sont transférés à l'affichage à cristaux liquides. Lorsque RS est à +5 V, les données de caractères
peuvent être transférés à partir du module LCD.
La patte 5 est le registre de sélection de lecture / écriture (R / W). Cette patte est reliée avec
la masse (état logique bas) afin d'écrire des données de caractères au module LCD. Lorsque
cette broche est à +5 V (états logique haut) donc les informations sortants du module LCD
peuvent être lues.
La patte 6 est la validation (EN), qui est utilisé pour initier le transfert de commandes
ou de données entre le module et le microcontrôleur. Lors de l'écriture à l'écran, les données
sont transférées uniquement sur le front descendant (haut-bas) sur cette patte. Lors de la lecture de
23
Chapitre 5: Applications des microprocesseurs et microcontrôleurs
l’affichage, les données deviennent accessibles après le front montant (bas-haut) de la patte de
validation, et ces données demeurent tant que la patte de validation est au niveau logique haut.
Les broches 7 à 14 sont les huit lignes de bus de données (D0 à D7). Les données peuvent
être transférées entre le microcontrôleur et le module LCD à l'aide soit d'un seul octet de 8 bits soit
de deux 4-bits. Dans ce dernier cas, seuls les quatre lignes de données supérieures (D4 à D7) sont
utilisées. Le 4-bits mode a l'avantage de nécessiter moins de lignes d'E / S pour communiquer
avec l'écran LCD.
24