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

+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.

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








"Je voudrais vivre pour étudier, non pas étudier pour vivre"   Francis Bacon