You are on page 1of 23

Chapitre 01 Voltmètre

numérique

5
Chapitre 01 Voltmètre
numérique
1 LES PICS:

1.1 INTRODUCTION:

Les PICs sont des microcontrôleurs à architecture RISC (Reduce


Instructions Construction Set), ou encore composant à jeu d’instructions
réduit. L'avantage est que plus on réduit le nombre d’instructions, plus
leur décodage sera rapide ce qui augmente la vitesse de fonctionnement
du microcontrôleur.

La famille des PICs est subdivisée en 3 grandes familles : La famille


Base-Line, qui utilise des mots d’instructions de 12 bits, la famille Mid-
Range, qui utilise des mots de 14 bits (et dont font partie la 16F87X), et la
famille High-End, qui utilise des mots de 16 bits .

Les PICs sont des composants STATIQUES, Ils peuvent fonctionner


avec des fréquences d’horloge allant du continu jusqu’à une fréquence
max spécifique à chaque circuit. Un PIC16F87x peut fonctionner avec une
horloge allant du continu jusqu’à 20 MHz. Nous nous limiterons dans ce
chapitre à la famille Mid-Range et particulièrement au PIC 16F877 .

On a choisi ce microcontrôleur pour les raisons suivantes :

 Il dispose d’une mémoire flash pour stocker le programme (donc il est


possible de le reprogrammer en cas de bug ou d’évolution). La
mémoire flash peut être programmée par le programme lui-même.

 Il est facile de fabriquer un programmateur et de nombreux outils sont


disponibles.

 La mémoire RAM est de taille suffisante.

5
Chapitre 01 Voltmètre
numérique

FIG.III.1 Branchage de PIC 16F877

1.2 CARACTERISTIQUES GENERALES DU PIC 16F877 :

Les éléments essentiels du PIC 16F876 sont [15]:

• Une mémoire programme de type EEPROM flash de 8K mots


de 14 bits.
• Une RAM donnée de 368 octets.
• Une mémoire EEPROM de 256 octets.
• cinq ports d'entrée sortie, A (6 bits), B (8 bits), C (8 bits), D
(8bits), E(3bits)
• Convertisseur Analogiques numériques 10 bits à 8 canaux.
• USART, Port série universel, mode asynchrone (RS232) et
mode synchrone.
• SSP, Port série synchrone supportant I2C.
• Trois TIMERS avec leurs Prescalers, TMR0, TMR1, TMR2.
• Deux modules de comparaison et Capture CCP1 et CCP2.
• Un chien de garde.
• 14 sources d'interruption.
• Générateur d'horloge, à quartz (jusqu’ à 20 MHz) ou à
Oscillateur RC..

5
Chapitre 01 Voltmètre
numérique
• Fonctionnement en mode sleep pour réduction de la
consommation.
• Programmation par mode ICSP (In Circuit Serial
Programming) 12V ou 5V.
• Possibilité aux applications utilisateur d’accéder à la mémoire
programme.
• Tension de fonctionnement de 2 à 5V.
• Jeux de 35 instructions.

Tableau; caractéristique du PIC 16f87x

MSSP : Master Synchronous Serial Port.

USART : Universal Synchronous Asynchronous Receiver Transmitter

1.3 Architecture du PIC 16F87X:

5
Chapitre 01 Voltmètre
numérique

Architecture interne du PIC 16F87X

1.3.1 Mémoire

Les mémoires du PIC 16F877 sont divisées en trois parties [15] :

 Mémoire Programmable

Une mémoire contenant le programme à exécuter par le


microcontrôleur. Cette mémoire à la particularité de sauvegarder en
permanence les informations qu’elle contient même en absence de
tension. La mémoire programme de notre PIC 16F876 est de type flash
qu’on peut effacer électriquement, alors on peut la reprogrammer
plusieurs fois. La capacité de cette mémoire est de 8 KO.

 EEPROM
La mémoire EEPROM (Electrical Erasable Programmable Read Only
Memory) est constituée de 256 octets, qu’on peut lire et écrire depuis
notre programme. Ces octets sont Conservées après une coupure de
courant et sont très utiles pour conserver des paramètres semi-
permanents. Leur utilisation implique une procédure spéciale, car ce n’est

5
Chapitre 01 Voltmètre
numérique
pas de la RAM, mais bien une ROM de type spéciale. Il est donc plus rapide
de la lire que d’y écrire.

 RAM
