SlideShare una empresa de Scribd logo
1 de 10
Utilisation et programmation en C
des microcontrôleurs PIC
16F876 – 16F877
Projet tutoré 2ème année GTR, 2004/2005
Tuteur de projet : M. Millet
Xavier Frachebois, Mathieu Coin
Table des matières
Introduction ..............................................................................................................................1
I- Programmation du PIC ....................................................................................................... 1
1- Ecriture du PIC .................................................................................................................1
2- Ecriture des programmes ..................................................................................................1
II- Plaques de l'UTBM .............................................................................................................2
1- Présentation ......................................................................................................................2
2- Détail de la plaque ............................................................................................................2
3- Exemples d'application .................................................................................................... 3
3.1- Envoi d'une chaine de caractères via la liaison série V24 ....................................... 3
3.2- Utilisation du CAN et envoi de la tension via la liaison V24 ................................. 3
3.3- Transmission de la voix PIC à PIC ......................................................................... 4
III- Plaque "COMFILE" ........................................................................................................ 6
1- Détail de la plaque ............................................................................................................6
2- Utilisation du clavier et visualisation via la liaison V24 ................................................. 7
Notes .......................................................................................................................................... 8
Introduction
Le PIC est un microcontrôleur, composant électronique fabriqué par Microchip. Ce composant
possède une multitude de pattes, certaines correspondent à des fonctions
particulières comme le port série ou le convertisseur analogique/numérique (CAN). Les autres,
organisées en port, sont utilisable en entrées/sorties TTL, c'est à dire qu'elles délivrent une tension
de 0 ou 5 Volts (Annexe 1) Il possède également une mémoire morte pour stocker les programmes
de type EPROM, EEPROM ou FLASH et vive pour les calculs (RAM). Pour fonctionner, il à
besoin d'une horloge délivrée par un quartz ou un oscillateur. Si on utilise un quartz de 4MHz, on
obtient 1000000 de cycles/seconde. Sachant qu'il exécute pratiquement 1 instruction par cycle,
hormis les sauts, cela donne une puissance de l’ordre de 1 million d’instructions par seconde.
Il y a 3 grandes familles de PIC : La famille Base-Line, qui utilise des mots d’instructions de 12 bits,
la famille Mid-Range, qui utilise des mots de 14 bits (dont font partie les 16F876 et 16F877), et la
famille High-End, qui utilise des mots de 16 bits.
I- Programmation du PIC
1- Ecriture du PIC
Le PIC se programme normalement à l'aide d'un programmateur. Le programme "bootloader"
permet de s'en passer. Cependant, pour l'écrire dans le PIC, vous devez utiliser le programmateur au
moins une fois. Ensuite, vous pourrez programmer le PIC directement depuis la plaque avec le
logiciel "Pic downloader" (Annexe 2a).
2- Ecriture des programmes
Les programmes de microcontroleur s'écrivent d'habitude en assembleur. Cependant ce langage,
même si plus performant, est assez compliqué. Nous les programmerons donc en C. Pour passer du
C en assembleur, nous utiliserons le logiciel CCS (Annexe 2b). Celui-ci, une fois le programme C
compilé, crée un fichier en .HEX. On procède alors au transfert de ce fichier du PC au PIC. Pour
cela, vous devrez appuyer sur le bouton rouge afin de faire un reset du PIC, ce qui va importer le
nouveau programme. Vous procèderez de la même façon pour chaque nouveau programme. Le
transfert du fichier est assuré par la liaison série V24.
Exemple d'un programme en C faisant clignoter la LED connectée à la patte A0.
II-
Plaques
de
l'UTB
M
1-
Présent
ation
Les
deux
plaques
ci-
dessous
sont
identiqu
es dans leurs fonctions. Elles permettent de programmer et d'utiliser le PIC 16F876 pour des
applications simples. Le lien série, V24, permet la programmation et la communication avec un PC
ou un périphérique. Le bouton rouge est utilisé pour le reset et le chargement d'un programme.
La plaque de gauche est la première que nous avons utilisée, vous utiliserez celle de droite.
2- Détail de la plaque
3-
Exempl
es
d'applic
ation
3.1-
Envoi
d'une
chaine
de
caractèr
es via la
liaison
série
V24
Ce
program
me
montre
comment utiliser la liaison série V24 pour la transmission d'une chaine de caractères. Pour
visualiser la chaine, on utilise un terminal comme "hyper terminal".
Le "n" dans la fonction printf()
permet le saut de ligne et
le "r" le retour à la ligne.
3.2- Utilisation du CAN et envoi de la tension via la liaison V24 Celui-ci permet d'utiliser le
convertisseur analogique/numérique. Il renvoi la mesure d'une tension comprise entre 0 et 5V via la
liaison V24. On visualise le résultat avec un terminal.
Le coefficient de valeur 205,7 permet de passer d'une valeur variant de 0 à 1023 à une valeur
variant de 0 à 5V. Le temps d'une mesure du CAN est d'environ 46 μs.
Pour obtenir le temps d'une mesure du CAN, nous avons relevé à l'oscilloscope le résultat sur la
patte B0 des programmes suivants. Nous en avons déduit ce temps.
Temps d'une mesure : 50 - 4 = 46 μs
3.3- Transmission de la voix PIC à PIC
Le dernier montage permet en théorie de transmettre de la voix via la liaison V24 d'un PIC à l'autre.
Cette liaison peut fonctionner avec un débit max. de 19200 b/s. L'acquisition se fait par le CAN du
PIC via un micro et un amplificateur. La restitution se fait par un CNA (Annexe 3), connecté à
l'autre PIC par la liaison série I2C, sur un haut-parleur après amplification. Cependant la chaine de
transmission tel que nous vous la présentons ne fonctionne pas. Le problème vient certainement de
la vitesse de la liaison I2C du PIC qui n'est pas assez rapide.
Transm
ission
de la
voix
PIC à
PIC
Une
solutio
n aurait
été
d'interf
acer un
CNA
parallèl
e ou
d'en fabriquer un avec un réseau R2R sur le port B libre. Par manque de temps nous n'avons pas pu
la tester.
Pour en arriver la, nous avons commencé par quelque chose de plus simple et qui fonctionne. Il
s'agit du montage ci-dessous. Un PIC envoi par la liaison V24 la tension que mesure son CAN (on
l'appelera l'émetteur) à un autre PIC (on l'appelera récepteur). Celui-ci la renvoi à son tour au CNA.
En sortie de ce dernier, on retrouve la valeur d'entrée du CAN.
Transmission d'une tension PIC à PIC
- Programme de l'émetteur :
Le CAN est paramétré sur 8 bits car
le CNA utilisé est également sur 8 bits.
-
Prog
ram
me
du
réce
pteu
r :
III-
Plaq
ue
"CO
MFI
LE"
1-
Déta
il de
la
plaq
ue
Cett
e
plaq
ue
poss
ède plusieurs modules indépendants :
- Un afficheur LCD sur port série (1)
- Quatres afficheurs numériques à DEL 7 segments (2)
- Un moteur à courant continu avec son contôleur (3)
- La liaison série V24 (4)
- Un oscillateur à quartz de 4 MHz et un quartz de 20 MHz (5)
- Une série de DEL (6), d'interrupteurs (10) et de boutons poussoirs (11)
- Un clavier numérique (matrice 3x4) (7)
- Une plaque d'essai (8)
- Un générateur de tension variable de 0 à 5 Volts (9)
- Un buzzer et un haur-parleur (12)
Câbl
age
de
base
avec
le
PIC
16F8
77
2-
Utili
satio
n du
clavi
er et
visu
alisa
tion
via
la liaison V24
Le clavier est une matrice de boutons poussoirs(voir le schéma ci-contre). Pour déterminer quel
bouton est pressé, il faut les tester par ligne de trois en appliquant une tension nulle sur la ligne à
tester et une tension de 5V sur les autres.
Exemple :
Pour tester les boutons 1, 2 et 3 on applique une tension de 0V sur B4 et de 5V sur B5, B6 et B7.
Ainsi, si on lit une tension de 0V sur B0, cela veut dire que le bouton 1 est pressé. Si on a 0V sur B1,
c'est le bouton 2, etc.
Le programme présenté ci-dessous permet d'utiliser ce clavier. Il envoi le caractère de la touche
pressée par la liaison V24. On peut visualiser ce caractère à l'aide d'un terminal.
Programme non testé par manque de temps.

Más contenido relacionado

La actualidad más candente

Projet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptProjet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptMouhcine Nid Belkacem
 
Afficheur 7 segments
Afficheur 7 segmentsAfficheur 7 segments
Afficheur 7 segmentsMaha Achouri
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Karim Touati
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84guest1e7b02
 
Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Mohammed Lamghari
 
Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Mohammed Lamghari
 
Cours asm (1)
Cours asm (1)Cours asm (1)
Cours asm (1)sunprass
 
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...LAUMAS
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Hajer Dahech
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicmorin moli
 
STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)Aymen Lachkhem
 
