30.07.2015 Views

La programmation des PICs - Seconde partie

La programmation des PICs - Seconde partie

La programmation des PICs - Seconde partie

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.3.1 PCLATH et les calculs d’adresseCette limitation existe ici aussi de la même manière. Donc, nous devrons donc utilisernotre PCLATH en suivant les recommandations suivantes :- En cas d’opération sur PCL, la valeur sur 8 bits obtenue est complétée par PCLATH pourformer l’adresse de <strong>des</strong>tination effective. Supposons donc que nous fassions une additionde w par rapport à PCL. Où va pointer alors le pointeur de programme (PC) ?Voici le contenu de PC après l’addition :b7 à b0 seront en fait le contenu effectif de PCLb12 à b8 seront les bits b4 à b0 de PCLATH.Exemple d’opération qui s’applique dans ce cas :movlw B’10010’movwf PCLATHmovlw 0x22addwf PCL , f; charger valeur; initialiser PCLATH; charger valeur; sauter plus loinPCLATH (5 bits)PCL (8 bits)B4 B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0PC(13 bits) = adresse de sautB12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0Ce fonctionnement est strictement identique à celui expliqué dans le cadre du 16F84.Si on prend comme exemple concret le résultat suivant :- PCL vaut B’11011010’ après l’addition- PCLATH a été initialisé à B’00010010’ par l’utilisateur. Notez que b7 à b5 sont inutilisés.- Le saut final s’effectuera donc à l’adresse B’1001011011010’ après l’addition, soit0x12DA.PCLATH (5 bits)PCL (8 bits)1 0 0 1 0 1 1 0 1 1 0 1 0PC(13 bits) = adresse de saut1 0 0 1 0 1 1 0 1 1 0 1 03.3.2 PCLATH et les sauts directsEt oui, avec ce processeur survient un autre problème, problème que nous n’avions pasrencontré cette fois avec le 16F84.Si vous examinez le jeu d’instructions du 16F876 dans le détail, vous allez vousapercevoir qu’il est strictement identique à celui du 16F84, et, de ce fait, présente les mêmeslimitations.19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!