Une mémoire vive également appelée RAM (Randon Access
Memory). Cette mémoire permet de sauvegarder temporairement des
informations. Il est à noter que le contenu d’une RAM n’est sauvegardé
que pendant la phase d’alimentation du circuit. La mémoire RAM
disponible du PIC 16F876 et de 368 octets. Elle est organisée en 4
banques, dans chacune des banques nous allons trouver des cases
mémoires spéciales appelés registres spéciaux et des cases mémoires
libres.

1.3.2 Registre

Il existe plusieurs types de registres. Parmi les registres les plus utilisés
on peut citer :

 Registre OPTION.
 Registre STATUS.
 Registre INTCON.
1.3 .3 CONVERTISSEUR ANALOGIQUE- NUMERIQUE

Notre 16F877A travaille avec un convertisseur analogique/numérique qui


permet un
Échantillonnage sur 10 bits. Il est composé de :
• Un multiplexeur analogique 5 voies « PIC 16F877A ».
• Un échantillonneur bloqueur.
• Un convertisseur analogique numérique de 10 bits.

5
Chapitre 01 Voltmètre
numérique

a. Les registres ADRESL et ADRESH


Il est important de savoir que le convertisseur donne un résultat sur 10
bits, et
donc que ce résultat devra donc obligatoirement être sauvegardé dans 2
registres. Ces
registres sont tout simplement les registres ADRESL et ADRESH. Comme 2
registres
contiennent 16 bits, et que nous n’en utilisons que 10, Micro chip nous a
laissé le choix
sur la façon dont est sauvegardé le résultat, nous pouvons soit justifier le
résultat à
gauche, soit à droite.
La justification à droite complète la partie gauche du résultat par des «
0 ». Le
résultat sera donc de la forme :

5
Chapitre 01 Voltmètre
numérique
La justification à gauche procède bien évidemment de la méthode
inverse :

b. Le registre ADCON1
Ce registre permet de déterminer le rôle de chacune des pins AN0 à
AN7. Il
permet donc de choisir si un pin sera utilisé comme entrée analogique,
comme
entrée/sortie standard, ou comme tension de référence. Il permet
également de décider
de la justification du résultat.
Pour pouvoir utiliser un pin en mode analogique, il faudra que ce pin
soit configuré
également en entrée par TRISA. Le registre ADCON1 dispose, comme tout
registre
accessible de notre PIC, de 8 bits, dont seulement 5 sont utilisés :

c. Le registre ADCON0
Ce registre est le dernier utilisé par le convertisseur
analogique/numérique. Il
contient les bits que nous allons manipuler lors de notre conversion. Sur
les 8 bits de
notre registre, 7 seront utilisés.

5
Chapitre 01 Voltmètre
numérique

1.4 DESCRIPTION DES BROCHES


PORTA (6 lignes) :

Le port A peut être configuré comme une Entrée/Sortie numérique


bidirectionnelle ou bien :

 Comme des canaux d’entrées analogiques (AN0 à AN4).


 Comme entrées des tensions de références (RA2/AN2/VREF-,
RA3/AN3/VREF+).
 Comme un sélecteur de port série synchrone (SS).
PORTB (8 lignes) :

Le port B peut être configuré comme une Entrée/Sortie numérique


bidirectionnelle ou bien :

 Comme une broche d’alimentation de programmateur (PGM).


 Comme une broche d’horloge de programmation (PGC).
 Comme une broche des données de programmateur (PGD).
Les lignes PGM, PGC, PGD permettent de programmer le PIC avec
basse tension (5V).

PORTC (8 lignes) :

5
Chapitre 01 Voltmètre
numérique
Le port C peut être configuré comme une Entrée/Sortie numérique
bidirectionnelle ou bien :

 Comme sortie d’oscillateur, entrée d’horloge de TIMER1


(RC0/T10S0/T1CKI).
 Comme entrée oscillateur de TIMER1 ou entrée de capture 2 /
sortie de comparateur 2 / sortie de PWM2 (RC1/T1OSI/CCP2).
 Comme entrée/sortie de l’horloge de synchronisation série de
module MSSP (SDA/SDO).
 Comme entrées/sortie de module de transmission série des
données (RC6/TX/CK), (RC7/RX/DT).
PORTD (8 lignes) :

 Le port D peut être configuré comme une Entrée/Sortie


numérique bidirectionnelle
PORTE (3 lignes) :

 Le port E peut être configuré comme une Entrée/Sortie