Composants reconfigurables
Composants reconfigurablesComposants reconfigurables
Composants reconfigurablesPeronnin Eric
 

La actualidad más candente (20)

Projet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptProjet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_ppt
 
Afficheur 7 segments
Afficheur 7 segmentsAfficheur 7 segments
Afficheur 7 segments
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
 
Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2
 
Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2Microcontrôleur PIC Microchip part2/2
Microcontrôleur PIC Microchip part2/2
 
Cours asm (1)
Cours asm (1)Cours asm (1)
Cours asm (1)
 
Horloge
HorlogeHorloge
Horloge
 
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...
Catalogues produits 03: électroniques de pesage - transmetteurs de poids & in...
 
Microcontroleur
MicrocontroleurMicrocontroleur
Microcontroleur
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 
T ps dsp
T ps dspT ps dsp
T ps dsp
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasic
 
Exam IIA5 INSAT 2018
Exam IIA5 INSAT  2018Exam IIA5 INSAT  2018
Exam IIA5 INSAT 2018
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Processeur
ProcesseurProcesseur
Processeur
 
STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)
 
Le grafcet
Le grafcet Le grafcet
Le grafcet
 
Composants reconfigurables
Composants reconfigurablesComposants reconfigurables
Composants reconfigurables
 
Montre numerique
Montre numeriqueMontre numerique
Montre numerique
 

