Le Conflit Des Generation
Recherche de Documents : Le Conflit Des Generation. Rechercher de 53 000+ Dissertation Gratuites et Mémoires............................. 10 I.13 Les interruptions ...................................................................................................... 10 I.13.1 Déroulement d'une interruption ......................................................................... 10 I.13.2 L'interruption INT (Entrée RBO DU PORTB) ........................................................ 11 I.13.3 L'interruption RBI (RB4 A RB7 DU PORTB).......................................................... 11 I.13.4 L'interruption T0I : Débordement du Timer TMR0 ............................................... 11 I.13.5 L'interruption EEI : Fin d'écriture dans l'EEPROM................................................. 11 I.14 L'adressage indirect.................................................................................................. 11 I.15 Le conteur programme ............................................................................................. 11 I.15.1 GOTO calculé.................................................................................................... 12 I.16 Les indicateurs ......................................................................................................... 12 I.17 Les instructions du 16F84 ......................................................................................... 12 I.17.1 Les instructions « orientées octet » (adressage direct) ........................................ 12 I.17.2 Les instructions « orientées bits » ...................................................................... 13 I.17.3 Les instructions opérant sur une donnée (adressage immédiat) ........................... 13 I.17.4 Les instructions de saut et appel de procédures .................................................. 13 I.17.5 Le jeu d'instructions .......................................................................................... 14 I.17.6 Etat de quelque registre à l'initialisation.............................................................. 14 Les outils de développement ............................................................................................ 15 II.1 Deux mot sur MPLAB ................................................................................................ 15 II.2 Les directives de MPASM .......................................................................................... 16 II.2.1 Les directives les plus utilisées ........................................................................... 16 II.3 Format des nombres ................................................................................................ 17 II.4 Structure d'un programme écrit en assembleur .......................................................... 17 II.5 Exemples de programme .......................................................................................... 19 II.6 Références............................................................................................................... 22
II
3
INTRODUCTION
Un PIC est un microcontrôleur, c’est une unité de traitement de l’information de type microprocesseur à laquelle on a ajouté des périphériques internes permettant de faciliter l'interfaçage avec le monde extérieur sans nécessiter l’ajout de composants externes. Les PICs sont des composants RISC (Reduce Instructions Construction Set), ou encore composant à jeu d’instructions réduit. L'avantage est que plus on réduit le nombre d’instructions, plus facile et plus rapide en est le décodage, et plus vite le composant fonctionne. La famille des PICs est subdivisée en 3 grandes familles : La famille Base-Line, qui utilise des mots d’instructions de 12 bits, la famille Mid-Range, qui utilise des mots de 14 bits (et dont font partie la 16F84 et 16F876), et la famille High-End, qui utilise des mots de 16 bits. Nous nous limiterons dans ce document à la famille Mid-Range et particulièrement au PIC 16F84, sachant que si on a tout assimilé, on pourra facilement passer à une autre famille, et même à un autre microcontrôleur. • • • Pour identifier un PIC, on utilise simplement son numéro : Les 2 premiers chiffres indiquent la catégorie du PIC, 16 indique un PIC Mid-Range. Vient ensuite parfois une lettre L, celle-ci indique que le PIC peut fonctionner avec une plage de tension beaucoup plus tolérante. Vient en suite une ou deux lettres pour indiquer le type de mémoire programme : - C indique que la mémoire programme est une EPROM ou plus rarement une EEPROM - CR pour indiquer une mémoire de type ROM - F pour indiquer une mémoire de type FLASH. On trouve ensuite un nombre qui constitue la référence du PIC. On trouve ensuite un tiret suivi de deux chiffres indiquant la fréquence d’horloge maximale que le PIC peut recevoir.
• •
Donc, un 16F84-04 est un PIC Mid-Range donc la mémoire programme est de type FLASH de référence 84 et capable d’accepter une fréquence d’horloge de 4MHz. Notez que les PICs sont des composants STATIQUES, c’est à dire que la fréquence d’horloge peut être abaissée jusque l’arrêt complet sans perte de données et sans dysfonctionnement. Une version –10 peut donc toujours être employée sans problème en lieu et place d’une –04. Pas l’inverse, naturellement.
Pourquoi choisir un PIC ?
• • • • • • • Les performances sont identiques voir supérieurs à ses concurrents Les prix sont les plus bas du marché Très utilisé donc très disponible Les outils de développement sont gratuits et téléchargeables sur le WEB Le jeu d'instruction réduit est souple, puissant et facile à maîtriser Les versions avec mémoire flash présentent une souplesse d'utilisation et des avantages pratiques indéniables La communauté des utilisateurs des PICs est très présente sur le WEB. On trouve sur le net quasiment tout ce dont on a besoin, tutoriaux pour démarrer, documents plus approfondis, schémas de programmeurs avec les logiciels qui vont avec, librairies de routines, forums de discussion . . .
4
I
• • • • • • • • • • • •
LE PIC 16F84
Les caractéristiques principales du 16F84 sont : Une mémoire programme de type flash de 1K (1024) mots de 14 bits Une mémoire RAM constituée : o Des registres de control SFR (Special Function Registers) o 68 octets de RAM utilisateur appelés aussi GPR (General Propose Resisters) Une mémoire EEPROM de donnée de 64 octets Deux ports d'entrée sortie, un de 8 bits et un de 5 bits Un timer/Compteur cadencé par une horloge interne ou externe Un chien de garde / compteur qui est un timer particulier Un prédiviseur de fréquence programmable permettant d'étendre les possibilités du Timer TMR0 et du chien de garde WDT 4 sources d'interruption L'horloge peut être générée par 4 types d'oscillateurs sélectionnables Protection de code Fonctionnement en mode sleep pour réduction de la consommation Programmation par mode ICSP (In Circuit Serial Programming)
PORTA Horloge système Prédiviseur Horloge WDT
PORTB timer TMR0 WDT timer
W ALU 16 registres système RAM utilisateur 64 octets EEPROM 64 octets
14 bits : config
Mémoire programme de type Flash 1024 mots de 14 bits
I.1
Aspect externe du 16F84
Le 16F84 est commercialisé dans un boîtier 18 broches classique
RA2 RA3 RA4/T0CKI MCLR VSS RB0/INT RB1 RB2 RB3
1 18 2 17 3 16 4 PIC 15 5 16F8X 14 6 13 7 12 8 11 9 10
RA1 RA0 OSC1 OSC2 Vdd RB7 RB6 RB5 RB4
Fig. I-1 : brochage du 16 F84
5
I.2
La mémoire programme (flash)
Cette mémoire de 1024 mots stocke le programme. Elle est non volatile et reprogrammable à souhait. Chaque position de 14 bits contient une instruction. L'emplacement du programme peut se situer à n'importe quel endroit de la mémoire. Cependant il faut savoir que suite à un RESET ou lors de la mise sous tension, le PIC commence l'exécution à l'adresse 0000H. De plus, lorsqu'il y a une interruption, le PIC va à l'adresse 0004H. Il est donc conseillé de placer le début du programme après l'adresse 0004H et de mettre un branchement au début du programme à l'adresse 0000H et un branchement au début de la routine d'interruption s'il y en a une à l'adresse 0004H. Le programme est implanté dans la flash à l'aide d'un programmateur (hard+soft) sur lequel nous reviendrons dans la suite de ce document.
I.3
•
La mémoire RAM - Rrgistres
bank 0 INDF TMR0 PCL STATUS FSR PORTA PORTB EEDATA EEADR PCLATH INTCON bank 1 INDF OPTION PCL STATUS FSR TRISA TRISB EECON1 EECON2 PCLATH INTCON
La mémoire
...