numérique bidirectionnelle ou bien Comme des canaux
d’entrées analogiques (AN5 à AN7).

Configuration des portx, les registres PORTX et TRISX

Tous les ports sont pilotés par deux registres :


Le registre PORTx, si le PORTx ou certaines lignes de PORTx sont
configurés en sortie, ce registre détermine l'état logique des sorties. Le
registre TRISx, c'est le registre de direction. Il détermine si le PORTx ou

5
Chapitre 01 Voltmètre
numérique
certaines lignes de port sont en entrée ou en sortie. L'écriture d'un 1
logique correspond à une entrée « 1 comme Input » et l'écriture d'un 0
logique
correspond à une sortie « 0 comme Output ». Au RESET toutes les lignes
de ports sont configures en sorties.
PRESENTATION DE L’AFFICHEUR LCD :

Les afficheurs à cristaux liquides sont des modules compacts intelligents


et
nécessitent peu de composants externes. Ils sont utilisés avec beaucoup
de facilité. Ils
sont pratiquement les seuls à être utilisés sur les appareils à alimentation
par pile.
Plusieurs afficheurs sont disponibles sur le marché et ne se différent pas
les
unes des autres, seulement par leurs dimensions,( 1 à 4 lignes de 6 à 80
caractères ),
mais aussi par leurs caractéristiques techniques et leurs tension de
services.
Certains sont dotés d’un rétro éclairage de l’affichage. Cette fonction fait
appel à des LED montées derrière l’écran du module, cependant, cet
éclairage est
gourmand en intensité ( 250mA max ).
PRESENTATION D’UN ECRAN LCD :

Qu’il soit à une ou deux lignes, un afficheur LCD se présente sous la forme
suivante :

Au-dessus de l’écran à cristaux liquides proprement dit, on trouve une


série

5
Chapitre 01 Voltmètre
numérique
de 14 broches aux rôles Suivantes :
· Broche 1 : masse ;
· Broche 2 : Vcc ;
· Broche 3 : luminosité ;
· Broche 5, R/W : sélection du mode lecture ou écriture :
0 ecriture
1 lecture
· Broche 6, E : Commande des opérations d’écriture ou de lecture ;
· Broche 7à 14 : utilisées pour le transfert des données ou des instructions.
Le
transfert peut se faire sur 8 bits, toutes les broches sont alors utilisées, ou
sur 4
bits, dans ce cas, seules les broches 11 à 14 sont utilisées.

FONCTIONNEMENT :

Un afficheur LCD est capable d’afficher tous les caractères


alphanumériques
usuels et quelques Symboles supplémentaires. Pour certains afficheurs, il
est même
possible de créer ses propres Caractères.
Chaque caractère est identifié par son code ASCII qu’il faut envoyer sur les
lignes
D0 à D7 broches 7 A 14. Ces lignes sont aussi utilisées pour la gestion de
l’affichage
avec l’envoi d’instructions telles Que l’effacement de l’écran, l’écriture en
ligne 1 ou

5
Chapitre 01 Voltmètre
numérique
en ligne 2, le sens de défilement du curseur.
PRINCIPALES INSTRUCTIONS :

Effacement de l’écran en remplissant du caractère « espace »

Retour en début de première ligne

Aller en début de seconde ligne

Mode d’affichage

· Si I\D = 1 : le déplacement du curseur vers la droite ;


· Si I\D = 0 : le déplacement vers la gauche.
· Si S = 1 : le déplacement du texte affiché vers la droite
· Si I\D = 1 vers la gauche.
· Si I\D=0
· Si S=0 : aucun déplacement du texte.
Contrôle d’affichage

· Si D = 1 : affichage visible.
· Si C = 1 : curseur visible.
· Si B = 1 : inversion.
Déplacement affichage et curseur, sans opération d’écriture

5
Chapitre 01 Voltmètre
numérique

Fonction

· Si DL = 1 : donnée sur 8 bits, sur 4 bits si DL = 0.


· Si N = 0 : affichage sur 1 ligne, sur 2 ligne si N = 1.
· Si F = 0 : taille des caractères 5x 8,5 x 10 si F= 1.

