1.1 Transmission des données entre le PIC et le PC :
Principe :
Le principe de cette application est d'établir une
communication entre le PIC et le PC en le configurant en hyper terminal.
Le terminal envoi des données en codes ascii en tapant des
caractères sur le clavier du PC. Chaque caractère un a code
binaire qui va être affiché sur le kit en utilisant les LEDS.
Schéma de l'application :
|
|
|
|
|
|
RC7
PIC
16 F8 77
|
|
|
Transmission
|
|
|
|
|
|
PC
|
Organigramme :
- Le PC qu'on a utilisé a été
configuré sur le COM1 de la minière suivante : Vitesse = 9600
Bit de parité = 8
Bit d'arret = 1
Contrôle de flux : Aucun
- Le programme utilise 3 fonctions : Init ( ), incar ( ), outcar
( ).
Init ( ) : Sous programme d'initialisation du
pic.
Configuration des registres TXSTA & RCSTA.
Déterminaion de la vitesse de transmission. Par le
registre SPBGR = 25. La valeur de la vitesse est calculée par la formule
suivante :
Vitesses Hautes : BRGH = 1
- 1
Fosc Fosc
VITESSE = N =
16(N+ 1) 16 * VITESSE
Vitesses Basses : BRGH = 0
Fo sc Fosc
VITESSE = N = - 1
64 (N+ 1) 64 * VITESSE
Incar ( ) : Sous programme de lecture de
caractère envoyé par le PC Test du buffer de réception par
le flag RCIF.
Si RCIF :
= 0 le buffer est vide. =1 le buffer est plein.
Outcar ( ) : Sous programme d'envoi de
caractères vers le PC. Test du buffer de transmission par le flag
TXIF.
Si TXIF :
= 1 le buffer est vide. =0 le buffer est plein.
Mettre le caractère reçu dans le registre TXREG.
Organigramme principal
Sous Organigramme de réception de
caractère
Début
RCIF = 0
oui
Retour
non
Début
Configuration portA en sortie
c=incar()
PORTA=c
Init ()
III. Port Analogique Numérique :
1. Utilisation du convertisseur A/D :
Le microcontrôleur PIC 16F877 fourni avec "EASYPI" dispose
d'un convertisseur analogique numérique de 10 bits.
Les deux pins RA2 et RA3 sont déterminées et
peuvent être utilisées pour mesurer la tension
réglée par les potentiomètres P2 et P3.
Pour mesurer des valeurs du potentiomètre P2 ou P3, les
deux jumpers doivent être accordés. Sur le commutateur SW1, RA2
doit être désactivée (niveau bas).
Figure II. 7 : Montage du convertisseur A/N avec
le PIC
1.1 Conversion d'un signal analogique
:
Principe :
- La conversion d'un signal se fait sur le PORTA ou le PORTE,
pour notre application on a choisi le PORTE et précisément la pin
0 (RE0).
- Le résultat de la conversion (10 bits en binaire) sera
affiché sur les leds.
53
Vref +
Vref -
Procédure de la conversion :
> Configuration du module A/D :
· Configuration des pins et les entrées digitales
(ADCON1).
· Sélection du canal d'entrée (ADCON0).
· Sélection de l'horloge de conversion (ADCON0).
> Configuration des interruptions du convertisseur :
· Remise à zéro du bit ADIF (Bit 6 du
registre PIR1).
· Mise à 1 du bit ADIE (Bit 6 du registre PIE1).
· Mise à 1 du bit PEIE (Bit 6 du registre
INTCON).
· Mise à 1 du bit GIE (Bit 7 du registre INTCON).
> Attendre le temps d'acquisition :
TAD = 20us.
> Démarrer la conversion :
GO/DONE = 1.
> Attendre la fin de la conversion :
GO/DONE = 0.
> Lire le résultat : En
utilisant les deux registres ADRESH et
ADRESL.
V' Temps d'acquisition :
TACQ : Temps d'acquisition - TACQ = 2 jis + Tc
+ CT
Tc : temps de charge du condenseur - Tc = C
(Ric+Rss+Rs) Ln(1/2047) CT : Coefficient de température
- CT = (Tp -25°C) 0.05 jis/°C
Avec: Tp = Température Processeur, Ric =
1k, Rss = 7k, Rs = 10k, Tp = 50 °C.
Tc = 18k x 120pF x Ln(2047) = 16,47 jis CT = 25 x 0.05 jis = 1,25
jis
TACQ = 2 + 16,47 + 1,25 jis = 19,72 jis
V' L'acquisition commence :
- Après la fin d'une conversion.
- Au moment du choix d'un canal si convertisseur validé
(ADON=1). - Au moment de validation du convertisseur si canal choisi.
V' Temps de conversion :
Le temps de conversion est égal à (12 +2)
TAD. TAD est le temps de conversion d'un bit, il
dépend de l'horloge système et du
prédiviseur (div) choisi. Les choix doivent être ajustés
pour que TAD ne dépasse pas 1,6 jis.
\Quartz Div \
|
20Mhz
|
5Mhz
|
4Mhz
|
2Mhz
|
2
|
0,1 jis
|
0,4 jis
|
0,5 jis
|
1,0 jis
|
8
|
0,4 jis
|
1,6 jis
|
2,0 jis
|
4,0 jis
|
32
|
1,6 jis
|
6,4 jis
|
8,0 jis
|
16,0 jis
|
|
Schéma de l'application :
Organigramme :
DEBUT
Configuration des PORT C et D en sortie, PORTE en
entrée Configuration du convertisseur.
Activation du convertisseur
Temporisation de 20 useconde
Démarrage de la conversion
oui
non
?
Fin de la conversion ADIF=0
PORTC=ADRESL
PORTD=ADRESH
Démarrage de la conversion
Résultats de la conversion :
- Après la fin de la conversation on a relevé les
valeurs en volts de l'entrée analogique et déterminé leurs
équivalences en binaire et en hexadécimal.
- Ce tableau permet d'étudier la linéarité
du convertisseur.
Tension (V)
|
0
|
1
|
2
|
3
|
4
|
5
|
Code Binaire
|
0000000000
|
0011011111
|
0110111111
|
1001101111
|
1101000011
|
1111111111
|
Code Héxa
|
0x00
|
0xDF
|
0x1BF
|
0x26F
|
0x343
|
0x3FF
|
|
|