You are on page 1of 13

Formation Pic Cellule Robotique et Projet Innovent

Hjdjqknkdj

Chapitre 1

Plan :
P2 P3 P4 P5 P6 P9 P 11 P 11 P 11

Cest quoi un PIC? Pourquoi un microcontrleur Prsentation du pic 16F877 Organisation du Pic 16F877 Mmoires Entres / Sorties Unit de calcul Priphriques Registres (W, STATUS, OPTION, PCL & PCLATH)

Formation Pic Cellule Robotique et Projet Innovent


Hjdjqknkdj

Chapitre 1
Pic ! Cest quoi ?

PIC = microcontrleur dune socit amricaine qui sappelle MICROCHIP Microcontrleur = mini environnement informatique qui se compose dun microprocesseur, une mmoire programme, une ram, des entres /sorties et des priphriques. Microprocesseur : se compose dune unit de calcule arithmtique et logique et un compteur programmes (cest le squenceur qui indique lunit arithmtique et logique quelle instruction va excuter); cest le cerveau de microcontrleur. Mmoire programme : cest la mmoire qui contient le programme (les instructions) excuter par le microcontrleur. RAM : cest la mmoire qui contient les variables dclares dans le programme. Les entre / sorties : sont les ports ou bien linterface de communication de C avec les autres units (capteurs, moteurs, leds, boutons poussoirs, les afficheurs ). Les priphriques : sont des fonctionnalits intgres dans le C pour faciliter le traitement (interruptions, timers, Convertisseur analogique numrique ) ou bien la communication avec des protocoles standards (port USART, USB, SPI, I2C, Port parallle ).

Formation Pic Cellule Robotique et Projet Innovent


Hjdjqknkdj

Chapitre 1
Pourquoi un C :

Parfois lutilisation des systmes combinatoires (port logiques, dcodeurs ) et systmes squentiels (bascules, compteurs ) rend le systme trs encombrant, complexe et coteux. Un autres dfaut aussi est une fois conus il nest plus possible de changer le fonctionnement .Tous ces dfaut sont quasi inexistant dans les C .Donc le C a pour rle de construire des systmes avec une grande souplesse et bas cot.

Prsentation du Pic 16F877 :

Formation Pic Cellule Robotique et Projet Innovent

Chapitre 1

Formation Pic Cellule Robotique et Projet Innovent


Hjdjqknkdj

Chapitre 1

Organisation du PIC 16F877:

Formation Pic Cellule Robotique et Projet Innovent

Chapitre 1

Mmoires du 16F877 :

I. Mmoire: le pic possde deux types de mmoire ; FLASH programme, Mmoire de donnes. FLASH programme : cest la mmoire qui contient le programme excuter par le lunit arithmtique et logique. Elle est organise de la manire suivante :

Formation Pic Cellule Robotique et Projet Innovent


Hjdjqknkdj

Chapitre 1

Explication :

8 stack level : cest la pile du pic , elle se compose de 8 cases de 13 bit


(nombre de bits pour adresser 8K de mmoire : 8K =8196= 2^13); cest--dire quelle empile la valeur de compteur programme aprs chaque fois on utilise linstruction call ou chaque interruption .Et quelle dpile la valeur de compteur programme aprs chaque instruction de return , retfie , retlw .Elle permet au programme de retourner a position initiale aprs chaque retour dun sous programmes ou un retour de programme dinterruption.

Ladresse 0x0000 : cest ladresse o le programme commence aprs


dmarrage ou aprs un reset.

Ladresse 0x0004 : cest ladresse laquelle le programme se branche aprs


une interruption (interruption = vnement avec une priorit suprieure celle du programme principale).

0x0005 jusqu 0x1FFF : est le reste de la mmoire et se compose de 4 pages


chacune dune capacit de 2K Remarque : pour savoir pourquoi cette notion de pages veuillez lire les dtails sur le registre PC (programme counter) dans la suite de ce chapitre. Mmoire de donne : il existe deux types : RAM et EEPROM