Destacado

Suivi de qualité PIC afup2010
Suivi de qualité PIC afup2010Suivi de qualité PIC afup2010
Suivi de qualité PIC afup2010Gabriele Santini
 
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTITD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTIsoufiane merabti
 
Cle international grammaire progressive du francais avec 400 exercices - ni...
Cle international   grammaire progressive du francais avec 400 exercices - ni...Cle international   grammaire progressive du francais avec 400 exercices - ni...
Cle international grammaire progressive du francais avec 400 exercices - ni...hiteric
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877RAMZI EL IDRISSI
 
Cinetique enzymatique
Cinetique enzymatiqueCinetique enzymatique
Cinetique enzymatiqueAhmed Dellaa
 
Biochimie alimentaire-l3
Biochimie alimentaire-l3Biochimie alimentaire-l3
Biochimie alimentaire-l3abdesselam2015
 
Cours de programmation en c
Cours de programmation en cCours de programmation en c
Cours de programmation en cbenouini rachid
 
Biochimie des glucides, UMMTO
Biochimie des glucides, UMMTOBiochimie des glucides, UMMTO
Biochimie des glucides, UMMTOKhalef LEFSIH
 
Biochimie acides aminés et protéines
Biochimie acides aminés et protéinesBiochimie acides aminés et protéines
Biochimie acides aminés et protéinesKhalef LEFSIH
 
Biochimie des lipides, UMMTO
Biochimie des lipides, UMMTOBiochimie des lipides, UMMTO
Biochimie des lipides, UMMTOKhalef LEFSIH
 
Glucides 5.1
Glucides 5.1Glucides 5.1
Glucides 5.1daniel452
 

Destacado (19)

Suivi de qualité PIC afup2010
Suivi de qualité PIC afup2010Suivi de qualité PIC afup2010
Suivi de qualité PIC afup2010
 
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTITD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
 
Biochimie structurale
Biochimie structuraleBiochimie structurale
Biochimie structurale
 
Cle international grammaire progressive du francais avec 400 exercices - ni...
Cle international   grammaire progressive du francais avec 400 exercices - ni...Cle international   grammaire progressive du francais avec 400 exercices - ni...
Cle international grammaire progressive du francais avec 400 exercices - ni...
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877
PFE Réalisation d’un onduleur monophasé autonome commandé par PIC 16F877
 
Cinetique enzymatique
Cinetique enzymatiqueCinetique enzymatique
Cinetique enzymatique
 
Cinetique enzymatique
Cinetique enzymatiqueCinetique enzymatique
Cinetique enzymatique
 
Biochimie alimentaire-l3
Biochimie alimentaire-l3Biochimie alimentaire-l3
Biochimie alimentaire-l3
 
