Utilisation et programmation en c

406 vues

Publié le

Langage C/PIC

Publié dans : Design
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
406
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
15
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Utilisation et programmation en c

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 10. Programme non testé par manque de temps.

×