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.

Les 4 possibilités concernant RP1/RP0 donnent donc :00 : Accès à la RAM 0x00 à 0x7F01 : Accès à la RAM 0x80 à 0xFF10 : Accès à la RAM 0x100 à 0x17F11 : Accès à la RAM 0x180 à 0x1FFNotez que la RAM située de 0x70 à 0x7F est accessible quel que soit l’état de RP0 et RP1.En effet, les zones correspondantes dans les autres banques sont en fait <strong>des</strong> images de cettezoneVoici <strong>des</strong> emplacements de mémoire RAM. Pour rappel, les « ( ) » dans les commentairessignifient « le contenu de » :variable1 EQU 0x25 ; adresse de la variable 1variable2 EQU 0x7E ; adresse de la variable 2variable3 EQU 0xA1 ; adresse de la variable 3movlw 0x50 ; charger 0x50 dans Wmovwf variable2 ; dans la case mémoire 0x7E, car indépendant de; RPxmovlw 0x30 ; charger 0x30 dans Wbcf STATUS , RP0 ; passage en banque 0bcf STATUS , RP1movwf variable1 ; placer dans la case mémoire 0x25movwf variable3 ; placer dans 0x21, car seuls 7 bits sont pris en; compte. Piège.bsf STATUS , RP1 ; passer en banque 2movf variable2 , W ; (0x17E) dans W, donc (0x7E), donc 0x50movwf variable1 ; 0x50 dans la case mémoire 0x125bsf STATUS , RP0 ; passage en banque 3movwf variable1 ; 0x50 dans la case mémoire 0x1A5Vous pouvez facilement voir les correspondances <strong>des</strong> adresses en utilisant le tableau 2.3page 13 du datasheet, ou avec la calculatrice de Windows. Si vous ne comprenez pas bien ouque vous doutez, procédez à la méthode suivante pour obtenir l’adresse concernée :1) Convertissez l’adresse en binaire avec la calculatrice Windows2) Entrez en binaire les 2 bits RP0 et RP13) Complétez avec les 7 bits à gauche de l’adresse binaire.Par exemple, pour la dernière ligne du précédent exemple :1) RP0/RP1 = 112) 25 en hexadécimal donne 100101 en binaire (attention, il n’y a que 6 chiffres, jecomplète donc par un 0 à gauche : 01001013) Ceci donne B’110100101’, soit 0x1A517

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

Saved successfully!

Ooh no, something went wrong!