Professional Documents
Culture Documents
numérique
5
Chapitre 01 Voltmètre
numérique
1 LES PICS:
1.1 INTRODUCTION:
5
Chapitre 01 Voltmètre
numérique
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.
5
Chapitre 01 Voltmètre
numérique
1.3.1 Mémoire
Mémoire Programmable
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
5
Chapitre 01 Voltmètre
numérique
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
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 :
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 :
Qu’il soit à une ou deux lignes, un afficheur LCD se présente sous la forme
suivante :
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 :
5
Chapitre 01 Voltmètre
numérique
en ligne 2, le sens de défilement du curseur.
PRINCIPALES INSTRUCTIONS :
Mode 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
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 :
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.
Présentation :
*Principe :
*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
1024 est le pas max de la convertisseur de pic (10 bits = 210 =1024)
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;
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;
}//***********************************************************************************//
void main()
setup_adc(ADC_CLOCK_INTERNAL);//reglage de l'horloge
setup_psp(PSP_DISABLED);
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
output_b(0xff);
output_c(0);
printf(lcd_putc,"\n HAFID-LAID-YACINE");
delay_ms(5000);
while(1)//boucle infinie
m=b/1000;
b=b-(m*1000);
c=b/100;
b=b-(c*100);
d=b/10;
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
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
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