Cours de programmation en c
Cours de programmation en cCours de programmation en c
Cours de programmation en c
 
Biochimie des glucides, UMMTO
Biochimie des glucides, UMMTOBiochimie des glucides, UMMTO
Biochimie des glucides, UMMTO
 
Les Glucides
Les GlucidesLes Glucides
Les Glucides
 
TD glucides, UMMTO
TD glucides, UMMTOTD glucides, UMMTO
TD glucides, UMMTO
 
Td glucides 02
Td glucides 02Td glucides 02
Td glucides 02
 
TD lipides
TD lipidesTD lipides
TD lipides
 
Biochimie acides aminés et protéines
Biochimie acides aminés et protéinesBiochimie acides aminés et protéines
Biochimie acides aminés et protéines
 
Biochimie des lipides, UMMTO
Biochimie des lipides, UMMTOBiochimie des lipides, UMMTO
Biochimie des lipides, UMMTO
 
Glucides 5.1
Glucides 5.1Glucides 5.1
Glucides 5.1
 
Enzymes
EnzymesEnzymes
Enzymes
 

Similar a Utilisation et programmation en c

Minitiouner Pro Récepteur DATV pour Es'Hail2
Minitiouner Pro Récepteur DATV pour Es'Hail2Minitiouner Pro Récepteur DATV pour Es'Hail2
Minitiouner Pro Récepteur DATV pour Es'Hail2Passion Radio Amateur
 
Correction des exercices du thème 6 du manuel du cours 3ème année
Correction des exercices du thème 6 du manuel du cours 3ème annéeCorrection des exercices du thème 6 du manuel du cours 3ème année
Correction des exercices du thème 6 du manuel du cours 3ème annéeRimAskri
 
Chapitre ii étude technique.docx
Chapitre ii  étude technique.docxChapitre ii  étude technique.docx
Chapitre ii étude technique.docxZouaouine Mahfoud
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Cours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.pptCours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.pptwafawafa52
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdfAliRami3
 
Electronique et-loisirs-n011
Electronique et-loisirs-n011Electronique et-loisirs-n011
Electronique et-loisirs-n011Cecilia Bevilaqua
 
Cours reseau ouya
Cours reseau ouyaCours reseau ouya
Cours reseau ouyaYaya Diako
 
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfChapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfSoumayaMabrouk2
 
presentation serrure codee
presentation serrure codeepresentation serrure codee
presentation serrure codeeMohammedFassih
 
COpenCVLabjack.ppt
COpenCVLabjack.pptCOpenCVLabjack.ppt
COpenCVLabjack.pptJohnJack43
 
Tp3 automate programmable siemens s7 200
Tp3 automate programmable siemens s7 200Tp3 automate programmable siemens s7 200
Tp3 automate programmable siemens s7 200FATIMAZAHRAELGHEMARY
 

Similar a Utilisation et programmation en c (20)

Minitiouner Pro Récepteur DATV pour Es'Hail2
Minitiouner Pro Récepteur DATV pour Es'Hail2Minitiouner Pro Récepteur DATV pour Es'Hail2
Minitiouner Pro Récepteur DATV pour Es'Hail2
 
Correction des exercices du thème 6 du manuel du cours 3ème année
Correction des exercices du thème 6 du manuel du cours 3ème annéeCorrection des exercices du thème 6 du manuel du cours 3ème année
Correction des exercices du thème 6 du manuel du cours 3ème année
 
Chapitre ii étude technique.docx
Chapitre ii  étude technique.docxChapitre ii  étude technique.docx
Chapitre ii étude technique.docx
 
Tp bus i2_c_partie_2
Tp bus i2_c_partie_2Tp bus i2_c_partie_2
Tp bus i2_c_partie_2
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.pptCours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.ppt
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
 
Tp bus i2_c
Tp bus i2_cTp bus i2_c
Tp bus i2_c
 
Preparation tpcisco reseaux
Preparation tpcisco reseauxPreparation tpcisco reseaux
Preparation tpcisco reseaux
 
Electronique et-loisirs-n011
Electronique et-loisirs-n011Electronique et-loisirs-n011
Electronique et-loisirs-n011
 
Rapport de sujet BTS 1.0
Rapport de sujet BTS 1.0Rapport de sujet BTS 1.0
Rapport de sujet BTS 1.0
 
Cours reseau ouya
Cours reseau ouyaCours reseau ouya
Cours reseau ouya
 
