Escolar Documentos
Profissional Documentos
Cultura Documentos
SOMMAIRE
I- Introduction II- Description III- Les mmoires IV- Les registres V- Jeu dinstruction VI- Modes dadressages VII- Timers VIII- Les interruptions
I-Intorduction
Un microcontrleur est une unit de traitement de linformation de type microprocesseur laquelle on a ajout des priphriques internes permettant de raliser des montages sans ncessiter lajout de composants annexes. Un microcontrleur peut fonctionner dune faon autonome aprs programmation.
Un microcontrleur est un composant lectronique Autonome dot: dun microprocesseur, de la mmoire RAM, de la mmoire permanente, des interfaces dE/S //, srie (RS232, I2C, SPI ) des interfaces dE/S analogique- Des Timer pour grer le temps Dautres modules plus au moins sophistiqus selon la taille des C
Le Port B possde 8 lignes, nommes : RB0..pin 6 (RB0/INT) RB1..pin 7 RB2..pin 8 RB3..pin 9 RB4..pin 10 RB5..pin 11 RB6..pin 12 RB7..pin 13 (NB: RB=Register B)
L: tolrance plus importante de la plage de tension. XX: type de mmoire programme. C:EPROM ou EEPROM. CR:PROM. F:Flash yy: identificateur. zz: vitesse maximale du quartz de pilotage.
III-Les mmoires :
III-1 La mmoire de programme:
Comme son nom l'indique, c'est dans cette mmoire qu'est mmoris le programme excuter. De type Flash ROM, elle est organise en 1024 mots de 14 bits, ce qui permet de coder sur un seul mot l'instruction et l'oprande, la diffrence des microcontrleurs plus classiques 8 bits o l'instruction et l'oprande sont crits sur plusieurs adresses conscutives.
IV-Les registres:
IV-1 Organisation:
La mmoire donne correspond aux registres (File Registrs) vus par lunit central. Cest registres sont de 2 types : -Registres systme :ils permettent la configuration et la surveillance de ltat du processeur et de ses priphriques; ces registres sont accessibles en lecture ou criture suivant leur fonction. -Registres dusages gnral :ils permettent le stockage de variables, ils sont accessibles en lecture et en criture par le programme. -Baptis du nom de registre usage gnral par Microchip, chacune de ces mmoires est adressable directement. - ce bloc de 68 registres usage gnral, le fabricant a associ 11 registres internes et organis les adresses selon le tableau
Adresses 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 4F EEDATA EEADR PCLATH INTCON INDF TMR0 PCL STATUS FSR PORTA PORTB
Registres
Adresses 80 81 82 83 84 85 86 87 88 89 8A 8B 8C CF
EECON1 EECON2 PCLATH INTCON Accs aux mmes mmoires que page 0 Page 1
- Registres PORTA et PORTB :Les registres PORTA d'adresse 05 et PORTB d'adresse 06 sont les registres des ports d'entres/sorties. Chaque broche de chaque port peut tre utilise en entre ou en sortie: le sens de fonctionnement des ports est dfini par le contenu des registres TRISA et TRISB : un bit 0 programme la broche correspondante en sortie, un bit 1 la programme en entre. - Registre INTCON :Le registre INTCON d'adresse OB, prsent dans le tableau , est utilis pour le contrle et la gestion des interruptions.
Bit 7 GIE
Bit 6 EEIE
Bit 5 T0IE
Bit 4 INTE
Bit 3 RBIE
Bit 2 T0IF
Bit 1 INTF
Bit 0 RBIF
-Le registre EEDATA d'adresse 08 contient, selon l'opration, la donne lue ou la donne crire. -Le registre EEADR d'adresse 09 contient son adresse.(donne) -Le registre EECON1 d'adresse 88 dfinit le mode de fonctionnement de l'EEPROM. -Le registre EECON2 d'adresse 89 n'est pas physiquement implant et ne sert qu' la scurisation lors de la phase d'criture. L'EEPROM ne contenant que 64 octets d'adresse 00 3F, les 2 bits de poids fort de EEADR sont donc toujours 0.
Registre STATUS.
-Le bit C (Carry), est mis 1 lors d'oprations avec retenue. Ce bit est
-Le bit DC(Digit Carry),est mis 1 quand une retenue apparat aprs le bit 3. -Le bit Z (Zero), est mis 1 quand un rsultat arithmtique ou logique est nul. -Le bit PD (Power Down), est mis 1 lors de la mise sous tension ou lors de l'excution de CLRWDT. Ce bit est mis 0 par l'instruction SLEEP. -Le bit TO (Time Out), est mis 1 lors de la mise sous tension ou lors de l'excution des instructions CLRWDT et SLEEP. Ce bit est mis 0 si le timer chien de garde dborde. -Le bit RP0 sert slectionner la page des registres
Le registre de travail est l'quivalent des accumulateurs des microcontrleurs classiques. C'est travers l'Unit Arithmtique et Logique que s'effectuent les oprations arithmtiques et boolennes entre les donnes d'un registre et le registre de travail W.
V-Jeu d'instructions :
V-1definition:
Les PICs sont conus selon une architecture RISC( reducd instruction set computer). Une architecture RISC propose un jeu d'instructions relativement rduit. Les modes d'adressage sont plus simples que dans une architecture CISC. L'architecture propose en gnral un nombre important de registres gnraux. Ces caractristiques favorisent une utilisation optimale du pipeline au niveau de la micro-architecture.
Oprande f,d f,d f f,d f,d f,d f,d f,d f,d f,d f f,d f,d f,d f,d f,d
Description Add W and F AND W with f Clear f Clear W Complement f Decrement f Decrement f, Skip if 0 Increment f Increment f, Skip if 0 Inclusive OR W with f Move f Move W to f No Operation Rotate Left throogh Carry Rotate Right throogh Carry Subtract W from f Swap nibbles in f Exclusive OR W with f
C C C, DC, Z Z
Mnmonique Oprande BCF BSF BTFSC BTFSS f,b f,b f,b f,b Bit Clear f Bit Set f
Description
Bits affects
VII-Le timers
Il sagit dun compteur/temporisateur,le microcontroleur le PIC16F84 ne comporte quun seul timer sur 8 bits. Les diffrents modes de fonctionnement: -on peut compter les impulsions recues sur la pin RA4/TOKI. -on peut compter les cycles dhorloge du PIC meme. Objectifs : Les Timers ou compteurs de temps coul permettent : -De raliser des temporisations prcises puisquils utilisent des oscillateurs de rfrence quartz. -De gnrer des signaux lectriques 0V / 5V. -De mesurer des dures. -De compter des vnements extrieurs sur des fronts montants ou descendants.
VIII-Les interruptions
Une interruption provoque larrt du programme principal pour aller excuter une procdure d'interruption. A la fin de cette procdure, le microcontrleur reprend le programme principal lendroit o il la laiss. A chaque interruption sont associs deux bits, un bit de validation et un drapeau. Le premier permet d'autoriser ou non l'interruption, le second permet au programmeur de savoir de quelle interruption il s'agit.
Dans cette exprience on va essayer dallumer les LEDs relis au pins B0 B7 et les teindre dans un premier temps de la faon suivante :
Explication du programme
Pour commencer on doit mettre tout les pins comme sortie en utilisant le TRISB=0; Et vu quon va allumer tout les LEDs on doit crire les 2commandes suivantes : PORTB=0B11111111; PORTB=0; permet davoir une tension de 5V
On doit insrer la commande delay_ms(1000) pour quon puisse voire lallumage des LEDs car le microcontrleur excute les 2 premires commande tellement vite quon saura pas voire les 2 actions
void main() { TRISB=0;PORTB=0; loop: PORTB=0B00000001;delay_ms(500); //L0 ON PORTB=0B00000011;Delay_ms(500); //L0,L1 ON PORTB=0B00000111;delay_ms(500); //L0,L1,L2 ON PORTB=0B00001111;delay_ms(500); //L0,L1,L2,L3 ON PORTB=0B00011111;delay_ms(500); //L0,L1,L2,L3,L4 ON PORTB=0B00111111;delay_ms(500); //L0,L1,L2,L3,L4,L5 ON
PORTB=0B01111111;delay_ms(500); //L0,L1,L2,L3,L4,L5,L6 ON
PORTB=0B11111111;delay_ms(500); //L0,L1,L2,L3,L4,L5,L6,L7 ON
PORTB=0B00000000;delay_ms(500); //ALL LEDs OFF
FIN