WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Programmation en C du micro contrôleur PIC 16F877

( Télécharger le fichier original )
par Karim SAAD
Usto Oran - Licence Electronique 2008
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

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

 

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Aux âmes bien nées, la valeur n'attend point le nombre des années"   Corneille