TP Initiation langage C avec un microcontrleur PIC
Matriels : Une carte PICdem2+ avec ICD2 ! ada"tate#r $V%C et cordons & Un PC a'ec les lo()c)els PC*+ Co,")late#r C "o#r P-Cs de CCS& et MPLAB %e M)croc.)" %oc#,entat)ons Al(or)(ra,,e - -n)t)at)on a# lan(a(e C & ! d)a"ora,a
Activits (surligne) Acquis En cours dacquisition (aide du professeur) Non- acquis Prparation A1-1 Prparer, intgrer et assembler le matriel
A1-2 Paramtrage logiciel A1-3 Tester et valider Installation A2-1 Participer la prparation sur site A2-2 Mettre en place, raccorder, tester et valider les supports de transmission
A2-3 Mettre en place les quipements, les logiciels, configurer, paramtrer, tester et valider
Maintenance A3-1 Effectuer la maintenance prventive A3-2 Effectuer la maintenance corrective Organisation A4-1 Raliser la prise en charge du matriel A4-2 Sinformer et se documenter A4-3 Participer la relation clientle A4-4 Respecter les obligations lgales et rglementaires
A4-5 Participer la gestion de son activit Autonomie de llve Signature de lenseignant
Prise en compte et restitution du matriel. Signature : NOM : Classe :
LP Veynes Bac pro SEN Initiation au microcontrleur Page 2
INTRODUCTION
Le PIC18F242 (ou PIC18F452) est le micro contrleur retenu comme support d'apprentissage de la logique micro programme. Il pourra tre utilis pour raliser les fonctions Traitement de l'information souvent prsentent dans les systmes techniques tudis. Il sera alors charg d'exploiter les informations d'entre (bouton poussoir, capteur, clavier,) de manire commander les parties opratives ( LED, buzzer, affichage, commande de moteur, lectrovanne,).
Un microcontrleur est un circuit intgr comprenant un microprocesseur , de la mmoire (mmoire vive RAM et mmoire morte ROM) , une (ou plusieurs) interface de communication permettant les changes avec les priphriques.
1) FONCTIONNEMENT DU MICRO-CONTROLEUR.
Le microcontrleur fonctionne l'aide d'un programme ralisant le traitement de l'information et d'interfaces de communication avec l'extrieur matrialises par les ports d'entre/sortie.
Initiation au micro contrleur PIC18Fxx2 Traitement de des informations
LP Veynes Bac pro SEN Initiation au microcontrleur Page 3
Les ports E/S possdent jusqu' 8 bits rattachs chacun une broche du botier et pouvant tre configurs individuellement soit en entre soit en sortie, par programme. Le programme ne peut raliser qu'une seule instruction (commande) la fois. On parle de logique squentielle. Les instructions sont ralises au rythme de l'oscillateur (une instruction toutes les 4 priodes de l'oscillateur). Le microcontrleur se place en dbut de programme chaque impulsion ( l'tat bas) sur la broche MCLR (en gnral la mise sous tension ou lors de l'appui sur le bouton RESET).
Symbole et implantation du PIC18F242:
Vss br 8 et br 19 (Masse ) Vdd br 20 (+5V DC)
2) CARACTERISTIQUES TECHNIQUE DU PIC18F242 (Le bus de donnes tant sur 8 bits, ce microcontrleur est un C 8 bits))
Mmoire programme : 8 kmot (un mot est constitu de deux octets). Le PIC18F242 possdent une mmoire programme de 8 kmot, ce qui lui permet d'enregistrer 8 *1024= 8192 instructions. C'est une mmoire de type ROM FLASH : on peut effacer ou programmer lectriquement la mmoire programme et le programme est conserv aprs une mise hors tension.
Mmoire des variables : 768 octets Cette mmoire est utilise lors de l'exploitation des informations d'E/S (calculs et rsultats intermdiaires). Elle est de type RAM, c'est dire que son contenu est perdu aprs une mise hors tension.
Frquence maximale de l'oscillateur : 40 MHz NOM : Classe :
LP Veynes Bac pro SEN Initiation au microcontrleur Page 4
La frquence de l'oscillateur peut aller jusqu' 40 MHz, soit une instruction toutes les 100ns. Trois ports d'E/S Chaque bit des ports est rattach une broche du botier et peut tre configurer en entre ou en sortie. En outre ils sont tous configurables pour une application plus spcifique (Conversion Analogique Numrique pour le PORTA, transmission srie pour le PORTC, PWM et capture d'impulsions pour le PORTB, ).
Dispose de 70 instructions pour l'criture des programmes.
3) PROGRAMMATION DU MICRO-CONTROLEUR.
La programmation du microcontrleur se fait en langage machine. Ce langage tant peu comprhensible, le programmeur crit le programme dans un fichier source en langage volu : assembleur, langage C, basic, etc.
Dans notre cas lcriture du programme du PIC se fait en langage C avec le compilateur PCWH de CCS . La compilation gnre le code machine qui sera transfr dans la mmoire du microcontrleur avec l'outil de dveloppement MPLAB IDE de MicroChip.
La mise au point du programme permet d'observer le droulement du programme. Elle peut se faire : -soit en simulation (lordinateur simule le comportement du microcontrleur ) -soit en dbogage (debugger) auquel cas le programme est transfr dans le microcontrleur cible laide du module ICD2. Il est connect d'une part l'ordinateur par la liaison USB et d'autre part la carte cible (microcontrleur) par un connecteur RJ11 spcifique.
Le module ICD2 permet galement de programmer le micro-contrleur pour un fonctionnement autonome de la carte cible (on supprime alors la liaison avec lordinateur).
Liaison avec lordinateur (cble USB). Module ICD2 Liaison avec la carte cible (cble spcifique, connecteur RJ11) Carte cible NOM : Classe :
LP Veynes Bac pro SEN Initiation au microcontrleur Page 5
4) PREMIERS PROGRAMMES AVEC LA CARTE PICDEM2+
4-1) programme 1
On souhaite raliser un programme qui allume les quatre DEL connectes sur les ports RB0 RB3 lorsque l'on appuie sur un bouton poussoir connect sur RA4.
Montage simplifi de l'application :
Matriel utiliser :
Carte PICDEM 2 + (vrifier la mise en place du cavalier J9 pour valider le buzzer et du cavalier J6 pour valider les 4 leds ) Adaptateur +9VDC pour alimenter la carte cible Carte ICD2 Cordons (1 USB + cordon de liaison entre carte ICD2 et carte cible) 1 PC Logiciels : PCWH de CCS et MPLAB de Microchip
La carte ICD2 est auto-alimente via le cordon USB par lordinateur. Ne pas brancher le cordon adaptateur +9VDC cette carte. Flcher le sens de linformation pour les leds repres D1 D4 et le bouton poussoir SW1 En dduire ltat logique obtenu en RA4 si SW1 est appuy.
Reprer le quartz et donner sa frquence doscillation. NOM : Classe :
LP Veynes Bac pro SEN Initiation au microcontrleur Page 6
L'organisation du programme (algorigramme) est la suivante :
Les commentaires :
Les commentaires sont ncessaires la comprhension du fichier source. Ils font le lien entre lalgorigramme et le listing du fichier source. Ils sont introduits par le caractre // . Les mots situs aprs le caractre // ne sont pas interprts par le compilateur.
ALGORITHME : Dbut algorithme Faire RB3 RB0 en sortie , RA4 en entre Tant que 1=1 (boucle sans fin) Si RA4 = 0 Alors Faire RB0 RB3 =1 Sinon Faire RB0 RB3 = 0 Fin Si Fin tant que Fin algorithme
Travail demand : A partir du fonctionnement souhait et de lalgorigramme, complter le listing du programme source fourni ci-dessous (parties encadres). Retrouver sur le programme les diffrentes tapes de lalgorigramme (prendre 5 couleurs diffrentes
Pic 18F452 4MHz Test bouton poussoir RA4 = 0 BP appuy RA4 = 0 ? oui non B o u c l e
s a n s
f i n
NOM : Classe :
LP Veynes Bac pro SEN Initiation au microcontrleur Page 7
Instruction utiliser :
If .else. (voir le document initiation au langage C)
Fonctions utiliser : set_tris_x(valeur) , output_x , input_x (voir laide du logiciel PIC C)
A partir du diaporama :
Editer , compiler ce programme avec le compilateur C de CCS. (imprimer votre listing avec en entte votre nom (en commentaire)) Programmer le PIC 18F242 (ou PIC 18F452) avec MPLAB (voir le diaporama pour la procdure) . Vrifier le fonctionnement du programme.
Listing du programme
void main() // programme principal {
setup_adc_ports(NO_ANALOGS); // fonctions insres par le Wizard de PCWH setup_adc(ADC_OFF); // pour initialiser le C PIC 18Fxx2 4Mhz setup_spi(FALSE); // et paramtrer les ports setup_wdt(WDT_OFF); setup_timer_0(RTCC_INTERNAL); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
set_tris_a(0b ) ; // complter PORT A en entre (0b= valeur en binaire) set_tris_b(0b ) ; // complter PORT B en sortie
//RB0 Rb3 0 leds teintes
while (TRUE) //permet de crer une boucle sans fin ( ou while(1) ) { if ( !input(PIN_A4) ) // ou if ( input(PIN_A4) = = 0) { //RB0 RB3 1
}
else { // RB0 RB4 0
}
} } Signature du professeur : NOM : Classe :
LP Veynes Bac pro SEN Initiation au microcontrleur Page 8
4-2) programme 2
Cahier des charges : 4 leds clignotent pendant 200ms si le bouton poussoir RA4 est appuy, sinon elles sont teintes.
ALGORIGRAMME
ALGORITHME : Dbut algorithme Faire RB0 RB3 en sortie , RA4 en entre Faire RB0 RB3 0 Tant que 1=1 Tant que RA4 = 0 Faire RB0 RB3 = 1 Temprisation 0.2s RB0 RB3 = 0 Temporisation 0.2s Fin tant que Fin tant que Fin algorithme
Travail demand : PIC 18F452 4MHz NOM : Classe :
LP Veynes Bac pro SEN Initiation au microcontrleur Page 9
A partir du fonctionnement souhait, faire le programme source (imprimer le listing avec votre nom en entte). Tester ce programme.
Instructions : while (voir document initiation au langage C) Fonctions : set_tris_x(valeur) ; output ; input ; delay (voir laide du logiciel PIC C)
4.3) TP chenillard simple dfilement A. Prsentation Cahier des charges : raliser un chenillard qui a un seul sens de dfilement. La premire LED s'allumer est la LED1 relie RB. La LED! s"allume #$ sec%nde plus tard et ainsi de suite &usqu" la LED'. Ce c(cle rec%mmence ensuite indfiniment tant que le )%ut%n p%uss%ir R*' est appu( +sin%n les leds s%nt teintes,. B. Algorigramme
Initialisation du PIC 18F452 ( 4Mhz) RA4 en entre RB0 RB3 en sorties Dclaration dune variable entire valeur sur 8 bits
(PORT B) = 0 RA4 =1 ?
Valeur <= 0000 1000 ? Temporisation de 0.5s Dcalage gauche de 1 bit de la variable valeur non oui non oui valeur = 0000 0001 dcalage de n bits gauche ( << ) : x = y << n B O U C L E
F O R (PORTB) = valeur Boucle rpter tant que NOM : Classe :
LP Veynes Bac pro SEN Initiation au microcontrleur Page 10
C. Algorithme
DEBUT ALGORITHME
FAIRE RB0 RB3 en sortie et RA4 en entre Dclarer la variable valeur (entier sur 8 bits) TANT QUE 1=1 (boucle sans fin) Rpter PORTB=0 Tant que RA4 = 1 (test BP si relch )
POUR valeur = (00000001) 2 valeur initiale valeur <= 0000 1000 condition et par dcalage gauche de 1 modification FAIRE (PORTB) = valeur FAIRE Temporisation 0,5s
FIN POUR
FIN TANT QUE
FIN ALGORITHME
Aide : utiliser la condition do while et la boucle For (voir document initiation au langage C)
Travail faire : Faire le programme de cet ordinogramme (ajouter votre nom en commentaire) et le tester.
Imprimer ce programme et encadrer sur celui-ci, les diffrentes tapes de lalgorigramme.
4.4) TP chenillard deux sens de dfilement A. Prsentation
Cahier des charges : raliser un chenillard deux sens de dfilement. La premire LED s'allumer est la LED1 relie RB0. La LED2 sallume 0,5 seconde plus tard et ainsi de suite jusqu la LED4. Ensuite, cest au tour de la LED3 de sallumer pour revenir la LED1. (la condition , pour que le chenillard dmarre , est que le bouton poussoir RA4 soit appuy sinon les leds sont teintes.)
Travail faire :
Faire lalgorigramme, lalgorithme et le programme de ce cahier des charges.
Aide : utiliser le dcalage logique gauche puis le dcalage logique droite avec des boucles for
Tester votre programme et le faire vrifier votre professeur.
Imprimer ce programme et encadrer sur celui-ci, les diffrentes tapes de lalgorigramme.
Signature du professeur : Signature du professeur : PICDEM2+ with PIC18F452 MCLR/Vpp 1 RA0/AN0 2 RA1/AN1 3 RA2/AN2/VREF- 4 RA3/AN3/VREF+ 5 RA4/T0CKI 6 RA5/AN4/SS/LVDIN 7 RE0/RD/AN5 8 RE1/WR/AN6 9 RE2/CS/AN7 10 OSC1/CLKI 13 RA6/OSC2/CLKO 14 RC0/T1OSO/T1CKI 15 RC2/CCP1 17 RC3/SCK/SCL 18 RD0/PSP0 19 RD1/PSP1 20 RD2/PSP2 21 RD3/PSP3 22 RD4/PSP4 27 RD5/PSP5 28 RD6/PSP6 29 RD7/PSP7 30 RC4/SDI/SDA 23 RC5/SDO 24 RC6/TX/CK 25 RC7/RX/DT 26 RB0/INT0 33 RB1/INT1 34 RB2/INT2 35 RB3/CCP2B 36 RB4 37 RB5/PGM 38 RB6/PGC 39 RB7/PGD 40 RC1/T1OSI/CCP2A 16 U1 PIC18F452 D 7 1 4 D 6 1 3 D 5 1 2 D 4 1 1 D 3 1 0 D 2 9 D 1 8 D 0 7 E 6 R W 5 R S 4 V S S 1 V D D 2 V E E 3 LCD1 LM032L V C C G N D V E E VCC = 5V RA4 R2 4k7 Q1 2N2222 R4 470 VCC R5 2k2 LS1 SOUNDER 5 0 % RV1 5k D2 LED-RED D3 LED-RED D4 LED-RED D5 LED-RED R21 470 R22 470 R23 470 R24 470 J6 JUMPER D1 LED-GREEN R15 470 VCC J9 JUMPER VCC X1 Quartz 4MHz J7 JUMPER RB0 RB1 RB3 RB2
Ingénierie Neuromorphique: La pratique consistant à utiliser des systèmes de circuits électriques analogiques pour imiter les structures neurobiologiques présentes dans le système nerveux