Vous êtes sur la page 1sur 18

Premiers pas avec MPLAB 8.

0
Microchip propose pour le dveloppement de ses microcontrleurs, un Environnement de
Dveloppement Intgr ou IDE, sous la forme dun logiciel du nom de MPLAB, tlchargeable
gratuitement sur le site de Microchip.
MPLAB permet, entre autres, dditer le code source de votre programme en assembleur, de le
compiler, le simuler, de dboguer laide du module ICD2 par exemple, et de programmer le circuit
cible laide ce mme module.

1 Crer un projet
Aprs
avoir
lanc
le
programme
> Microchip MPLAB IDE ,
crer un nouveau projet laide de lassistant :

par

Dmarrer -> Tous les Programmes -

Choisir le circuit cible (PIC16F877 ou 16F877A) lors de la premire phase, puis les outils lors de la
seconde (laisser les options par dfaut) et le rpertoire de travail lors de la troisime phase. On pourra
crer par exemple un rpertoire TP1.

Denis Rabast
IUFM Aix Marseille

programmation des microcontrleurs PIC

1/18

premiers pas avec MPLAB 8.0

Ajouter ensuite le fichier PROG_1.asm qui se trouve dans le rpertoire Ressources / TP1 .
Ce programme est celui tudi au chapitre prcdent et est reproduit en annexe 1.
La dernire fentre rcapitule les actions prcdentes.

Ouvrir ensuite le rpertoire que vous avez charg (si la fentre de navigation dans le projet ne
souvre pas, faire View -> Project ) et le sauvegarder, dans votre rpertoire, sous un nom diffrent
(Prog1_mplab.asm par exemple).

Par un clic droit dans le navigateur de projet sur le rpertoire Sources Files , accder au menu
contextuel, pour ajouter au projet le nouveau fichier que vous venez de sauvegarder.
Supprimer lancien du projet (clic droit sur le nom).

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

2/18

premiers pas avec MPLAB 8.0

Par un double clic sur le nom du fichier restant, ouvrir celui-ci et analyser le code source.

2 Compiler
Compiler le fichier, la compilation devant se drouler sans problmes, comme lindique la fentre
Output de la figure suivante.

Si une erreur se produit lors de la compilation, un double clic sur la description de cette erreur dans la
fentre Output , ouvre le code source, le curseur se trouvant lendroit de lerreur.

3 Vrifier la mmoire programme


MPLAB permet de visualiser se qui va tre crit dans la mmoire programme.

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

3/18

premiers pas avec MPLAB 8.0

Vrifier que les instructions du code sources sont bien aux adresses prvues.
Remarque : sur un emplacement mmoire non utilis, tous les bits sont 1 ce qui correspond
linstruction de mnmonique ADDLW 0xff .

4 Simuler
Choisir ensuite le simulateur de MPLAB comme outil de simulation, et ouvrir une fentre de
visualisation.

Placer dans cette fentre tous les lments intervenant dans notre programme comme indiqu ciaprs :

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

4/18

premiers pas avec MPLAB 8.0

Ajouter, par le menu contextuel de la barre du nom des colonnes (clic droit) une colonne Hex afin
dobtenir les valeurs en hexadcimal du contenu des registres.
Une barre doutil permet de commander le simulateur :
- icne 1 : mode Run , la simulation est excut grande vitesse, jusqu un point darrt ou
lappui sur licne Halt ;
- icne 2 : Halt , arrte le mode Run et Animate ;
- icne 3 : mode Animate , excute le programme lentement jusqu lappui sur Halt ;
- icne 4 : mode Step Into , excute le programme pas pas en passant dans tous les sous
programmes ;
- icne 5 : mode Step Over , excute le programme pas pas sans passer dans les sous
programmes ;
- icne 6 : mode Step Out , excute le programme pas pas en sortant des sous
programmes ;
- icne 7 : mode Reset , place le compteur programme ladresse 0x0000.
Remarques :
- si on souhaite initialiser la valeur dun registre, il suffit de cliquer deux fois sur celle-ci, et
entrer la nouvelle valeur ;
- il est possible, pour des programmes plus complexes, de dfinir jusqu 4 fentres de
visualisation.
Lancer une simulation en mode pas pas et observer lvolution des diffrents registres.