5
Chapitre 01 Voltmètre
numérique
Afficheur 7 segments :
Les afficheurs 7 segments sont un type d'afficheur très présent sur les
calculatrices et les montres à affichage numérique : les caractères (des
chiffres, bien que quelques lettres soient utilisées pour l'affichage
hexadécimal) s'écrivent en allumant ou en éteignant des segments, au
nombre de sept. Quand les 7 segments sont allumés, on obtient le chiffre
8.
Caractères représentés
Animation montrant successivement les 16 caractères pouvant être
représentés par un afficheur 7 segments
Voici les 10 chiffres représentés avec l'affichage à 7 segments :

Désignation et commande des segments


Schéma montrant la désignation de chacun des segments
Dans un afficheur 7 segments, les segments sont généralement désignés
par les lettres allant de A à G. Dans le cas où l'afficheur comporte un
point, servant de séparateur décimal, celui-ci est désigné DP (de l'anglais
decimal point) ;
certains parlent dans ce cas d'un afficheur « 8 segments ».
Dans le cas d'afficheurs à DEL, deux cas de figures sont présents :
Afficheur à anode commune : toutes les anodes sont reliées et
connectées au potentiel haut. La commande
du segment se fait par sa cathode mise au potentiel bas.
Afficheur à cathode commune : toutes les

5
Chapitre 01 Voltmètre
numérique
cathodes sont reliées et connectées au
potentiel bas. La commande du segment
se fait par son anode mise au potentiel haut.

5
Chapitre 01 Voltmètre
numérique

Partie pratique :
Dans ce partie, la programmation de pic est fait à l’aide de deux
logiciels MPLAB et CCS COMPILER se sont des programme de
programmation des pics le plus utiliser dans ce domaine, Et la simulation
est fait à l’aide d’une logiciel PROTEUS PRO ce dernier est un logiciel de
simulation pour les électroniciens.

Manip 01 : voltmètre numérique

Présentation :

Ce travail est un lecture d’une tension à partir d’un potentiomètre et


affiche se valeur dans un afficheur numérique

*Principe :

Le principe de ce travail est le conversion et le traitement et après sa


l’affichage

Le lecture est fait dans l’entrée A0 du pic, et le pic convertir se valeur a


une valeur nématique

Et après sa calculer sa valeur réel (valeur de tension ),après sa ils


décomposé se valeur (en millivolt) a des chiffres (mille, cent ,…) et
affiche ses chiffre l’un après l’autre a laide d’une chip select dans
l’afficheur

*Matériel utilisé :

*Pic 16f877.

*potentiomètre.

*afficheur 7 segment.

*afficheur lcd

*un voltmètre.

5
Chapitre 01 Voltmètre
numérique

*La circuit :

LCD1
LM032L

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3

4
5
6

7
8
9
10
11
12
13
14
VCC
33
34
35
36
37
38
39
40

15
16
17
18
23
24
25
26

19
20
21
22
27
28
29
30

RV1 U1
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RB3/PGM

RB6/PGC
RB7/PGD
RB0/INT
RB1
RB2

RB4
RB5

RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA

RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RC0/T1OSO/T1CKI

PIC16F877
0%

1k +88.8
RA3/AN3/VREF+
RA2/AN2/VREF-

Volts
MCLR/Vpp/THV
OSC2/CLKOUT

RE1/AN6/WR
OSC1/CLKIN

RE0/AN5/RD

RE2/AN7/CS
RA5/AN4/SS
RA4/T0CKI
RA0/AN0
RA1/AN1

VCC
13
14
1

2
3
4
5
6
7

8
9
10

Le rôle du potentiomètre est de augmente et abaissé la tension d’entre

Le convertisseur est convertir la valeur de tension a une valeur


numérique

En recalculons la valeur réel de tension V=valeur numérique*v réf /1024

1024 est le pas max de la convertisseur de pic (10 bits = 210 =1024)

L’affichage se font à l’aide d’un afficheur de type 7 segment a 4 chiffre a


affiché à l’aide d’une chip select

5
Chapitre 01 Voltmètre
numérique

*Le programme :
//////*********Voltmetter******************////////////////////////////////////////////////////

#include "C:\ex01\manip1.h"

#include<stdlib.h>

#include "C:\ex01\lcd.c"

int32 a,b,m,c,d;

void codage(int32 num) //******fonction de la conversion des chiffres de BCD a 7


SEGMENT****//

switch (num) {

case 0 : num=0x3F;break;

case 1 : num=0x06;break;

case 2 : num=0x5B;break;

case 3 : num=0x4F;break;

case 4 : num=0x66;break;

case 5 : num=0x6D;break;

case 6 : num=0x7D;break;

case 7 : num=0x07;break;

case 8 : num=0x7F;break;

case 9 : num=0x6F;break;

output_b(num);//envoyer le code via la port B de la pic a l'afficheur

}//***********************************************************************************//

