Vous êtes sur la page 1sur 10

Utilisation et programmation en C des microcontrleurs PIC

16F876 - 16F877

Projet tutor 2me anne GTR, 2004/2005 Tuteur de projet : M. Millet Xavier Frachebois, Mathieu Coin

Table des matires


Introduction .............................................................................................................................. 1 I- Programmation du PIC ....................................................................................................... 1 1- Ecriture du PIC .................................................................................................................1 2- Ecriture des programmes ..................................................................................................1 II- Plaques de l'UTBM .............................................................................................................2 1- Prsentation ...................................................................................................................... 2 2- Dtail de la plaque ............................................................................................................2 3- Exemples d'application .................................................................................................... 3 3.1- Envoi d'une chaine de caractres via la liaison srie 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- Dtail de la plaque ............................................................................................................6 2- Utilisation du clavier et visualisation via la liaison V24 ................................................. 7 Notes .......................................................................................................................................... 8

Introduction
Le PIC est un microcontrleur, composant lectronique fabriqu par Microchip. Ce composant possde une multitude de pattes, certaines correspondent des fonctions particulires comme le port srie ou le convertisseur analogique/numrique (CAN). Les autres, organises en port, sont utilisable en entres/sorties TTL, c'est dire qu'elles dlivrent une tension de 0 ou 5 Volts (Annexe 1) Il possde galement une mmoire morte pour stocker les programmes de type EPROM, EEPROM ou FLASH et vive pour les calculs (RAM). Pour fonctionner, il besoin d'une horloge dlivre par un quartz ou un oscillateur. Si on utilise un quartz de 4MHz, on obtient 1000000 de cycles/seconde. Sachant qu'il excute pratiquement 1 instruction par cycle, hormis les sauts, cela donne une puissance de lordre de 1 million dinstructions par seconde. Il y a 3 grandes familles de PIC : La famille Base-Line, qui utilise des mots dinstructions 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, mme 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, cre un fichier en .HEX. On procde 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 procderez de la mme faon pour chaque nouveau programme. Le transfert du fichier est assur par la liaison srie V24.
Exemple d'un programme en C faisant clignoter la LED connecte la patte A0.

II- Plaques de l'UTBM


1- Prsentation
Les deux plaques ci-dessous sont identiques dans leurs fonctions. Elles permettent de programmer et d'utiliser le PIC 16F876 pour des applications simples. Le lien srie, V24, permet la programmation et la communication avec un PC ou un priphrique. Le bouton rouge est utilis pour le reset et le chargement d'un programme.

La plaque de gauche est la premire que nous avons utilise, vous utiliserez celle de droite.

2- Dtail de la plaque

3- Exemples d'application
3.1- Envoi d'une chaine de caractres via la liaison srie V24 Ce programme montre comment utiliser la liaison srie V24 pour la transmission d'une chaine de caractres. 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/numrique. Il renvoi la mesure d'une tension comprise entre 0 et 5V via la liaison V24. On visualise le rsultat 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 rsultat sur la patte B0 des programmes suivants. Nous en avons dduit ce temps.

Temps d'une mesure : 50 - 4 = 46 s

3.3- Transmission de la voix PIC PIC Le dernier montage permet en thorie de transmettre de la voix via la liaison V24 d'un PIC l'autre. Cette liaison peut fonctionner avec un dbit 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 srie IC, sur un haut-parleur aprs amplification. Cependant la chaine de transmission tel que nous vous la prsentons ne fonctionne pas. Le problme vient certainement de la vitesse de la liaison IC du PIC qui n'est pas assez rapide.

Transmission de la voix PIC PIC

Une solution aurait t d'interfacer un CNA parallle ou d'en fabriquer un avec un rseau R2R sur le port B libre. Par manque de temps nous n'avons pas pu la tester.
4

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 rcepteur). Celui-ci la renvoi son tour au CNA. En sortie de ce dernier, on retrouve la valeur d'entre du CAN.

Transmission d'une tension PIC PIC

- Programme de l'metteur :
Le CAN est paramtr sur 8 bits car le CNA utilis est galement sur 8 bits.

- Programme du rcepteur :

III- Plaque "COMFILE"


1- Dtail de la plaque
Cette plaque possde plusieurs modules indpendants : - Un afficheur LCD sur port srie (1) - Quatres afficheurs numriques DEL 7 segments (2) - Un moteur courant continu avec son contleur (3) - La liaison srie V24 (4) - Un oscillateur quartz de 4 MHz et un quartz de 20 MHz (5) - Une srie de DEL (6), d'interrupteurs (10) et de boutons poussoirs (11) - Un clavier numrique (matrice 3x4) (7) - Une plaque d'essai (8) - Un gnrateur de tension variable de 0 5 Volts (9) - Un buzzer et un haur-parleur (12)

Cblage de base avec le PIC 16F877

2- Utilisation du clavier et visualisation via la liaison V24

Le clavier est une matrice de boutons poussoirs (voir le schma ci-contre). Pour dterminer 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 prsent ci-dessous permet d'utiliser ce clavier. Il envoi le caractre de la touche presse par la liaison V24. On peut visualiser ce caractre l'aide d'un terminal.

Programme non test par manque de temps.


7

Notes

Vous aimerez peut-être aussi