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 .