void main()

setup_adc_ports(AN0_AN1_VSS_VREF);//parametter de la convertisseur du pic

setup_adc(ADC_CLOCK_INTERNAL);//reglage de l'horloge

setup_psp(PSP_DISABLED);

setup_spi(SPI_SS_DISABLED);// fermer le SPI

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);//fermer le times 0

setup_timer_1(T1_DISABLED);//fermer le times 1

5
Chapitre 01 Voltmètre
numérique
setup_timer_2(T2_DISABLED,0,1);//fermer le times 2

lcd_init(); //initialisation d'afficheur lcd

set_adc_channel(0);// read la valeur via le pin AN0

set_tris_b(0);//configurer le port B comme sortie

set_tris_c(0);//configurer le port C comme sortie

output_b(0xff);

output_c(0);

printf(lcd_putc,"\f Voltmetter by");

printf(lcd_putc,"\n HAFID-LAID-YACINE");

delay_ms(5000);

while(1)//boucle infinie

a=read_adc();//lecture de la valeur numérique de 0 à 1024(adc=10bits)

b=a*5000/1024;//calculer la valeur réel de tension de 0mv à 5000mv(vref=5V)

printf(lcd_putc,"\f valeur: %4lu",a);//afficher la valeur a sur le LCD

printf(lcd_putc,"\n Tension en mV: %4lu",b);//afficher la valeur b sur le LCD

delay_ms(60);// retard du temps pour laffichage

m=b/1000;

b=b-(m*1000);

c=b/100;

b=b-(c*100);

d=b/10;

b=b-(d*10); //décomposé la valeur (mille, cent, dix…) pour l'affichage

output_c(0xfe); //sélectionner l'afficheur 1

codage(m); //appeler la fonction "codage" pour la conversion et la affichage

output_high(PIN_B7); //pour afficher le virgule

delay_ms(10); //retard de temps pour l'afficheur s'affiche le chiffre

output_c(0xfd); //sélectionner l'afficheur 2

codage(c); //appeler la fonction "codage" pour la conversion et la affichage

delay_ms(10); //retard de temps pour l'afficheur s'affiche le chiffre

output_c(0xfb); //sélectionner l'afficheur 3

codage(d); //appeler la fonction "codage" pour la conversion et la affichage

5
}

}
20%

VCC

1k
RV1

-Exemple 2 :
-Exemple 1 :

Volts
+1.00

Pour V=1250mv
*La simulation :
Chapitre 01

13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
1 35
MCLR/Vpp/THV RB2
36
RB3/PGM

Pour V = 1v=1000mv
2 37
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
7 15
RA5/AN4/SS RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
RC6/TX/CK
26
RC7/RX/DT

VCC
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
output_c(0xf7); //sélectionner l'afficheur 4

29
RD6/PSP6
30
RD7/PSP7

U1

5
1
VSS

LM032L
LCD1
2

PIC16F877
VDD
3
VEE

4
RS
5
RW
6
E

7
D0
8
D1
9
D2
10
D3
11
D4
12
D5
13
D6
14
D7
Dans la simulation en prendre quelques exemples
delay_ms(10); //retard de temps pour l'afficheur s'affiche le chiffre
numérique

codage(b); //appeler la fonction "codage" pour la conversion et la affichage


Voltmètre
25%

VCC

1k
RV1
62%

VCC

1k
RV1
Volts
+1.25

Volts
+3.10
Chapitre 01

13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
1 35
MCLR/Vpp/THV RB2
13 33 36
OSC1/CLKIN RB0/INT RB3/PGM
14 34 2 37
OSC2/CLKOUT RB1 RA0/AN0 RB4
1 35 3 38
MCLR/Vpp/THV RB2 RA1/AN1 RB5
36 4 39
RB3/PGM RA2/AN2/VREF- RB6/PGC
2 37 5 40
RA0/AN0 RB4 RA3/AN3/VREF+ RB7/PGD
3 38 6
RA1/AN1 RB5 RA4/T0CKI
4 39 7 15
RA2/AN2/VREF- RB6/PGC RA5/AN4/SS RC0/T1OSO/T1CKI
5 40 16
RA3/AN3/VREF+ RB7/PGD RC1/T1OSI/CCP2
6 8 17
RA4/T0CKI
7 15 RE0/AN5/RD RC2/CCP1
RA5/AN4/SS RC0/T1OSO/T1CKI 9 18
16 RE1/AN6/WR RC3/SCK/SCL
RC1/T1OSI/CCP2 10 23
8 17 RE2/AN7/CS RC4/SDI/SDA
RE0/AN5/RD RC2/CCP1 24
9 18 RC5/SDO
RE1/AN6/WR RC3/SCK/SCL 25
10 23 RC6/TX/CK
RE2/AN7/CS RC4/SDI/SDA 26
24 RC7/RX/DT
VCC