RAM : cest une mmoire volatile (donnes perdues aprs une coupure de
courant sur le C). Elle sert contenir les donns et les valeurs des variables dclares dans le programmes .Elle contient aussi les registres du pic et qui sont ncessaire au contrle des priphriques et la bonne excution de programme. Elle est organise de la faon montre dans le schma suivante: Remarque : La Ram est divise en quartes parties quon appelle les banques et pour lire ou crire sur un registre ou variable qui se situe dans une banque spcifique il faut sassurer quon est positionn dans cette banque .Pour faire il existe deux bits dans le registre STATUS qui permet de raliser a et on va les voir dans la suite de ce chapitre aussi.

Formation Pic Cellule Robotique et Projet Innovent


Hjdjqknkdj

Chapitre 1

Formation Pic Cellule Robotique et Projet Innovent


Hjdjqknkdj

Chapitre 1

EEPROM : cest une mmoire non volatile. Elle sert contenir les donns
dont on aura besoin aprs un reset ou coupure de courant sur le pic. Elle est dune taille de 256 octets pour le pic 16F877.

Entres & Sorties :

Les ports sont les outils qui permettent au PIC de communiquer avec le monde extrieur. Ce sont un ensemble dentre/sorties qui possde des proprits particulires chacune. Le Pic 16F877possde 5 ports dentre sortie savoir : 1. Le Port A : port sur 6bits dont ses proprits sont rsumes dans le tableau :

Remarque : TTL signifie quil envoi sur a sortie 0V pour le 0 logique et 5V pour le 1 logique. Idem pour lentre 5V lue comme 1 et 0V comme 0 ST signifie quil fonctionne on trigger de schmitt si il est configur en entre. IE : il a deux seuils de comparaison Drain signifie que la sortie ne peut pas envoyer 5V pour le 1 logique mais laisse la branche flottante c'est--dire en air. 2. Le Port B : port sur 8 bits. Ses proprits sont rsumes dans le tableau :

Formation Pic Cellule Robotique et Projet Innovent

Chapitre 1

Remarque : Les autres proprits seront expliques plus tard. 3. Le Port C : port sur 8 bits. Ses proprits sont rsumes dans le tableau :

4. Le Port D : port sur 8 bits. Ses proprits sont rsumes dans le tableau :

5. Le Port E : port sur 3 bits. Ses proprits sont rsumes dans le tableau :

Formation Pic Cellule Robotique et Projet Innovent


Hjdjqknkdj

Chapitre 1
Unit de Calcul :

Cest la partie intelligente du pic. Elle peut faire des oprations arithmtiques hardware (laddition, soustraction, ajouter 1<incrmentation>, soustraire 1<dcrmentation>, division par 2, multiplication par deux), des oprations arithmtiques software (multiplication et division) et des oprations logiques (AND, OR, XOR et complment 1) et dautres oprations. Ce quil faut savoir de plus cest que la plupart des oprations effectues par cette unit sont entre un registre ou variable et le registre de travail W.

Les Priphriques :

Le Pic 16F877 possde une varit non ngligeable de priphriques savoir : - 2 timers 8 bits ; Timer0 avec un pr diviseur et le Timer2 avec un pr diviseur et un post diviseur. - 1 timer 16 bits avec un pr diviseur - 14 sources dinterruption interne et externe - 2 module CCP (Compare Capture PWM) - Convertisseur analogique numrique 10 bits et 8 canaux - Module USART (Universal Synchronous Asynchronous Receiver Transmitter) - Module SSP (Synchronous Serial Port) avec SPI (mode maitre) et I2C (maitre/esclave) - Module PSP (Parallel Slave Port). Une partie de ces priphriques qui nous intressent seront tudi et dtaill dans chapitres suivants.

Les Registres :

