+100
- 40
LM335
2. Utilisation du convertisseur avec un capteur de
température :
Le capteur LM335 a une température ambiante qui va de
-40 à 100 °C, il peut être utilisé pour la mesure de
la température d'environnement de et pour d'autres expériences.
Il est très précis et facile de se relier. Les 3 pins se
branchent dans la douille, sous le connecteur de puissance du système de
développement. Figure au-dessous montre comment relier le
thermomètre numérique et le microcontrôleur sur le kit.
La valeur numérique de la température est
envoyée sur les 2 pins (RA5 ou RE2, selon la position du jumper
(JP4).
Figure II.8 : Montage du capteur LM335 avec le
PIC
2.1 Conversion du signal analogique reçu par le
capteur :
Principe :
- La conversion d'un signal se fait sur la pin RA5 ou RE2, pour
notre application on a choisi le PORTA sur la pin (RA5).
- Le résultat de la conversion (10 bits en binaire) sera
affiché sur les leds.
Organigramme :
- On obtient le même organigramme que celui décrit
ci-dessus sauf que l'entrée du signal à convertir change, cela se
fait par la configuration du registre ADCON0 et ADCON1.
IV. Autres Applications :
1. Utilisation du pic avec LCD :
L'afficheur LCD (2x16 caractères) est
recommandé sur le kit. Cependant, ce n'est pas une limitation, parce que
n'importe quel afficheur de même type de communication peut être
utilisé. Le réglage du contraste de l'afficheur peut être
ajusté en utilisant un potentiomètre.
L'afficheur LCD se relie au port B. La figure suivante montre
comment relier l'afficheur avec le microcontrôleur PIC16F877 par le
PORTB.
Figure II.9 : Montage de l'afficheur LCD 2X16
avec le PIC
57
Commandes principales du LCD :
Instructions
|
Code
|
Description
|
Durée
|
|
R/W
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
Efface l'ensemble de la mémoire de donnée sans
toucher au générateur de caractères. Ramène le
curseur en position « home », à l'adresse 00.
|
1,64 ms
|
Return home
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
X
|
Ramène le curseur en position « home »,
à l'adresse 00. Si
l'affichage était décalé, il est remis
à sa position d'origine : l'adresse 00 se trouve à nouveau en
haut à gauche.
|
1,64 ms
|
Entry mode set
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
I/D
|
S
|
Définit le sens de déplacement du curseur
après l'apparition d'un caractère (vers la gauche si I/D=1, vers
la droite si I/D=0) et si l'affichage accompagne le curseur dans son
déplacement ou non (S).
|
40 us
|
Display on/off control
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
D
|
C
|
B
|
Met l'affichage en ou hors fonction l'affichage (D), le curseur
(C), le clignotement du curseur (B).
|
40 us
|
Cursor and display shift
|
0
|
0
|
0
|
0
|
0
|
1
|
S/C
|
R/L
|
X
|
X
|
Deplace le curseur (S/C=1) ou l'affichage (S/C=0) d'une position
vers la gauche (R/L=1) ou la droite (R/L=0) sans changer la DD RAM.
|
40 us
|
Function set
|
0
|
0
|
0
|
0
|
1
|
DL
|
N
|
F
|
X
|
X
|
Définit la taille de l'interface (DL=0 pour mode 4 bits,
DL=1 pour mode 8 bits), le nombre de lignes (NL=0 pour 1 ligne, N=1 pour 2 ou 4
lignes), et la taille des fontes (F=0 pour des caractères 5x7, F=1 pour
des caractères 5x10).
|
40 us
|
Set CG RAM address
|
0
|
0
|
0
|
1
|
A5
|
A4
|
A3
|
A2
|
A1
|
A0
|
Définit l'adresse de la CG RAM. Les données de
la CG RAM sont envoyées après cette commande.
|
40 u s
|
Set DD RAM address
|
0
|
0
|
1
|
A6
|
A5
|
A4
|
A3
|
A2
|
A1
|
A0
|
Définit l'adresse de la DD RAM. Les données de
la DD RAM sont envoyées après cette commande.
|
40 us
|
Read busy flag & address
|
0
|
1
|
BF
|
A6
|
A5
|
A4
|
A3
|
A2
|
A1
|
A0
|
Lit le flag busy (BF), et l'adresse de la position du
curseur. BF vaut 0 si l'afficheur accepte une instruction, 1 s'il est
occupé
|
1 us
|
Write data to CG or DD RAM
|
1
|
0
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
Ecrit des données dans la DD RAM ou la CG RAM.
|
40 us
|
Read data
|
1
|
1
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
Lit les données de la DD RAM ou de la CG RAM.
|
40 us
|
|
1.1 Affichage d'un message :
Principe :
- Envoi du message " Microcontrôleur \0" qui apparait
caractère par caractère.
Organigramme :
- La fonction envoi caract ( ) : Puisque
on est en mode 4 bits donc la données a envoyée est
fragmentée en deux partie de 4 bits. On envoi dans un premier temps les
4 bits du poids fort et dans un deuxième temps les 4 bits du poids
faible.
- Le même principe s'applique sur la fonction
envoi com ( ) qui est une fonction pour envoyer des commandes
(instructions) a l'afficheur LCD. (voir tableau des instructions).
- MSG[i] : Tableau qui contient le message a affiché
("Microcontrôleur").
DEBUT
Configuration et initialisation du PIC
Initialisation d e LCD ( Mode 4bits, 1 ligne, taille
d'affichage...)
i = 0
i = i +1
Envoi_carct ( )
C = MSG[i]
non
C = nul ?
oui
Fin
59
Via RS232
PC
Envoi caractère
PB0
PB1
PB2
PIC PB3
PB4
16F877 PB5
PB6
1.2 Communication du PIC avec le PC via une liaison
RS232 :
Principe :
- On a ajouté une autre application concernant le LCD.
- Il s'agit d'envoyer des caractères du PC vers
l'afficheur LCD a travers le PIC en utilisant un programme qui s'exécute
sur le PC pour la configuration des COM.
- Utilisation d'une liaison RS232 pour établir la
connexion entre les deux périphériques.
chéma de l'application :
Organigramme :
DEBUT
Configuration et initialisation du PIC
Initialisation d e LCD ( Mode 4bits, 1 ligne, taille
d'affichage...)
C = incar ( )
oui
non
C = ` q ` ?
Fin
2. Utilisation du pic pour la commande d'un moteur
pas à pas :
Figure II.10 : Montage de la carte de commande du
moteur pas a pas avec le PIC
Principe :
Le pic prend le contrôle du moteur pas a pas, il envoi les
impulsions pour faire tourner le moteur et le déplacement du plateau.
Détection des contacts du début de course et de
fin de course pour le changement de sens de déplacement. Introduire un
capteur de milieu pour faire varier la vitesse (diminue ou augmente) selon le
sens.
61
Organigramme
- Le pic envoi des impulsions avec un interval
déterminé par la fonction delay. - Utilisation d'une interruption
pour faire varier la vitesse de rotation.
RAZ flag (RB0)
Vitesse rapide
non
RD1=0
?
Vitesse lente
oui
Configuration des ports B, RD0 et RD1 en sortie, RD4-7
en entrée Activation des interruptions
PORTD.1=1
Démarrage du timer
non
Débordement timer
oui
RAZ flag TMR1
oui
Sous Organigramme d'interruption
Début
Organigramme principal
Début
retour
Sous Organigramme de temporisation
Début
Configuration du timer1
delay
non
RD4=0
?
oui
Envoi d'une impulsion
PORTD.1=1
Envoi d'une impulsion
delay
non
RD4=0
Arret du timer
FIN
Les microcontrôleurs permettent de réaliser des
applications diverses qui peuvent servir dans différents domaines
industriels.
Dans notre projet nous avons traité les
différentes interfaces du pic et les simulées dans plusieurs
application sur la carte de développement "EASY PI".
Par ces différentes applications nous avons appris
énormément de notions :
· La programmation des pics (langage C).
· Apprentissage de l'utilisation du pic 16F877 et ses
différents registres.
· La manipulation des différents modules (I2C, A/D,
PSP, MSSP, USART et PSP...).
· La mise en pratique des connaissances théoriques
en électronique et en programmation en C.
Ce projet nous a beaucoup appris sur les microcontrôleurs
et leurs programmations. Il a été mené d'une recherche
bibliographique bien détaillée.
En effet nous avons pu approcher un ensemble de logiciels
permettant la programmation (MPLAB, PIC FLASH,.....etc.).
Et tous ceci dans le but d'étudier les
microcontrôleurs en général et précisément le
16F877.
Nous allons proposer quelques applications que nous n'avons pas
pu les appliquées par manque temps. Nous espérons que leurs
réalisations seront faites dans les prochains projets.
|