On notera que la ligne pointe par la flche verte dans le programme nest pas la ligne en cours
dexcution, mais celle qui va tre excut au cycle suivant, de mme que PCL pointe ladresse qui va
tre excute et non celle en cours dexcution.

4.1

Une erreur classique

On a pu constater que le programme prcdent permettait de faire basculer la sortie PB0. De


nombreuses erreurs de programmation avec les microcontrleurs PIC sont dues une criture dans
la mauvaise banque : nous aurions pu oublier par exemple de revenir en banque 0 dans notre
programme aprs la phase dinitialisation du port B.
Observons ce qui ce passe alors en plaant un ; devant la ligne suivante du programme source :
bcf
STATUS, RP0
; retour en banque 0
compiler, simuler et observer les diffrences.
Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

5/18

premiers pas avec MPLAB 8.0

5 Le mode dbogage
Le mode dbogage permet de simuler le pic en situation, tout en gardant le contrle du
microcontrleur (mode pas pas, observation de registres etc).
Cette solution est moins onreuse que lmulateur, mais utilise certaines ressources du circuit cible :
- des ressources matrielles - bornes PGC et PGD (qui sont aussi RB6 et RB7 sur le PIC
16F877A) ainsi que Vpp/MCLR ;
- des ressources logicielles : implantation dun programme en mmoire haute, utilisation de
registre, de la pile.
Le chien de garde, la protection contre la relecture, la protection de relecture de lEEPROM doivent
tre de plus dsactivs, ainsi que la programmation basse tension ; loscillateur doit avoir la
configuration correspondant la cible.
Si ce nest pas encore fait :
- connecter lICD 2 au port USB du PC ;
connecter la carte PICDEM 2 PLUS lICD2 ;
- alimenter la carte par le bloc secteur.
Il est possible que le systme dexploitation souhaite installer les pilotes de lICD2.
Le
fichier
demand
icd2w2kl.inf
se
trouve
dans
C:\Program Files \ `Microchip \ MPLAB IDE \ ICD2 \ Drivers .

le

rpertoire

Slectionner dans un premier temps lICD2 comme dbogueur, la fentre Output devant signaler
quelle a bien reconnu ce module.

En cas de problme, on pourra vrifier que :


- le circuit install sur la carte est bien celui dclar au logiciel ;
- la connectique est correcte, la carte correctement alimente ;
- les paramtres sont corrects, en particuliers en ce qui concerne lalimentation de la carte (qui
nest pas alimente depuis lICID2 dans notre cas).

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

6/18

premiers pas avec MPLAB 8.0

Il faut ensuite prciser que la compilation effectuer est destine au mode dbogage (un morceau
de programme va tre ajout en partie haute de la mmoire programme, afin de contrler le circuit
cible).
Compiler ensuite, puis programmer (attention depuis le menu Debugger et non Programmer )
le circuit cible.

La dmarche est ensuite identique la simulation, mais cest le circuit cible qui fonctionne rellement.
Vrifier en mode pas pas que lon a bien le fonctionnement attendu et que la DEL sallume et
steint.

6 Programmer
Pour programmer le circuit cible, il faut dabord prciser au logiciel quel programmateur on va utiliser
(ici lICD2), vrifier que le programmateur est bien dtect (fentre Output ).
En cas de problme, on pourra vrifier que :
- le circuit install sur la carte est bien celui dclar au logiciel ;
- la connectique est correcte, la carte correctement alimente ;
- les paramtres sont correctes dans Programmer -> Settings , en particuliers en ce qui
concerne lalimentation de la carte (qui nest pas alimente depuis lICID2 dans notre cas) ;
- le pilote icd2w2kl.inf de lICD2 est install (voir chapitre prcdent).

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

7/18

premiers pas avec MPLAB 8.0

On prcisera galement que la compilation doit se faire maintenant en mode Release et non
Debug
Lancer ensuite la compilation et programmer.

Dconnecter le cordon RJ45 de la carte PICDEM 2 PLUS ; la DEL clignotant frquence leve, elle
semble allume en permanence et il nest pas possible de constater lil le clignotement.
Si nous souhaitons voir clignoter la DEL, il va falloir diminuer la frquence de commande.

7 Modification du programme
Afin de ralentir la frquence de la sortie RB0 nous allons inclure dans notre programme une boucle de
temporisation.
La version modifie est disponible dans le dossier Ressources / TP1 mplab / Prog2.asm . On
trouvera ce programme reproduit en annexe 2.
Ajouter ce programme au projet et supprimer lancien du projet (il reste malgr tout disponible dans
notre rpertoire).
Etudier ce nouveau programme.
On notera en particuliers :
- lutilisation de la directive #DEFINE pour remplacer PORTB,0 par DEL
- la dclaration de variables en RAM par la directive EQU qui remplace T_INT et T_EXT
dans le programme, respectivement par 0x20 et 0x21 comme nous lavons vu pour le fichier
include ; attention 0x20 et 0x21 sont les adresses de T_INT et T_EXT et non leur contenu.
- lappel de sous programme pour linitialisation du port et la temporisation, ce qui amliore la
lisibilit de lensemble ;
Compiler le programme en mode ralisation par Project -> Build Configuration -> Release
puis Ctrl F10 .
Programmer le composant et vrifier que le fonctionnement du microcontrleur est bien celui attendu.
Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

8/18

premiers pas avec MPLAB 8.0

Revenons maintenant en mode simulateur, afin dtudier quelques fonctionnalits avances de celuici.

7.1

Les SFR et la pile

Prparer la simulation en ajoutant T_INT et T_EXT dans la fentre Watch comme nous lavons vu
prcdemment.
Ouvrir ensuite des fentres reprsentant le plan mmoire des fichiers et donnes, et enfin le contenu
de la pile.

Rinitialiser le programme par un Reset puis jouer sur les options Step Into , Step Over et
Step Out .

Observer dans un premier temps lvolution de T_INT et T_EXT, la fois dans la fentre Watch et
dans le plan mmoire des registres File Registers , ainsi que le contenu du compteur de
programme PC (adresse 02 du plan mmoire) en vrifiant quil est identique PCL pour ce petit
programme.
Observer ensuite lvolution du contenu de la pile et de PC lors des appels de sous programmes.

7.2

Les points darrts

Lorsque le simulateur fonctionne en mode Run , il est possible de placer des points darrts dans
le programme en double cliquant sur nimporte quelle ligne excutable. La simulation sarrtera alors
sur ce point lorsquelle y passera (si elle y passe !). Cet outil est trs pratique pour vrifier quun
programme passe bien par une sous-routine.

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

9/18

premiers pas avec MPLAB 8.0

Par le menu contextuel (clic droit), il est ensuite possible denlever compltement le point darrt, qui
disparat alors (un double clic a le mme effet), ou de le dsactiver, il reste alors un cercle rouge.
Tester ce mode de fonctionnement en plaant un point darrt dans la temporisation et lancer le mode
Run .
Supprimer les points darrts avant de passer au paragraphe suivant.

7.3

Le mode Trace

Ce mode permet denregistrer les actions du programme et le contenu des registres.

Dans le fentre de configuration de loscillateur, cocher loption Trace All et choisir


lenregistrement jusqu ce que le tampon soit plein, 1 K lignes (ce qui est suffisant pour notre
programme).
Lancer une simulation, qui va tre arrt au bout de 1024 lignes dexcution.
Ouvrir la fentre Simulator Trace .

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

10/18

premiers pas avec MPLAB 8.0

Un double clic sur une ligne de la fentre Trace ouvre une sous fentre avec la ligne de
programme correspondant.
Dans la fentre Trace on peut lire :
- le numro de la ligne de programme concerne ;
- ladresse Addr de la mmoire programme laquelle nous sommes ;
- le code Op de lopration ;
- ltiquette sil y en a une ;
- linstruction
- ladresse du registre sources SA ;
- la donne SD contenue dans ce registre avant lopration ;
- ladresse DA du registre destination ;
- la donne DD contenue dans le registre destination aprs lopration.

7.4

Mesure de temps

Il est galement de mesurer le temps entre deux instructions avec la fentre Stopwatch .

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

11/18

premiers pas avec MPLAB 8.0

7.5

vrifier dans un premier temps que le simulateur est bien paramtr pour un quartz de 4 MHz
( Debugger -> Settings -> Osc / Trace ) ;
ouvrir la fentre Stopwatch par le menu Debugger ;
rinitialiser la simulation, ce qui rinitialise les valeurs de la fentre ;
placer le curseur dans le programme, lendroit o lon souhaite dmarrer la mesure de
temps, puis par le menu contextuel (clic droit), faire Run to the cursor ; la fentre
Stopwatch affiche alors le nombre de cycle dinstructions coules depuis le reset et le
temps pass (dans notre cas 1 s par cycle) ;
initialiser la fentre Stopwatch par Zero ;
placer le curseur dans le programme lendroit o lon souhaite terminer la mesure, puis
amener la simulation jusqu cette ligne ;
la fentre Stopwatch affiche alors dans la premire colonne la dure depuis le Zero
(cest dire la dure de notre temporisation), ainsi que la dure depuis le dbut du
programme dans la colonne de droite ;
en cliquant sur Synch il est possible de resynchroniser la premire colonne sur la
seconde.

Analyseur logique

Il est possible de visualiser les signaux sous forme de chronogrammes.


Pour viter une simulation trop longue, modifier le programme pour que la frquence de RB0 soit
environ 1,5 ms puis compiler de nouveau.
Vrifier que la configuration du simulateur correspond bien une frquence de quartz de 4 MHz et
imposer une taille de tampon de 5 K lignes.
Ouvrir lanalyseur logique et ajouter le signal RB0 dans la slection.

Lancer la simulation en mode Run ; elle sarrte ds que le tampon est plein.
A laide des curseurs, vrifier que la priode est bien celle attendue, laffichage se faisant en temps
de cycle , qui vaut un quart de la priode du quartz dhorloge, soit 1 s.

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

12/18

premiers pas avec MPLAB 8.0

7.6

Simulation dvnements externes

On souhaite maintenant que la DEL ne clignote que si on appui sur le bouton poussoir S2 de la carte,
ce qui aura pour effet de mettre 0 le bit 4 du port A.
Modifier le programme (on trouvera un exemple de solution en annexe 4) :
- en dclarant une variable BP lie au bit 4 du port A par #DEFINE ;
- en configurant en entre ce bit (consulter la documentation) ;
- en ralisant le test de ce bit par une instruction du type btfsc ou btfss .
Introduire un stimuli et sur longlet Asynch de la fentre qui souvre (notre vnement sera
priori asynchrone) :
- par un clic gauche dans la colonne Pin/SFR on accde par un menu droulant aux
diffrentes entres ;
- par un clic gauche dans la colonne Action , on choisit laction lie cette entre ;
- il suffit ensuite, au moment de la simulation, de cliquer sur la colonne Fire pour
dclencher laction correspondante.

Simuler votre et programme et le tester sur le microcontrleur une fois quil est au point.

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

13/18

premiers pas avec MPLAB 8.0

Annexe 1 : Premier programme


;********************************************************************************:
; Ce programme gnre une horloge en RB0
; de frquence 24 fois plus faible que celle du quartz.
*
; il utilise la carte PicDem2Plus quipe d'un PIC16F877A
*
;********************************************************************************
LIST P=16F877A
; directive qui dfinit le processeur utilis
#include <P16F877A.INC>
; fichier de dfinition des constantes
;******************************************************************************
;
BITS DE CONFIGURATION
;******************************************************************************
__CONFIG _HS_OSC & _WDT_OFF & _CP_OFF & _CPD_OFF & _LVP_OFF
; _XS_OSC l'oscillateur est configur en oscillateur quartz haute frquence
; _WDT_OFF le watchdog est dsactiv
; _CP_OFF le code de protection de la mmoire programme est dsactiv
; _CPD_OFF le code de protection de la mmoire EEPROM est dsactiv
; _LVP_OFF la programmation basse tension est dsactive
; ces oprations sont ncessaires pour fonctionner en mode "debug"
;********************************************************************************
;
DEMARRAGE SUR RESET
*
;********************************************************************************
org
0x0
; Adresse de dpart aprs reset
goto
debut
org
0x10
; adresse de dbut du programme
debut
;********************************************************************************
;
INITIALISATION
*
;********************************************************************************
; initialisation du PORTB en sortie (voir datasheet)

bcf
bcf
clrf
bsf
movlw
movwf
bcf

STATUS, RP0
STATUS, RP1
PORTB
STATUS, RP0
b'00000000'
TRISB
STATUS, RP0

; passage en banque 0
; RAZ des bascules D
; passage en banque 1
; PORTB en sortie
; retour en banque 0

;********************************************************************************
;
PROGRAMME PRINCIPAL
*
;********************************************************************************
boucle
bsf
PORTB,0
; mise 1 de la sortie
nop
; 2 temps morts pour compenser le saut
nop
bcf
PORTB,0
; mise 0 de la sortie
goto
boucle
; rebouclage
END
; directive signalant la fin du programme
;*******************************************************************************

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

14/18

premiers pas avec MPLAB 8.0

Annexe 2 : Second programme


PROGRAMME PRINCIPAL

SOUS PROGRAMME ATTENTE

DEBUT

DEBUT

initialisation E/S

Initialisation T_EXT

ALLUMER DEL

Initialisation T_INT

T_INT<---- (T_INT-1)

SP ATTENTE

ETTEINDRE DEL

T_INT=0 ?
OUI

SP ATTENTE

NON

NON

OUI

T_EXT<---- (T_EXT-1)

NON

T_EXT=0 ?

NON

OUI OUI

RETOUR

;********************************************************************************:
; Ce programme fait clignoter la DEL de la sortie RB0 sur la carte PICDEM2PLUS
; une frquence de 2,5 Hz
*
*
;********************************************************************************
LIST P=16F877A
; directive qui dfinit le processeur utilis
#include <P16F877A.INC>
; fichier de dfinition des constantes
;******************************************************************************
;
BITS DE CONFIGURATION
;******************************************************************************
__CONFIG _HS_OSC & _WDT_OFF & _CP_OFF & _CPD_OFF & _LVP_OFF
; _XS_OSC l'oscillateur est configur en oscillateur quartz haute frquence
; _WDT_OFF le watchdog est dsactiv
; _CP_OFF le code de protection de la mmoire programme est dsactiv
; _CPD_OFF le code de protection de la mmoire EEPROM est dsactiv
; LVP_OFF la programmation basse tension est dsactive
; ces oprations sont ncessaires pour fonctionner en mode "debug"
;********************************************************************************
;
DEFINITIIONS
*
;********************************************************************************
#DEFINE DEL PORTB,0
;la DEL sur le port B, bit 0
;********************************************************************************
;
DECLARATION de VARIABLES
*
;********************************************************************************
T_INT
EQU 0x20 ; Variable de temporisation ladresse 0x20
T_EXT
EQU 0x21 ; Variable de temporisation ladresse 0x21
Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

15/18

premiers pas avec MPLAB 8.0

;********************************************************************************
;
DEMARRAGE SUR RESET
*
;********************************************************************************
org
0x0
; Adresse de dpart aprs reset
goto
debut
org

0x10

; adresse de dbut du programme

debut
;********************************************************************************
;
PROGRAMME PRINCIPAL
*
;********************************************************************************
call init
; linitialisation du port se fait par sous programme
boucle
bsf
DEL
; mise 1 de la sortie
call
tempo
bcf
DEL
; mise 0 de la sortie
call
tempo
goto
boucle
; rebouclage
;********************************************************************************
;
SOUS PROGRAMMES
*
;********************************************************************************
;********************************************************************************
;
INITIALISATION
*
;********************************************************************************
; initialisation du PORTB en sortie (voir datasheet)
init
bcf
STATUS, RP0
bcf
STATUS, RP1
; passage en banque 0
clrf
PORTB
; RAZ des bascules D
bsf
STATUS, RP0
; passage en banque 1
movlw b'00000000'
movwf TRISB
; PORTB en sortie
bcf
STATUS, RP0
; retour en banque 0
return
;********************************************************************************
;
TEMPORISATION
*
;********************************************************************************
; Fquartz=4MHz, Tcycle=4/Fquartz=1s
; boucle interne :environ 3 s .255= 765 s
; temps total du sous programme : environ 255.765 s, environ 200 ms
tempo
movlw
movwf
boucle_ext
movlw
movwf
boucle_int
decfsz
goto
decfsz
goto
return
END

Denis Rabast
IUFM Aix-Marseille

h'FF'
T_EXT

; initialisation de T_EXT FF

h'FF'
T_INT

; 1 cycle
; 1 cycle, initialisation de T_INT FF

T_INT,1
boucle_int
T_EXT,1
boucle_ext

; 1 ou 2 cycles, dcrmentation de T_INT


; 2 cycles
; 1 ou 2 cycles, dcrmentation T_EXT
; 2 cycles

; directive signalant la fin du programme

programmation des microcontrleurs PIC

16/18

premiers pas avec MPLAB 8.0

Annexe 3 : les ports A et B


Les ports dentres sorties sont configurables bit bit en entre ou en sortie par le registre TRIS du
mme nom que le port considr : lcriture dun NL0 sur le bit x du registre TRISY configure le bit x
du PORTY en sortie ( 0 comme Output , cest la valeur par dfaut aprs une rinitialisation)
tandis quun NL1 le configure en entre ( 1 comme Input ).
Particularit du port A :
- il sagit dun port 5 bits ;
- les bornes 0 3 sont multiplexes avec de fonctionnalits du CAN.
- la sortie 4 est drain ouvert
- la borne 4 est multiplexe avec la fonction entre dhorloge du timer 0 et sortie du
comparateur ;
- la borne 5 est multiplexe avec une fonction entre du CAN, entr pour la liaison srie
synchrone, et sortie du comparateur.
Particularit du port B :
- il sagit dun port 8 bits ;
- sur chaque borne il est possible de configurer par logiciel une rsistance de tirage vers le
haut ;
- le bornes 3, 6 et 7 sont multiplexe pour la programmation ;
- les entres 4 7 peuvent servir dentre dinterruption ;
Pour configurer une borne en entrs sortie numrique, le constructeur prconise :
- de rinitialiser le port ;
- de configurer les bornes en entres numrique sil y a un multiplexage avec une fonction
analogique ;
- dcrire dans le registre TRIS ;
Ci-aprs un exemple pour le port A ;

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

17/18

premiers pas avec MPLAB 8.0

Annexe 4 :exemple de solution


Exemple de solution pour la partie simulation dvnements externes ;
Seules les parties changer par rapport au programme prcdent ont t reproduites.
;********************************************************************************
;
DEFINITIIONS
*
;********************************************************************************
#DEFINE DEL PORTB,0
;la DEL sur le port B, bit 0
#DEFINE BP PORTA,4
;la DEL sur le port B, bit 0
;********************************************************************************
;
PROGRAMME PRINCIPAL
*
;********************************************************************************
call init
boucle
btfsc BP
; test du bouton poussoir
goto
boucle
; bouclage sur le test si BP=1
bsf
DEL
; mise 1 de la sortie
call
tempo
nop
; 2 temps morts pour compenser le goto
nop
bcf
DEL
; mise 0 de la sortie
call
tempo
goto
boucle
; rebouclage
;********************************************************************************
;
SOUS PROGRAMMES
*
;********************************************************************************
;********************************************************************************
;
INITIALISATION
*
;********************************************************************************
; initialisation du PORTB en sortie (voir datasheet)
; initialisation du bit 4 du PORTA en entre (voir datasheet)
init
bcf
STATUS, RP0
bcf
STATUS, RP1
; passage en banque 0
clrf
PORTB
; RAZ des bascules D du port B
clrf
PORTA
; RAZ des bascules D du port A
bsf
STATUS, RP0
; passage en banque 1
movlw b'00000000'
movwf TRISB
; PORTB en sortie
movlw 0x06
movwf ADCON1
; PORTA configur en numrique
movlw b'00010000'
movwf TRISA
; PORTA bit 4 en entre
bcf
STATUS, RP0
; retour en banque 0
return

Denis Rabast
IUFM Aix-Marseille

programmation des microcontrleurs PIC

18/18