l'essentiel à retenir
Post on 09-Jul-2015
113 Views
Preview:
TRANSCRIPT
Rpublique Tunisienne Ministre de lEnseignement Suprieur et de la Recherche Scientifique
Universit de Carthage
Ecole Polytechnique de Tunisie
Les microcontrleurs de Microchip:
Lessentiel2011-2012
Prsent par : Oussama Abid
Plan2
Le montage de base dun PIC Les ports Entre Sortie du PIC La Conversion Analogique Numrique Les timers Les sources dinterruption
3
Le montage de base
4
ISIS ne vous affiche pas les pins VSS et VDD. Dans la pratique il faut bien videmment relier VDD la tension 5volt et VSS la masse Ce montage est valable quelque soit le PIC utilis
5
Les ports dEntre Sortie
Les Ports DEntre Sortie6
PortA : ana/num PortB : num PortC : num Port D Port A
Registres:
TrisA, TrisB, TrisC PortA, PortB, PortCPort C
7
La Conversion Analogique Numrique
La conversion Analogique Numrique8
Sous mikroC:
Vref+
1023
Adc_init(); // initialisation val = adc_read(0) // Lire la valeur de AN0Vref0
Donc, Voir le Help de MikroC
Par dfaut, Vref+ =VDD = 5v Vref- = VSS = 0v
9
Les timers
TMR010
Sincrmente indpendamment de lAlgorithme 0 255 A chaque dbordement, le flag du Timer prend 1 au niveau de INTCON Petit calcul : Quartz : 20 Mhz par exemple 1 Temps dinstruction = 4 * Temps oscillation c d Temps dinstruction= 4* 1/20Mhz = 0.2us
Dbordement du timer = 256*0.2us = 51.2us
Ralentir le dbordement du timer : Utiliser un prescaler Dbordement du timer = 256 * prescaler * 0.2us Au maximum prescaler = 256 cd Dbordement = 256*256*0.2= 13.07ms Le prescaler est choisi laide du registre OPTION_REG
11
Option_Reg=0b0000xxxx
Utilit dun Timer12
Clignoter une LED toute les secondes
Delay_ms()
TMR0
Void main() { While (1) { Led=1; Delay_ms(1000); Led=0; } }
Void interrupt() { if ( flag_timer== 1 ) { cnt++; if ( cnt == 71 ) {Led=1; cnt=0; } else Led=0; }}
Void main() { INTCON=0b10100000; // Active interrupt OPTION_REG. // prescaler = 256 While (1 ) { // effectuer ce que vous voulez } }
13
Les interruptions
INTerruption CONtrol14
7 : Activer les interruptions5 : Activer une interruption suite au dbordement du TMR0 4 : Activer une interruption suite un changement dEtat de RB0 ( Option_reg )
3: Activer une interruption suite un changement dEtat de RB4 -> Rb7Les flags servent diffrencier les sources dinterruption
Interruption sous MikroC15
Void interrupt() { if ( INTCON.F2 == 1 ) // timer flag { // ce que vous voulez } else if ( INTCON.F1== 1 ) // Rb0 INTCON=0b1xxxxxxx; } Void main() {INTCON=0b1xxxxxxx; While (1) { // ce que vous voulez } } Algorithme Principal
Algorithme dinterruption
Conclusion16
!
Vos compagnons de route :
Le cours de BIGONOFF : Comprendre le phnomne rel Le HELP de MikroC : Les fonction prdfinies utiliser en C et avoir des exemples Le datasheet du PIC : Meilleur source dinformation
FLICITATION : VOUS TES UN EXPERT EN PIC
Travail pratique : Algorithme pour un viteur dobstacles18
Cahier de charge :
Dtecter un obstacle par deux capteurs infrarouge et lviter Allumer une srie de LED proportionnellement la distance entre le robot et lobstacle Une LED clignote tout au long du fonctionnement Un signal dune tlcommande arrte le robot
top related