RC5/SDO

-Exemple 4 : Pour V=5000mv


-Exemple 3 : Pour V=3100mv
25
RC6/TX/CK 19
26 RD0/PSP0
RC7/RX/DT

VCC
20
RD1/PSP1
19 21
RD0/PSP0 RD2/PSP2
20 22
RD1/PSP1 RD3/PSP3
21 27
RD2/PSP2 RD4/PSP4
22 28
RD3/PSP3 RD5/PSP5
27 29
RD4/PSP4 RD6/PSP6
28 30
RD5/PSP5 RD7/PSP7
29
RD6/PSP6
30
RD7/PSP7
U1

5
1

U1
VSS
LM032L
LCD1

2
PIC16F877

1 VDD

LM032L
VSS

LCD1
3
2

PIC16F877
VEE
VDD
3
VEE 4
RS
4 5
RS RW
5 6
RW E
6
E
7
D0
7 8
D0 D1
8 9
D1 D2
9 10
D2 D3
10 11
D3 D4
11 12
D4 D5
12 13
D5 D6
13
D6 14
14 D7
D7
numérique
Voltmètre
Pour V=0
100%

VCC
0%

VCC
1k

1k
RV1

RV1
Volts
+5.00

Volts
0.00
Chapitre 01

13 33
13 33 OSC1/CLKIN RB0/INT
OSC1/CLKIN RB0/INT 14 34
14 34 OSC2/CLKOUT RB1
OSC2/CLKOUT RB1 1 35
1 35 MCLR/Vpp/THV RB2
MCLR/Vpp/THV RB2 36
36 RB3/PGM
RB3/PGM 2 37
2 37 RA0/AN0 RB4
RA0/AN0 RB4 3 38
3 38 RA1/AN1 RB5
RA1/AN1 RB5 4 39
4 39 RA2/AN2/VREF- RB6/PGC
RA2/AN2/VREF- RB6/PGC 5 40
5 40 RA3/AN3/VREF+ RB7/PGD
RA3/AN3/VREF+ RB7/PGD 6
6 RA4/T0CKI
RA4/T0CKI 7 15
7 15 RA5/AN4/SS RC0/T1OSO/T1CKI
RA5/AN4/SS RC0/T1OSO/T1CKI 16
16 RC1/T1OSI/CCP2
RC1/T1OSI/CCP2 8 17
8 17 RE0/AN5/RD RC2/CCP1
RE0/AN5/RD RC2/CCP1 9 18
9 18 RE1/AN6/WR RC3/SCK/SCL
RE1/AN6/WR RC3/SCK/SCL 10 23
10 23 RE2/AN7/CS RC4/SDI/SDA
RE2/AN7/CS RC4/SDI/SDA 24
24 RC5/SDO
RC5/SDO 25
25 RC6/TX/CK
RC6/TX/CK 26
26 RC7/RX/DT
VCC

RC7/RX/DT

VCC
19 19
RD0/PSP0 RD0/PSP0
20 20
RD1/PSP1 RD1/PSP1
21 21
RD2/PSP2 RD2/PSP2
22 22
RD3/PSP3 RD3/PSP3
27 27
RD4/PSP4 RD4/PSP4
28 28
RD5/PSP5 RD5/PSP5
29 29
RD6/PSP6 RD6/PSP6
30 30
RD7/PSP7 RD7/PSP7

5
U1
U1

1 1

LM032L
LCD1
VSS
LM032L

VSS
LCD1

PIC16F877
2 2
PIC16F877

VDD VDD
3 3
VEE VEE

4 4
RS RS
5 5
RW RW
6 6
E E
7 7
D0
8 D0
D1 8
9 D1
D2 9
10 D2
D3 10
11 D3
D4 11
12 D4
D5 12
13 D5
D6 13
14 D6
D7 14
D7
numérique
Voltmètre