Initiation électronique 32

nous revenons  sur les instructions suivantes :
;********************************************************************
; INITIALISATIONS                                                                                                     *
;********************************************************************
            clrf          PORTA                ; Sorties portA à 0
            clrf          PORTB                ; sorties portB à 0
            bsf          STATUS,RP0      ; sélectionner banque 1
            movlw     b'00000000'        ; configure le portB en SORTIES
            movwf     TRISB
            bcf         STATUS,RP0       ; repasser banque 0
            goto       start                       ; sauter au programme principal

L' instruction BSF  Status,RP0 : sélectionner la banque 1 ( Bank1 ) ? En fait le Pic ce compose comme ceci :

          

 

Nous avons deux niveaux ou Bank dans l' architecture du pic ; la Banque 0 ( 1er colonne ) qui commence à l' adresse 00 jusqu' à 7F puis la suite 80 à FF dans la Banque 1 ( 2em colonne ) . 


Pour passer de la banque 0 à 1 nous avons un registre spécial  STATUS dont le bit 5 : RP0  permet d' indiquer dans quelle banque nous travaillons  .Donc si le bit 5 est à 0 nous somme dans la Banque 0 et si il est à 1 = Banque 1 .

L' instruction BSF ( Bit Set F ) mettre à 1 un emplacement mémoire .

Syntaxe  bsf      f , b       ; le bit n° b positionné dans la case mémoire f sera mis à 1 .

et l' instruction complémentaire BCF ( Bit Clear F ) mettre à 0 un emplacement mémoire .

Syntaxe bcf      f , b        ; le bit n° b positionné dans la case mémoire f sera mis à 0 .
Donc si nous plaçons dans notre séquence d' initialisation :

           bsf          STATUS,RP0      ; sélectionner banque 1
           bcf         STATUS,RP0       ; repasser banque 0

le bit n° 5 RP0 de la case mémoire Status changera d' état , nous permettant de passer de la Banque 0 à 1 .

Et une fois en Banque 1 nous  allons avoir accès à TRISB .

          movlw     b'00000000'        ; configure le portB en SORTIES
          movwf     TRISB

Nous avons déjà vu l' instruction Movlw  place une valeur dans le registre W  , voici l' architecture du pic :

Le registre W sert de boite aux lettre pour stocker des données .

Une fois placé la valeur binaire b'00000000' dans W  nous appliquons l' instruction Movwf Trisb qui met la valeur W dans TIRSB . 

TRISB permet de configurer le PortB soit en entrées ou en  sorties ; il faut mettre des 0 et des 1 pour définir sont choix ; chaque bit positionné à 1 configure la broche du circuit en entrée ; et donc un 0 pour une sortie . Ainsi avec b'00000000' nous avons toutes les broches du PortB comme sorties . 

De la même façon nous pouvons configurer le PortA  avec TRISA

En exemple si vous voulez  3 entrées sur RA4, RB6 et RB7 
puis des sorties sur RA0, RA1,RA2,RA3,  RB0,RB1,RB2,RB3, RB5  
et rien sur RB4 .

Cela donne ( 0 = Sortie , 1 = Entrée ) :

            bsf          STATUS,RP0      ; sélectionner banque 1

            movlw     b'11111000'        ; configure le portA   
            movwf     TRISA

            movlw     b'11010000'        ; configure le portB 
            movwf     TRISB

            bcf         STATUS,RP0       ; repasser banque 0

Je vous rappel que sur un 16F84 il n' y a pas de sorties RA5,RA6,RA7 .Donc peu importe l' état , par contre nous avons dit que sur la broche RB4 il n' y avais rien donc pas câblé ; il est préférable de laisser les broches non utilisées en mode entrée  .
De toute façon lors du Reset toutes les pins sont configurées en entrées .

 

Dernière mise à jour le 14/04/2002 .

 

Retour                 Suite