Ccna1
Ccna1Ccna1
Ccna1
 
Tp
TpTp
Tp
 
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfChapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
 
Tp voip
Tp voipTp voip
Tp voip
 
presentation serrure codee
presentation serrure codeepresentation serrure codee
presentation serrure codee
 
COpenCVLabjack.ppt
COpenCVLabjack.pptCOpenCVLabjack.ppt
COpenCVLabjack.ppt
 
Tp3 automate programmable siemens s7 200
Tp3 automate programmable siemens s7 200Tp3 automate programmable siemens s7 200
Tp3 automate programmable siemens s7 200
 

Utilisation et programmation en c

  • 1. Utilisation et programmation en C des microcontrôleurs PIC 16F876 – 16F877 Projet tutoré 2ème année GTR, 2004/2005 Tuteur de projet : M. Millet Xavier Frachebois, Mathieu Coin Table des matières Introduction ..............................................................................................................................1 I- Programmation du PIC ....................................................................................................... 1 1- Ecriture du PIC .................................................................................................................1 2- Ecriture des programmes ..................................................................................................1 II- Plaques de l'UTBM .............................................................................................................2 1- Présentation ......................................................................................................................2 2- Détail de la plaque ............................................................................................................2 3- Exemples d'application .................................................................................................... 3 3.1- Envoi d'une chaine de caractères via la liaison série V24 ....................................... 3 3.2- Utilisation du CAN et envoi de la tension via la liaison V24 ................................. 3 3.3- Transmission de la voix PIC à PIC ......................................................................... 4 III- Plaque "COMFILE" ........................................................................................................ 6 1- Détail de la plaque ............................................................................................................6 2- Utilisation du clavier et visualisation via la liaison V24 ................................................. 7 Notes .......................................................................................................................................... 8 Introduction Le PIC est un microcontrôleur, composant électronique fabriqué par Microchip. Ce composant possède une multitude de pattes, certaines correspondent à des fonctions
  • 2. particulières comme le port série ou le convertisseur analogique/numérique (CAN). Les autres, organisées en port, sont utilisable en entrées/sorties TTL, c'est à dire qu'elles délivrent une tension de 0 ou 5 Volts (Annexe 1) Il possède également une mémoire morte pour stocker les programmes de type EPROM, EEPROM ou FLASH et vive pour les calculs (RAM). Pour fonctionner, il à besoin d'une horloge délivrée par un quartz ou un oscillateur. Si on utilise un quartz de 4MHz, on obtient 1000000 de cycles/seconde. Sachant qu'il exécute pratiquement 1 instruction par cycle, hormis les sauts, cela donne une puissance de l’ordre de 1 million d’instructions par seconde. Il y a 3 grandes familles de PIC : La famille Base-Line, qui utilise des mots d’instructions de 12 bits, la famille Mid-Range, qui utilise des mots de 14 bits (dont font partie les 16F876 et 16F877), et la famille High-End, qui utilise des mots de 16 bits. I- Programmation du PIC 1- Ecriture du PIC Le PIC se programme normalement à l'aide d'un programmateur. Le programme "bootloader" permet de s'en passer. Cependant, pour l'écrire dans le PIC, vous devez utiliser le programmateur au moins une fois. Ensuite, vous pourrez programmer le PIC directement depuis la plaque avec le logiciel "Pic downloader" (Annexe 2a). 2- Ecriture des programmes Les programmes de microcontroleur s'écrivent d'habitude en assembleur. Cependant ce langage, même si plus performant, est assez compliqué. Nous les programmerons donc en C. Pour passer du C en assembleur, nous utiliserons le logiciel CCS (Annexe 2b). Celui-ci, une fois le programme C compilé, crée un fichier en .HEX. On procède alors au transfert de ce fichier du PC au PIC. Pour cela, vous devrez appuyer sur le bouton rouge afin de faire un reset du PIC, ce qui va importer le nouveau programme. Vous procèderez de la même façon pour chaque nouveau programme. Le transfert du fichier est assuré par la liaison série V24. Exemple d'un programme en C faisant clignoter la LED connectée à la patte A0. II- Plaques de l'UTB M 1- Présent ation Les deux plaques ci- dessous sont identiqu es dans leurs fonctions. Elles permettent de programmer et d'utiliser le PIC 16F876 pour des applications simples. Le lien série, V24, permet la programmation et la communication avec un PC
  • 3. ou un périphérique. Le bouton rouge est utilisé pour le reset et le chargement d'un programme. La plaque de gauche est la première que nous avons utilisée, vous utiliserez celle de droite. 2- Détail de la plaque 3- Exempl es d'applic ation 3.1- Envoi d'une chaine de caractèr es via la liaison série V24 Ce program me montre comment utiliser la liaison série V24 pour la transmission d'une chaine de caractères. Pour visualiser la chaine, on utilise un terminal comme "hyper terminal". Le "n" dans la fonction printf() permet le saut de ligne et le "r" le retour à la ligne.
  • 4. 3.2- Utilisation du CAN et envoi de la tension via la liaison V24 Celui-ci permet d'utiliser le convertisseur analogique/numérique. Il renvoi la mesure d'une tension comprise entre 0 et 5V via la liaison V24. On visualise le résultat avec un terminal. Le coefficient de valeur 205,7 permet de passer d'une valeur variant de 0 à 1023 à une valeur variant de 0 à 5V. Le temps d'une mesure du CAN est d'environ 46 μs.
  • 5. Pour obtenir le temps d'une mesure du CAN, nous avons relevé à l'oscilloscope le résultat sur la patte B0 des programmes suivants. Nous en avons déduit ce temps. Temps d'une mesure : 50 - 4 = 46 μs 3.3- Transmission de la voix PIC à PIC
  • 6. Le dernier montage permet en théorie de transmettre de la voix via la liaison V24 d'un PIC à l'autre. Cette liaison peut fonctionner avec un débit max. de 19200 b/s. L'acquisition se fait par le CAN du PIC via un micro et un amplificateur. La restitution se fait par un CNA (Annexe 3), connecté à l'autre PIC par la liaison série I2C, sur un haut-parleur après amplification. Cependant la chaine de transmission tel que nous vous la présentons ne fonctionne pas. Le problème vient certainement de la vitesse de la liaison I2C du PIC qui n'est pas assez rapide. Transm ission de la voix PIC à PIC Une solutio n aurait été d'interf acer un CNA parallèl e ou d'en fabriquer un avec un réseau R2R sur le port B libre. Par manque de temps nous n'avons pas pu la tester. Pour en arriver la, nous avons commencé par quelque chose de plus simple et qui fonctionne. Il s'agit du montage ci-dessous. Un PIC envoi par la liaison V24 la tension que mesure son CAN (on l'appelera l'émetteur) à un autre PIC (on l'appelera récepteur). Celui-ci la renvoi à son tour au CNA. En sortie de ce dernier, on retrouve la valeur d'entrée du CAN. Transmission d'une tension PIC à PIC - Programme de l'émetteur :
  • 7. Le CAN est paramétré sur 8 bits car le CNA utilisé est également sur 8 bits. - Prog ram me du réce pteu r : III- Plaq ue "CO MFI LE" 1- Déta il de la plaq ue Cett e plaq ue poss
  • 8. ède plusieurs modules indépendants : - Un afficheur LCD sur port série (1) - Quatres afficheurs numériques à DEL 7 segments (2) - Un moteur à courant continu avec son contôleur (3) - La liaison série V24 (4) - Un oscillateur à quartz de 4 MHz et un quartz de 20 MHz (5) - Une série de DEL (6), d'interrupteurs (10) et de boutons poussoirs (11) - Un clavier numérique (matrice 3x4) (7) - Une plaque d'essai (8) - Un générateur de tension variable de 0 à 5 Volts (9) - Un buzzer et un haur-parleur (12) Câbl age de base avec le PIC 16F8 77 2- Utili satio n du clavi er et visu alisa tion via la liaison V24 Le clavier est une matrice de boutons poussoirs(voir le schéma ci-contre). Pour déterminer quel bouton est pressé, il faut les tester par ligne de trois en appliquant une tension nulle sur la ligne à tester et une tension de 5V sur les autres. Exemple :
  • 9. Pour tester les boutons 1, 2 et 3 on applique une tension de 0V sur B4 et de 5V sur B5, B6 et B7. Ainsi, si on lit une tension de 0V sur B0, cela veut dire que le bouton 1 est pressé. Si on a 0V sur B1, c'est le bouton 2, etc. Le programme présenté ci-dessous permet d'utiliser ce clavier. Il envoi le caractère de la touche pressée par la liaison V24. On peut visualiser ce caractère à l'aide d'un terminal.
  • 10. Programme non testé par manque de temps.