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

I. Ports Parallèles :

1. Utilisation des LEDs :

Le kit "EASYPI" a 32 diodes, reliées pour mettre en communication les pins du PORTA, PORTB, PORT C, PORTD et le PORTE.

Ces diodes sont d'habitude utilisées dans la première phase du travail, mais elles sont également employées pour les indications postérieures de l'écoulement de programme.

Chaque ensemble des diodes peut être activé ou désactivé en utilisant le commutateur SW3. La manière de relier ces LEDS avec un microcontrôleur est montrée sur la figure I.3.

Les LEDS s'allument avec un "1" logique. Il signifie qu'un microcontrôleur doit avoir un "1" logique sur une pin pour que la diode émette la lumière.

Figure II.3 : Montage des leds avec le PIC

41

P B0

PIC

16 F8 77

PD0

1.1 Clignotement d'une led :

Principe :

- Faire clignoter une led du PORTB chaque seconde.

- Varier la vitesse du clignotement (chaque 500ms à l'aide du registre timer0) à l'aide d'un bouton du PORTD.

- Fonction Timer0 :

Configuration du registre option pour un pré diviseur de 8.

On charge la valeur du timer à 2.

La variable T s'incrémente à 125 pour obtenir 1000us quand le pré diviseur est 8. Incrémentation de T tan qu'elle est différente de TMR0.

Schéma d'application :

Organigramme principal

RB0 = 0

x = 1000

oui

T = T + 125

TMR0 ? T

retour

?

non

non

x= x-1

x ? 0

oui

non

tempo(x)

tempo(x)

RB0 = 1

RD0=1

?

oui

x = 300

PB = 0

PA =0

Sous Organigramme de
temporisation

Début

Configuration de timer0 Charger TMR0, T=0

Organigramme :

Configuration de la ligne
RB0 en sortie, PA en entrée

Début

i = i + 1

Remarque :

On représente le meme organigramme pour le port C et le port D.

1.2 Chenillard :

Principe :

- Faire tourner un jeu lumière en utilisant les ports B, C et D du pic. - Utilisation de la fonction tempo à l'aide du timer0.

Organigramme :

- Le tableau PIN [8] de 8 éléments contient le Code d'affichage des leds = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}

Organigramme principal

Début

Configuration des ports B, C
et D en sortie

PB = 0 PC = 0 PD = 0 PE =0
x= 120

i = 0

oui

PB = PIN[i]

tempo(x)

non

?

i<=7

1.3 Compteur 0-9 des leds:

Principe :

- On ajouter une autre application concernant les leds qui affiche un compteur allant de 0 jusqu'à 9 à chaque seconde.

- On n'a pas pu représenter son organigramme a cause de sa longueur.

- Voici un schéma qui explique le principe de fonctionnement de cette application.

43

PA0-5 PB0-7 PC0-7 PD0-7

PIC

16F87

Schéma de l'application :

2. Utilisation avec les afficheurs 7 segment :

L'affichage des 7segments se compose de quatre digits qui sont régénérés par le PORTB en combinaison avec le PORTA. L'interrupteur à positions multiples SW2, permet d'activer ou désactiver les digits spécifiques. Par exemple, pour afficher le premier chiffre du côté gauche. Le quatrième commutateur (SW2) doit être mis a l'état (ON), le digit du 7segment correspondant DISC1 affichera la valeur définie par des valeurs des pins du PORTB.

La procédure est similaire avec les digits DIS, DISC3 et DISC4. La figure suivante montre comment relier l'afficheur sept-segment au microcontrôleur.

Figure II.4 : Montage des afficheurs 7segments avec le PIC

2.1 Compteur 0 - 9 des afficheurs :

Principe :

- Un compteur de 10 secondes qui va de 0 jusqu'à 9.

- Utilisation d'une fonction de temporisation à l'aide de timer0.

- Le tableau suivant explique le principe de codage BCD 7 segments.

45

PB0

PB1

PB2

PB3

PB4

PB5

PB6

PB7

PIC

16 F8 77

Chiffre7
Segments

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Code binaire
a b c d e f g

00111111

00000110

01011011

01001111

01100110

01101101

01111101

00000111

01111111

01101111

Code
Hexadécimal

0x3F

0x06

0x5B

0x4F

0x66

0x6D

0x7D

0x07

0x7F

0x6F

Schéma de l'application :

g

f

d

a

h

dp

c

b

a

b

c

d

e

f

g

h

Organigramme :

- PIN [10]: tableau à 10 éléments contient code d'affichage 7 segments.

Début

Configuration des ports
A et B en sortie

PB = 0 PA = 0

x = 1000

non

i = 0

?

i<=9

2.2 Compteur 0 - 99 :

oui

PA3 = 1

PB = PIN[i]

tempo(x)

i = i + 1

Principe :

- Faire un chronomètre de 100 secondes qui va de 0 jusqu'à 99. - Utilisation de fonction tempo qui utilise le timer0.

i = i + 1

PA3 = 1

Organigramme :

AFS [10] : tableau à 10 éléments contient code d'affichage 7 segments.

Début

Configuration des ports
A et B en sortie

PB = 0 PA = 0
AFS [10] x = 5

non

i = 0

?

i<=9

oui

oui non

j<=9

?

PB = AFS[j]

tempo(x)

PA2 = 1

PB = AFS[i]

tempo(x)

j = j + 1

Remarque :

Ce compteur doit compter de 0 jusqu'à 9999 mais on a représenter que l'organigramme des deux digits du poids faible a cause de la longueur du programme.

47

j = 0

3. Utilisation avec le clavier :

Le kit EASYPI a un bouton de remise à zéro "RESET" et 32 boutons pour simuler les entrées de système qui sont reliées aux pins RE0, RE1 et aux ports A, B, C, et D. Le branchement des boutons avec le microcontrôleur est montré dans la figure suivante :

Figure II.5 : Montage du clavier avec le PIC

3.1 Allumage d'une led à l'aide d'une touche :

Principe :

- Vérification du fonctionnement d'une touche du clavier en utilisant les leds. - Le montage suivant explique cette application.

Schéma de l'application :

Organigramme :

Début

Configuration des ports
PB en sortie, PD en

PB = 0 PD = 0

non

?

PB0=1

PB0=0

RD0=0 oui

3.2 Allumage des leds à l'aide de chaque touche correspondant :

Principe :

- Lors d'un appui sur un bouton, la led de la même pin s'allume.

- Le montage qui explique cette application est montré dans la figure II.5.

Organigramme :

Début

Configuration des ports
PB en sortie PD en entrée

PB = 0 PD = 0

PB[i]=1

non

RD[i]=0 oui

49

?

P B [i] =0

P B0

PIC

16 F8 77

PD0

II. Port Série :

1. Utilisation avec la liaison RS232:

La communication RS232 est employée pour la communication entre deux dispositifs sur une distance de 10m. Elle est utilisée généralement pour des le transfert de données avec l'ordinateur. Les jumpers (JP 10 & JP 12) RX et TX sélectionnent la pin qui sera l'entrée de la communication.

Si DIP40 ou DIP28 sont employés, ils devraient être relié à RC6 et à RC7, et en cas de DIP18, utilisent les pins RB1 et RB2.

La figure ci-dessous montre le branchement entre l'ordinateur et le 16F877.

Figure II.6 : Montage du PIC avec un PC via une liaison RS232

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








"Nous voulons explorer la bonté contrée énorme où tout se tait"   Appolinaire