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
|