Nous allons voir dans cette section quelques registres du Pic 16F877 : - W : Cest le registre de travail. Cest un registre 8bits directement li lunit arithmtique et logique UAL, en effet cest lespace de travail de lUAL. - STATUS : Cest le registre dtat. Cest un registre 8bits o on trouve des infos sur la dernire opration de lUAL. Il permet aussi de choisir la banque RAM (Jespre que vous souvenez ce que veut dire la banque RAM) dans laquelle on veut travailler. Voir lexplication ci-dessous pour plus de dtail :

Formation Pic Cellule Robotique et Projet Innovent

Chapitre 1

b0 : C Carry (report) Ce bit est en fait le 9me bit dune opration. Par exemple, si une addition de 2 octets donne une valeur >255 (0xFF), ce sera positionn 1. b1 : DC Digit Carry Ce bit est utilis principalement lorsque lon travaille avec des nombres BCD : il indique un report du bit 3 vers le bit 4. Pour info, un nombre BCD est un nombre dont chaque quartet reprsente un chiffre dcimal. b2 : Z Zro Ce bit est positionn 1 si le rsultat de la dernire opration vaut 0. b3 : PD\ Power Down Indique quel vnement a entran le dernier arrt du PIC (instruction sleep ou dpassement du temps du watchdog). PD\= 0 : Sleep PD\= 1 : Watchdog b4 : TO\ Time-Out bit Ce bit indique (si 0), que la mise en service suit un arrt provoqu par un dpassement de temps ou une mise en sommeil. Dans ce cas, PD effectue la distinction. b5-6 : RP0-RP1 Register Bank Select Ces deux bits permettent de slectionner la banque RAM dans laquelle on veut travailler. 11 : banque 3 (180h - 1FFh) 10 : banque 2 (180h - 1FFh) 01 : banque 1 (180h - 1FFh) 00 : banque 0 (180h - 1FFh) B7 : IRP Indirect RP Permet de dcider quelle banque on adresse dans le cas de ladressage indirect (que nous verrons plus tard). - OPTION : Cest un registre 8bits qui possde divers fonctions :

B7 : RBPU Ce bit permet de mise en service (RBPU=0) les rsistances de rappel sur le PORTB B6 : INTEDG Ce bit permet le front sur lequel RB0 dclenche linterruption INTEDG = 0 : front descendant INTEDG = 1 : front montant

Formation Pic Cellule Robotique et Projet Innovent

Chapitre 1

B5 : TOCS Ce bit permet de slectionner lhorloge de Timer0 TOCS = 1 : Transition en RA4 TOCS = 0 : lhorloge interne du PIC B4 : TOSE Ce bit permet de slectionner le front de la pine RA4 pour incrmenter le Timer0 TOCS = 1 : front descendant TOCS = 0 : front montant B3 : PSA Ce bit permet de dterminer si le pr diviseur sera appliqu au Timer0 ou au Watchdog. PSA = 1 : Pr diviseur pour le watchdog PSA = 0 : Pr diviseur pour le timer0 B2-1-0 : PS2 PS1 PS0 : Ces trois bits permet de dterminer la valeur de pr diviseur

- PC : Compteur programme. Cest un registre 13 bits (reprsent comme deux registre PCL=8bits et PCLATH = 5 bits). Il contient ladresse de linstruction suivante excuter par lUAL. 13 bits pour adresser une plage de 8 K (2^13 = 8196 = 8K), cest bien la taille totale de la mmoire flash programme. NB : le compteur programme extrait ladresse suivante de linstruction courante ; soit il ajout 1 (pour BSF, BCF, MOVLW) soit il ajout deux (pour BTFSC, BTFSS si il y a un saut, en verra les dtails des instructions dans le chapitre suivant) soit il charge une adresse sur 11 bits extraite des deux instructions CALL et GOTO. Si vous remarquer les 11 bits permettent un adressage de 2K, cest pour cela la mmoire programme est divis en 4 pages 8K = 4x2K comme on a indiqu prcdemment.

You might also like