Académique Documents
Professionnel Documents
Culture Documents
Le PIC 16F84 Livre
Le PIC 16F84 Livre
Pierre LOGLISCI
Le microcontrleur
PIC
16F84
Edition de lAuteur
Ddicace
Lorsque ce travail ntait quun manuscrit, mon plus grand problme fut
de savoir comment faire pour lui donner une forme dactylographique
acceptable pour tre lu par tous.
Je navais que trs peu de connaissances en ce qui concerne lutilisation
du clavier, des logiciels de traitement de texte et dimages, et du scanner...
Je ne savais pas comment crer les indispensables tableaux, ni comment
accder aux caractres spciaux....
Je navais aucune exprience de composition et de mise en page...
Bref : je ne savais pas comment my prendre pour faire en sorte quun tas
de feuilles gribouilles la main deviennent un livre...
Si jy suis parvenu, cest grce laide spontane et constante que ma
apporte ma fille Elodie qui - comme un guide de haute montagne - ma
prcd dans la difficile ascension en mouvrant des chemins faciles et srs,
toujours en se mettant ma place, dosant les difficults la mesure de
leffort quelle savait que jtais capable de fournir .
Sans jamais faire de concessions, elle sest de nombreuses fois oblige
chercher - chez elle, sur son propre PC - les solutions pratiques aux
problmes que je lui soumettais, au fur et mesure quils se prsentaient.
Pour son aide, bien sr ; mais aussi pour les constants encouragements
rpts quelle ma donns, lenthousiasme quelle a partag avec moi
pendant tout le temps que jai consacr au projet, et son doux sourire, dont
elle mentoure encore.
Avant-propos
Bien quil existe une dj abondante littrature sur les
microcontrleurs PIC en gnral, lamateur qui veut sattaquer une
ralisation personnelle utilisant le modle 16F84 ny arrive quau prix de
gros efforts.
Ceci cause du fait quil y a plusieurs modles de PIC qui, tout en
possdant la mme philosophie, diffrent sensiblement lun de lautre (par
le nombre dinstructions, le nombre de pages mmoire, le nom des
registres, la prsence ou labsence de ressources internes...) et droutent
celui qui en entreprend ltude pour la premire fois.
Or, si les ouvrages traitant les microcontrleurs PIC en gnral
sont nombreux, aucun naborde le 16F84 en particulier.
Dans ces conditions, le lecteur qui ne sintresse qu ce modle
exclusivement, doit se livrer tout un travail pour sparer ce qui est
important et ncessaire (parce que a concerne le 16F84) de ce qui est
superflu (parce que a ne concerne pas le 16F84 mais se rfre dautres
modles).
Aussi jai condens dans cet ouvrage les seules notions pratiques
ncessaires pour aborder un montage personnel base de 16F84.
Il y a plusieurs raisons cela.
En premier lieu, ce modle possdant une mmoire EEPROM
effaable lectriquement, simpose comme la solution idale pour ceux qui
veulent apprendre utiliser un microcontrleur PIC, du fait quil est
reprogrammable jusqu plus de 1.000 fois (selon les spcifications du
fabricant).
Associ de simples organes priphriques, il reprsente loutil
dapprentissage par excellence, car le lecteur peut tester tous les
programmes avec le mme microcontrleur et revenir sur les erreurs, les
corriger et rapidement re-tester lapplication.
6
Ce microcontrleur possde un fusible interne, accessible par
programmation, quil faudra se garder de laisser intact. Car lorsque ce
fusible a t brl, le microcontrleur, sil peut encore tre effac et
reprogramm, ne peut plus tre lu correctement , car sa mmoire est
restitue compltement dsorganise.
Bien utile pour ceux qui mettent au point une application commerciale
quils veulent protger et mettre labri de copies sauvages, ce fusible doit
tre ignor pendant la dure de ltude.
Cette accessibilit permanente de la mmoire reprsente laspect le
plus original de tous les microcontrleurs mmoire flash, parmi lesquels
trne le 16F84.
De plus, la capacit mmoire de ce modle (ni trop petite ni trop
grande) le prdestine comme le compromis idal non seulement pour
lauto-apprentissage, mais aussi pour les premires applications
personnelles que chacun aura envie dinventer.
Car, sil est incontestable quon peut parvenir la ralisation dun
grand nombre de dispositifs en tlchargeant programmes et circuits
imprims partir des nombreux sites consacrs aux microcontrleurs, dans
ce domaine particulier de la microlectronique seules les capacits
personnelles comptent.
Cest pourquoi ce livre sadresse tout particulirement qui veut
vraiment prendre ... dans une main le PIC 16F84 ... et dans lautre les
indispensables outils de dveloppement et... le fer souder !
Les seules connaissances exiges pour en aborder la lecture sont
les bases fondamentales de llectronique gnrale et de llectronique
logique.
Un avertissement tout de mme - sil tait ncessaire - consiste
rappeler que pour matriser la ralisation dun montage incorporant un
microcontrleur 16F84 il faut disposer dun ordinateur et dun outil de
dveloppement (pouvant tre soit une copie de lassembleur MPLAB que
Microchip distribue gratuitement sur son site Internet, soit un compilateur
BASIC). Nous verrons ceci plus loin, dans la section traitant de la
programmation.
Du contrleur au microcontrleur
Pour le dire avec des mots simples, un contrleur est un dispositif
qui - plac au cur dun processus - surveille lvolution dun vnement et
compare son tat (ou sa valeur) une donne prdtermine, pour
intervenir ds que les limites prfixes sont atteintes.
De ce point de vue, un contrleur nest pas forcment lectronique.
Il peut tre mcanique, pneumatique, thermique, etc..
Son travail consiste surveiller (lire) la valeur dune situation, et
la comparer en permanence une valeur fixe davance.
Lorsquil y a une diffrence entre la valeur lue et celle fixe, le contrleur
gnre une commande qui - envoye un endroit appropri du processus rduit cette diffrence ou ramne les choses la normale.
Aussi, un thermostat dambiance ou la valve de scurit installe
sur le couvercle dune cocotte-minute, sont des exemples de contrleurs
simples.
Un contrleur peut accomplir une ou plusieurs tches la suite.
Les plus souples de tous les contrleurs sont videmment les
contrleurs faisant appel llectronique, et plus particulirement les
microcontrleurs.
La surveillance de la valeur dune situation se fait alors au moyen
dune ou plusieurs lignes dacquisition de donnes configures en entres,
tandis que lenvoi de commandes se fait au moyen dune ou plusieurs
lignes configures en sorties.
Lensemble des tches confies un microcontrleur sappelle
programme.
Le microcontrleur 16F84
Prsentation gnrale
Ce modle de PIC (Programmable Interface Controler) est un
circuit de petite taille, fabriqu par la Socit amricaine Arizona
MICROCHIP Technology.
En le regardant pour la premire fois, il fait davantage penser un
banal circuit intgr logique TTL ou MOS, plutt qu un microcontrleur.
Son botier est un DIL (Dual In Line) de 2x9 pattes.
En dpit de sa petite taille, il est caractris par une architecture
interne qui lui confre souplesse et vitesse incomparables.
Ses principales caractristiques sont :
- 13 lignes dentres/sorties, rparties en un port de 5 lignes
(Port A) et un port de 8 lignes (Port B)
- alimentation sous 5 Volts
- architecture interne rvolutionnaire lui confrant une extraordinaire
rapidit
- une mmoire de programme pouvant contenir 1.019 instructions de 14
bits chacune (allant de ladresse 005 ladresse 3FF)
- une mmoire RAM utilisateur de 68 emplacements 8 bits (de ladresse
0C ladresse 4F)
- une mmoire RAM de 2x12 emplacements rserve aux registres spciaux
- une mmoire EEPROM de 64 emplacements
- une horloge interne, avec pr diviseur et chien de garde
- possibilit dtre programm in-circuit, cest dire sans quil soit
ncessaire de le retirer du support de lapplication
- vecteur de Reset situ ladresse 000
- un vecteur dinterruption, situ ladresse 004
- bus dadresses de 13 lignes
- prsence dun code de protection permettant den empcher la duplication
- facilit de programmation
- simplicit
- faible prix .
10
11
12
13
Les Entres/Sorties
A part les cinq pins rserves au cortge des invariants devant
ncessairement figurer dans tout montage, les treize autres pins du 16F84
servent dentres/sorties.
Elles sont regroupes en deux ports : Port A et Port B.
Le Port A possde 5 lignes, nommes:
RA0..........pin 17
RA1..........pin 18
RA2..........pin 1
RA3..........pin 2
RA4..........pin 3 (RA4/T0CKI)
(NB : RA = Register A)
Le Port B possde 8 lignes, nommes:
RB0..........pin 6 (RB0/INT)
RB1..........pin 7
RB2..........pin 8
RB3..........pin 9
RB4..........pin 10
RB5..........pin 11
RB6..........pin 12
RB7..........pin 13
(NB : RB = Register B)
A remarquer que RB0 (pin 6) et RA4 (pin 3), outre qu pouvoir
servir dentres/sorties, selon la faon dont on les programme peuvent
respectivement servir lune comme entre dinterruption et lautre comme
entre dhorloge externe pour le pilotage du timer (TMR0).
14
003
004 Vecteur dInterruption
005
Dbut du programme
utilisateur
.
.
1019 adresses
restantes,
disponibles pour y loger
les instructions de
votre programme
.
.
.
.
3FF
15
Cette mmoire est celle dans laquelle le programmateur crit les
instructions du programme.
Dans cet espace mmoire, les cinq premires adresses (000, 001,
002, 003, et 004) sont rserves au microcontrleur.
Certaines dentre elles sont particulirement remarquables :
a) ladresse 000 correspond au vecteur de Reset.
A la mise sous tension, ou chaque fois que des instructions spcifiques
lobligent, le Program Counter (PC) se rend cette adresse et cest l que le
systme trouve la premire instruction excuter.
Cest une case devant obligatoirement tre remplie et contenir lorigine du
programme (ORG).
Si cette adresse tait vide, le microcontrleur ne ferait rien, car aucun
programme ne serait excut.
b) ladresse 004 correspond au vecteur dinterruption.
Cest ladresse point de rencontre dfinie par le fabricant, laquelle
systme et utilisateur se rendent lorsquun problme surgit, pour se dire ce
quil se passe et quel sont les remdes durgence apporter.
16
Exemple : on veut lire le contenu de lemplacement mmoire 03 :
BCF
MOVLW
MOVWF
BSF
BSF
BCF
STATUS,RP0
03
EEADR
STATUS,RP0
EECON1,0
STATUS,RP0
STATUS,RP0
adresse dont on veut lire le contenu
EEADR
STATUS,RP0
EECON1,0
STATUS,RP0
EEDATA,W
STATUS,RP0
INTCON,7
donne que lon veut crire
EEDATA
adresse
EEADR
STATUS,RP0
EECON1,4
EECON1,2
55
EECON2
AA
EECON2
17
BSF
BCF
BSF
BCF
EECON1,1
EECON1,2
INTCON,7
STATUS,RP0
Cette squence montre que pour crire dans cette mmoire, les tapes
suivre sont un peu plus complexes, car on est oblig de passer dabord par
EECON2 avant de confirmer la donne par EECON1 :
1) on interdit les interruptions ;
2) on crit la donne dans le registre EEDATA ;
3) on crit ladresse dans le registre EEADR ;
4) on configure le registre EECON1
5) on envoie la squence dfinie par Microchip (55 et AA)
6) on reconfigure les registres EECON1, INTCON et STATUS.
Voyons les choses plus en dtail au moyen dun autre exemple
montrant lcriture dune donne (par exemple : 13) une certaine adresse
(par exemple : 1F) :
EEDATA
EEADR
EECON1
EECON2
INTCON
EQU
EQU
EQU
EQU
EQU
BCF
MOVLW
MOVWF
MOVLW
MOVWF
BSF
BCF
BSF
MOVLW
MOVWF
MOVLW
MOVWF
BSF
BCF
BSF
BCF
08
09
88
89
0B
INTCON,7
13
EEDATA
1F
EEADR
STATUS,RP0
EECON1,4
EECON1,2
55
EECON2
AA
EECON2
EECON1,1
EECON1,2
INTCON,7
STATUS,RP0
18
3) Une mmoire RAM 8 bits, que Microchip appelle Register File,
rserve aux donnes.
A plus proprement parler, il sagit dune RAM statique (SRAM).
Cet espace est son tour rparti en deux zones :
a) une zone RAM de 24 emplacements 8 bits rserve aux
registres spciaux, dont 12 situs en Page 0 (adresses 00 0B) et 12 situs
en Page 1 (adresses 80 8B) selon la mappe suivante :
00
01
02
03
04
05
06
07
08
09
0A
0B
Page 0
Adressage indirect
TMR0
PCL
STATUS
FSR
PORT A
PORT B
EEDATA
EEADR
PCLATH
INTCON
80
81
82
83
84
85
86
87
88
89
8A
8B
Page 1
Adressage indirect
OPTION
PCL
STATUS
FSR
TRIS A
TRIS B
EECON1
EECON2
PCLATH
INTCON
19
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
32
33
34
35
36
37
38
39
3A
20
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
Lors de la programmation il faut toujours indiquer ladresse de la
zone RAM partir de laquelle le C doit commencer crire, ainsi que le
nombre demplacements rserver pour chaque variable.
Comme ceci, par exemple :
Compteur
ORG
RES
OC
3
21
4) et enfin une toute petite mmoire EEPROM, contenant seulement 8
cases, de ladresse 2000 ladresse 2007, rserves au microcontrleur.
Les adresses 2000, 2001, 2002 et 2003 correspondent aux
emplacements dans lesquels lutilisateur peut stocker un code
didentification (en nutilisant que les quatre bits de poids faible de chacun
de ces mots 14 bits).
Ladresse 2007 correspond au registre de configuration du
microcontrleur.
Lui aussi mot de 14 bits, dont les cinq premiers seulement sont utilisables :
4
CP
PWRTE
WDTE
FOSC1
FOSC0
FOSC0
0
Type doscillateur
Caractristiques
LP
(Low Power) Quartz
jusqu 200 KHz
XT
Quartz (XT ou 4)
MHz
HS
(High Speed) jusqu
20 MHz
RC
RC jusqu 4 MHz
22
- Bit 4 - CP (Code Protection)
1 = pas de protection (le C pourra tre lu correctement)
0 = avec protection (le C ne pourra plus tre lu correctement.
Le contenu de la mmoire sera dsorganis).
23
24
25
EEIF
WRERR WREN
WR
RD
Bit 0 : RD (ReaD)
Normalement 0. Il se met dans cet tat de lui-mme.
Le programmeur ne peut y crire que un 1.
Naccepte pas dtre programm zro.
Bit 1 : WR (WRite)
Normalement 0. Il se met dans cet tat de lui-mme.
Le programmeur ne peut crire que un 1.
Naccepte pas dtre programm zro.
Bit 2 : WREN (WRite ENable)
Mis zro, interdit toute criture en mmoire.
Mis 1, autorise une criture en mmoire.
Bit 3 : WRERR (WRite ERRor)
Flag derreur. Normalement zro.
Passe 1 pour signaler quune erreur sest produite
juste au moment o une criture tait en cours
(Celle-ci na pu aboutir parce quun vnement
inopin sest produit ; par exemple un Reset).
Bit 4 : EEIF (EEprom Interrupt Flag)
Flag dinterruption.
Il est automatiquement mis 1 lorsque la
programmation de lEEPROM de donnes est termine.
Doit tre mis zro par programmation.
26
27
28
29
30
Examinons un par un chacun des bits de ce registre :
7
GIE
EEIE
TOIE
INTE
RBIE
TOIF
INTF
RBIF
EEIE
31
Bit 5 : T0IE (Timer zero Interrupt Enable)
7
TOIE
Mis 1, il autorise les interruptions provoques par le
dbordement du timer interne (passage de FF 00).
INTE
Mis 1, il autorise les demandes dinterruption
provenant de lextrieur, appliques sur la pin 6
(RB0 /INT).
NB : ces demandes peuvent se dclencher soit lapparition dun
Front montant, soit lapparition dun front descendant, selon la faon
Dont on a programm le bit 6 du registre OPTION (INTEDG)
1 = sur front montant
0 = sur front descendant
RBIE
Mis 1, il autorise les interruptions provoques
par un changement dtat sur les lignes du port B
(RB4, BR5, RB6, RB7).
32
Bit 2 : T0IF (Timer zero Interrupt Flag)
7
TOIF
Le fonctionnement de ce flag est conditionn
par ltat du bit 5. Il ne fonctionne que
si le bit 5 a pralablement t mis 1.
Dans la mesure o le bit 5 est 1, ce flag passe 1
chaque fois que le timer TMR0 dborde (passage de
FF 00).
INTF
Le fonctionnement de ce flag est
conditionn par ltat du bit 4. Il ne fonctionne que si le
bit 4 a pralablement t mis 1.
Dans la mesure o le bit 4 est 1, ce flag passe 1
chaque fois quune demande dinterruption surgit, provenant de lextrieur, applique sur la pin 6 du botier
(RB0/INT).
RBIF
Le fonctionnement de ce flag
est conditionn par ltat du bit 3. Il ne fonctionne
que si le bit 3 a pralablement t mis 1.
Dans la mesure o le bit 3 est 1, ce bit passe 1
chaque fois quil y a un changement dtat sur lune
des lignes du port B (RB4, RB5, RB6 ou
RB7) par rapport la dernire opration de lecture du
port B (dans la mesure, videmment, o les lignes de ce
port sont configures en entre).
33
OPTION
Est le registre qui prside au fonctionnement de lhorloge interne
du microcontrleur (TMR0) :
7
RBPU
INTEDG
T0CS
T0SE
PSA
PS2
PS1
PS0
)
sur un front montant (
0 = interruption programme pour se dclencher
sur un front descendant
).
34
Bit 4 : T0SE (Timer zero Signal Edge)
Sert dterminer si lhorloge doit avancer sur front
montant ou sur front descendant.
0 = lhorloge avance sur front montant
).
PS1
PS0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Pour le TMR0
2
4
8
16
32
64
128
256
Pour le Watch-Dog
1
2
4
8
16
32
64
128
35
36
37
38
PORT A
PORT B
MOVWF
BCF
11111110
2) Comment crire un 1 sur une ligne de port (par exemple, sur RA2) :
MOVLW
11111110
MOVWF
TRISA
39
BSF
PORTA,2
MOVWF
BTFSC
11111111 (en binaire). Octet de configution de port (on veut que toutes les lignes du port soient
des entres).
TRISA
Charge loctet de configuration dans le registre TRIS A.
PORTA,3 Teste le bit 3 des lignes du
port A. Sil est 1, linstruction suivante est excute. Si par contre il est 0,
linstruction suivante est ignore et le programme excute
linstruction se trouvant encore aprs.
NB : Au lieu de BTFSC, on
aurait pu utiliser linstruction
BTFSS pour, dans ce cas, exter linstruction suivante si le
bit test est 0.
40
RP0
TO
PD
DC
Bit 0 : C (Carry)
Flag indiquant si une retenue a eu lieu dans un octet lors
dune addition ou dune soustraction.
Si une retenue a t gnre, ce bit passe 1.
Bit 1 : DC (Digit Carry)
Flag fonctionnant comme le bit de Carry, sauf quici la
surveillance de la retenue sexerce non pas sur loctet
entier, mais sur le premier demi-octet.
Ce flag se positionne 1 si une retenue est gnre du bit
3 (bit de poids fort du quartet infrieur) vers le bit 0 du
quartet suprieur.
Il est utile pour corriger le rsultat doprations effectues
en code BCD.
Bit 2 : Z (Zero)
Ce flag passe 1 si le rsultat dune opration (arithmtique ou logique) est 0.
Bit 3 : PD (Power Down)
Mise en veilleuse de lalimentation, effectue par linstruction
SLEEP.
Passe 1 lorsquon utilise linstruction CLWDT, ou la mise sous
tension.
41
Bit 4 : TO (Time Out)
Dpassement de dlai.
Passe 0 si le timer du Watch-Dog (chien de garde) dborde.
Est mis 1 par les instructions CLWDT et SLEEP, ainsi qu la
mise sous tension.
Bit 5 : RP0 (Register Page zero)
Sert slectionner lune des deux pages de registres (Page 0
ou Page 1).
0 = slectionne la page mmoire 0 (adresses de 00
7F)
1 = slectionne la page mmoire 1 (adresses de 80
FF).
Exemples de programmation :
1)
BCF
2)
BSF
STATUS,RP0
42
43
TRIS A
TRIS B
Le bit 0 du port A est dfini comme entre, tandis que les sept autres lignes
sont dfinies comme sorties.
44
La PROGRAMMATION
Diffrentes faons de programmer
45
46
47
48
49
50
Equivalences
Initialisation de la RAM
et rservation dun
certain nombre dadresses
mmoire
Dbut du programme
aprs Reset
Radix .....
Include <<P16F84>>
..... EQU .....
ORG 0C
RES ...
ORG 00
Fin du programme
END
51
PROGRAMMATION
en langage ASSEMBLEUR
La programmation en langage ASSEMBLEUR se fait en utilisant
les 37 instructions formant son dictionnaire.
En langage ASSEMBLEUR le PIC 16F84 ne comprend que ces 37
mots (en fait : 35 instructions communes tous les modles de PIC, plus
deux instructions spcifiques au 16F84 : OPTION et TRIS).
Ces 37 mots forment ce que lon appelle le set dinstructions du
16F84.
Il convient de toutes les connatre.
Ecrire un programme en langage ASSEMBLEUR revient donc
dtailler au PIC ce quil doit faire, en le disant exclusivement au moyen de
ces 37 mots de son vocabulaire : les seuls mots quil est capable de
comprendre.
Examinons-les une par une.
52
53
Je vous propose quatre types de classement:
a) classement par ordre alphabtique
b) classement par genre
c) classement par type
d) classement par ordre croissant dencodage.
Toutes les instructions sont codes en un seul mot de 14 bits (0 13).
Elles sont toutes excutes en un seul cycle dhorloge , sauf CALL,
GOTO, RETFIE, RETLW et RETURN qui demandent 2 cycles, et BTFSC,
BTFSS, DECFSZ, INCFSZ qui selon le cas peuvent demander soit un
cycle, soit deux cycles.
NB : Parmi les 37 instructions constituant le set du 16F84, deux lui
sont spcifiques (je lai dj dit) et ont un caractre spcial : OPTION et
TRIS.
Ces deux instructions ne figurent pas dans les autres modles de PIC. Aussi
Microchip recommande de ne pas les utiliser, dans le but de laisser
compatibles les programmes (crits pour ce C) avec ceux crits pour
dautres modles de PIC.
Il suffit de le savoir.
Mais ceci nest pas un obstacle pour nous, du fait que notre intrt est
exclusivement tourn vers le 16F84.
54
ADD Literal to W
ADD W to File
AND Literal and W
AND W and File
BCF
BSF
BTFSC
BTFSS
CALL
CLRF
CLRW
CLRWDT
COMF
CALL subroutine
CLeaR File
CLeaR W
CLeaR Wach Dog Timer
COMplement File
DECF
DECFSZ
DECrement File
DECrement File, Skip if Zero
GOTO
INCF
INCFSZ
IORLW
IORWF
INCrement File
INCrement File, Skip if Zero
Inclusive OR Literal with W
Inclusive OR W with File
MOVF
MOVLW
MOVWF
MOVe File
MOVe Literal to W
MOVe W to File
NOP
No OPeration
OPTION
RETFIE
RETLW
RETURN
RLF
55
RRF
SLEEP
SUBLW
SUBWF
SWAPF
TRIS
TRIState port
XORLW
XORWF
56
57
- instructions de saut et branchement :
CALL
GOTO
RETFIE
RETLW
RETURN
- instructions agissant sur les bits :
BCF
BSF
BTFSC
BTFSS
- instructions diverses :
NOP
OPTION
TRIS
SLEEP
SWAPF
58
59
- instructions travaillant avec un registre (f) mais proposant un
choix (d) dans la destination du rsultat :
- d = 0 : le rsultat est plac dans W
- d = 1 : le rsultat est plac dans le registre f
ADDWF f,d
ANDWF f,d
COMF f,d
DECF f,d
DECFSZ f,d
INCF f,d
INCFSZ f,d
IORWF f,d
MOVF f,d
RLF f,d
RRF f,d
SUBWF f,d
SWAPF f,d
XORWF f,d
60
0
0000 NOP
0008 RETURN
0009 RETFIE
0062 OPTION
0063 SLEEP
0064 CLWDT
006x TRIS
00xx MOVWF
0100 CLRW
01xx CLRF
02xx SUBWF
03xx DECF
04xx IORWF
05xx ANDWF
06xx XORWF
07xx ADDWF
08xx MOVF
09xx COMF
0Axx INCF
0Bxx DECFSZ
0Cxx RRF
0Dxx RLF
0Exx SWAPF
0Fxx INCFSZ
1
1xxx BCF
1xxx BSF
1xxx BTFSC
1xxx BTFSS
2
2xxx CALL
2xxx GOTO
3
30xx MOVLW
34xx RETLW
38xx IORLW
39xx ANDLW
3Axx XORLW
3Cxx SUBLW
3Exx ADDLW
61
ADDLW
ADD Literal to W
- Additionne de manire immdiate le literal au contenu du registre
W, et place le rsultat dans W.
- Le literal est un mot de 8 bits (de 00 FF).
- Cette instruction affecte 3 bits du registre dtat :
le flag C : Carry
le flag DC : Digit Carry
le flag Z : Zero
- 1 cycle dhorloge
- Encodage de linstruction :
13
06
62
ADDWF
ADD W to File
- Additionne le contenu du registre W loctet situ (en mmoire RAM)
ladresse indique de suite (adresse comprise entre 0C et 4F) ; avec deux
variantes : le rsultat peut tre plac soit dans le registre W, soit dans la
mmoire RAM la place de loctet utilis pour faire laddition (la nouvelle
valeur prend la place de lancienne).
- Cette instruction affecte 3 bits du registre dtat :
le flag C : Carry
le flag DC : Digit Carry
le flag Z : Zero
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 0111
0
dfff
(W) 0
ou
(registre) 1
ffff
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
dont le contenu est
additionner W.
- Exemples de programmation :
1)
MOVF
ADDWF,0
VentesDuMois,W
63
2)
MOVF
ADDWF,1
VentesDuMois,W
64
ANDLW
AND Literal and W
- Effectue une opration logique ET (AND) entre la valeur immdiate du
literal et loctet se trouvant dans le registre W.
- Le literal est un mot de 8 bits (de 00 FF)
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction :
13
A B Q
0 0 0
0 1 0
1 0 0
1 1 1
65
- Exemple de programmation :
ANDLW
A7
66
ANDWF
AND W and File
- Effectue une opration logique ET (AND) entre loctet se trouvant dans le
registre W et loctet situ (en mmoire RAM) ladresse indique de suite
(adresse comprise entre 0C et 4F) ; avec deux variantes : le rsultat peut
tre plac soit dans le registre W, soit dans la mmoire RAM la place de
loctet utilis pour effectuer le ET logique (la nouvelle valeur prend la place
de lancienne).
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 0101
dfff
ffff
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
o se trouve loctet
avec lequel on veut
faire le ET logique.
- Exemples de programmation :
1)
ANDWF,0
Adresse
2)
ANDWF,1
Adresse
67
Lexemple 1 effectue un ET logique entre loctet se trouvant dans W et
loctet se trouvant Adresse, et range le rsultat dans W.
Lexemple 2 effectue un ET logique entre loctet se trouvant dans W et
loctet se trouvant Adresse, et range le rsultat dans Adresse.
- Table de vrit dune porte ET :
A B Q
0 0 0
0 1 0
1 0 0
1 1 1
Pourquoi cette instruction dans le set du 16F84 ? A quoi sert-elle ?
Elle sert lorsque dans un octet on a besoin de rcuprer un bit en
particulier (ou certains bits en particulier).
Pour cela il suffit de prparer un masque, cest dire on octet compos de 0
(aux emplacements o se trouvent les bits liminer) et de 1 (aux
emplacements o se trouvent les bits rcuprer).
Exemple : on souhaite rcuprer uniquement le bit 5 de loctet 01111010.
On prpare alors le masque 00100000 et on fait un ET logique entre loctet
et le masque. Comme ceci :
01111010
(octet)
00100000
(masque)
Ce qui donne : 00100000
(rsultat)
Le rsultat de lopration permet donc bien de rcuprer
uniquement le bit 5 de loctet : ici cest un 1 (00100000).
Une fois rcupr, on peut utiliser ce bit comme on veut.
68
BCF
Bit Clear File
- Met zro le bit dsign de loctet situ (en mmoire RAM)
ladresse indique de suite (adresse comprise entre 0C et 4F).
- 1 cycle dhorloge
- Encodage de linstruction:
13
01 00bb
1
bfff
ffff
Position
du bit
dans
loctet.
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
o se trouve loctet
sur lequel on veut oprer.
10
11
100
101
110
111
- Exemples de programmation :
En supposant quon veuille mettre zro (Clear) un certain bit de loctet
situ ladresse 27 de la mmoire RAM, la programmation serait :
69
ou
BCF
27,0
BCF
27,1
ou
BCF
27,2
etc...
70
BSF
Bit Set File
- Met 1 (Set) le bit dsign de loctet situ (en mmoire RAM)
ladresse indique de suite (adresse comprise entre 0C et 4F).
- 1 cycle dhorloge
- Encodage de linstruction:
13
01 01bb
1
bfff
ffff
Position
du bit
dans
loctet.
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
o se trouve loctet
sur lequel on veut oprer.
10
11
100
101
110
111
- Exemples de programmation :
En supposant quon veuille mettre 1 (Set) un certain bit de loctet
situ ladresse 1C de la mmoire RAM, la programmation serait :
71
BSF
1C,0
ou
BSF
1C,1
ou
BSF
1C,2
etc...
72
BTFSC
Bit Test File, Skip if Clear
- Vrifie ltat logique du bit dsign de loctet situ (en mmoire RAM)
ladresse indique de suite (adresse comprise entre 0C et 4F).
Est-il zro ?
Sil est zro, ignore linstruction suivante.
- Selon que la rponse soit OUI ou NON, linstruction prend 1 ou 2 cycles
dhorloge.
- Encodage de linstruction:
13
01 10bb
1
bfff
ffff
Position
du bit
dans
loctet.
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
o se trouve loctet
sur lequel on veut oprer.
10
11
100
101
110
111
73
- Organigramme du traitement :
- Exemple de programmation :
En supposant que loctet dont on veut tester un bit soit situ ladresse 1A,
la programmation serait la suivante :
BTFSC 1A,0
ou
BTFSC 1A,1
ou
BTFSC 1A,2
etc...
74
BTFSS
Bit Test File, Skip if Set
- Vrifie ltat logique du bit dsign de loctet situ (en mmoire RAM)
ladresse indique de suite (adresse comprise entre 0C et 4F).
Est-il 1 ?
Sil est 1, ignore linstruction suivante.
- Selon que la rponse soit OUI ou NON, linstruction prend 1 ou 2 cycles
dhorloge.
- Encodage de linstruction:
13
01 11bb
1
bfff
ffff
Position
du bit
dans
loctet.
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
o se trouve loctet
sur lequel on veut oprer.
10
11
100
101
110
111
75
- Organigramme du traitement :
- Exemple de programmation :
En supposant que loctet dont on veut tester un bit soit situ ladresse 1C,
la programmation serait la suivante :
BTFSS 1C,0
ou
BTFSS 1C,1
ou
BTFSS 1C,2
etc...
76
CALL
CALL subroutine
- Appel sous-programme.
- Le C sauvegarde ladresse de retour dans la pile (stack), puis charge dans
le PC (Program Counter) ladresse laquelle il est invit se rendre. Il peut
sagir aussi bien dune adresse que dune label ; et cest l que dmarre le
sous-programme.
- Tout sous-programme appel par linstruction CALL doit obligatoirement
se terminer soit par linstruction RETURN, soit par linstruction
RETLW qui renvoient au programme principal.
Ne pas confondre linstruction CALL avec linstruction GOTO.
Linstruction CALL fait toujours revenir le programme principal lendroit
o il avait t abandonn ; tandis que linstruction GOTO provoque
labandon total de la squence et peut conduire soit une toute autre action,
soit larrt total du programme.
- La pile (stack) est une zone de mmoire ne pouvant contenir que 8 mots
de 13 bits.
Ceci limite 8 niveaux les possibilits dimbrication. Sil y en avait un
neuvime, la premire adresse de retour serait perdue...
- Cette instruction prend 2 cycles dhorloge.
- Encodage de linstruction :
13
77
- Organigramme du traitement :
Programme principal
..................................
..................................
..................................
CALL sous-programme---------------->..................................
..................................
..................................
sous-programme <-----
..................................
..................................
<-- RETURN
- Exemple de programmation :
CALL Tempo
78
CLRF
CLeaR File
- Efface (Clear) ce qui se trouve (en mmoire RAM) ladresse
indique de suite (adresse comprise entre 00 et 4F).
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction :
13
00 0001
0
1
1fff ffff
Adresse de la RAM
(entre 00 et 4F)
o se trouve loctet
quon veut effacer.
- Exemples de programmation :
1) CLRF INTCON
2) CLRF PORTB
3) CLRF 1E
79
CLRW
CLeaR W
- Efface (Clear) le registre W.
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction :
13
80
CLRWDT
CLeaR Wach Dog Timer
- Met zro le compteur du chien de garde (ainsi que celui du pr diviseur,
si celui-ci est activ).
- Cette instruction affecte deux bits du registre dtat :
- le flag TO (Time Out) passe 1
- le flag PD (Power Down) passe 1
- 1 cycle dhorloge
- Encodage de linstruction :
13
81
COMF
COMplement File
- Effectue un complment bit bit sur loctet situ (en mmoire RAM)
ladresse indique de suite (adresse comprise entre 0C et 4F) ; avec deux
variantes : le rsultat peut tre plac soit dans le registre W, soit dans la
mmoire RAM la place de loctet utilis pour faire le complment (la
nouvelle valeur prend la place de lancienne).
Faire le complment bit bit dun octet quivaut changer ses zros en 1,
et inversement.
Exemple : le complment de 00111100 est 11000011.
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 1001
dfff
ffff
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
o se trouve loctet
sur lequel on veut oprer.
- Exemples de programmation :
1) COMF
2B,0
(effectue le complment bit bit de
loctet situ ladresse 2B et range le
rsultat dans W)
En supposant que 2B contienne 11100000 avant linstruction, aprs
linstruction cette valeur est transforme en 00011111.
82
2) COMF
2B,1
(mme chose, mais le rsultat est rang
la place de loctet utilis pour faire le
complment).
83
DECF
DECrement File
- Dcrmente la valeur de loctet situ (en mmoire RAM) ladresse
indique de suite (adresse comprise entre 0C et 4F) ; avec deux variantes :
le rsultat peut tre plac soit dans le registre W, soit dans la mmoire
RAM la place de loctet quon a dcrment (la nouvelle valeur prend la
place de lancienne).
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 0011
dfff
ffff
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
o se trouve loctet
quon veut dcrmenter.
- Exemples de programmation :
1) DECF
COMPTEUR,0
2) DECF
COMPTEUR,1
84
DECFSZ
DECrement File, Skip if Zero
- Dcrmente la valeur de loctet situ (en mmoire RAM) ladresse
indique de suite (adresse comprise entre 0C et 4F), et effectue un test :
loctet a-t-il atteint zro ?
Si OUI, ignore linstruction suivante.
Avec deux variantes : le rsultat peut tre plac soit dans le registre W, soit
dans la mmoire RAM la place de loctet dcrment (la nouvelle valeur
prend la place de lancienne).
- Selon qu la suite de la dcrmentation loctet ait atteint ou pas la valeur
zro, linstruction prend 1 ou 2 cycles dhorloge.
- Encodage de linstruction:
13
00 1011
0
dfff
ffff
B
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
o se trouve loctet
quon veut dcrmenter.
2F,0
85
2) DECFSZ
2F,1
86
GOTO
- Branchement inconditionnel.
Va de faon inconditionnelle ladresse indique de suite (adresse de
dmarrage du sous-programme). Il peut sagir aussi bien dune adresse que
dune label.
Cette instruction interrompt lexcution squentielle des instructions et
oblige poursuivre le programme dune adresse compltement ailleurs.
A la diffrence de linstruction CALL (qui fait toujours revenir le
programme principal lendroit o il avait t abandonn) , linstruction
GOTO provoque labandon complet de la squence et peut conduire soit
une toute autre action, soit larrt total du programme.
- Cette instruction prend 2 cycles dhorloge.
- Encodage de linstruction :
13
87
INCF
INCrement File
- Incrmente la valeur de loctet situ (en mmoire RAM) ladresse
indique de suite (adresse comprise entre 0C et 4F) ; avec deux variantes :
le rsultat peut tre plac soit dans le registre W, soit dans la mmoire
RAM la place de loctet quon a incrment (la nouvelle valeur prend la
place de lancienne).
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 1010
0
dfff
ffff
A
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
o se trouve loctet
quon veut incrmenter.
- Exemples de programmation :
1) INCF
2) INCF
88
INCFSZ
INCcrement File, Skip if Zero
- Incrmente la valeur de loctet situ (en mmoire RAM) ladresse
indique de suite (adresse comprise entre 0C et 4F), et effectue un test :
loctet a-t-il atteint zro ?
Si OUI, ignore linstruction suivante.
Avec deux variantes : le rsultat peut tre plac soit dans le registre W, soit
dans la mmoire RAM la place de loctet incrment (la nouvelle valeur
prend la place de lancienne).
- Selon qu la suite de lincrmentation loctet ait atteint ou pas la valeur
zro, linstruction prend 1 cycle ou deux dhorloge.
- Encodage de linstruction:
13
00 1111
0
dfff
ffff
F
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM
(entre 0C et 4F)
o se trouve loctet
quon veut incrmenter.
DATE,0
89
2) INCFSZ
DATE,1
90
IORLW
Inclusive OR Literal with W
- Effectue une opration logique OU inclusif (Inclusive OR) entre la valeur
immdiate du literal et loctet se trouvant dans le registre W.
Le rsultat de lopration reste dans le registre W.
- Le literal est un mot de 8 bits (de 00 FF)
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction :
13
A B Q
0 0 0
0 1 1
1 0 1
1 1 1
91
- Exemple de programmation :
IORLW
B5
(10110101)
92
IORWF
Inclusive OR With File
- Effectue une opration logique OU inclusif (Inclusive OR) entre loctet se
trouvant dans le registre W et loctet situ (en mmoire RAM) ladresse
situe de suite (adresse comprise entre 0C et 4F) ; avec deux variantes : le
rsultat peut tre plac soit dans le registre W, soit dans la mmoire RAM
la place de loctet utilis pour faire le OU inclusif (la nouvelle valeur prend
la place de lancienne).
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 0100
dfff
ffff
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM (entre 0C et 4F) o se trouve
loctet avec lequel on veut faire le OU inclusif.
- Table de vrit dune porte OU inclusif :
A B Q
0 0 0
0 1 1
1 0 1
1 1 1
93
- Exemples de programmation :
1)
IORWF
29,0
(effectue le OU inclusif entre
loctet se trouvant dans W et
celui situ ladresse 29, et range
le rsultat dans W).
En supposant que le contenu de ladresse 29 soit C7 (11000111) et
que W contienne 69 (01101001), aprs linstruction on obtient EF
(11101111).
2)
IORWF
29,1
94
MOVF
MOVe File
- Cette instruction peut faire deux choses :
1) soit porter dans W le contenu situ (en mmoire
RAM) ladresse indique de suite (adresse comprise entre 0C et 4F), avec loption de programmation ,0
2) soit copier loctet sur lui-mme au mme emplacement
de la RAM, avec loption de programmation ,1
Bien que a paraisse comique de copier le contenu dun registre sur luimme, en fait - tant donn que cette opration modifie le bit Z du registre
dtat - elle est utile quand on a besoin de faire un test zro sur loctet, en
toute scurit.
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 1000
dfff
ffff
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM (entre 0C et 4F)
o se trouve loctet quon veut traiter.
95
- Exemples de programmation :
1)
MOVF
PORTB,0
1)
MOVF
18,1
96
MOVLW
MOVe Literal to W
- Charge de manire immdiate le literal dans le registre W
- Le literal est un mot de 8 bits (de 00 FF)
- 1 cycle dhorloge
- Encodage de linstruction :
13
- Exemple de programmation :
MOVLW
F5
97
MOVWF
MOVe W to File
- Prend le contenu du registre W et le met (dans la mmoire RAM)
ladresse indique de suite (adresse de 0C 4F)
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 0000 1fff
ffff
0
0
Adresse de la RAM (entre 0C et 4F) laquelle
on veut mettre la valeur du registre W.
- Exemple de programmation :
MOVWF
0D
(crit le contenu de W
ladresse RAM 0D).
98
NOP
No OPeration
- Linstruction la plus paresseuse !
Ne fait rien.
Elle sert juste occuper le processeur pour laisser passer un peu de temps
(1 cycle dhorloge).
Sutilise essentiellement pour crer des temporisations.
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 0000
0
0
0xx0
0
0000
0
- Exemple de programme:
NOP
99
OPTION
load OPTION register
- NB : cette instruction est spcifique au 16F84.
Microchip recommande de ne pas lutiliser, dans le but de laisser les
programmes (crits pour ce type de microcontrleur) compatibles avec
ceux crits pour dautres modles de PIC.
Il suffit de le savoir.
Mais ceci nest pas un obstacle pour nous, du fait que notre intrt est
exclusivement tourn vers le 16F84.
- Charge le registre OPTION, cest -dire le registre qui sert configurer le
TMR0 ( lhorloge interne du microcontrleur) ainsi que le prdiviseur.
- Sagissant dun registre lecture/criture simultane, on ne peut pas y
crire directement, mais il faut obligatoirement transiter par le registre W.
En programmation, on commence par crire loctet de configuration dans
W. Puis linstruction OPTION - en mme temps quelle adresse ce registrey copie automatiquement loctet de configuration.
100
RETFIE
RETurn From IntErrupt
- Retour au programme principal aprs excution dun sous-programme
dinterruption.
Charge le PC (Program Counter : compteur dinstructions) avec la valeur
qui se trouve au sommet de la pile (stack) ; ce qui provoque le retour au
programme principal.
- Lorsquune interruption est demande, le microcontrleur, avant de sauter
ladresse 004 de lEEPROM mmoire de programme, sauve la valeur du
Program Counter dans la pile.
Cette valeur - comme dans une pile dassiettes - se place tout en haut de la
pile (dans laquelle il y a seulement 8 places).
A la fin du sous-programme de rponse linterruption, le C rencontre
linstruction RETFIE par laquelle il rcupre la valeur se trouvant au
sommet de la pile (correspondant la dernire valeur entre) et la
positionne dans le Program Counter, faisant ainsi revenir le programme
son flux normal (pile de type LIFO : Last In, First Out).
- Aprs cette instruction, le pointeur de pile (stack pointer) se positionne
tout en haut de la pile, et le bit du GIE (General Interrupt Enable) du
registre INTCON (bit7) bascule 1.
- Cette instruction prend 2 cycles dhorloge
- Encodage de linstruction:
13
00 0000
0
0
0000
0
1001
9
- Exemple de programme :
RETFIE
101
RETLW
RETurn from subroutine with Literal in W
- Instruction jusqu un certain point similaire RETURN, en ce sens
quelle ferme un sous-programme et provoque le retour au programme
principal lendroit o il avait t abandonn ; mais avec une particularit
en plus : charge dans le registre W la valeur du literal.
- Le literal est un mot de 8 bits (de 00 FF)
- Cette instruction prend 2 cycles dhorloge
- Encodage de linstruction:
13
102
RETURN
RETURN from subroutine
- Retour dun sous-programme.
Le PC (Program Counter) est charg avec ladresse se trouvant au sommet
de la pile.
- Cest linstruction qui ferme un sous-programme et provoque le retour au
programme principal lendroit auquel il avait t abandonn.
- Cette instruction prend 2 cycles dhorloge
- Encodage de linstruction:
13
00 0000
0
0
0000
0
1000
8
103
RLF
Rotate Left File
- Rotation gauche.
C 7
104
- Encodage de linstruction:
13
00 1101
0
dfff
ffff
D
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM (entre 0C et 4F)
o se trouve loctet dont on veut
effectuer la rotation gauche.
105
RRF
Rotate Right File
- Rotation droite.
C 7
106
- Encodage de linstruction:
13
00 1100
0
dfff
ffff
C
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM (entre 0C et 4F)
o se trouve loctet dont on veut
effectuer la rotation droite.
107
SLEEP
- Mise en veilleuse.
Cette instruction sutilise non pas pour mettre le C hors tension, mais
pour arrter le squencement des instructions (ralentir le signal dhorloge
jusqu lextrme limite : la frquence zro).
Pendant cette mise en veilleuse, lhorloge externe (faisant partie de ce que
nous avons appel le cortge des invariants) est coupe. Le flux du
programme est bloqu.
Seul le chronomtre du Watch Dog (chien de garde) reste actif.
La consommation du botier (qui normalement est de 2 mA) tombe 30
A.
Parmi les causes pouvant rveiller le C retenons : une demande
dinterruption, ou un signal provenant du chronomtre (timer) du chien de
garde.
- Cette instruction affecte deux bits du registre dtat :
TO (Time Out)
passe 1
PD (Power Down) passe 0
En plus, elle met zro le chronomtre du chien de garde, ainsi que le pr
diviseur.
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 0000
0
0
0110
6
0011
3
108
SUBLW
SUBtract Literal with W
- Soustrait le literal (valeur immdiate reprsente par un octet pouvant
aller de 00 FF) du contenu du registre W, et place le rsultat dans W.
Literal
- W
= rsultat
diminuende
- diminuteur
= diffrence
109
SUBWF
SUBtract W from File
- Soustrait la valeur contenue dans le registre W de la valeur se trouvant (en
mmoire RAM) ladresse indique de suite (adresse comprise entre 0C et
4F) ; avec deux variantes : le rsultat (diffrence) peut tre rang soit dans
le registre W, soit dans la mmoire RAM la place du diminuende.
File (valeur se trouvant lemplacement RAM, le diminuende)
- W (valeur contenue dans le registre W,
le diminuteur )
Rsultat
diffrence
- Cette instruction affecte 3 bits du registre dtat :
- le flag C
(Carry)
- le flag DC
(Digit Carry)
- le flag Z
(Zero)
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 0010
dfff
ffff
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM (entre 0C et 4F)
laquelle on veut ranger la diffrence.
110
SWAPF
SWAP File
- Echange les quatre bits de poids fort dun octet se trouvant (en mmoire
RAM) ladresse indique de suite (adresse comprise entre 00 et 4F), avec
ses propres quatre bits de poids faible :
1 0 0 0 1 0 1 1
devient
1 0 1 1 1 0 0 0
Avec deux variantes : le rsultat de lchange peut tre plac soit dans le
registre W, soit dans la mmoire RAM en lieu et place de loctet utilis
pour effectuer le swap.
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 1110
0
dfff
ffff
E
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM (entre 0C et 4F)
o se trouve loctet dont on veut
changer les quartets.
111
TRIS
TRIState port
- NB : cette instruction est spcifique au 16F84.
Microchip recommande de ne pas lutiliser, dans le but de laisser les
programmes (crits pour ce type de microcontrleur) compatibles avec
ceux crits pour dautres modles de PIC.
Il suffit de le savoir.
Mais ceci nest pas un obstacle pour nous, du fait que notre intrt est
exclusivement tourn vers le 16F84.
- Charge le registre TRIS (A ou B), et met les lignes de port haute
impdance.
Ce registre configure, cest dire dfinit le sens de fonctionnement de
chacune des lignes des ports A et B ; assigne chaque ligne soit le rle
dentre, soit le rle de sortie, sans pour autant provoquer aucune entre ni
aucune sortie.
- Il sagit dun registre de 8 bits, pouvant tous se programmer
individuellement par 0 ou par 1 :
0 = la ligne de port (qui lui correspond) est configure
comme sortie
1 = la ligne de port (qui lui correspond) est configure
comme entre
- Sagissant dun registre lecture/criture simultane, on ne peut pas y
crire directement, mais il faut obligatoirement transiter par le registre W.
En programmation, on commence par crire loctet de configuration dans
W. Puis linstruction TRIS (A ou B), en mme temps quelle adresse ce
registre, copie automatiquement loctet de configuration dans le port A ou
dans le port B.
112
- Encodage de linstruction :
13
00 0000 0110
0
0
6
0fff
- Exemple de programmation :
MOVLW
MOVWF
113
XORLW
EXclusive OR Literal and W
- Effectue un OU exclusif (Exclusive OR) entre la valeur immdiate du
literal et loctet se trouvant dans le registre W.
Le rsultat est rang dans W.
- Le literal est un mot de 8 bits (de 00 FF).
- Un OR exclusif permet de comparer deux octets bit bit.
Si les bits de mme poids sont au mme niveau, le rsultat est zro.
Si par contre ils sont des niveaux diffrents, le rsultat est 1.
Exemple de XOR entre deux octets :
00110011
01110010
rsultat = 01000001
- Un OR exclusif permet dinverser un tat logique.
Exemple :
Soit au dpart loctet 11111111.
Si le XOR se fait avec 00000000 , rien ne change ;
le rsultat est : 11111111.
Si par contre le XOR se fait avec 00000001,le rsultat est :11111110
(Alors que les zros ne font rien changer, les 1 provoquent un basculement
dtat).
- Table de vrit dune porte OU exclusif :
A
0
0
1
1
B
0
1
0
1
Q
0
1
1
0
114
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction:
13
115
XORWF
Exclusive OR W and File
- Effectue un OU exclusif (Exclusive OR) entre loctet se trouvant dans le
registre W et loctet situ (en mmoire RAM) ladresse indique de suite
(adresse comprise entre 0C et 4F) ; avec deux variantes : le rsultat peut
tre rang soit dans le registre W, soit dans la mmoire RAM la place de
loctet utilis pour effectuer le OU exclusif (la nouvelle valeur prend la
place de lancienne).
- Un OR exclusif permet de comparer deux octets bit bit.
Si les bits de mme poids sont au mme niveau, le rsultat est zro.
Si par contre ils sont des niveaux diffrents, le rsultat est 1.
Exemple de XOR entre deux octets :
00110011
01110010
rsultat = 01000001
- Un OR exclusif permet dinverser un tat logique.
Exemple :
Soit au dpart loctet 11111111.
Si le XOR se fait avec 00000000 , rien ne change ;
le rsultat est : 11111111.
Si par contre le XOR se fait avec 00000001, le rsultat est :11111110.
(Alors que les zros ne font rien changer, les 1 provoquent un basculement
dtat).
- Table de vrit dune porte OU exclusif :
A
0
0
1
1
B
0
1
0
1
Q
0
1
1
0
116
- Cette instruction affecte le bit Z du registre dtat
- 1 cycle dhorloge
- Encodage de linstruction:
13
00 0110
0
dfff
ffff
(W) 0
ou
(registre) 1
De 000 1100
100 1111
Adresse de la RAM (entre 0C et 4F)
o se trouve loctet avec lequel on veut
effectuer le OU exclusif.
6
117
118
Exemples de programmes
crits en langage ASSEMBLEUR
Programme 1
a) Organigramme
119
PORTB
;Initialise le Port B.
BSF
STATUS,RP0
MOVLW b00000000
MOVWF TRISB
BCF
STATUS,RP0
120
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
PROGRAMME
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LOOP
BSF
PORTB,0
;Allume la LED, car linstruction
; BSF met 1 (set).
;Dans le cas prsent, elle met 1 le
;bit zro du Port B (PORTB,0).
GOTO
LOOP
END
121
Programme 2
a) Organigramme
122
PORTB
BSF
STATUS,RP0
MOVLW b00000000
123
;Port B comme SORTIES.
;La notation b00000000 indique que
;la valeur 00000000 est interprter
;en tant que chiffre binaire.
MOVWF TRISB
BCF
STATUS,RP0
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
PROGRAMME PRINCIPAL
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MAIN
BCF
PORTB,0
;LED teinte car linstruction
; BCF met 0 (clear).
;Ici, elle met 0 le bit 0 du
;Port B (PORTB,0).
CALL
DELAI
;Appelle le sous-programme de
;retard (DELAI).
BSF
PORTB,0
CALL
DELAI
GOTO
MAIN
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
SOUS-PROGRAMME de TEMPORISATION
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DELAI DECFSZ COMPT1,1
;Dcrmente COMPT1et - sil nest pas
GOTO
DELAI
; zro - va DELAI
MOVLW .255
MOVWF COMPT1
DECFSZ COMPT2,1
GOTO
DELAI
MOVLW .255
MOVWF COMPT1
MOVLW .255
MOVWF COMPT2
RETURN
END
;Fin du programme.
124
125
PROGRAMME 3
a) Organigramme
126
PORTB
BSF
STATUS,RP0
MOVLW b00000000
127
;Port B comme SORTIES.
;La notation b00000000 indique que
;la valeur 00000000 est interprter
;en tant que chiffre binaire.
MOVWF TRISB
BCF
STATUS,RP0
GOTO
MAIN1
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
SOUS-PROGRAMME de TEMPORISATION
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
TEMPO MOVLW .255
;Charge COMPT2 ( grande boucle )
MOVWF COMPT2
;avec la valeur dcimale 255.
DELAI2 MOVLW .255
MOVWF COMPT1
DECFSZ COMPT2,1
GOTO
DELAI2
RETURN
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
PROGRAMME PRINCIPAL
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MAIN1 MOVLW .2
;On dfinit le nombre de cycles de la
MOVWF nFOIS
;premire phase (ici : 2 clignotements)
LED1
BCF
PORTB,0
CALL
TEMPO
;Appelle le sous-programme de
;retard (TEMPO).
BSF
PORTB,0
CALL
TEMPO
128
DECFSZ nFOIS,1
GOTO
LED1
GOTO
MAIN2
MAIN2
MOVLW .5
MOVWF nFOIS
LED2
BCF
PORTB,1
CALL
TEMPO
;Appelle le sous-programme de
;retard (TEMPO).
BSF
PORTB,1
CALL
TEMPO
DECFSZ nFOIS,1
GOTO
LED2
GOTO
MAIN1
END
;Fin du programme.
129
130
PROGRAMME 4
a) Organigramme
131
00
;Vecteur de Reset.
GOTO
START
ORG
05
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
INITIALISATIONS
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CLRF
PORTB
BSF
STATUS,RP0
132
MOVLW 00
MOVWF TRISB
MOVLW 0xFF
MOVWF TRISA
BCF
STATUS,RP0
GOTO
MAIN
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
SOUS-PROGRAMMES
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
TEMPO
DECFSZ COMPT2,1
GOTO
DELAI2
RETURN
LED
PORTB,0
;Allume la LED.
133
CALL
TEMPO
;Appel du sous-programme de
;temporisation.
BCF
PORTB,0
;Eteint la LED.
CALL
TEMPO
RETURN
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
PROGRAMME PRINCIPAL
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MAIN
BTFSS PORTA,4
;Est-ce que lentre RA4 est active ?
GOTO
MAIN
CALL
LED
GOTO
MAIN
END
134
PROGRAMME 5
EQU
EQU
0C
0D
;Dclaration de
;deux variables.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
VECTEURS
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ORG
00
;Vecteur de Reset.
GOTO
START
ORG
GOTO
04
INT_VECT
;Vecteur dinterruption.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
START
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
START ORG
05
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
INITIALISATIONS
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BSF
STATUS,RP0
MOVLW b00000000
MOVWF TRISB
135
MOVLW b00000111
MOVWF OPTION_REG
BCF
STATUS,RP0
CLRF
TMR0
;Timer zro.
CLRF
PORTB
MOVLW b10100000
MOVWF INTCON
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
PROGRAMME PRINCIPAL
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LOOP
GOTO
LOOP
;Boucle introduite juste pour occuper
;le processeur, car le but du programme
;est dattendre lapparition du signal
;dinterruption.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
PROGRAMME dINTERRUPTION
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INT_VECT
MOVWF SAVE_W
MOVF
STATUS,W
MOVWF SAVE_STAT
BCF
INTCON,T0IF
BTFSC
GOTO
BSF
GOTO
PORTB,0
LED_OFF
PORTB,0
FIN
LED_OFF
BCF
PORTB,0
FIN
MOVF
SAVE_STAT,W
MOVWF STATUS
MOVF
SAVE_W,W
RETFIE
136
;empcher la prise en compte dune
;nouvelle interruption pouvant surgir,
;alors quil est justement en train den
;traiter une. (On dit que pendant ce
;temps-l les interruptions sont
;masques).
:Linstruction RETFIE, en mme temps
;quelle provoque le retour au
;programme principal, remet 1 le bit
;GIE (Global Interrupt Enable).
END
137
PROGRAMME 6
EQU
EQU
EQU
EQU
0C
0D
0E
0F
;Variables
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
VECTEURS
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ORG
00
;Vecteur de Reset.
GOTO
START
ORG
GOTO
04
INT_VECT
;Vecteur dinterruption.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
START
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
START ORG
05
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
INITIALISATIONS
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BSF
STATUS,RP0
138
MOVLW b00000000
MOVWF TRISB
;Port B en sortie.
MOVLW b00000111
MOVWF OPTION_REG
BCF
STATUS,RP0
CLRF
TMR0
;Timer zro.
CLRF
PORTB
MOVLW b10100000
MOVWF INTCON
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
PROGRAMME PRINCIPAL
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MAIN
BSF
PORTB,1
;On allume la LED (BR1) et on la
GOTO
MAIN
;laisse toujours allume, en attendant
;lapparition dune interruption.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
PROGRAMME dINTERRUPTION
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INT_VECT
MOVWF SAVE_W
MOVF
STATUS,W
MOVWF SAVE_STAT
BCF
INTCON,T0IF
BTFSC
GOTO
BSF
GOTO
PORTB,0
SUITE
PORTB,0
FIN
SUITE
BCF
PORTB,0
FIN
MOVF
SAVE_STAT,W
MOVWF STATUS
MOVF
SAVE_W,W
RETFIE
139
;empcher la prise en compte dune
;nouvelle interruption pouvant surgir,
;alors quil est justement en train den
;traiter une. (On dit que pendant ce
;temps-l les interruptions sont
;masques).
:Linstruction RETFIE, en mme temps
;quelle provoque le retour au
;programme principal, remet 1 le bit
;GIE (Global Interrupt Enable).
END
140
PROGRAMME 7
04
INT_VECT
;Vecteur dinterruption.
;Renvoi au programme dinterruption.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
INITIALISATIONS
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
START ORG
05
;Saut introduit intentionnellement
;pour passer au-dessus des adresses
;EEPROM 01 02 03 et 04,
;et obliger le programme dmarrer
; ladresse 05.
BSF
STATUS,RP0
MOVLW b00000000
MOVWF TRISB
MOVLW b00000100
141
MOVWF OPTION_REG
BCF
STATUS,RP0
MOVLW .125
MOVWF COMPT1
MOVLW b10100000
MOVWF INTCON
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
PROGRAMME PRINCIPAL
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LOOP1 GOTO
LOOP1
;Boucle introduite pour occuper le
;processeur, car le but principal du
;programme est dattendre lapparition
;du signal dinterruption pour
;dclencher lanimation du chenillard.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
PROGRAMME dINTERRUPTION
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INT_VECT
MOVLW b00000001
;On allume la LED
MOVWF SHIFT
;branche sur RB0,
MOVF
SHIFT,0
;en transitant par
MOVWF PORTB
;la variable SHIFT.
BCF
RLF
STATUS,0
SHIFT,1
BTFSC
rotation
SWAPF
CALL
142
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
SOUS-PROGRAMME de TEMPORISATION
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DELAI
MOVLW .6
MOVWF TMR0
TEST
MOVF
BTFSS
TMR0,0
STATUS,Z
GOTO
TEST
MOVLW
MOVWF
DECFSZ
GOTO
.6
TMR0
COMPT1,1
TEST
MOVLW .6
MOVWF TMR0
MOVLW .125
MOVWF COMPT1
;On recharge
;la variable COMPT1.
RETURN
END
;Fin du programme.
143
MPLAB
144
Il offre beaucoup de flexibilit aux dveloppeurs, notamment grce
aux nombreuses fentres pouvant tre ouvertes tout moment lors dune
mise au point, permettant de voir le contenu dun quelconque emplacement
mmoire et dun quelconque registre.
145
146
147
148
Dans la fentre suivante, dcochez les lments que vous ne
souhaitez pas installer.
149
150
La fentre suivante (Select Destination Directory) vous indique le
chemin que linstallation va prendre dans votre PC.
151
152
Dans la fentre suivante (Add to Start Menu ?) acceptez
suggestion Yes .
la
153
Faites la mme chose dans la fentre suivante :
154
Puis acceptez encore ce qui vous est propos dans la fentre qui
suit :
155
Vous arrivez enfin la dernire fentre : celle qui vous dit que
maintenant tout est prt pour que linstallation dmarre de vrai !
Cliquez sur Next : cest parti.
156
Une fois linstallation termine (Installation Completed !), vous
pouvez ignorer le Readme propos. Cliquez sur MPLAB.EXE pour crer un
raccourci.
Vous pouvez dmarrer.
Lenvironnement de dveloppement de MPLAB est vous !
157
158
Comme lon sait que dans tout logiciel bien conu plus il y a
doutils disponibles et plus le travail est facile, la premire vidence est que
MPLAB est un logiciel sympathique.
A ajouter aussi que MPLAB est un logiciel sr, et quil possde plusieurs
points dentre.
159
MPLAB est un logiciel sr : vous pouvez lutiliser sans vous faire
le moindre souci, car il ne vous laissera jamais modifier ou supprimer quoi
que ce soit prsentant le moindre danger pour lintgrit des fichiers sans
vous mettre en garde et vous demander de confirmer la commande;
MPLAB possde plusieurs points dentre : en ce sens que vous
pouvez effectuer la mme tche en empruntant des chemins diffrents, sans
obligatoirement obir un mode demploi prtabli. Il suffit, la plupart des
fois, dadapter et de croiser les grilles cran ouvertes sur le bureau.
Eu gard cette souplesse, cest--dire : tant donn quil est
possible demprunter diffrents chemins pour accomplir la mme tche, la
manire dcrire un programme et de lassembler que je vais vous indiquer,
est seulement lune des manires possibles. Au fur et mesure que vous
vous familiariserez avec MPLAB, vous en dcouvrirez dautres.
160
161
New Project
162
Dans le champ File Name entrez le nom que vous voulez donner
votre projet (nous avons convenu de lappeler phase1) suivi de .pjt
(phase1.pjt).
163
164
b) le Development Mode se rapporte bien au MPLABSIM Simulator PIC 16F84 et non pas un autre mode de dveloppement
(sinon cliquez sur la touche Change et modifiez en consquence; puis
cliquez en rpondant toujours OK) ;
b) le Language Tool Suite doit tre celui de Microchip.
Aprs ces vrifications, cliquez sur la touche OK.
Ds lors, le projet est cr.
Il contient les paramtres qui lui sont ncessaires, et vous pourrez
vous y rfrer par la suite.
165
Deuxime tape :
criture du programme source
Pour taper votre programme, allez dans :
File
New
166
La fentre daccueil est Untitled1 :
dinsrer des
; (point-virgule)
avant
les
167
Lorsque toutes les lignes du programme ont t saisies, allez dans :
File
Save As...
168
Dans le champ File Name demandant le nom sous lequel vous
voulez sauvegarder le fichier, tapez le nom du programme - qui doit tre
imprativement le mme que celui du projet, suivi de lextension .asm ainsi
que MPLAB vous le rappelle (phase1.asm) - ou allez le chercher dans la
liste droulante, au moyen de lascenseur. Puis terminez en cliquant sur la
touche OK.
169
Troisime tape:
conversion du programme source
en programme objet
Le but de cette opration est de convertir le fichier source (celui
dont lextension est .asm ) en fichier objet, cest dire en un fichier ayant
le mme nom que celui du fichier source, mais avec extension .hex
Autrement dit : convertir phase1.asm en phase1.hex
Pour cela, allez dans :
Project
Edit Project
170
171
Cette fentre comporte dj le nom du fichier cible (phase1.hex).
Mais, ce stade, MPLAB demande quun nud soit cr entre le fichier
cible et le fichier source.
En bas, droite, une touche est disponible : Add Node.
Un clic sur cette touche, ouvre la fentre Add Node.
172
La fentre Edit Project souvre une nouvelle fois :
Mais cette fois, dans la zone Project Files, figurent les noms de
deux fichiers :
- celui extension .hex
- et celui extension .asm
173
Build All
174
Il arrive quune compilation soit bonne du premier coup.
A supposer que tel soit le cas, vous devriez voir souvrir la fentre
suivante :
175
Vous pourriez - tout au plus - voir apparatre des messages ou
des warnings , cest dire des avertissements, des mises en garde.
Bien que les messages et les warnings nempchent pas le
droulement dun programme, il est tout de mme bon de leur jeter un coup
dil et den comprendre les raisons.
Il suffit de demander MPLAB de numroter les lignes de votre
programme (en cliquant sur licne dans lune des barres des outils, en haut
de lcran)
176
Quatrime tape:
correction des erreurs
Si votre programme contient des erreurs, la compilation naboutit
pas.
Avec le message Build failed (construction rate), vous verriez
apparatre des messages mentionnant la ou les erreurs.
Dans ce cas, il faut imprativement revenir au fichier extension
.asm et corriger les erreurs.
Puis, relancer la compilation depuis le dbut par :
Project
Make Project
177
Cinquime tape:
simulation du programme
Disons-le tout de suite : cette tape est facultative, car elle
concerne la simulation.
La simulation est une sorte de vrification virtuelle permettant de
voir lcran ce qui se passe lorsque les instructions sont excutes par le
microcontrleur.
On peut la faire de diffrentes faons :
- en mode pas pas
- en mode step over
- en mode excution automatique
- avec ouverture de fentres.
178
Run
Reset
(ou tapez le raccourci clavier F6) :
179
La ligne de programme se trouvant cette adresse passe en
surbrillance, tandis que dans la barre dtat (situe en bas de lcran) PC
prend la valeur 00.
Ensuite allez dans :
Debug
Run
Step
180
181
Run
Step Over
182
Pour faire avancer le programme dans ce mode, tapez sur le
raccourci clavier
F8 ou cliquez de faon rpte sur licne montrant deux
183
184
Ouverture de fentres
En complment la simulation, vous pourriez avoir besoin de voir
de plus prs comment volue une variable, une adresse, le contenu dun
compteur ou dune quelconque zone mmoire.
Pour ce genre dobservation, MPLAB met disposition un grand
nombre de fentres (Windows) spcifiques.
Il suffit daller soit dans :
Window
185
Window), ou celle relative aux registres usage spcial (Special Function
Register Window).
Sinon on peut aller dans :
Window
Watch Windows
186
Cette manuvre ouvre une fentre comportant tous les noms des
registres et variables utilis dans votre programme :
187
PROGRAMMATION
en langage BASIC
Le BASIC que nous allons utiliser est le PicBASIC labor par la
Socit MICRO ENGINEERING Labs (reprsente en France par
SELECTRONIC Lille).
Le COMPILATEUR PicBASIC tient sur une disquette.
Il est propos en deux versions : la version standard et la version
professionnelle.
Tous les exemples que je fournis ont t raliss avec la version standard,
qui permet de raliser nimporte quel programme, sans limitations.
Ce que lon trouve en plus dans la version Pro, cest un plus grand confort
de travail : possibilit douvrir plusieurs fentres en mme temps,
numrotation des lignes du fichier source, etc..
La disquette est accompagne dun manuel dutilisation en anglais et dune
traduction en franais.
Ce logiciel, vendu par SELECTRONIC Lille, au moment de la rdaction
de ces pages, cote 129,50 (prix au 16/09/2002).
188
PIC, la Page 0, la Page1, le Registre STATUS, le Registre OPTION et tout
le reste.. sera vite oubli. Vous ne verrez plus que votre programme.
Cest comme si, pour prparer un programme commandant
louverture de la porte de votre garage :
a) avec le langage ASSEMBLEUR vous devriez crire :
- approchez-vous de la porte du garage
- mettez la main gauche dans la poche gauche de votre veste
- prenez la cl de la porte du garage
- avez-vous la cl en main ?
- non
- mettez alors la main droite dans la poche droite de votre veste
- prenez la cl de la porte du garage
- avez-vous la cl en main ?
- oui
- sortez la main droite de la poche droite de votre veste
- introduisez la cl dans la serrure de la porte du garage
- tournez la cl
-etc...
- etc...
- fin
b) alors quavec le langage MEL PicBASIC il suffirait dcrire :
- approchez-vous de la porte du garage
- prenez la cl
- ouvrez la porte du garage
- fin
Ce sont les instructions du PicBASIC qui - avec leur puissance comprennent ce que vous voulez faire et effectuent toutes les petites tches
intermdiaires, votre place, sans que vous ayez besoin de les dtailler.
Merveilleux, non ?
Avant dexaminer chaque instruction une par une, il est
indispensable de sarrter sur quelques particularits qui facilitent
grandement lapprentissage du langage MEL PicBASIC.
189
Symbol
Avec la directive Symbol on peut associer un nom une variable
ou une pin du microcontrleur.
Ainsi dfinies, telle variable ou telle pin du microcontrleur
peuvent alors tre plus facilement utilises dans lcriture dun programme.
Par exemple : Symbol LED = Pin 0
Signifie : associe Pin 0 (cest dire RB0) le nom LED.
Ainsi, par exemple linstruction :
LED = 1
est plus facile lire dans le programme, car on comprend quelle allume la
LED (met au niveau logique haut la pin 0 du Port B).
Symbol permet de renommer un chiffre (le plus souvent) ou une
variable.
Chiffres et variables qui rencontrs dans la lecture dun programme ne
diraient pas grandchose, deviennent plus explicites aprs avoir t
rebaptiss par Symbol car il est beaucoup plus facile de retenir un nom
quune adresse, le nom tant charg dune signification, alors quune
adresse ne dit rien.
190
191
192
193
Port A
a) Pour configurer le Port A en entre (associ - par exemple -
des interrupteurs) il faut premirement sadresser au Registre du Port A
(situ ladresse 5). Puis il faut dfinir la direction de ce Port en sadressant
au Registre TRISA (situ ladresse 85).
Les bits mis 0 deviennent des entres. Tandis que les bits mis 1
deviennent des sorties.
Pour configurer tout le Port A en entre il faut donc crire :
Symbol PORTA = 5
Symbol TRISA = $85
POKE TRISA,255
(255 = 11111111)
(Tous bits du Port A en entre).
b) Pour configurer le Port A en sortie il faut faire de mme :
premirement sadresser au Registre du Port A (situ ladresse 5). Puis
dfinir la direction de ce Port en sadressant au Registre TRISA (situ
ladresse 85).
Les bits mis 0 deviennent des entres. Tandis que les bits mis 1
deviennent des sorties.
Pour configurer tout le Port A en sortie il faut donc crire :
Symbol PORTA = 5
Symbol TRISA = $85
POKE TRISA,0
(0 = 00000000)
(Tous bits du Port A en sortie).
194
Port B
Pour configurer le Port B on utilise linstruction
DIRS = X X X X X X X X
DIRS suivi du signe gal et - aprs le signe gal - des 0 et des 1
formant loctet de configuration, conformment la faon dont on veut
configurer le Port.
0 = entre
1 = sortie
Exemples :
- DIRS = % 11111111
(ou DIRS = 255)
- DIRS = % 00000000
(ou DIRS = 0)
- DIRS = % 00001111
(ou DIRS = 15)
195
196
Les constantes
Les constantes numriques peuvent tre exprimes en trois bases :
- dcimale
- binaire
- hexadcimale
Pour dire au compilateur en quelle base on veut travailler, on place
un prfixe devant le nombre.
En crivant un nombre sans prfixe, le compilateur traite ce
nombre en dcimal.
Par exemple : 100 (sans prfixe) est interprt comme 100 (base
dcimale).
En tapant %100, le compilateur interprte le nombre 100 en
binaire (00000100 cest dire 4 en dcimal).
Enfin, en tapant $100, le compilateur interprte le nombre 100 en
hexadcimal (0001 0000 0000 cest dire 256 en dcimal).
197
Les labels
Les labels (tiquettes) doivent obligatoirement commencer la
premire colonne, et doivent se terminer par deux points ( :)
Elles servent gnralement identifier des sous-programmes pour
que le PIC - lissue dun test, par exemple - fasse une certaine chose si la
condition est vraie, ou une autre chose si la condition est fausse. Ou, devant
la position dun interrupteur, pour quil fasse une certaine chose si
linterrupteur est ouvert ou une certaine autre chose si linterrupteur est
ferm.... etc..
Les tiquettes reprent des adresses, pour que le PIC y accde
quand on y fait rfrence.
198
Les commentaires
En PicBASIC les commentaires doivent obligatoirement tre
prcds par une apostrophe () (Attention : la directive REM nexiste pas
en PicBASIC).
Tout ce qui est crit aprs une apostrophe est ignor par le
compilateur.
Les commentaires servent garder une trace de ce que fait le
programme.
Lcriture dun programme sans commentaires nest pas
envisager, car mme si la comprhension dun programme peut paratre
vidente au moment de sa cration, elle peut savrer difficile quelque
temps aprs, ou sa lecture impossible pour ceux qui devraient en assurer la
maintenance.
Ne soyez pas avares de commentaires. Mettez-les mme quand les
seules instructions du programme pourraient donner une impression
dvidence.
199
Le set dINSTRUCTIONS du
MEL PicBASIC
Le MEL PicBASIC est constitu de 40 instructions.
Ne confondez pas - je vous prie - les 40 instructions de ce langage
avec les 37 instructions du langage ASSEMBLEUR : cela na strictement
rien voir !
Examinons ces 40 instructions une par une, en les prsentant par
ordre alphabtique pour que vous les retrouviez plus facilement.
Je signale quelles peuvent tre crites comme on veut :
- en majuscules
- en minuscules
- et mme en mlangeant majuscules et minuscules.
Par exemple, linstruction GOTO peut scrire :
- GOTO
- Goto
- goto
- GoTO
- goTO
- gOto
- etc...
200
201
BUTTON
DIRS =
HIGH
INPUT
LOW
OUTPUT
PINS =
POT
PULSin
PULSout
PWM
REVERSE
SERin
SERout
SOUND
TOGLE
I2Cin
I2Cout
TRISA
DEBUG
EEPROM
END
FOR...NEXT
IF...THEN
LET
LOOKDOWN
LOOKUP
NAP
PAUSE
PEEK
POKE
RANDOM
READ
SLEEP
WRITE
202
BRANCH
Cette instruction est une variante de GOTO.
Comme GOTO, elle permet de sauter des sous-programmes.
Mais ici en fonction de la valeur prise par la variable donne en offset.
SYNTAXE :
BRANCH offset (Label1, Label2, ... )
Si offset vaut 0, le programme saute Label1
Sil vaut 1, le programme saute Label2
et ainsi de suite..
EXEMPLE :
BRANCH B5 (Label1, Label2, Label3)
Si B5 vaut 0, le programme fait un GOTO au sous-programme
appel Label1.
Sil vaut1, le programme fait un GOTO au sous-programme
appel Label2.
Sil vaut2, le programme fait un GOTO au sous-programme
appel Label3.
Si la valeur de loffset (ici B5) prend une valeur suprieure au
nombre des sous-programmes indiqus dans les parenthses (ici : 0, 1, 2) le
programme neffectue aucun saut et continue en squence.
203
BUTTON
Cette instruction lit ltat dun interrupteur plac sur lune des 8
lignes (0.....7) du Port B (RB) et peut :
- dclencher une procdure danti-rebonds
- dclencher une procdure dauto-rptition
- tester si linterrupteur ferme vers la masse ou vers le +
- faire un GOTO un sous-programme, selon que linterrupteur
soit ouvert ou ferm.
SYNTAXE :
BUTTON Pin, Down, Delay, Rate, Var, Action, Label
Nom du sous-programme
auquel il faut sauter.
Etat auquel linterrupteur doit se
trouver (0 si ouvert, 1 si ferm)
pour que le saut ait lieu.
Nom de la variable (B0....B51) servant
au dcomptage des auto-rptitions.
Nombre de fois (0.....255) quon veut faire
tourner lauto-rptition pour lire ltat
de linterrupteur.
Nombre de cycles (0.....255) quon veut laisser passer
partir du moment o linterrupteur a t actionn,
avant de dclencher une procdure dauto-rptition.
Si Delay vaut 0, les fonctions anti-rebonds et
rptition automatique nont pas lieu. Si Delay vaut
255, seule la fonction anti-rebonds a lieu, pas
celle dauto-rptition.
Etat de linterrupteur au moment o il est appuy.
Numro de la pin du Port B (RB) sur laquelle se trouve
linterrupteur (0.......7).
204
EXEMPLE :
BUTTON 2, 0, 100, 10, B0, 0, CLIGNOTE
Lit ltat de linterrupteur plac sur RB2 (en supprimant les
rebonds des contacts) et si linterrupteur est ouvert saute au
sous-programme appel CLIGNOTE.
205
CALL
Appelle un sous-programme crit en langage ASSEMBLEUR.
Cest une instruction qui assure une sorte de passerelle, grce
laquelle on peut incorporer, des instructions crites en PicBASIC, des
instructions crites en langage ASSEMBLEUR.
SYNTAXE :
CALL Label
EXEMPLE :
CALL DELAI
DELAI DECFSZ
GOTO
MOVLW
MOVWF
DECFSZ
GOTO
MOVLW
MOVWF
MOVLW
MOVWF
RETURN
COMPT1,1
DELAI
.255
COMPT1
COMPT2,1
DELAI
.255
COMPT1
.255
COMPT2
206
DEBUG
Sert lors de la mise au point dun programme.
La mise au point dun programme est une phase dlicate.
Le programme est crit, mais des erreurs de syntaxe ou de
compilation peuvent apparatre. Le programme ne se droule pas
correctement. Il faut alors le dboguer.
Pour cela il existe diffrentes techniques.
Lune delles consiste placer une instruction DEBUG dans le
programme pour provoquer laffichage de valeurs permettant de dlimiter
des tapes dans le droulement du programme et localiser lerreur.
Linstruction DEBUG se comporte comme une sorte de point
darrt dynamique. Elle ne peut tre utilise que pendant la phase du
dveloppement, et ne peut pas figurer dans un programme mis au point.
Dans tous les cas, il faut retirer cette instruction daide la mise au
point, lors de la fabrication de la version finale du programme.
De toutes faons, si linstruction DEBUG restait dans le
programme, elle serait ignore une fois que celui-ci ait t correctement
compil.
Au fur et mesure que vous ralisez votre programme, ayez
toujours la mise au point en tte.
Si vous modifiez temporairement des instructions, ayez une feuille
volante avec leur liste. Cest la meilleure faon pour ne pas oublier de
toutes les restaurer ensuite.
207
DIRS
Dfinit la direction des lignes du Port B.
SYNTAXE :
DIRS = X X X X X X X X
(octet de configuration)
(0.......255)
0 = entre
1 = sortie
EXEMPLES :
1)
DIRS = 255 (255 dcimal, donc 11111111 en binaire)
Cela peut scrire aussi :
DIRS = %11111111
Tous bits du Port B configurs en sortie
2)
DIRS = 0
Tous bits du Ports B configurs en entre.
208
EEPROM
Cest linstruction avec laquelle on crit dans lEEPROM du PIC,
dans des adresses conscutives, partir de celle quon lui indique comme
tant ladresse de dpart.
SYNTAXE :
EEPROM Adresse, (Donne, Donne, Donne,......)
Dans les parenthses - espaces par des virgules les donnes crire dans lEEPROM
(constantes numriques ou caractres ASCII).
209
END
Cest linstruction que lon doit obligatoirement placer la fin de
tout programme.
Elle termine lexcution du programme et place le microcontrleur
en mode veille.
Pour rveiller le microcontrleur on est oblig de faire un Reset
matriel.
210
FOR... NEXT
Cette instruction introduit une boucle en faisant excuter un certain
nombre de fois les actions dtailles dans ce que lon appelle : le
corps de linstruction.
SYNTAXE :
FOR Variable = Dbut TO Fin (Pas)
.
.
.
NEXT Variable
Variable prend dabord la valeur dfinie par
Dbut ; puis successivement toutes les valeurs suivantes, par
incrmentation automatique, jusqu atteindre la valeur dfinie par Fin, et
chaque fois, pour chaque valeur de Variable, excute les instructions
dtailles dans le corps de linstruction.
A chaque passage, Variable sincrmente (de 1).
Mais on peut aussi incrmenter la Variable au pas quon veut.
Dans ce cas il faut le prciser en donnant une valeur Pas, place entre
deux parenthses.
Par exemple, si lon crit :
FOR B1 = 0 TO 10 (2)
B1 prendra successivement
non pas les valeurs 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9
mais 0, 2, 4, 6, 8 et 10.
EXEMPLE :
FOR B1 = 1 TO 10
HIGH 0
PAUSE 200
LOW 0
PAUSE 200
NEXT B1
211
Fait clignoter 10 fois de suite (allume pendant 200 millisecondes,
puis teint pendant 200 millisecondes) la LED connecte sur RB0 (Pin 0 du
Port B).
NB : Des boucles FOR... NEXT peuvent tre imbriques dans
dautres boucles FOR... NEXT jusqu un maximum de 16 imbriquements.
EXEMPLE :
LOOP
FOR B0 = 1 TO 5
FOR B1 = 1 TO 7
HIGH B1
PAUSE 10
LOW B1
PAUSE 500
NEXT B1
NEXT B0
GOTO LOOP
Pour chacune des valeurs pouvant tre prises par B1 (cest
dire 1 7. Cest la boucle interne) faire le travail dfini par la boucle
interne autant de fois que les valeurs pouvant tre prises par B0 (boucle
externe).
Dans le cas de cet exemple : la boucle externe tourne 5
fois, avant que B1 passe dune valeur la suivante.
Ici, donc, la LED relie RB0 clignote 5 fois, puis la
LED relie RB1 clignote 5 fois, puis la LED relie RB2 clignote 5
fois.... jusqu celle relie RB7.
Puis, a recommence.
Restons sur cet exemple, et tudions-le de plus prs.
Cela en vaut la peine, car les boucles FOR.... NEXT sont trs utilises
quand on programme en PicBASIC.
212
LOOP
FOR B0 = 1 TO 5
FOR B1 = 0 TO 7
HIGH B1
PAUSE 10
Le travail...
LOW B1
que doivent faire
PAUSE 500
chacune des valeurs
NEXT B1
de B1, autant de fois...
NEXT B0
.... que chacune des valeurs de B0
GOTO LOOP
Autrement dit :
HIGH 0: PAUSE 10: LOW 0 : PAUSE 500
HIGH 0: PAUSE 10: LOW 0 : PAUSE 500
HIGH 0: PAUSE 10: LOW 0 : PAUSE 500
HIGH 0: PAUSE 10: LOW 0 : PAUSE 500
HIGH 0: PAUSE 10: LOW 0 : PAUSE 500
HIGH 1: PAUSE 10: LOW 1 : PAUSE 500
HIGH 1: PAUSE 10: LOW 1 : PAUSE 500
HIGH 1: PAUSE 10: LOW 1 : PAUSE 500
HIGH 1: PAUSE 10: LOW 1 : PAUSE 500
HIGH 1: PAUSE 10: LOW 1 : PAUSE 500
HIGH 2: PAUSE 10: LOW 2 : PAUSE 500
etc....
jusqu 7.
Limportance de NEXT est trs grande. Voyons-la au moyen dun autre
exemple :
On veut allumer toutes les LED du Port B.
Ecrivons le programme suivant :
LOOP FOR B0 = 0 TO 7
HIGH B0
NEXT B0
END
213
Si on excute ce mme programme sans linstruction NEXT B0,
on constate que seule la LED relie RB0 sallume, et pas les autres.
Ceci parce que linstruction NEXT B0 incrmente la variable B0
et referme la boucle en fournissant chaque tour une nouvelle valeur (0,
1, 2,.....7) correspondant diffrents RB et par l des LED diffrentes.
214
GOSUB
Cest linstruction par laquelle on appelle un sous-programme.
Le sous-programme appel doit imprativement se terminer par
linstruction RETURN.
Linstruction RETURN, place la fin du sous-programme, fait
revenir le programme principal linstruction se trouvant juste aprs
GOSUB.
Ne pas confondre GOSUB avec GOTO qui renvoie elle aussi
lexcution du programme ailleurs, mais cette fois sans retour.
SYNTAXE :
GOSUB Label
.
.
.
RETURN
215
Programme principal
DEBUT
INSTRUCTION 1
INSTRUCTION 2
INSTRUCTION 3
Sous-programme
TEMPO
INSTRUCTION 37
INSTRUCTION 38
GOSUB
TEMPO
INSTRUCTION 40
INSTRUCTION 41
FIN
INSTRUCTION a
INSTRUCTION b
INSTRUCTION c
INSTRUCTION d
INSTRUCTION e
RETURN
216
GOTO
Renvoie un autre endroit du programme.
SYNTAXE :
GOTO Label
Repre (adresse) de lendroit de la mmoire auquel le programme doit se
rendre pour poursuivre son excution.
EXEMPLE :
GOTO END
(Arrte le programme)
217
HIGH
Cette instruction fait deux choses en mme temps :
- aprs avoir mis en sortie une ligne du Port B (RB), la place aussitt
ltat logique haut (1).
SYNTAXE :
HIGH Pin
Numro de la pin (0..... 7) du Port B
(RB) quon veut mettre ltat haut
EXEMPLE :
HIGH 0
Sort un 1 sur RB0
218
I2Cin
Reoit des donnes partir dun bus I2C.
SYNTAXE :
I2Cin Contrle, Adresse, Variable
Nom de la variable (B0... B51) dans laquelle
on veut stocker le rsultat de la lecture.
Adresse mmoire dont on veut lire le contenu.
Octet compos de :
- la cl daccs spcifique au circuit I2C utilis,
telle quelle a t dfinie par son fabricant (sur 4 bits)
- 1 bit (celui de plus fort poids) dsignant la largeur du
bus dadresses (0 = 8 bits ; 1 = 16 bits)
- 3 bits (ceux de plus faible poids) servant la slection
des blocs internes (pages de 256 octets).
Cette instruction fait plusieurs choses de suite :
- sort la cl permettant laccs au circuit I2C
- va ladresse voulue
- lit son contenu
- le stocke dans la variable figurant en argument.
EXEMPLE :
I2Cin %01010000, 12, B0
Lit le contenu de ladresse 12 et le stocke dans la variable B0.
Loctet Contrle (%01010000 ou $50) se lit comme ceci :
- le bit de plus fort poids (0) spcifie un bus dadresse
de 8 bits
- les quatre bits suivants (1010) correspondent la cl
daccs dfinie par le fabricant
- les trois bits de plus faible poids, non utiliss dans ce
type de mmoire, sont mis zro (000).
219
Cette instruction permet notamment dajouter au PIC une mmoire
EEPROM srie au standard I2C (24LC01B, 24LC02B, 24LC04B,
24LC08B, 24LC16B, 24LC32B, 24LC65... toutes les 24 C0x en gnral)
et de disposer ainsi dune plus grande taille mmoire.
Bien entendu, ce nest pas seulement des EEPROM que le PIC
peut tre associ, mais nimporte quel circuit du standard I2C (capteur de
temprature, convertisseur A/D, etc...).
Ce tableau donne les cls daccs des EEPROM les plus courantes :
Modle
24LC01B
24LC02B
24LC04B
24LC08B
24LC16B
24LC32B
24LC65
Taille mmoire
128 octets
256 octets
512 octets
1k octets
2K octets
4K octets
8K octets
Contrle
%01010xxx
%01010xxx
%01010xxb
%01010xbb
%01010bbb
%11010ddd
%11010ddd
Largeur de bus
8 bits
8 bits
8bits
8bits
8bits
16 bits
16 bits
220
221
I2Cout
Envoie des donnes sur un bus I2C.
SYNTAXE :
I2Cout Contrle, Adresse, (Valeur)
Valeur crire (00... FF)
Adresse laquelle on veut crire.
Octet de contrle compos de :
- la cl daccs spcifique au circuit I2C, telle qelle
a t dfinie par le fabricant (sur 4 bits) ;
- 1 bit (celui de plus fort poids) dsignant la valeur
du bus des adresses (0=8 bits ; 1=16 bits) ;
- 3 bits (ceux de plus faible poids) servant la slection
des blocs.
Lcriture dun octet dans une EEPROM srie prend environ 10 ms.
Par consquent, si on veut crire plusieurs octets en suivant, il faut
imprativement respecter ce dlai sinon, si une opration dcriture est
encore en route, laccs la mmoire est ignor.
Diffrent est le cas si, au lieu davoir affaire des mmoires EEPROM, on
a affaire des composants de la famille I2C ne demandant pas un aussi
long dlai entre deux critures.
EXEMPLE :
I2Cout %01010000, 17, (42)
PAUSE 10
I2Cout %0101000, 125 (B3)
PAUSE 10
On crit 42 ladresse 17. On laisse passer 10 ms pour que
lopration dcriture sachve. Puis on crit le contenu de la variable B3
ladresse 125 et on laisse encore passer 10 ms.
Les lignes DATA et CLOCK sont affectes respectivement PORTA0 et
PORTA1. Ceci dans le soucis de laisser entirement disponibles les 8 bits
Port B. La ligne DATA est bidirectionnelle. Elle doit comporter une
rsistance de Pull-up de 4,7 K.
222
If... Then
Cette instruction teste une condition.
Si la condition est vraie, le programme saute au sous-programme
indiqu aprs Then.
Then est ici une sorte de Goto. Cest pourquoi aprs Then on doit
imprativement indiquer le nom du sous-programme auquel le programme
doit se rendre.
Si la condition est fausse, le programme continue en squence et analyse
linstruction suivante.
SYNTAXE :
IF Comparaison THEN Label
Nom du sous-programme excuter si la
condition est vraie.
Ce que lon veut comparer :
- ceci gal cela (=)
- ceci infrieur cela (<)
- ceci suprieur cela (>)
- ceci suprieur ou gal cela (>=)
- ceci diffrent de cela ( <>)
EXEMPLE :
IF Pin0 = 0 THEN OUVERT
IF B0 >=9 THEN PORTE
Si linterrupteur connect la pin 0 du Port A est ouvert (0),
excute le sous-programme appel OUVERT.
Si la variable B a une valeur suprieure ou gale 9, excute le
sous-programme appel PORTE.
223
INPUT
Place en entre lune des 8 lignes du Port B (RB).
SYNTAXE :
INPUT Pin
Numro de la pin du Port B (RB) quon veut placer en entre.
EXEMPLE :
INPUT 3
Met RB3 en entre.
NB : Seul le numro de la pin doit tre not. Cest dire : 0.... 7
et non Pin0.... Pin7
224
LET
Avec cette instruction on affecte une valeur une variable.
EXEMPLE :
LET B0 = 37
Affecte la variable B0 la valeur 37.
225
LOOKdown
Cherche une valeur (Recherche) dans une liste (Constante, Constante,
Constante...), et fournit en Index sa position dans la liste.
SYNTAXE :
LOOKDOWN Recherche, (Constante, Constante, Constante...), Index
Linstruction compare une variable une liste de constantes
jusqu ce quelle trouve une galit et dans ce cas place dans
une variable le numro du rang de cette valeur.
Si la valeur recherche est la premire de la liste, Index prend la
valeur 0 ; si cest la deuxime, Index prend la valeur 1, etc..
Si par contre la recherche est infructueuse, aucune action na lieu et Index
reste inchang.
Par exemple : si la liste des Constantes est (3, 12, 14, 27, 9) et la valeur de
Recherche est 14, Index prendra la valeur 2 puisque 14 est la troisime
constante de la liste (le dcompte commence 0).
EXEMPLE :
SERin 1, N2400, B0
LOOKDOWN B0, ( 0123456789ABCDEF ), B1
SERout 0, N2400, (#B1)
Lit les caractres arrivant dans une rception srie sur RB1 (pin 1
du Port B), les stocke un la fois dans la variable B0, et fournit la
position de chacun deux dans la variable B1, mise ensuite en
sortie sur RB0 (pin 0 du Port B).
226
LOOKup
Cette instruction permet de rcuprer une valeur partir dune
table de constantes.
On donne une valeur Index et on demande linstruction de
sauvegarder dans une Variable la valeur correspondant son rang
dans la liste des variables.
Si Index vaut 0, Variable assume la valeur de la premire
constante. Si Index vaut 1, Variable assume la valeur de la
deuxime constante, et ainsi de suite.
Si Index est un nombre suprieur au nombre des constantes, il ne
se passe rien et Variable reste inchange.
SYNTAXE :
LOOKUP Index, (Constante, Constante, Constante....), Variable
Nom de la variable
dans laquelle on veut
mmoriser la variable
recherche.
Constantes ranges par rang.
Rang correspondant la valeur quon veut rcuprer.
EXEMPLE :
FOR B0 = 0 to 6
LOOKUP B0, (BONJOUR), B1
SERout 0, N2400, (B1)
NEXT B0
On donne successivement B0 les valeurs de 0
7 pour rcuprer dans la variable B1, lune aprs
lautre, toutes les lettres de BONJOUR,
lesquelles sortent ensuite en srie sur RB1.
227
LOW
Cette instruction met ltat logique bas (0) une ligne (0... 7) du
Port B (RB).
SYNTAXE :
LOW Pin
Numro de la pin (0... 7) du Port B quon veut mettre ltat bas.
EXEMPLE :
LOW 3
Met ltat logique bas RB3.
NB : Seul le numro de la pin de RB doit tre spcifi. Exemple : 4,
et non pas Pin 4.
Une instruction mal rdige conduirait une excution errone du
programme.
228
NAP
Cette instruction met le microcontrleur en veille pendant le temps
dfini par Priode.
SYNTAXE :
NAP Priode
(0... 7)
0
1
2
30
4
5
6
7
18 ms
36 ms
72 ms
144 ms
288 ms
576 ms
1.152 ms
2.304 ms
229
OUTPUT
Cette instruction place en sortie lune des 8 pins du Port B (RB).
SYNTAXE :
OUTPUT Pin
230
PAUSE
Instruction introduisant une temporisation.
SYNTAXE :
PAUSE Priode
Dure, exprime en millisecondes.
Pour un 16F84 cadenc 4 MHz, lunit de temps est approximativement
1 milliseconde.
EXEMPLE :
PAUSE 500
Engendre un temporisation de 500 ms ( seconde).
Contrairement linstruction NAP qui fournit des dlais
prdfinis et approximatifs (car issus du Watchdog Timer),
linstruction PAUSE fournit des dlais la demande et plus
prcis (bien quencore pas tout fait exacts, sa prcision
dpendant entre autre de celle du quartz et de ltat de
lalimentation).
231
PEEK
Cette instruction lit le contenu dune adresse et le stocke
dans une variable.
SYNTAXE :
PEEK Adresse, Variable
Nom de la variable dans laquelle on veut
stocker le rsultat de la lecture.
Adresse dont on veut lire le contenu.
EXEMPLE :
PEEK PORTA, B0
On lit le contenu du Port A et on le mmorise dans la
variable B0.
Autre EXEMPLE :
Symbol PORTA = 5
Symbol TRISA = $85
POKE TRISA, 255
PEEK PORTA, B0
Ensuite, on peut continuer comme ceci :
IF BIT0 = 0 THEN......
IF BIT0 = 1 THEN......
On lit le Port A par lintermdiaire de la variable B0.
Ensuite on peut tester et agir en fonction de ltat de
chaque bit.
232
PINS
Cette instruction met en sortie, sur le Port B, loctet spcifi aprs
le signe =
SYNTAXE :
PINS = X X X X X X X X
Octet spcifier.
EXEMPLES :
1)
PINS = $2B
Met la valeur hexadcimale 2B (00101100) sur le Port B.
Ce qui a pour effet de mettre :
le bit 0 0
le bit 1 0
le bit 2 1
le bit 3 1
le bit 4 0
le bit 5 1
le bit 6 0
le bit 7 0.
2)
PINS = B1
Met chacun des bits du Port B ltat haut ou ltat bas,
conformment loctet se trouvant dans la variable B1.
3)
PINS = 255
Met ltat haut tous les bits du Port B.
4)
DIRS = 255
(Port B en sortie)
233
LOOP FOR B1 = 0 TO 255
PINS = B1
PAUSE 500
NEXT B1
GOTO LOOP
END
On affiche sur le Port B toutes les valeurs de 0 255
(FOR B1 = 0 TO 255... NEXT B1) un intervalle de 500 ms.
Puis on recommence indfiniment.
234
POKE
Cest linstruction par laquelle on crit une donne ladresse que lon
dsigne.
SYNTAXE :
POKE Adresse, Donne
Donne crire.
Adresse laquelle on veut crire la donne.
EXEMPLES :
1)
POKE TRISA, 0
Met 0 dans TRISA.
2)
SYMBOL
SYMBOL
PORTA = 5
TRISA = $85
(Adresse de PORTA)
(Adresse de TRISA)
POKE TRISA, 0
PEEK PORTA, B0
(Port A en sortie)
(Copie Port A
dans B0)
BIT1 = 1
BIT2 = 0
etc...
POKE PORTA, B0
END
Ainsi faisant, on copie sur le Port A ce qui
se trouve dans la variable B0.
235
POT
Lit la valeur dune rsistance (potentiomtre, thermistance, jauge de
contrainte, capteur de position ou autre composant rsistif) sur lune
des pins (0..... 7) du Port B.
La valeur de la rsistance (pouvant aller de 5 K 50 K) est
dtermine, en fait, en mesurant le temps de dcharge du condensateur
associ la rsistance avec laquelle il forme une cellule R/C.
SYNTAXE :
POT Pin, Echelle, Variable
Nom de la variable dans laquelle on veut
mmoriser le rsultat de la mesure. Si Echelle est
positionn sa valeur optimale, Variable prend une
valeur proche de 0 lorsque le potentiomtre est tourn
sur le minimum, et une valeur proche de 255 lorsque
le potentiomtre est tourn sur le maximum.
(1..... 255) est un facteur de conversion qui dpend des
caractristiques de la cellule R/C. Sa valeur doit tre
dtermine exprimentalement. Pour de grandes constantes
de temps R/C, la valeur dEchelle doit tre petite (le minimum
est 1). Au contraire, pour de petites constantes de temps, la
valeur donner Echelle doit tre grande (255).
(0....7) Dsigne la pin du Port B (RB) sur laquelle on veut lire
la valeur de la rsistance.
Pour dterminer au plus juste la valeur quil convient de donner Echelle,
la mthode consiste la faire valuer par le PIC lui-mme. Pour cela,
rglez dabord la valeur de la rsistance son maximum, et lisez-la avec
Echelle provisoirement positionne 255. Cette valeur (stocke dans
Variable) value par le PIC, est celle que vous pourriez alors donner
Echelle (valeur optimale).
Evidemment, pas question de sattendre lire une valeur prcise de
Rsistance, exprime en Ohms !
236
Ici, en dfinitive, on lit des paliers. Mais la valeur quassume tour tour
Variable chaque fois quon tourne laxe du potentiomtre, renseigne
suffisamment sur la position de laxe et par l mme sur la valeur
prise par la rsistance, si on connat sa valeur de bute.
EXEMPLE :
POT 7, 255, B0
SERout 0, N2400, (#B0)
Lit un potentiomtre reli RB7, mmorise le rsultat dans la
variable B0, puis met cette valeur en sortie sur RB0, en mode
srie.
Le schma de branchement est le suivant :
237
PULSin
Mesure la dure dune impulsion arrivant sur une pin du Port B (RB).
La pin dsigne est automatiquement mise en entre.
NB : La dure est exprime par units de 10 s. Autrement dit : le rsultat
de la mesure est multiplier par 10 pour avoir le nombre de microsecondes
recherch.
SYNTAXE :
PULSin Pin, Etat, Variable
Nom de la variable 16 bits (donc : de type W) dans
laquelle on veut mmoriser le rsultat de la mesure.
Cette variable peut aller de 1 65.535 (correspondant
respectivement :
- 1 x 10 s = 10 s
.
.
- 65.535 x 10 s = 655.350 s (soit 655,35 ms
ou encore 0,65535 secondes).
( 0 ou 1 )
Dfinit la partie du signal dont on veut lire la dure :
1 = la partie haute
0 = la partie basse.
( 0... 7 )
Numro de la pin du Port B (RB) qui reoit le signal dont on veut
mesurer la dure.
Attention : seul le numro de la pin doit tre not ( 0..... 7).
238
EXEMPLE :
PULSin 5, 1, W0
Mesure la dure de la partie haute dune impulsion arrivant sur
RB5 et stocke le rsultat dans la variable (16 bits) W0.
NB : Si aucun front nest dtect, ou si limpulsion dure plus
longtemps que 0.65535 seconde, Variable est mise 0.
Si on dfinit une variable de type B (variable 8 bits) au lieu
dune variable de type W (variable 16 bits), seuls les 8 bits de
poids faible sont mmoriss.
239
PULSout
Gnre - sur une pin du Port B - une impulsion de dure calibre,
exprime par units de 10 s.
La pin dsigne est automatiquement mise en sortie.
Le niveau (haut ou bas) de limpulsion calibre mise en sortie,
dpend de ltat de la pin avant lexcution de cette instruction, car
- lorsque cette instruction survient - elle inverse ltat actuel, pour
marquer un dbut partir duquel elle peut calculer la dure.
SYNTAXE :
PULSout Pin, Priode
Dure de limpulsion (de 1 65.535) par
pas de 10 s.
1 correspond (1x10 s) soit 10 s
2 correspond (2x10 s) soit 20 s
.
65.535 correspond (65.535x10 s) soit 0.65535 secondes.
(0... 7) Dsigne le numro de la pin du Port B (RB) sur laquelle on
veut sortir limpulsion calibre.
Attention : seul le numro (1, 2, 3..... 7) de la pin doit tre not,
et non pas Pin 1, Pin 2...... Pin 7
EXEMPLE :
PULSout 4, 100
Envoie sur RB4 une impulsion de 1 ms (100x10 s).
240
PWM
Pulse With Modulation
Modulation par largeur dimpulsions
Exemple de largeurs dimpulsions allant en augmentant
(ici ltat haut MARK devient de plus en plus large) :
Cette instruction gnre sur une pin du Port B (RB) un train dimpulsions
modules en largeur.
241
La pin dsigne est automatiquement mise en sortie mais, sitt le
cycle termin, elle est automatiquement remise en entre.
SYNTAXE :
PWM Pin, Duty, Cycle
Nombre dimpulsions quon veut largir ou retrcir.
Dsigne (en pourcentage) le cycle de travail de chaque train
dimpulsions (peut varier de 0% 255%). Cest le coefficient
dlargissement ou de retrcissement quon veut appliquer aux
impulsions.
Numro de la pin du Port B (RB) sur laquelle on veut gnrer le train
dimpulsions PWM.
Une LED commande par un signal PWM voit sa luminosit saccrotre
progressivement ou diminuer progressivement (selon le mode de
programmation), comme si elle tait associe un variateur, produisant
ainsi une sorte deffet crpucsulaire.
Moyennant un rseau R/C, cette instruction permet de mettre en place
un convertisseur D/A tout simple :
242
La modulation par largeur dimpulsions (modulation dimpulsions
en dure, ou modulation par nombre dimpulsions dans le temps) est une
technique qui consiste faire varier la puissance moyenne de sortie, dans le
temps, en agissant sur le rapport cyclique (temps ON / temps de cycle).
Le temps de cycle est un tat ON plus un tat OFF.
243
Temps
ON
Temps
OFF
Temps
de cycle
0,10
0,20
0,30
0,40
0,50
0,60
0,70
0,80
0,90
1,00
20
20
30
40
60
90
140
160
180
200
180
80
70
60
60
60
60
40
20
0
200
100
100
100
120
150
200
200
200
200
244
RANDOM
Gnre un nombre alatoire sur 16 bits et le stocke dans une
variable de type W (variable de 16 bits, compose de la
juxtapposition de deux variables de 8 bits. Exemple : la variable
W0 est compose de la juxtapposition des variables B0 et B1).
SYNTAXE :
RANDOM Variable
Nom dun variable de 16 bits (W0.... W25) dans
laquelle le programme va stocker le nombre alatoire.
EXEMPLE :
RANDOM W0
Gnre un nombre alatoire de 16 bits et le
stocke dans la wariable W0.
NB : Le nombre alatoire pouvant tre gnr par cette instruction
peut aller de 1 65.535.
Le nombre 0 nest pas gnr.
245
READ
Avec cette instruction on lit une donne dans la mmoire
EEPROM.
Le rsutlat de la lecture est mmoris dans la variable spcifie.
SYNTAXE :
READ Adresse, Variable
Nom de la variable (B0... B51) dans laquelle
on veut stocker le rsultat de la lecture.
Adresse EEPROM dont on veut lire le contenu.
246
RETURN
Cest linstruction qui termine tout sous programme.
Un sous programme commence par GOSUB, et doit
obligatoirement se terminer par RETURN.
Une fois le sous programme termin, cette instruction provoque
le retour au programme principal, linstruction se trouvant
justaprs le GOSUB ayant appel le sous programme.
247
REVERSE
Inverse le sens de fonctionnement de la patte spcifie (0.... 7)
du Port B (RB).
Si elle tait une entre, aprs cette instruction elle devient une sortie,
et inversement (si elle tait une sortie, elle devient une entre).
SYNTAXE :
REVERSE Pin
Numro (0.... 7) de la pin du Port B (RB) dont on veut
inverser le sens.
EXEMPLE :
OUTPUT 7
REVERSE 7
Met dabord RB7 en sortie, puis inverse le sens
et met RB7 en entre.
NB : Seul le numro (0.... 7) de la pin du Port B (RB) doit tre not
(REVERSE 0, REVERSE 1,....... REVERSE 7
et non REVERSE Pin0, REVERSE Pin1.....).
248
SERin
Serial Input
Cette instruction permet de recevoir des donnes sous forme srie
asynchrone , par mots de 8 bits, sans parit, avec un seul bit de STOP.
La rception doit avoir lieu en utilisant lune des pins (0.... 7) du
Port B (RB).
SYNTAXE :
SERIN Pin, Mode, (Qualificateur), Variable
Nom de la variable (B0... B51)
dans laquelle on veut stocker
les donnes reues.
A noter entre parenthses. Ca peut tre un seul,
ou plusieurs. Si plusieurs, une virgule doit les
sparer. Il sagit des informations optionnelles
(formant une sorte de cl ) qui doivent tre
reues exactement dans lordre spcifi, avant
que la ou les donnes ne soient prises en compte.
Si, lors de la rception de plusieurs
Qualificateurs, un seul ne correspond pas la cl
laquelle ils sont compars un un, le
processus revient au dbut, et le programme
reprend les examiner depuis le premier.
Un Qualificateur peut tre une constante, une
variable ou une chane de caractres (dans ce
dernier cas, chaque caractre de la chane est
trait individuellement, pris en sa valeur
ASCII). Cela sert scuriser une transmission.
Trs utile notamment dans le cas des
tlcommandes, dalarmes ou danti-vol
distance).
Dfinit la fois la vitesse de transmission (Baud Rate) et la
forme des donnes (TTL vrai ou TTL invers).
On peut choisir parmi 8 modes possibles, selon les
spcifications du tableau suivant :
249
Symbole
T2400
T1200
T9600
T300
N2400
N1200
N9600
N300
Valeur
0
1
2
3
4
5
6
7
Baud Rate
2400
1200
9600
300
2400
1200
9600
300
Mode
TTL vrai
TTL invers
Etant donn que les circuits dinterface RS232 (mme les plus
conomiques) prsentent dexcellentes caractristiques dentre/sortie,
les signaux peuvent tre grs par les PIC sans besoin dun convertisseur
de niveux.
Les signaux prsents en format TTL invers doivent tre utiliss
moyennant une rsistance de limitation de courant :
EXEMPLE :
LOOP
SERin 7, n1200, B0
IF B0>0 THEN SORTIE
SORTIE
POKE Pin3, B0
PAUSE 300
GOTO LOOP
Reoit un signal srie sur RB7, en TTL invers, la vitesse de
1200 Bauds, et le stocke dans la variable B0.
Si B0 contient une donne, elle est envoye sur la pin 3 du Port A
(RA3). On temporise 300 ms. Puis on recommence avec
loctet suivant.
250
SERout
Serial Output
Cette instruction permet denvoyer des donnes, sous forme srie
asynchrone, par mots de 8 bits, sans parit, avec un seul bit de
STOP.
Lmission doit avoir lieu en utilisant lune des pins (0... 7) du
Port B (RB).
SYNTAXE :
SERout Pin, Mode, (Donne, Donne....)
A noter entre parenthses.
Ca peut tre une ou plusieurs.
Si plusieurs, une virgule doit les sparer.
Il sagit des informations transmettre.
Ces informations peuvent tre des constantes,
des variables ou une chane de caractres.
- Une chane de caractres est traite
comme une suite de caractres. Chacun
deux est mis individuellement.
- Une valeur numrique (variable ou
constante) est mise sous la forme de
son quivalent ASCII. Ainsi, par
exemple, 13 est un retour chariot et 10
est un saut de ligne.
- Une valeur numrique prcde du
signe # (dise) est mise sous la forme
de la reprsentation en ASCII de la
valeur dcimale correspondante. Ainsi
par exemple, #123 fera mettre 1 ,
puis 2 , puis 3 .
Dfinit la fois la vitesse de la transmission (Baud
Rate), la forme des donnes (TTL vrai ou TTL
TTL invers) et la configuration de ltage de sortie
(Drain ouvert ou Collecteur ouvert).
On peut choisir parmi 16 modes possibles,
selon les spcifications du tableau suivant :
251
Symbole
T2400
T1200
T9600
T300
N2400
N1200
N9600
N300
OT2400
OT1200
OT9600
OT300
ON2400
ON1200
ON9600
ON300
Valeur
0
1
2
3
4
5
6
7
8
9
10
11
1
2
13
14
Baud Rate
2400
1200
9600
300
2400
1200
9600
300
2400
1200
9600
300
2400
1200
9600
300
Mode
TTL vrai
TTL invers
Drain
ouvert
Source
ouvert
Pin dsigne le numro (0... 7) de la pin du Port B (RB) que lon veut
utiliser pour sortir le signal srie.
Etant donn que les circuits dinterface RS232 (mme les plus
conomiques) prsentent dexcellentes caractristiques dentre/sortie,
les signaux peuvent tre grs par les PIC sans besoin dun convertisseur
de niveux.
Les signaux prsents en format TTL invers doivent tre utiliss
moyennant une rsistance de limitation de courant :
252
EXEMPLES :
1) Un seul octet transmettre :
SERout 6, N2400, (B1)
2) Plusieurs octets transmettre :
SERout 6, N2400, (B1, B0.....0F....C3)
3) Envoyer sur RB0 la valeur ASCII contenue dans la variable
B0, suivie dun saut de ligne :
SERout 0, N2400, (#B0, 10)
4) Envoi dun octet (stock dans la variable B1) prcd dune
cl servant de code secret :
SERout 6, N2400, (S, E , S, A, M, E, B1)
Octet
proprement
dit.
Caractres servant de cl
(caractres secrets ).
Cette faon de coder est particulirement utile dans le cas
de systmes dantivol.
Le rcepteur, sans avoir au pralable reu le mot SESAME,
ne peut mmoriser le mot fourni par B1.
253
SLEEP
Met le PIC en mode veille pendant un certain temps (dfini
par Priode) exprim en secondes.
Priode est une variable de 16 bits, pouvant aller de 1
65.535 (plus de 18 heures) avec une prcision qui dpend du
timer interne (celui associ au chien de garde) qui est du type
R/C. Cette prcision nest quapproximative, et ne doit pas tre
utilise comme rfrence temporelle absolue.
En plus, il faut savoir que la plus courte Priode ne peut tre
infrieure celle du time-out maximum du chien de garde, qui
est de 2,3 secondes.
En mode SLEEP, le microcontrleur passe en mode basse
consommation (low power).
Lorsque le dlai spcifi est coul, lexcution du programme
reprend avec linstruction suivante.
SYNTAXE :
SLEEP Priode
Dure de veille, xprime en secondes.
EXEMPLE :
SLEEP 60
Met le C en veille pendant 1 minute (60 secondes).
254
SOUND
Gnre un son sur la pin dsigne du Port B (RB).
SYNTAXE :
SOUND Pin, (Note, Dure, Note, Dure,...)
Dure de la note (ms).
Hauteur de la note: - de 1 127 = notes audibles
- de 128 256 = bruit blanc.
Numro (0.... 7) de la pin du Port B (RB) sur laquelle on veut
faire sortir le son.
EXEMPLES :
1)
2)
255
Voici deux faons possibles de raccorder un haut-parleur
une pin du Port B :
256
TOGLE
Cette instruction inverse ltat logique de lun des bits (0... 7)
du Port B (RB).
SYNTAXE :
TOGLE Pin
Numro de la pin (0.... 7) du Port B dont on veut inverser ltat.
EXEMPLE :
LOW 0
TOGLE 0
Dans un premier temps on met RB0 ltat bas,
puis on inverse ltat de RB0 (RB0 passe
de ltat bas ltat haut).
257
TRISA
Configure le Port A (en sortie ou en entre).
Exemples :
1) SYMBOL
PORTA = 5
SYMBOL
TRISA = $85
POKE
TRISA, 0
On configure le Port A en sortie
2) SYMBOL
PORTA = 5
SYMBOL
TRISA = $85
POKE
TRISA, 255
On configure le Port A en entre
258
WRITE
Cest linstruction avec laquelle on crit dans la mmoire EEPROM
de donnes (Data Memory).
SYNTAXE :
WRITE Adresse, Donne
Donne crire.
Adresse laquelle on veut crire (00.... 3F).
EXEMPLE :
WRITE 6, B0
Ecrit ladresse 6 la donne se trouvant dans la variable B0.
NB : Les donnes entrent dans la mmoire EEPROM une seule fois
au moment de la programmation du PIC et non pas chaque fois
quon excute le programme.
259
Exemples de programmes
crits en langage PicBASIC
Voici 17 exemples de programmes crits en MEL PicBASIC
quils ne faut pas juger au nombre dinstructions, car ainsi que
je lai dj dit les programmes crits en PicBASIC sont souvent
courts, cela tant d la puissance de ses instructions.
Ce ne sont que des bases. Ils illustrent le mcanisme de la programmation
en MEL PicBASIC (je rappelle que MEL est lacronime de MICRO
ENGINERING LABS, la Socit qui a dvelopp ce BASIC pour PIC).
Je vous encourage vous procurer un Editer MEL PicBASIC
et faire comme moi.
Vous verrez que dvelopper avec ce logiciel devient un jeu denfants.
Bonne programmation.
260
Programme 1
261
Programme 2
Faire clignoter une LED rele RB5 (bit 5 du Port B) si linterrupteur
reli RA0 (bit 0 du Port A) est ltat haut.
LOOP : IF PIN 0 = 1 THEN LED
GOTO LOOP
LED : HIGH 5
PAUSE 100
LOW 5
PAUSE 100
GOTO LOOP
END
262
Pour faire clignoter la LED moins rapidement, il suffit de modifier
la valeur de PAUSE :
LOOP : IF PIN 0 = 1 THEN LED
GOTO LOOP
LED : HIGH 5
PAUSE 1000
LOW 5
PAUSE 1000
GOTO LOOP
END
1000 ms = 1 seconde. Ici la LED clignote lentement.
On y remarque deux labels : LOOP et LED. Chacune renvoit
un sous programme.
Les noms des labels sont suivis du signe : (deux points) :
- LOOP :
- LED :
Dans le premier sous programme on dit :
Si la pin 0 du Port A est ltat 1, cesse dexcuter les
instructions en ligne et saute au sous programme LED, sinon
(ligne suivante GOTO LOOP) surveille ltat logique de cette pin.
Si elle est ltat 0, continue surveiller.
Dans le deuxime sous programme on dit :
Allume la pin 0 du Port B pendant 1 seconde, puis teins-la
pendant 1 seconde. Puis recommence la scrutation de ltat de la
Pin 0 du Port A.
Les pins auxquelles le langage MEL PicBASIC fait tacitement rfrence
sont celle du Port B.
HIGH 5 signifie : met ltat haut la pin 5 du Port B.
HIGH (mets ltat haut)
5 (la pin 5 du Port B).
263
Programme 3
Faire clignoter une LED relie RB5 (pin 5 du Port B) si les
interrupteurs relis RA0 et RA1 sont ferms.
LOOP : IF Pin 0 = 1 AND Pin 1 = 1 THEN LED
GOTO LOOP
LED : HIGH 5
PAUSE 100
LOW 5
PAUSE 100
GOTO LOOP
END
Si la pin 0 (RA0) et la pin 1 (RA1) du Port A sont 1, on excute le
sous programme LED, sinon on continue surveiller ltat de RA0
et de RA1.
Lorsque les conditions sont remplies, on allume la LED relie RB5
(pin 5 du Port B) pendant 100 ms, puis on lteint pendant 100 ms.
Puis on revient au dbut pour voir si les deux interrupteurs sont ferms.
Si Pin0 et Pin1 ne sont pas tous les deux enfoncs, il ne se passe rien
(la LED reste teinte).
264
Programme 4
Allumer successivement toutes les LED du Port B.
LOOP : FOR B0 = 0 TO 7
HIGH B0
NEXT B0
END
265
Programme 5
Allume et teint en squence, une la fois, toutes les LED du Port B
(de RB0 RB7), avec un petit intervalle de temps entre chaque.
LOOP : FOR B0 = 0 TO 7
HIGH B0
PAUSE 100
LOW B0
PAUSE 900
NEXT B0
GOTO LOOP
END
266
Programme 6
Faire clignoter simultanment toutes les 8 LED du Port B.
267
Les deux programmes font exactement la mme chose, mais le deuxime
utilise beaucoup moins dinstructions.
Faire des conomies dinstructions dans un si court programme na pas de
sens ; mais cela vaut la peine quand on crit des programmes longs.
Exercez-vous donc toujours recourir aux instructions les mieux adaptes.
268
Programme 7
Faire clignoter 5 fois toutes les LED du Port B ensemble.
LOOP : FOR B1 = 0 TO 7
HIGH B1
PAUSE 50
LOW B1
PAUSE 500
NEXT B1
FOR B0 = 1 TO 5
HIGH B1
PAUSE 50
LOW B1
PAUSE 50
NEXT B1
NEXT B0
GOTO LOOP
269
Programme 8
Faire clignoter en squence, 5 fois chacune, lune aprs lautre
et une la fois, les 8 LED du Port B, en commenant par la LED
associe RB1.... jusqu celle associe RB7. Puis recommencer.
LOOP : FOR B0 = 1 TO 5
FOR B1 = 0 TO 7
HIGH B1
PAUSE 100
LOW B1
PAUSE 500
NEXT B1
NEXT B0
GOTO LOOP
END
Ce programme fait clignoter toutes les LED du Port B (0 7) cinq fois,
lune aprs lautre, un intervalle de demi-seconde, crant lillusion
dune LED qui se dcale en clignotant.
270
Programme 9
Allumer les 8 LED du Port B en squence binaire.
DIRS = 255
LOOP : FOR B1 = 0 TO 255
PINS = B1
PAUSE 200
NEXT B1
GOTO LOOP
Dans ce programme :
- DIRS = 255 dfinit les 8 lignes du Port B comme sorties ;
- Le comptage se fait de 0 255 (dcimal)
(on pourrait crire : FOR B1 = %0 TO %11111111
ou aussi :
FOR B1 = $0 TO $FF ) ;
- A chaque incrment de la valeur assume par la variable B1
(de 0 255 en dcimal) linstructions PINS = B1 visualise la
valeur courante de B1 ;
- Linstruction PAUSE 200 maintient cette visualisation active
pendant 200 ms.
271
Programme 10
Gnrer sur RB3 un signal modul en largeur dimpulsions (PWM)
sous le contrle de 2 interrupteurs :
- lun plac sur RA0, faisant augmenter la luminosit de la
LED lorsquil est ferm ;
- lautre plac sur RA1, faisant diminuer la luminosit de la
LED lorsquil est ferm.
NB : Un transistor peut tre branch sur RB3 pour commander une charge
plus importante, ou un triac pour commander une lampe secteur.
SYMBOL
SYMBOL
LOOP :
INC :
DEC :
PORTA = 5
TRISA = $85
POKE TRISA, 255
B1 = 127
PEEK PORTA, 0
PWM 3, B1, 10
IF Bit 0 = 1 THEN INC
IF Bit 1 = 1 THEN DEC
GOTO LOOP
IF B1 > 250 THEN LOOP
B1 = B1 + 5
GOTO LOOP
IF B1 < 5 THEN LOOP
B1 = B1 5
GOTO LOOP
END
Les trois premires lignes sont des initialisations . On y dit que PORTA est
ladresse 5, TRISA est ladresse 85, et quon veut tous les bits du
Port A en entre.
B1 = 127 donne la LED une luminosit initiale moyenne (127 est la
moiti entre 1 et 256).
PEEK PORTA, 0 lit ltat de RA0.
Puis on dfinit les paramtres de la PWM, avec un coefficient changeant
de 5% par coup, sur 10 cycles, et si RA0 est 1 on incrmente la variable
B1 (en appelant le sous programme INC), tandis que si RA1 est 1, on
dcrmente la variable B1 ( en appelant le sous programme DEC).
272
Programme 11
Raliser une syrne 2 tons.
LOOP SOUND 7, (10, 100, 50, 100)
GOTO LOOP
END
Ce programme gnre sur RB7 un son de hauteur 10 pendant 100 ms,
suivi dun deuxime de hauteur 50 pendant 100 ms.
Puis on recommence.
273
Programme 12
Gnrer une mlodie rptitive 3 notes.
LOOP SOUND 7, (10, 100, 60, 100, 120, 100)
GOTO LOOP
END
Ce programme gnre sur RB7 un premier son de hauteur 10 pendant
(environ) 100 ms, puis un deuxime son de hauteur 60 pendant
(approximativement) 100 ms, et enfin un troisime son de hauteur 120
pendant encore (approximativement) 100 ms.
Puis on recommence sans cesse.
274
Programme 13
Gnrer une mlodie en crescendo de 20 notes joues en continuation.
LOOP B0 = 0
INC
FOR B0 = B0 + 5
SOUND 7, (B0, 100)
NEXT B0
IF B0 > 100 THEN LOOP
GOTO INC
END
La variable B0 prend ici les 20 valeurs :
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
100
275
Programme 14
Lire ltat de 5 interrupteurs placs sur le Port A et visualiser ltat de
chacun deux sur une range de 5 LED relies au Port B.
SYMBOL
SYMBOL
LOOP :
ZERO :
UN :
DEUX :
TROIS :
QUATRE :
PORTA = 5
TRISA = $85
POKE TRISA, 255
PEEK PORTA, B0
IF Bit0 = 1 THEN ZERO
IF Bit1 = 1 THEN UN
IF Bit2 = 1 THEN DEUX
IF Bit3 = 1 THEN TROIS
IF Bit4 = 1 THEN QUATRE
GOTO LOOP
HIGH 0
GOTO LOOP
HIGH 1
GOTO LOOP
HIGH 2
GOTO LOOP
HIGH 3
GOTO LOOP
HIGH 4
GOTO LOOP
END
276
Programme 15
Lire ltat de 5 interrupteurs placs sur le Port A et dire lequel deux
a t ferm, moyennant lmission de bips sur un haut-parleur plac
sur RB7 : un seul bip pour informer quil sagit de linterrupteur n 1,
deux bips pour le n 2, et ainsi de suite.. 5 bips pour linterrupteur n 5.
SYMBOL
SYMBOL
LOOP :
1_bip :
2_bips :
3_bips :
4_bips :
5_bips :
PORTA = 5
TRISA = $85
POKE TRISA, 255
PEEK PORTA, B0
IF Bit0 = 1 THEN 1_bip
IF Bit1 = 1 THEN 2_bips
IF Bit2 = 1 THEN 3_bips
IF Bit3 = 1 THEN 4_bips
IF Bit4 = 1 THEN 5_bips
GOTO LOOP
SOUND 7, (100, 50)
GOTO LOOP
SOUND 7, (100, 50, 100, 50)
GOTO LOOP
SOUND 7, (100, 50, 100, 50, 100, 50)
GOTO LOOP
SOUND 7, (100, 50, 100, 50, 100, 50, 100, 50)
GOTO LOOP
SOUND 7, (100, 50, 100, 50, 100, 50, 100, 50, 100, 50)
GOTO LOOP
END
277
Programme 16
Transmettre en mode srie, 2400 Bauds, via la pin RB6, un code de 4
bits issu de 4 interrupteurs placs sur le Port A.
SYMBOL
SYMBOL
LOOP :
PORTA = 5
TRISA = $85
POKE TRISA, 255
PEEK PORTA, B0
PAUSE 200
SERout , T2400, (B0)
GOTO LOOP
END
(Port A en entre)
(Mmorise le Port A dans B0)
278
Programme 17
Recevoir en mode srie, 2400 Bauds, un code entrant sur la pin RB6.
Stocker le code reu dans la variable B0.
LOOP :
CODE_OK
SERin 6, N2400, B0
IF B0 > 0 THEN CODE_OK
GOTO LOOP
POKE PORTA, B0
END
279
BIBLE pour
DESASSEMBLER A LA MAIN
Version 1.00
DESSASSEMBLER est le contraire dASSEMBLER.
Cette BIBLE nest donc valable que pour des programmes assembls,
cest dire ayant t crits en langage ASSEMBLEUR, extension .hex.
Elle ne sapplique pas des programmes crits en BASIC ou dans un
quelconque autre langage.
Lorsque dans un programme en ASSEMBLEUR vous crivez, par
exemple :
GOTO START
MOVLW 00
MOVWF TRISB
.
.
.
lAssembleur code ces instructions et fournit les valeurs hexadcimales
suivantes :
2805
3000
0086
.
.
.
2805 veut dire GOTO ladresse 05
3000 veut dire MOVLW 00
0086 veut dire MOVWF TRISB....
Il est donc possible de procder linverse, cest dire : partir des codes
hexadcimaux et remonter aux instructions.
Ce travail est gnralement confi un logiciel appel
DESASSEMBLEUR. Mais, avec un peu de patience, vous pouvez
dsassembler un programme la main, sans besoin daucun logiciel, en
vous aidant de ma bible dsassembler la main, dont vous truvez ici
la premire version. Cest une nouveaut MONDIALE.
280
281
0000
0008
0009
0020
0040
0060
0062
0063
0064
0065
0066
0080
0081
0082
0083
0084
0085
0086
0088
0089
008A
008B
008C
008D
008E
008F
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
009A
NOP
RETURN
RETFIE
NOP
NOP
NOP
OPTION
SLEEP
CLWDT
TRIS A
TRIS B
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
INDF
TMR0
PCL
STATUS
FSR
PORTA
PORTB
EEDATA
EEADR
PCLAYH
INTCON
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
009B
009C
009D
009E
009F
00A0
00A1
00A2
00A3
00A4
00A5
00A6
00A7
00A8
00A9
00AA
00AB
00AC
00AD
00AE
00AF
00B0
00B1
00B2
00B3
00B4
00B5
00B6
00B7
00B8
00B9
00BA
00BB
00BC
00BD
00BE
00BF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
282
00C0
00C1
00C2
00C3
00C4
00C5
00C6
00C7
00C8
00C9
00CA
00CB
00CC
00CD
00CE
00CF
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
010A
010B
010C
010D
010E
010F
0110
0111
0112
0113
0114
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
MOVWF
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
0115
0116
0117
0118
0119
011A
011B
011C
011D
011E
011F
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
012A
012B
012C
012D
012E
012F
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
283
013A
013B
013C
013D
013E
013F
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
014A
014B
014C
014D
014F
014F
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
015A
015B
015C
015D
015E
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
015F
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
016A
016B
016C
016D
016E
016F
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
017A
017B
017C
017D
017E
017F
0180
0181
0182
0183
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRW
CLRF
CLRF
CLRF
CLRF
INDF
TMR0
PCL
STATUS
284
0184
0185
0186
0188
0189
018A
018B
018C
018D
018E
018F
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
019A
019B
019C
019D
019E
019F
01A0
01A1
01A2
01A3
01A4
01A5
01A6
01A7
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
FSR
PORTA
PORTB
EEDATA
EEADR
PCLATH
INTCON
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
01A8
01A9
01AA
01AB
01AC
01AD
01AE
01AF
01B0
01B1
01B2
01B3
01B4
01B5
01B6
01B7
01B8
01B9
01BA
01BB
01BC
01BD
01BE
01BF
01C0
01C1
01C2
01C3
01C4
01C5
01C6
01C7
01C8
01C9
01CA
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
CLRF
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
285
01CB
01CC
01CD
01CE
01CF
020C
020D
020E
020F
0210
0211
0212
0213
0214
0215
0216
0217
0218
0219
021A
021B
021C
021D
021E
021F
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
022A
022B
CLRF
CLRF
CLRF
CLRF
CLRF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
4B
4C
4D
4E
4F
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
022C
022D
022E
022F
0230
0231
0232
0233
0234
0235
0236
0237
0238
0239
023A
023B
023C
023D
023E
023F
0240
0241
0242
0243
0244
0245
0246
0247
0248
0249
024A
024B
024C
024D
024E
024F
030C
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
SUBWF
DECF
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
2C
2D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
0C
286
030D
030E
030F
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319
031A
031B
031C
031D
031E
031F
0320
0321
0322
0323
0324
0325
0326
0327
0328
0329
032A
032B
032C
032D
032E
032F
0330
0331
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
0332
0333
0334
0335
0336
0337
0338
0339
033A
033B
033C
033D
033E
033F
0340
0341
0342
0343
0344
0345
0346
0347
0348
0349
034A
034B
034C
034D
034E
034F
040C
040D
040E
040F
0410
0411
0412
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
DECF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
0C
0D
0E
0F
10
11
12
287
0413
0414
0415
0416
0417
0418
0419
041A
041B
041C
041D
041E
041F
0420
0421
0422
0423
0424
0425
0426
0427
0428
0429
042A
042B
042C
042D
042E
042F
0430
0431
0432
0433
0434
0435
0436
0437
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
13
14
15
16
17
18
19
2A
2B
2C
2D
2E
2F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
0438
0439
043A
043B
043C
043D
043E
043F
0440
0441
0442
0443
0444
0445
0446
0447
0448
0449
044A
044B
044C
044D
044E
044F
050C
050D
050E
050F
0510
0511
0512
0513
0514
0515
0516
0517
0518
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
IORWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
288
0519
051A
051B
051C
051D
051E
051F
0520
0521
0522
0523
0524
0525
0526
0527
0528
0529
052A
052B
052C
052D
052E
052F
0530
0531
0532
0533
0534
0535
0536
0537
0538
0539
053A
053B
053C
053D
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
053E
053F
0540
0541
0542
0543
0544
0545
0546
0547
0548
0549
054A
054B
054C
054D
054E
054F
060C
060D
060E
060F
0610
0611
0612
0613
0614
0615
0616
0617
0618
0619
061A
061B
061C
061D
061E
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
ANDWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
289
061F
0620
0621
0622
0623
0624
0625
0626
0627
0628
0629
062A
062B
062C
062D
062E
062F
0630
0631
0632
0633
0634
0635
0636
0637
0638
0639
063A
063B
063C
063D
063E
063F
0640
0641
0642
0643
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
0644
0645
0646
0647
0648
0649
064A
064B
064C
064D
064E
064F
070C
070D
070E
070F
0710
0711
0712
0713
0714
0715
0716
0717
0718
0719
071A
071B
071C
071D
071E
071F
0720
0721
0722
0723
0724
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
XORWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
290
0725
0726
0727
0728
0729
072A
072B
072C
072D
072E
072F
0730
0731
0732
0733
0734
0735
0736
0737
0738
0739
073A
073B
073C
073D
073E
073F
0740
0741
0742
0743
0744
0745
0746
0747
0748
0749
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
074A
074B
074C
074D
074E
074F
080C
080D
080E
080F
0810
0811
0812
0813
0814
0815
0816
0817
0818
0819
081A
081B
081C
081D
081E
081F
0820
0821
0822
0823
0824
0825
0826
0827
0828
0829
082A
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
ADDWF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
4A
4B
4C
4D
4E
4F
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
291
082B
082C
082D
082E
082F
0830
0831
0832
0833
0834
0835
0836
0837
0838
0839
083A
083B
083C
083D
083E
083F
0840
0841
0842
0843
0844
0845
0846
0847
0848
0849
084A
084B
084C
084D
084E
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
MOVF
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
084F
090C
090D
090E
090F
0910
0911
0912
0913
0914
0915
0916
0917
0918
0919
091A
091B
091C
091D
091E
091F
0920
0921
0922
0923
0924
0925
0926
0927
0928
0929
092A
092B
092C
092D
092E
MOVF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
4F
0C,w
0D,w
0E,w
0F,w
10,w
11,w
12,w
13,w
14,w
15,w
16,w
17,w
18,w
19,w
1A,w
1B,w
1C,w
1D,w
1E,w
1F,w
20,w
21,w
22,w
23,w
24,w
25,w
26,w
27,w
28,w
29,w
2A,w
2B,w
2C,w
2D,w
2E,w
292
092F
0930
0931
0932
0933
0934
0935
0936
0937
0938
0939
093A
093B
093C
093D
093E
093F
0940
0941
0942
0943
0944
0945
0946
0947
0948
0949
094A
094B
094C
094D
094E
094F
098C
098D
098E
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
2F,w
30,w
31,w
32,w
33,w
34,w
35,w
36,w
37,w
38,w
39,w
3A,w
3B,w
3C,w
3D,w
3E,w
3F,w
40,w
41,w
42,w
43,w
44,w
45,w
46,w
47,w
48,w
49,w
4A,w
4B,w
4C,w
4D,w
4E,w
4F,w
0C,f
0D,f
0E,f
098F
0990
0991
0992
0993
0994
0995
0996
0997
0998
0999
099A
099B
099C
099D
099E
099F
09A0
09A1
09A2
09A3
09A4
09A5
09A6
09A7
09A8
09A9
09AA
09AB
09AC
09AD
09AE
09AF
09B0
09B1
09B2
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
0F,f
10,f
11,f
12,f
13,f
14,f
15,f
16,f
17,f
18,f
19,f
1A,f
1B,f
1C,f
1D,f
1E,f
1F,f
20,f
21,f
22,f
23,f
24,f
25,f
26,f
27,f
28,f
29,f
2A,f
2B,f
2C,f
2D,f
2E,f
2F,f
30,f
31,f
32,f
293
09B3
09B4
09B5
09B6
09B7
09B8
09B9
09BA
09BB
09BC
09BD
09BE
09BF
09C0
09C1
09C2
09C3
09C4
09C5
09C6
09C7
09C8
09C9
09CA
09CB
09CC
09CD
09CE
09CF
0A0C
0A0D
0A0E
0A0F
0A10
0A11
0A12
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
COMF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
33,f
34,f
35,f
36,f
37,f
38,f
39,f
3A,f
3B,f
3C,f
3D,f
3E,f
3F,f
40,f
41,f
42,f
43,f
44,f
45,f
46,f
47,f
48,f
49,f
4A,f
4B,f
4C,f
4D,f
4E ,f
4F,f
0C,w
0D,w
0E,w
0F,w
10,w
11,w
12,w
0A13
0A14
0A15
0A16
0A17
0A18
0A19
0A1A
0A1B
0A1C
0A1D
0A1E
0A1F
0A20
0A21
0A22
0A23
0A24
0A25
0A26
0A27
0A28
0A29
0A2A
0A3B
0A2C
0A2D
0A2E
0A2F
0A30
0A31
0A32
0A33
0A34
0A35
0A36
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
13,w
14,w
15,w
16,w
17,w
18,w
19,w
1A,w
1B,w
1C,w
1D,w
1E,w
1F,w
20,w
21,w
22,w
23,w
24,w
25,w
26,w
27,w
28,w
29,w
2A,w
2B,w
2C,w
2D,w
2E,w
2F,w
30,w
31,w
32,w
33,w
34,w
35,w
36,w
294
0A37
0A38
0A39
0A3A
0A3B
0A3C
0A3D
0A3E
0A3F
0A40
0A41
0A42
0A43
0A44
0A45
0A46
0A47
0A48
0A49
0A4A
0A4B
0A4C
0A4D
0A4E
0A4F
0A8C
0A8D
0A8E
0A8F
0A90
0A91
0A92
0A93
0A94
0A95
0A96
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
37,w
38,w
39,w
3A,w
3B,w
3C,w
3D,w
3E,w
3F,w
40,w
41,w
42,w
43,w
44,w
45,w
46,w
47,w
48,w
49,w
4A,w
4B,w
4C,w
4D,w
4E,w
4F,w
0C,f
0D,f
0E,f
0F,f
10,f
11,f
12,f
13,f
14,f
15f
16,f
0A97
0A98
0A99
0A9A
0A9B
0A9C
0A9D
0A9E
0A9F
0AA0
0AA1
0AA2
0AA3
0AA4
0AA5
0AA6
0AA7
0AA8
0AA9
0AAA
0AAB
0AAC
0AAD
0AAE
0AAF
0AB0
0AB1
0AB2
0AB3
0AB4
0AB5
0AB6
0AB7
0AB8
0AB9
0ABA
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
17,f
18,f
19,f
1A,f
1B,f
1C,f
1D,f
1E,f
1F,f
20,f
21,f
22,f
23,f
24,f
25,f
26,f
27,f
28,f
29,f
2A,f
2B,f
2C,f
2D,f
2E,f
2F,f
30,f
31,f
32,f
33,f
34,f
35,f
36,f
37,f
38,f
39,f
3A,f
295
0ABB
0ABC
0ABD
0ABE
0ABF
0AC0
0AC1
0AC2
0AC3
0AC4
0AC5
0AC6
0AC7
0AC8
0AC9
0ACA
0ACB
0ACC
0ACD
0ACE
0ACF
0B0C
0B0D
0B0E
0B0F
0B10
0B11
0B12
0B13
0B14
0B15
0B16
0B17
0B18
0B19
0B1A
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
INCF
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
3B,f
3C,f
3D,f
3E,f
3F,f
40,f
41,f
42,f
43,f
44,f
45,f
46,f
47,f
48,f
49,f
4A,f
4B,f
4C,f
4D,f
4E,f
4F,f
0C,w
0D,w
0E,w
0F,w
10,w
11,w
12,w
13,w
14,w
15,w
16,w
17,w
18,w
19,w
1A,w
0B1B
0B1C
0B1D
0B1E
0B1F
0B20
0B21
0B22
0B23
0B24
0B25
0B26
0B27
0B28
0B29
0B2A
0B2B
0B2C
0B2D
0B2E
0B2F
0B30
0B31
0B32
0B33
0B34
0B35
0B36
0B37
0B38
0B39
0B3A
0B3B
0B3C
0B3D
0B3E
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
1B,w
1C,w
1D,w
1E,w
1F,w
20,w
21,w
22,w
23,w
24,w
25,w
26,w
27,w
28,w
29,w
2A,w
2B,w
2C,w
2D,w
2E,w
2F,w
30,w
31,w
32,w
33,w
34,w
35,w
36,w
37,w
38,w
29,w
3A,w
3B,w
3C,w
3D,w
3E,w
296
0B3F
0B40
0B41
0B42
0B43
0B44
0B45
0B46
0B47
0B48
0B49
0B4A
0B4B
0B4C
0B4D
0B4E
0B4F
0B8C
0B8D
0B8E
0B8F
0B90
0B91
0B92
0B93
0B94
0B95
0B96
0B97
0B98
0B99
0B9A
0B9B
0B9C
0B9D
0B9E
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
3F,w
40,w
41,w
42,w
43,w
44,w
45,w
46,w
47,w
48,w
49,w
4A,w
4B,w
4C,w
4D,w
4E,w
4F,w
0C,f
0D,f
0E,f
0F,f
10,f
11,f
12,f
13,f
14,f
15,f
16,f
17,f
18,f
19,f
1A,f
1B,f
1C,f
1D,f
1E,f
0B9F
0BA0
0BA1
0BA2
0BA3
0BA4
0BA5
0BA6
0BA7
0BA8
0BA9
0BAA
0BAB
0BAC
0BAD
0BAE
0BAF
0BB0
0BB1
0BB2
0BB3
0BB4
0BB5
0BB6
0BB7
0BB8
0BB9
0BBA
0BBB
0BBC
0BBD
0BBE
0BBF
0BC0
0BC1
0BC2
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECCFS
DECFES
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
1F,f
20,f
21,f
22,f
23,f
24,f
25,f
26,f
27,f
28,f
29,f
2A,f
2B,f
2C,f
2D,f
2E,f
2F,f
30,f
31,f
32,f
33,f
34,f
35,f
36,f
37,f
38,f
39,f
3A,f
3B,f
3C,f
3D,f
3E,f
3F,f
40,f
41,f
42,f
297
0BC3
0BC4
0BC5
0BC6
0BC7
0BC8
0BC9
0BCA
0BCB
0BCC
0BCD
0BCE
0BCF
0C0C
0C0D
0C0E
0C0F
0C10
0C11
0C12
0C13
0C14
0C15
0C16
0C17
0C18
0C19
0C1A
0C1B
0C1C
0C1D
0C1E
0C1F
0C20
0C21
0C22
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
DECFSZ
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
43,f
44,f
45,f
46,f
47,f
48,f
49,f
4A,f
4B,f
4C,f
4D,f
4E,f
4F,f
0C,w
0D,w
0E,w
0F,w
10,w
11,w
12,w
13,w
14,w
15,w
16,w
17,w
18,w
19,w
1A,w
1B,w
1B,w
1D,w
1E,w
1F,w
20,w
21,w
22,w
0C23
0C24
0C25
0C26
0C27
0C28
0C29
0C2A
0C2B
0C2C
0C2D
0C2E
0C2F
0C30
0C31
0C32
0C33
0C34
0C35
0C36
0C37
0C38
0C39
0C3A
0C3B
0C3C
0C3D
0C3E
0C3F
0C40
0C41
0C42
0C43
0C44
0C45
0C46
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
23,w
24,w
25,w
26,w
27,w
28,w
29,w
2A,w
2B,w
2C,w
2D,w
2E,w
2F,w
30,w
31,w
32,w
33,w
34,w
35,w
36,w
37,w
38,w
39,w
3A,w
3B,w
3C,w
3D,w
3E,w
3F,w
40,w
41,w
42,w
43,w
44,w
45,w
46,w
298
0C47
0C48
0C49
0C4A
0C4B
0C4C
0C4D
0C4E
0C4F
0C8C
0C8D
0C8E
0C8F
0C90
0C91
0C92
0C93
0C94
0C95
0C96
0C97
0C98
0C99
0C9A
0C9B
0C9C
0C9D
0C9E
0C9F
0CA0
0CA1
0CA2
0CA3
0CA4
0CA5
0CA6
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
47,w
48,w
49,w
4A,w
4B,w
4C,w
4D,w
4E,w
4F,w
0C,f
0D,f
0E,f
0F,f
10,f
11,f
12,f
13,f
14,f
15,f
16,f
17,f
18,f
19,f
1A,f
1B,f
1C,f
1D,f
1E,f
1F,f
20,f
21,f
22,f
23,f
24,f
25,f
26,f
0CA7
0CA8
0CA9
0CAA
0CAB
0CAC
0CAD
0CAE
0CAF
0CB0
0CB1
0CB2
0CB3
0CB4
0CB5
0CB6
0CB7
0CB8
0CB9
0CBA
0CBB
0CBC
0CBD
0CBE
0CBF
0CC0
0CC1
0CC2
0CC3
0CC4
0CC5
0CC6
0CC7
0CC8
0CC9
0CCA
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
RRF
27,f
28,f
29,f
2A,f
2B,f
2C,f
2D,f
2E,f
2F,f
30,f
31,f
32,f
33,f
34,f
35,f
36,f
37,f
38,f
39,f
3A,f
3B,f
3C,f
3D,f
3E,f
3F,f
40,f
41,f
42,f
43,f
44,f
45,f
46 ,f
47,f
48,f
49,f
4A,f
299
0CCB
0CCC
0CCD
0CCE
0CCF
0D0C
0D0D
0D0E
0D0F
0D10
0D11
0D12
0D13
0D14
0D15
0D16
0D17
0D18
0D19
0D1A
0D1B
0D1C
0D1D
0D1E
0D1F
0D20
0D21
0D22
0D23
0D24
0D25
0D26
0D27
0D28
0D29
0D2A
RRF
RRF
RRF
RRF
RRF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
4B,f
4C,f
4D,f
4E,f
4F,f
0C,w
0D,w
0E,w
0F,w
10,w
11,w
12,w
13,w
14,w
15,w
16,w
17,w
18,w
19,w
1A,w
1B,w
1C,w
1D,w
1E,w
1F,w
20,w
21,w
22,w
23,w
24,w
25,w
26,w
27,w
28,w
29,w
2A,w
0D2B
0D2C
D02D
0D2E
0D2F
0D30
0D31
0D32
0D33
0D34
0D35
0D36
0D37
0D38
0D39
0D3A
0D3B
0D3C
0D3D
0D3E
0D3F
0D40
0D41
0D42
0D43
0D44
0D45
0D46
0D47
0D48
0D49
0D4A
0D4B
0D4C
0D4D
0D4E
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
2B,w
2C,w
2D,w
2E,w
2F,w
30,w
31,w
32,w
33,w
34,w
35,w
36,w
37,w
38,w
39,w
3A,w
3B,w
3C,w
3D,w
3E,w
3F,w
40,w
41,w
42,w
43,w
44,w
45,w
46,w
47,w
48,w
49,w
4A,w
4B,w
4C,w
4D,w
4E,w
300
0D4F
0D8C
0D8D
0D8E
0D8F
0D90
0D91
0D92
0D93
0D94
0D95
0D96
0D97
0D98
0D99
0D9A
0D9B
0D9C
0D9D
0D9E
0D9F
0DA0
0DA1
0DA2
0DA3
0DA4
0DA5
0DA6
0DA7
0DA8
0DA9
0DAA
0DAB
0DAC
0DAD
0DAE
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
4F,w
0C,f
0D,f
0E,f
0F,f
10,f
11,f
12,f
13,f
14,f
15,f
16,f
17,f
18,f
19,f
1A,f
1B,f
1C,f
1D,f
1E,f
1F,f
20,f
21,f
22,f
23,f
24,f
25,f
26,f
27,f
28,f
29,f
2A,f
2B,f
2C,f
2D,f
2E,f
0DAF
0DB0
0DB1
0DB2
0DB3
0DB4
0DB5
0DB6
0DB7
0DB8
0DB9
0DBA
0DBB
0DBC
0DBD
0DBE
0DBF
0DC0
0DC1
0DC2
0DC3
0DC4
0DC5
0DC6
0DC7
0DC8
0DC9
0DCA
0DCB
0DCC
0DCD
0DCE
0DCF
0E0C
0E0D
0E0E
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
RLF
SWAPF
SWAPF
SWAPF
2F,f
30,f
31,f
32,f
33,f
34,f
35,f
36,f
37,f
38,f
39,f
3A,f
3B,f
3C,f
3D,f
3E,f
3F,f
40,f
41,f
42,f
43,f
44,f
45,f
46,f
47,f
48,f
49,f
4A,f
4B,f
4C,f
4D,f
4E,f
4F,f
0C,w
0D,w
0E,w
301
0E0F
0E10
0E11
0E12
0E13
0E14
0E15
0E16
0E17
0E18
0E19
0E1A
0E1B
0E1C
0E1D
0E1E
0E1F
0E20
0E21
0E22
0E23
0E24
0E25
0E26
0E27
0E28
0E29
0E2A
0E2B
0E2C
0E2D
0E2E
0E2F
0E30
0E31
0E32
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
0F,w
10,w
11,w
12,w
13,w
14,w
15,w
16,w
17,w
18,w
19,w
1A,w
1B,w
1C,w
1D,w
1E,w
1F,w
20,w
21,w
22,w
23,w
24,w
25,w
26,w
27,w
28,w
29,w
2A,w
2B,w
2C,w
2D,w
2E,w
2F,w
30,w
31,w
32,w
0E33
0E34
0E35
0E36
0E37
0E38
0E39
0E3A
0E3B
0E3C
0E3D
0E3E
0E3F
0E40
0E41
0E42
0E43
0E44
0E45
0E46
0E47
0E48
0E49
0E4A
0E4B
0E4C
0E4D
0E4E
0E4F
0E8C
0E8D
0E8E
0E8F
0E90
0E91
0E92
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
33,w
34,w
35,w
36,w
37,w
38,w
39,w
3A,w
3B,w
3C,w
3D,w
3E,w
3F,w
40,w
41,w
42,w
43,w
44,w
45,w
46,w
47,w
48,w
49,w
4A,w
4B,w
4C,w
4D,w
4E,w
4F,f
0C,f
0D,f
0E,f
0F,f
10,f
11,f
12,f
302
0E93
0E94
0E95
0E96
0E97
0E98
0E99
0E9A
0E9B
0E9C
0E9D
0E9E
0E9F
0EA0
0EA1
0EA2
0EA3
0EA4
0EA5
0EA6
0EA7
0EA8
0EA9
0EAA
0EAB
0EAC
0EAD
0EAE
0EAF
0EB0
0EB1
0EB2
0EB3
0EB4
0EB5
0EB6
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
13,f
14,f
15,f
16,f
17,f
18,f
19,f
1A,f
1B,f
1C,f
1D,f
1E,f
1F,f
20,f
21,f
22,f
23,f
24,f
25,f
26,f
27,f
28,f
29,f
2A,f
2B,f
2C,f
2D,f
2E,f
2F,f
30,f
31,f
32,f
33,f
34,f
35,f
36,f
0EB7
0EB8
0EB9
0EBA
0EBB
0EBC
0EBD
0EBE
0EBF
0EC0
0EC1
0EC2
0EC3
0EC4
0EC5
0EC6
0EC7
0EC8
0EC9
0ECA
0ECB
0ECC
0ECD
0ECE
0ECF
0F0C
0F0D
0F0E
0F0F
0F10
0F11
0F12
0F13
0F14
0F15
0F16
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
SWAPF
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
37,f
38,f
39,f
3A,f
3B,f
3C,f
3D,f
3E,f
3F,f
40,f
41,f
42,f
43,f
44,f
45,f
46,f
47,f
48,f
49,f
4A,f
4B,f
4C,f
4D,f
4E,f
4F,f
0C,w
0D,w
0E,w
0F,w
10,w
11,w
12,w
13,w
14,w
15,w
16,w
303
0F17
0F18
0F19
0F1A
0F1B
0F1C
0F1D
0F1E
0F1F
0F20
0F21
0F22
0F23
0F24
0F25
0F26
0F27
0F28
0F29
0F2A
0F2B
0F2C
0F2D
0F2E
0F2F
0F30
0F31
0F32
0F33
0F34
0F35
0F36
0F37
0F38
0F39
0F3A
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
17,w
18,w
19,w
1A,w
1B,w
1C,w
1D,w
1E,w
1F,w
20,w
21,w
22,w
23,w
24,w
25,w
26,w
27,w
28,w
29,w
2A,w
2B,w
2C,w
2D,w
2E,w
2F,w
30,w
31,w
32,w
33,w
34,w
35,w
36,w
37,w
38,w
39,w
3A,w
0F3B
0F3C
0F3D
0F3E
0F3F
0F40
0F41
0F42
0F43
0F44
0F45
0F46
0F47
0F48
0F49
0F4A
0F4B
0F4C
0F4D
0F4E
0F4F
0F8C
0F8D
0F8E
0F8F
0F90
0F91
0F92
0F93
0F94
0F95
0F96
0F97
0F98
0F99
0F9A
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
3B,w
3C,w
3D,w
3E,w
3F,w
40,w
41,w
42,w
43,w
44,w
45,w
46,w
47,w
48,w
49,w
4A,w
4B,w
4C,w
4D,w
4E,w
4F,f
0C,f
0D,f
0E,f
0F,f
10,f
11,f
12,f
13,f
14,f
15,f
16,f
17,f
18,f
19,f
1A,f
304
0F9B
0F9C
0F9D
0F9E
0F9F
0FA0
0FA1
0FA2
0FA3
0FA4
0FA5
0FA6
0FA7
0FA8
0FA9
0FAA
0FAB
0FAC
0FAD
0FAE
0FAF
0FB0
0FB1
0FB2
0FB3
0FB4
0FB5
0FB6
0FB7
0FB8
0FB9
0FBA
0FBB
0FBC
0FBD
0FBE
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
INCFSZ
1B,f
1C,f
1D,f
1E,f
1F,f
20,f
21,f
22,f
23,f
24,f
25,f
26,f
27,f
28,f
29,f
2A,f
2B,f
2C,f
2D,f
2E,f
2F,f
30,f
31,f
32,f
33,f
34,f
35,f
36,f
37,f
38,f
39,f
3A,f
3B,f
3C,f
3D,f
3E,f
0FBF
0FC0
0FC1
0FC2
0FC3
0FC4
0FC5
0FC6
0FC7
0FC8
0FC9
0FCA
0FCB
0FCC
0FCD
0FCE
0FCF
1003
1005
1006
100B
100C
100D
100E
100F
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
101A
INCFSZ
3F,f
INCFSZ
40,f
INCFSZ
41,f
INCFSZ
42,f
INCFSZ
43,f
INCFSZ
44,f
INCFSZ
45,f
INCFSZ
46,f
INCFSZ
47,f
INCFSZ
48,f
INCFSZ
49,f
INCFSZ
4A,f
INCFSZ
4B,f
INCFSZ
4C,f
INCFSZ
4D,f
INCFSZ
4E,f
INCFSZ
4F,f
BCF
STATUS,C
BCF
PARTA,0
BCF
PORTB,0
BCF
INTCON,RBIF
BCF
0C,0
BCF
0D,0
BCF
0E,0
BCF
0F,0
BCF
10,0
BCF
11,0
BCF
12,0
BCF
13,0
BCF
14,0
BCF
15,0
BCF
16,0
BCF
17,0
BCF
18,0
BCF
19,0
BCF
1A,0
305
101B
101C
101D
101E
101F
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
102A
102B
102C
102D
102E
102F
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
103A
103B
103C
103D
103E
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
1B,0
1C,0
1D,0
1E,0
1F,0
20,0
21,0
22,0
23,0
24,0
25,0
26,0
27,0
28,0
29,0
2A,0
2B,0
2C,0
2D,0
2E,0
2F,0
30,0
31,0
32,0
33,0
34,0
35,0
36,0
37,0
38,0
39,0
3A,0
3B,0
3C,0
3D,0
3E,0
103F
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
104A
104B
104C
104D
104E
104F
1083
1085
1086
108B
108C
108D
108E
108F
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
109A
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
3F,0
40,0
41,0
42,0
43,0
44,0
45,0
46,0
47,0
48,0
49,0
4A,0
4B,0
4C,0
4D,0
4E,0
4F,0
STATUS,DC
PORTA,1
PORTB,1
INTCON,INTF
0C,1
0D,1
0E,1
0F,1
10,1
11,1
12,1
13,1
14,1
15,1
16,1
17,1
18,1
19,1
1A,1
306
109B
109C
109D
109E
109F
10A0
10A1
10A2
10A3
10A4
10A5
10A6
10A7
10A8
10A9
10AA
10AB
10AC
10AD
10AE
10AF
10B0
10B1
10B2
10B3
10B4
10B5
10B6
10B7
10B8
10B9
10BA
10BB
10BC
10BD
10BE
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
1B,1
1C,1
1D,1
1E,1
1F,1
20,1
21,1
22,1
23,1
24,1
25,1
26,1
27,1
28,1
29,1
2A,1
2B,1
2C,1
2D,1
2E,1
2F,1
30,1
31,1
32,1
33,1
34,1
35,1
36,1
37,1
38,1
39,1
3A,1
3B,1
3C,1
3D,1
3E,1
10BF
10C0
10C1
10C2
10C3
10C4
10C5
10C6
10C7
10C8
10C9
10CA
10CB
10CC
10CD
10CE
10CF
1103
1105
1106
110B
110C
110D
110E
110F
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
111A
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
3F,1
40,1
41,1
42,1
43,1
44,1
45,1
46,1
47,1
48,1
49,1
4A,1
4B,1
4C,1
4D,1
4E,1
4F,1
STATUS,Z
PORTA,2
PORTB,2
INTCON,TOIF
0C,2
0D,2
0E,2
0F,2
10,2
11,2
12,2
13,2
14,2
15,2
16,2
17,2
18,2
19,2
1A,2
307
111B
111C
111D
111E
111F
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
112A
112B
112C
112D
112E
112F
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
113A
113B
113C
113D
113E
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
1B,2
1C,2
1D,2
1E,2
1F,2
20,2
21,2
22,2
23,2
24,2
25,2
26,2
27,2
28,2
29,2
2A,2
2B,2
2C,2
2D,2
2E,2
2F,2
30,2
31,2
32,2
33,2
34,2
35,2
36,2
37,2
38,2
39,2
3A,2
3B,2
3C,2
3D,2
3E,2
113F
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
114A
114B
114C
114D
114E
114F
1183
1185
1186
118B
118C
118D
118E
118F
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
119A
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
3F,2
40,2
41,2
42,2
43,2
44,2
45,2
46,2
47,2
48,2
49,2
4A,2
4B,2
4C,2
4D,2
4E,2
4F,2
STATUS,PD
PORTA,3
PORTB,3
INTCON,RBIE
0C,3
0D,3
0E,3
0F,3
10,3
11,3
12,3
13,3
14,3
15,3
16,3
17,3
18,3
19,3
1A,3
308
119B
119C
119D
119E
119F
11A0
11A1
11A2
11A3
11A4
11A5
11A6
11A7
11A8
11A9
11AA
11AB
11AC
11AD
11AE
11AF
11B0
11B1
11B2
11B3
11B4
11B5
11B6
11B7
11B8
11B9
11BA
11BB
11BC
11BD
11BE
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
1B,3
1C,3
1D,3
1E,3
1F,3
20,3
21,3
22 ,3
23,3
24,3
25,3
26,3
27,3
28,3
29,3
2A,3
2B,3
2C,3
2D,3
2E,3
2F,3
30,3
31,3
32,3
33,3
34,3
35,3
36,3
37,3
38,3
39,3
3A,3
3B,3
3C,3
3D,3
3E,3
11BF
11C0
11C1
11C2
11C3
11C4
11C5
11C6
11C7
11C8
11C9
11CA
11CB
11CC
11CD
11CE
11CF
1203
1205
1206
120B
120C
120D
120E
120F
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
121A
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
3F,3
40,3
41,3
42,3
43,3
44,3
45,3
46,3
47,3
48,3
49,3
4A,3
4B,3
4C,3
4D,3
4E,3
4F,3
STATUS,TO
PORTA,4
PORTB,4
INTCON,INTE
0C,4
0D,4
0E,4
0F,4
10,4
11,4
12,4
13,4
14,4
15,4
16,4
17,4
18,4
19,4
1A,4
309
121B
121C
121D
121E
121F
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
122A
122B
122C
122D
122E
122F
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
123A
123B
123C
123D
123E
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
1B,4
1C,4
1D,4
1E,4
1F,4
20,4
21,4
22,4
23,4
24,4
25,4
26,4
27,4
28,4
29,4
2A,4
2B,4
2C,4
2D,4
2E,4
2F,4
30,4
31,4
32,4
33,4
34,4
35,4
36,4
37,4
38,4
39,4
3A,4
3B,4
3C,4
3D,4
3E,4
123F
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
124A
124B
124C
124D
124E
124F
1283
1285
1286
128B
128C
128D
128E
128F
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
129A
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
3F,4
40,4
41,4
42,4
43,4
44,4
45,4
46,4
47,4
48,4
49,4
4A,4
4B,4
4C,4
4D,4
4E,4
4F,4
STATUS,RP0
PORTA,5
PORTB,5
INTCON,TOIE
0C,5
0D,5
0E,5
0F,5
10,5
11,5
12,5
13,5
14,5
15,5
16,5
17,5
18,5
19,5
1A,5
310
129B
129C
129D
129E
129F
12A0
12A1
12A2
12A3
12A4
12A5
12A6
12A7
12A8
12A9
12AA
12AB
12AC
12AD
12AE
12AF
12B0
12B1
12B2
12B3
12B4
12B5
12B6
12B7
12B8
12B9
12BA
12BB
12BC
12BD
12BE
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
1B,5
1C,5
1D,5
1E,5
1F,5
20,5
21,5
22,5
23,5
24,5
25,5
26,5
27,5
28,5
29,5
2A,5
2B,5
2C,5
2D,5
2E,5
2F,5
30,5
31,5
32,5
33,5
34,5
35,5
36,5
37,5
38,5
39,5
3A,5
3B,5
3C,5
3D,5
3E,5
12BF
12C0
12C1
12C2
12C3
12C4
12C5
12C6
12C7
12C8
12C9
12CA
12CB
12CC
12CD
12CE
12CF
1303
1305
1306
130B
130C
130D
130E
130F
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
131A
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
3F,5
40,5
41,5
42,5
43,5
44,5
45,5
46,5
47,5
48,5
49,5
4A,5
4B,5
4C,5
4D,5
4E,5
4F,5
STATUS,6
PORTA,6
PORTB,6
INTCON,EEIE
0C,6
0D,6
0E,6
0F,6
10,6
11,6
12,6
13,6
14,6
15,6
16,6
17,6
18,6
19,6
1A,6
311
131B
131C
131D
131E
131F
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
132A
132B
132C
132D
132E
132F
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
133A
133B
133C
133D
133E
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
1B,6
1C,6
1D,6
1E,6
1F,6
20,6
21,6
22,6
23,6
24,6
25,6
26,6
27,6
28,6
29,6
2A,6
2B,6
2C,6
2D,6
2E,6
2F,6
30,6
31,6
32,6
33,6
34,6
35,6
36,6
37,6
38,6
39,6
3A,6
3B,6
3C,6
3D,6
3E,6
133F
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
134A
134B
134C
134D
134E
134F
1383
1385
1386
138B
138C
138D
138E
138F
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
139A
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
3F,6
40,6
41,6
42,6
43,6
44,6
45,6
46,6
47,6
48,6
49,6
4A,6
4B,6
4C,6
4D,6
4E,6
4F,6
STATUS,7
PORTA,7
PORTB,7
INTCON,GIE
0C,7
0D,7
0E,7
0F,7
10,7
11,7
12,7
13,7
14,7
15,7
16,7
17,7
18,7
19,7
1A,7
312
139B
139C
139D
139E
139F
13A0
13A1
13A2
13A3
13A4
13A5
13A6
13A7
13A8
13A9
13AA
13AB
13AC
13AD
13AE
13AF
13B0
13B1
13B2
13B3
13B4
13B5
13B6
13B7
13B8
13B9
13BA
13BB
13BC
13BD
13BE
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
1B,7
1C,7
1D,7
1E,7
1F,7
20,7
21,7
22,7
23,7
24,7
25,7
26,7
27,7
28,7
29,7
2A,7
2B,7
2C,7
2D,7
2E,7
2F,7
30,7
31,7
32,7
33,7
34,7
35,7
36,7
37,7
38,7
39,7
3A,7
3B,7
3C,7
3D,7
3E,7
13BF
13C0
13C1
13C2
13C3
13C4
13C5
13C6
13C7
13C8
13C9
13CA
13CB
13CC
13CD
13CE
13CF
1405
1406
140C
140D
140E
140F
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
141A
141B
141C
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BCF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
3F,7
40,7
41,7
42,7
43,7
44,7
45,7
46,7
47,7
48,7
49,7
4A,7
4B,7
4C,7
4D,7
4E,7
4F,7
PORTA,0
PORTB,0
0C,0
0D,0
0E,0
0F,0
10,0
11,0
12,0
13,0
14,0
15,0
16,0
17,0
18,0
19,0
1A,0
1B,0
1C,0
313
141D
141E
141F
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
142A
142B
142C
142D
142E
142F
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
143A
143B
143C
143D
143E
143F
1440
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
1D,0
1E,0
1F,0
20,0
21,0
22,0
23,0
24,0
25,0
26,0
27,0
28,0
29,0
2A,0
2B,0
2C,0
2D,0
2E,0
2F,0
30,0
31,0
32,0
33,0
34,0
35,0
36,0
37,0
38,0
39,0
3A,0
3B,0
3C,0
3D,0
3E,0
3F,0
40,0
1441
1442
1443
1444
1445
1446
1447
1448
1449
144A
144B
144C
144D
144E
144F
1485
1486
148C
148D
148E
148F
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
149A
149B
149C
149D
149E
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
41,0
42,0
43,0
44,0
45,0
46,0
47,0
48,0
49,0
4A,0
4B,0
4C,0
4D,0
4E,0
4F,0
PORTA,1
PORTB,1
0C,1
0D,1
0E,1
0F,1
10,1
11,1
12,1
13,1
14,1
15,1
16,1
17,1
18,1
19,1
1A,1
1B,1
1C,1
1D,1
1E,1
314
149F
14A0
14A1
14A2
14A3
14A4
14A5
14A6
14A7
14A8
14A9
14AA
14AB
14AC
14AD
14AE
14AF
14B0
14B1
14B2
14B3
14B4
14B5
14B6
14B7
14B8
14B9
14BA
14BB
14BC
14BD
14BE
14BF
14C0
14C1
14C2
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
1F,1
20,1
21,1
22,1
23,1
24,1
25,1
26,1
27,1
28,1
29,1
2A,1
2B,1
2C,1
2D,1
2E,1
2F,1
30,1
31,1
32,1
33,1
34,1
35,1
36,1
37,1
38,1
39,1
3A,1
3B,1
3C,1
3D,1
3E,1
3F,1
40,1
41,1
42,1
14C3
14C4
14C5
14C6
14C7
14C8
14C9
14CA
14CB
14CC
14CD
14CE
14CF
1505
1506
150C
150D
150E
150F
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
151A
151B
151C
151D
151E
151F
1520
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
43,1
44,1
45,1
46,1
47,1
48,1
49,1
4A,1
4B,1
4C,1
4D,1
4E,1
4F,1
PORTA,2
PORTB,2
0C,2
0D,2
0E,2
0F,2
10,2
11,2
12,2
13,2
14,2
15,2
16,2
17,2
18,2
19,2
1A,2
1B,2
1C,2
1D,2
1E,2
1F,2
20,2
315
1521
1522
1523
1524
1525
1526
1527
1528
1529
152A
152B
152C
152D
152E
152F
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
153A
153B
153C
153D
153E
153F
1540
1541
1542
1543
1544
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
21,2
22,2
23,2
24,2
25,2
26,2
27,2
28,2
29,2
2A,2
2B,2
2C,2
2D,2
2E,2
2F,2
30,2
31,2
32,2
33,2
34,2
35,2
36,2
37,2
38,2
39,2
3A,2
3B,2
3C,2
3D,2
3E,2
3F,2
40,2
41,2
42,2
43,2
44,2
1545
1546
1547
1548
1549
154A
154B
154C
154D
154E
154F
1585
1586
158B
158C
158D
158E
158F
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
159A
159B
159C
159D
159E
159F
15A0
15A1
BSF
45,2
BSF
46,2
BSF
47,2
BSF
48,2
BSF
49,2
BSF
4A,2
BSF
4B,2
BSF
4C,2
BSF
4D,2
BSF
4E,2
BSF
4F,2
BSF
PORTA,3
BSF
PORTB,3
BSF INTCON,RBIE
BSF
0C,3
BSF
0D,3
BSF
0E,3
BSF
0F,3
BSF
10,3
BSF
11,3
BSF
12,3
BSF
13,3
BSF
14,3
BSF
15,3
BSF
16,3
BSF
17,3
BSF
18,3
BSF
19,3
BSF
1A,3
BSF
1B,3
BSF
1C,3
BSF
1D,3
BSF
1E,3
BSF
1F,3
BSF
20,3
BSF
21,3
316
15A2
15A3
15A4
15A5
15A6
15A7
15A8
15A9
15AA
15AB
15AC
15AD
15AE
15AF
15B0
15B1
15B2
15B3
15B4
15B5
15B6
15B7
15B8
15B9
15BA
15BB
15BC
15BD
15BE
15BF
15C0
15C1
15C2
15C3
15C4
15C5
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
22 ,3
23,3
24,3
25,3
26,3
27,3
28,3
29,3
2A,3
2B,3
2C,3
2D,3
2E,3
2F,3
30,3
31,3
32,3
33,3
34,3
35,3
36,3
37,3
38,3
39,3
3A,3
3B,3
3C,3
3D,3
3E,3
3F,3
40,3
41,3
42,3
43,3
44,3
45,3
15C6
15C7
15C8
15C9
15CA
15CB
15CC
15CD
15CE
15CF
1605
1606
160B
160C
160D
160E
160F
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
161A
161B
161C
161D
161E
161F
1620
1621
1622
BSF
46,3
BSF
47,3
BSF
48,3
BSF
49,3
BSF
4A,3
BSF
4B,3
BSF
4C,3
BSF
4D,3
BSF
4E,3
BSF
4F,3
BSF
PORTA,4
BSF
PORTB,4
BSF INTCON,INTE
BSF
0C,4
BSF
0D,4
BSF
0E,4
BSF
0F,4
BSF
10,4
BSF
11,4
BSF
12,4
BSF
13,4
BSF
14,4
BSF
15,4
BSF
16,4
BSF
17,4
BSF
18,4
BSF
19,4
BSF
1A,4
BSF
1B,4
BSF
1C,4
BSF
1D,4
BSF
1E,4
BSF
1F,4
BSF
20,4
BSF
21,4
BSF
22,4
317
1623
1624
1625
1626
1627
1628
1629
162A
162B
162C
162D
162E
162F
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
163A
163B
163C
163D
163E
163F
1640
1641
1642
1643
1644
1645
1646
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
23,4
24,4
25,4
26,4
27,4
28,4
29,4
2A,4
2B,4
2C,4
2D,4
2E,4
2F,4
30,4
31,4
32,4
33,4
34,4
35,4
36,4
37,4
38,4
39,4
3A,4
3B,4
3C,4
3D,4
3E,4
3F,4
40,4
41,4
42,4
43,4
44,4
45,4
46,4
1647
1648
1649
164A
164B
164C
164D
164E
164F
1683
1685
1686
168B
168C
168D
168E
168F
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
169A
169B
169C
169D
169E
169F
16A0
16A1
16A2
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
47,4
48,4
49,4
4A,4
4B,4
4C,4
4D,4
4E,4
4F,4
STATUS,RP0
PORTA,5
PORTB,5
INTCON,T0IE
0C,5
0D,5
0E,5
0F,5
10,5
11,5
12,5
13,5
14,5
15,5
16,5
17,5
18,5
19,5
1A,5
1B,5
1C,5
1D,5
1E,5
1F,5
20,5
21,5
22,5
318
16A3
16A4
16A5
16A6
16A7
16A8
16A9
16AA
16AB
16AC
16AD
16AE
16AF
16B0
16B1
16B2
16B3
16B4
16B5
16B6
16B7
16B8
16B9
16BA
16BB
16BC
16BD
16BE
16BF
16C0
16C1
16C2
16C3
16C4
16C5
16C6
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
23,5
24,5
25,5
26,5
27,5
28,5
29,5
2A,5
2B,5
2C,5
2D,5
2E,5
2F,5
30,5
31,5
32,5
33,5
34,5
35,5
36,5
37,5
38,5
39,5
3A,5
3B,5
3C,5
3D,5
3E,5
3F,5
40,5
41,5
42,5
43,5
44,5
45,5
46,5
16C7
16C8
16C9
16CA
16CB
16CC
16CD
16CE
16CF
1705
1706
170B
170C
170D
170E
170F
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
171A
171B
171C
171D
171E
171F
1720
1721
1722
1723
BSF
47,5
BSF
48,5
BSF
49,5
BSF
4A,5
BSF
4B,5
BSF
4C,5
BSF
4D,5
BSF
4E,5
BSF
4F,5
BSF
PORTA,6
BSF
PORTB,6
BSF INTCON,EEIE
BSF
0C,6
BSF
0D,6
BSF
0E,6
BSF
0F,6
BSF
10,6
BSF
11,6
BSF
12,6
BSF
13,6
BSF
14,6
BSF
15,6
BSF
16,6
BSF
17,6
BSF
18,6
BSF
19,6
BSF
1A,6
BSF
1B,6
BSF
1C,6
BSF
1D,6
BSF
1E,6
BSF
1F,6
BSF
20,6
BSF
21,6
BSF
22,6
BSF
23,6
319
1724
1725
1726
1727
1728
1729
172A
172B
172C
172D
172E
172F
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
173A
173B
173C
173D
173E
173F
1740
1741
1742
1743
1744
1745
1746
1747
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
24,6
25,6
26,6
27,6
28,6
29,6
2A,6
2B,6
2C,6
2D,6
2E,6
2F,6
30,6
31,6
32,6
33,6
34,6
35,6
36,6
37,6
38,6
39,6
3A,6
3B,6
3C,6
3D,6
3E,6
3F,6
40,6
41,6
42,6
43,6
44,6
45,6
46,6
47,6
1748
1749
174A
174B
174C
174D
174E
174F
1785
1786
178B
178C
178D
178E
178F
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
179A
179B
179C
179D
179E
179F
17A0
17A1
17A2
17A3
17A4
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
48,6
49,6
4A,6
4B,6
4C,6
4D,6
4E,6
4F,6
PORTA,7
PORTB,7
INTCON,GIE
0C,7
0D,7
0E,7
0F,7
10,7
11,7
12,7
13,7
14,7
15,7
16,7
17,7
18,7
19,7
1A,7
1B,7
1C,7
1D,7
1E,7
1F,7
20,7
21,7
22,7
23,7
24,7
320
17A5
17A6
17A7
17A8
17A9
17AA
17AB
17AC
17AD
17AE
17AF
17B0
17B1
17B2
17B3
17B4
17B5
17B6
17B7
17B8
17B9
17BA
17BB
17BC
17BD
17BE
17BF
17C0
17C1
17C2
17C3
17C4
17C5
17C6
17C7
17C8
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BSF
25,7
26,7
27,7
28,7
29,7
2A,7
2B,7
2C,7
2D,7
2E,7
2F,7
30,7
31,7
32,7
33,7
34,7
35,7
36,7
37,7
38,7
39,7
3A,7
3B,7
3C,7
3D,7
3E,7
3F,7
40,7
41,7
42,7
43,7
44,7
45,7
46,7
47,7
48,7
17C9
17CA
17CB
17CC
17CD
17CE
17CF
1803
1805
1806
180B
180C
180D
180E
180F
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
181A
181B
181C
181D
181E
181F
1820
1821
1822
1823
1824
BSF
BSF
BSF
BSF
BSF
BSF
BSF
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
49,7
4A,7
4B,7
4C,7
4D,7
4E,7
4F,7
STATUS,C
PORTA,0
PORTB,0
INTCON,0
0C,0
0D,0
0E,0
0F,0
10,0
11,0
12,0
13,0
14,0
15,0
16,0
17,0
18,0
19,0
1A,0
1B,0
1C,0
1D,0
1E,0
1F,0
20,0
21,0
22,0
23,0
24,0
321
1825
1826
1827
1828
1829
182A
182B
182C
182D
182E
182F
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
183A
183B
183C
183D
183E
183F
1840
1841
1842
1843
1844
1845
1846
1847
1848
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
25,0
26,0
27,0
28,0
29,0
2A,0
2B,0
2C,0
2D,0
2E,0
2F,0
30,0
31,0
32,0
33,0
34,0
35,0
36,0
37,0
38,0
39,0
3A,0
3B,0
3C,0
3D,0
3E,0
3F,0
40,0
41,0
42,0
43,0
44,0
45,0
46,0
47,0
48,0
1849
184A
184B
184C
184D
184E
184F
1883
1885
1886
188B
188C
188D
188E
188F
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
189A
189B
189C
189D
189E
189F
18A0
18A1
18A2
18A3
18A4
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
49,0
4A,0
4B,0
4C,0
4D,0
4E,0
4F,0
STATUS,DC
PORTA,1
PORTB,1
INTCON,INTF
0C,1
0D,1
0E,1
0F,1
10,1
11,1
12,1
13,1
14,1
15,1
16,1
17,1
18,1
19,1
1A,1
1B,1
1C,1
1D,1
1E,1
1F,1
20,1
21,1
22,1
23,1
24,1
322
18A5
18A6
18A7
18A8
18A9
18AA
18AB
18AC
18AD
18AE
18AF
18B0
18B1
18B2
18B3
18B4
18B5
18B6
18B7
18B8
18B9
18BA
18BB
18BC
18BD
18BE
18BF
18C0
18C1
18C2
18C3
18C4
18C5
18C6
18C7
18C8
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
25,1
26,1
27,1
28,1
29,1
2A,1
2B,1
2C,1
2D,1
2E,1
2F,1
30,1
31,1
32,1
33,1
34,1
35,1
36,1
37,1
38,1
39,1
3A,1
3B,1
3C,1
3D,1
3E,1
3F,1
40,1
41,1
42,1
43,1
44,1
45,1
46,1
47,1
48,1
18C9
18CA
18CB
18CC
18CD
18CE
18CF
1903
1905
1906
190B
190C
190D
190E
190F
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
191A
191B
191C
191D
191E
191F
1920
1921
1922
1923
1924
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
49,1
4A,1
4B,1
4C,1
4D,1
4E,1
4F,1
STATUS,Z
PORTA,2
PORTB,2
INTCON,T0IF
0C,2
0D,2
0E,2
0F,2
10,2
11,2
12,2
13,2
14,2
15,2
16,2
17,2
18,2
19,2
1A,2
1B,2
1C,2
1D,2
1E,2
1F,2
20,2
21,2
22,2
23,2
24,2
323
1925
1926
1927
1928
1929
192A
192B
192C
192D
192E
192F
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
193A
193B
193C
193D
193E
193F
1940
1941
1942
1943
1944
1945
1946
1947
1948
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
25,2
26,2
27,2
28,2
29,2
2A,2
2B,2
2C,2
2D,2
2E,2
2F,2
30,2
31,2
32,2
33,2
34,2
35,2
36,2
37,2
38,2
39,2
3A,2
3B,2
3C,2
3D,2
3E,2
3F,2
40,2
41,2
42,2
43,2
44,2
45,2
46,2
47,2
48,2
1949
194A
194B
194C
194D
194E
194F
1983
1985
1986
198B
198C
198D
198E
198F
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
199A
199B
199C
199D
199E
199F
19A0
19A1
19A2
19A3
19A4
BTFSC
49,2
BTFSC
4A,2
BTFSC
4B,2
BTFSC
4C,2
BTFSC
4D,2
BTFSC
4E,2
BTFSC
4F,2
BTFSC STATUS,PD
BTFSC
PORTA,3
BTFSC
PORTB,3
BTFSC INTCON,RBIE
BTFSC
0C,3
BTFSC
0D,3
BTFSC
0E,3
BTFSC
0F,3
BTFSC
10,3
BTFSC
11,3
BTFSC
12,3
BTFSC
13,3
BTFSC
14,3
BTFSC
15,3
BTFSC
16,3
BTFSC
17,3
BTFSC
18,3
BTFSC
19,3
BTFSC
1A,3
BTFSC
1B,3
BTFSC
1C,3
BTFSC
1D,3
BTFSC
1E,3
BTFSC
1F,3
BTFSC
20,3
BTFSC
21,3
BTFSC
22 ,3
BTFSC
23,3
BTFSC
24,3
324
19A5
19A6
19A7
19A8
19A9
19AA
19AB
19AC
19AD
19AE
19AF
19B0
19B1
19B2
19B3
19B4
19B5
19B6
19B7
19B8
19B9
19BA
19BB
19BC
19BD
19BE
19BF
19C0
19C1
19C2
19C3
19C4
19C5
19C6
19C7
19C8
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
25,3
26,3
27,3
28,3
29,3
2A,3
2B,3
2C,3
2D,3
2E,3
2F,3
30,3
31,3
32,3
33,3
34,3
35,3
36,3
37,3
38,3
39,3
3A,3
3B,3
3C,3
3D,3
3E,3
3F,3
40,3
41,3
42,3
43,3
44,3
45,3
46,3
47,3
48,3
19C9
19CA
19CB
19CC
19CD
19CE
19CF
1A03
1A05
1A06
1A0B
1A0C
1A0D
1A0E
1A0F
1A10
1A11
1A12
1A13
1A14
1A15
1A16
1A17
1A18
1A19
1A1A
1A1B
1A1C
1A1D
1A1E
1A1F
1A20
1A21
1A22
1A23
1A24
BTFSC
49,3
BTFSC
4A,3
BTFSC
4B,3
BTFSC
4C,3
BTFSC
4D,3
BTFSC
4E,3
BTFSC
4F,3
BTFSC STATUS,TO
BTFSC
PORTA,4
BTFSC
PORTB,4
BTFSC INTCON,INTE
BTFSC
0C,4
BTFSC
0D,4
BTFSC
0E,4
BTFSC
0F,4
BTFSC
10,4
BTFSC
11,4
BTFSC
12,4
BTFSC
13,4
BTFSC
14,4
BTFSC
15,4
BTFSC
16,4
BTFSC
17,4
BTFSC
18,4
BTFSC
19,4
BTFSC
1A,4
BTFSC
1B,4
BTFSC
1C,4
BTFSC
1D,4
BTFSC
1E,4
BTFSC
1F,4
BTFSC
20,4
BTFSC
21,4
BTFSC
22 ,4
BTFSC
23,4
BTFSC
24,4
325
1A25
1A26
1A27
1A28
1A29
1A2A
1A2B
1A2C
1A2D
1A2E
1A2F
1A30
1A31
1A32
1A33
1A34
1A35
1A36
1A37
1A38
1A39
1A3A
1A3B
1A3C
1A3D
1A3E
1A3F
1A40
1A41
1A42
1A43
1A44
1A45
1A46
1A47
1A48
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
25,4
26,4
27,4
28,4
29,4
2A,4
2B,4
2C,4
2D,4
2E,4
2F,4
30,4
31,4
32,4
33,4
34,4
35,4
36,4
37,4
38,4
39,4
3A,4
3B,4
3C,4
3D,4
3E,4
3F,4
40,4
41,4
42,4
43,4
44,4
45,4
46,4
47,4
48,4
1A49
1A4A
1A4B
1A4C
1A4D
1A4E
1A4F
1A83
1A85
1A86
1A8B
1A8C
1A8D
1A8E
1A8F
1A90
1A91
1A92
1A93
1A94
1A95
1A96
1A97
1A98
1A99
1A9A
1A9B
1A9C
1A9D
1A9E
1A9F
1AA0
1AA1
1AA2
1AA3
1AA4
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
49,4
4A,4
4B,4
4C,4
4D,4
4E,4
4F,4
STATUS,RP0
PORTA,5
PORTB,5
INTCON,T0IE
0C,5
0D,5
0E,5
0F,5
10,5
11,5
12,5
13,5
14,5
15,5
16,5
17,5
18,5
19,5
1A,5
1B,5
1C,5
1D,5
1E,5
1F,5
20,5
21,5
22,5
23,5
24,5
326
1AA5
1AA6
1AA7
1AA8
1AA9
1AAA
1AAB
1AAC
1AAD
1AAE
1AAF
1AB0
1AB1
1AB2
1AB3
1AB4
1AB5
1AB6
1AB7
1AB8
1AB9
1ABA
1ABB
1ABC
1ABD
1ABE
1ABF
1AC0
1AC1
1AC2
1AC3
1AC4
1AC5
1AC6
1AC7
1AC8
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
25,5
26,5
27,5
28,5
29,5
2A,5
2B,5
2C,5
2D,5
2E,5
2F,5
30,5
31,5
32,5
33,5
34,5
35,5
36,5
37,5
38,5
39,5
3A,5
3B,5
3C,5
3D,5
3E,5
3F,5
40,5
41,5
42,5
43,5
44,5
45,5
46,5
47,5
48,5
1AC9
1ACA
1ACB
1ACC
1ACD
1ACE
1ACF
1B05
1B06
1B0B
1B0C
1B0D
1B0E
1B0F
1B10
1B11
1B12
1B13
1B14
1B15
1B16
1B17
1B18
1B19
1B1A
1B1B
1B1C
1B1D
1B1E
1B1F
1B20
1B21
1B22
1B23
1B24
1B25
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
49,5
4A,5
4B,5
4C,5
4D,5
4E,5
4F,5
PORTA,6
PORTB,6
INTCON,EEIE
0C,6
0D,6
0E,6
0F,6
10,6
11,6
12,6
13,6
14,6
15,6
16,6
17,6
18,6
19,6
1A,6
1B,6
1C,6
1D,6
1E,6
1F,6
20,6
21,6
22,6
23,6
24,6
25,6
327
1B26
1B27
1B28
1B29
1B2A
1B2B
1B2C
1B2D
1B2E
1B2F
1B30
1B31
1B32
1B33
1B34
1B35
1B36
1B37
1B38
1B39
1B3A
1B3B
1B3C
1B3D
1B3E
1B3F
1B40
1B41
1B42
1B43
1B44
1B45
1B46
1B47
1B48
1B49
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
26,6
27,6
28,6
29,6
2A,6
2B,6
2C,6
2D,6
2E,6
2F,6
30,6
31,6
32,6
33,6
34,6
35,6
36,6
37,6
38,6
39,6
3A,6
3B,6
3C,6
3D,6
3E,6
3F,6
40,6
41,6
42,6
43,6
44,6
45,6
46,6
47,6
48,6
49,6
1B4A
1B4B
1B4C
1B4D
1B4E
1B4F
1B85
1B86
1B8B
1B8C
1B8D
1B8E
1B8F
1B90
1B91
1B92
1B93
1B94
1B95
1B96
1B97
1B98
1B99
1B9A
1B9B
1B9C
1B9D
1B9E
1B9F
1BA0
1BA1
1BA2
1BA3
1BA4
1BA5
1BA6
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
4A,6
4B,6
4C,6
4D,6
4E,6
4F,6
PORTA,7
PORTB,7
INTCON,GIE
0C,7
0D,7
0E,7
0F,7
10,7
11,7
12,7
13,7
14,7
15,7
16,7
17,7
18,7
19,7
1A,7
1B,7
1C,7
1D,7
1E,7
1F,7
20,7
21,7
22,7
23,7
24,7
25,7
26,7
328
1BA7
1BA8
1BA9
1BAA
1BAB
1BAC
1BAD
1BAE
1BAF
1BB0
1BB1
1BB2
1BB3
1BB4
1BB5
1BB6
1BB7
1BB8
1BB9
1BBA
1BBB
1BBC
1BBD
1BBE
1BBF
1BC0
1BC1
1BC2
1BC3
1BC4
1BC5
1BC6
1BC7
1BC8
1BC9
1BCA
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
27,7
28,7
29,7
2A,7
2B,7
2C,7
2D,7
2E,7
2F,7
30,7
31,7
32,7
33,7
34,7
35,7
36,7
37,7
38,7
39,7
3A,7
3B,7
3C,7
3D,7
3E,7
3F,7
40,7
41,7
42,7
43,7
44,7
45,7
46,7
47,7
48,7
49,7
4A,7
1BCB
1BCC
1BCD
1BCE
1BCF
1C03
1C05
1C06
1C0B
1C0C
1C0D
1C0E
1C0F
1C10
1C11
1C12
1C13
1C14
1C15
1C16
1C17
1C18
1C19
1C1A
1C1B
1C1C
1C1D
1C1E
1C1F
1C20
1C21
1C22
1C23
1C24
1C25
1C26
BTFSC
BTFSC
BTFSC
BTFSC
BTFSC
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
4B,7
4C,7
4D,7
4E,7
4F,7
STATUS,C
PORTA,0
PORTB,0
INTCON,0
0C,0
0D,0
0E,0
0F,0
10,0
11,0
12,0
13,0
14,0
15,0
16,0
17,0
18,0
19,0
1A,0
1B,0
1C,0
1D,0
1E,0
1F,0
20,0
21,0
22,0
23,0
24,0
25,0
26,0
329
1C27
1C28
1C29
1C2A
1C2B
1C2C
1C2D
1C2E
1C2F
1C30
1C31
1C32
1C33
1C34
1C35
1C36
1C37
1C38
1C39
1C3A
1C3B
1C3C
1C3D
1C3E
1C3F
1C40
1C41
1C42
1C43
1C44
1C45
1C46
1C47
1C48
1C49
1C4A
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
27,0
28,0
29,0
2A,0
2B,0
2C,0
2D,0
2E,0
2F,0
30,0
31,0
32,0
33,0
34,0
35,0
36,0
37,0
38,0
39,0
3A,0
3B,0
3C,0
3D,0
3E,0
3F,0
40,0
41,0
42,0
43,0
44,0
45,0
46,0
47,0
48,0
49,0
4A,0
1C4B
1C4C
1C4D
1C4E
1C4F
1C83
1C85
1C86
1C8B
1C8C
1C8D
1C8E
1C8F
1C90
1C91
1C92
1C93
1C94
1C95
1C96
1C97
1C98
1C99
1C9A
1C9B
1C9C
1C9D
1C9E
1C9F
1CA0
1CA1
1CA2
1CA3
1CA4
1CA5
1CA6
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
4B,0
4C,0
4D,0
4E,0
4F,0
STATUS,DC
PORTA,1
PORTB,1
INTCON,INTF
0C,1
0D,1
0E,1
0F,1
10,1
11,1
12,1
13,1
14,1
15,1
16,1
17,1
18,1
19,1
1A,1
1B,1
1C,1
1D,1
1E,1
1F,1
20,1
21,1
22,1
23,1
24,1
25,1
26,1
330
1CA7
1CA8
1CA9
1CAA
1CAB
1CAC
1CAD
1CAE
1CAF
1CB0
1CB1
1CB2
1CB3
1CB4
1CB5
1CB6
1CB7
1CB8
1CB9
1CBA
1CBB
1CBC
1CBD
1CBE
1CBF
1CC0
1CC1
1CC2
1CC3
1CC4
1CC5
1CC6
1CC7
1CC8
1CC9
1CCA
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
27,1
28,1
29,1
2A,1
2B,1
2C,1
2D,1
2E,1
2F,1
30,1
31,1
32,1
33,1
34,1
35,1
36,1
37,1
38,1
39,1
3A,1
3B,1
3C,1
3D,1
3E,1
3F,1
40,1
41,1
42,1
43,1
44,1
45,1
46,1
47,1
48,1
49,1
4A,1
1CCB
1CCC
1CCD
1CCE
1CCF
1D03
1D05
1D06
1D0B
1D0C
1D0D
1D0E
1D0F
1D10
1D11
1D12
1D13
1D14
1D15
1D16
1D17
1D18
1D19
1D1A
1D1B
1D1C
1D1D
1D1E
1D1F
1D20
1D21
1D22
1D23
1D24
1D25
1D26
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
4B,1
4C,1
4D,1
4E,1
4F,1
STATUS,Z
PORTA,2
PORTB,2
INTCON,T0IF
0C,2
0D,2
0E,2
0F,2
10,2
11,2
12,2
13,2
14,2
15,2
16,2
17,2
18,2
19,2
1A,2
1B,2
1C,2
1D,2
1E,2
1F,2
20,2
21,2
22,2
23,2
24,2
25,2
26,2
331
1D27
1D28
1D29
1D2A
1D2B
1D2C
1D2D
1D2E
1D2F
1D30
1D31
1D32
1D33
1D34
1D35
1D36
1D37
1D38
1D39
1D3A
1D3B
1D3C
1D3D
1D3E
1D3F
1D40
1D41
1D42
1D43
1D44
1D45
1D46
1D47
1D48
1D49
1D4A
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
27,2
28,2
29,2
2A,2
2B,2
2C,2
2D,2
2E,2
2F,2
30,2
31,2
32,2
33,2
34,2
35,2
36,2
37,2
38,2
39,2
3A,2
3B,2
3C,2
3D,2
3E,2
3F,2
40,2
41,2
42,2
43,2
44,2
45,2
46,2
47,2
48,2
49,2
4A,2
1D4B
1D4C
1D4D
1D4E
1D4F
1D83
1D85
1D86
1D8B
1D8C
1D8D
1D8E
1D8F
1D90
1D91
1D92
1D93
1D94
1D95
1D96
1D97
1D98
1D99
1D9A
1D9B
1D9C
1D9D
1D9E
1D9F
1DA0
1DA1
1DA2
1DA3
1DA4
1DA5
1DA6
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
4B,2
4C,2
4D,2
4E,2
4F,2
STATUS,PD
PORTA,3
PORTB,3
INTCON,RBIE
0C,3
0D,3
0E,3
0F,3
10,3
11,3
12,3
13,3
14,3
15,3
16,3
17,3
18,3
19,3
1A,3
1B,3
1C,3
1D,3
1E,3
1F,3
20,3
21,3
22 ,3
23,3
24,3
25,3
26,3
332
1DA7
1DA8
1DA9
1DAA
1DAB
1DAC
1DAD
1DAE
1DAF
1DB0
1DB1
1DB2
1DB3
1DB4
1DB5
1DB6
1DB7
1DB8
1DB9
1DBA
1DBB
1DBC
1DBD
1DBE
1DBF
1DC0
1DC1
1DC2
1DC3
1DC4
1DC5
1DC6
1DC7
1DC8
1DC9
1DCA
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
27,3
28,3
29,3
2A,3
2B,3
2C,3
2D,3
2E,3
2F,3
30,3
31,3
32,3
33,3
34,3
35,3
36,3
37,3
38,3
39,3
3A,3
3B,3
3C,3
3D,3
3E,3
3F,3
40,3
41,3
42,3
43,3
44,3
45,3
46,3
47,3
48,3
49,3
4A,3
1DCB
1DCC
1DCD
1DCE
1DCF
1E03
1E05
1E06
1E0B
1E0C
1E0D
1E0E
1E0F
1E10
1E11
1E12
1E13
1E14
1E15
1E16
1E17
1E18
1E19
1E1A
1E1B
1E1C
1E1D
1E1E
1E1F
1E20
1E21
1E22
1E23
1E24
1E25
1E26
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
4B,3
4C,3
4D,3
4E,3
4F,3
STATUS,TO
PORTA,4
PORTB,4
INTCON,INTE
0C,4
0D,4
0E,4
0F,4
10,4
11,4
12,4
13,4
14,4
15,4
16,4
17,4
18,4
19,4
1A,4
1B,4
1C,4
1D,4
1E,4
1F,4
20,4
21,4
22 ,4
23,4
24,4
25,4
26,4
333
1E27
1E28
1E29
1E2A
1E2B
1E2C
1E2D
1E2E
1E2F
1E30
1E31
1E32
1E33
1E34
1E35
1E36
1E37
1E38
1E39
1E3A
1E3B
1E3C
1E3D
1E3E
1E3F
1E40
1E41
1E42
1E43
1E44
1E45
1E46
1E47
1E48
1E49
1E4A
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
27,4
28,4
29,4
2A,4
2B,4
2C,4
2D,4
2E,4
2F,4
30,4
31,4
32,4
33,4
34,4
35,4
36,4
37,4
38,4
39,4
3A,4
3B,4
3C,4
3D,4
3E,4
3F,4
40,4
41,4
42,4
43,4
44,4
45,4
46,4
47,4
48,4
49,4
4A,4
1E4B
1E4C
1E4D
1E4E
1E4F
1E83
1E85
1E86
1E8B
1E8C
1E8D
1E8E
1E8F
1E90
1E91
1E92
1E93
1E94
1E95
1E96
1E97
1E98
1E99
1E9A
1E9B
1E9C
1E9D
1E9E
1E9F
1EA0
1EA1
1EA2
1EA3
1EA4
1EA5
1EA6
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
4B,4
4C,4
4D,4
4E,4
4F,4
STATUS,RP0
PORTA,5
PORTB,5
INTCON,T0IE
0C,5
0D,5
0E,5
0F,5
10,5
11,5
12,5
13,5
14,5
15,5
16,5
17,5
18,5
19,5
1A,5
1B,5
1C,5
1D,5
1E,5
1F,5
20,5
21,5
22,5
23,5
24,5
25,5
26,5
334
1EA7
1EA8
1EA9
1EAA
1EAB
1EAC
1EAD
1EAE
1EAF
1EB0
1EB1
1EB2
1EB3
1EB4
1EB5
1EB6
1EB7
1EB8
1EB9
1EBA
1EBB
1EBC
1EBD
1EBE
1EBF
1EC0
1EC1
1EC2
1EC3
1EC4
1EC5
1EC6
1EC7
1EC8
1EC9
1ECA
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
27,5
28,5
29,5
2A,5
2B,5
2C,5
2D,5
2E,5
2F,5
30,5
31,5
32,5
33,5
34,5
35,5
36,5
37,5
38,5
39,5
3A,5
3B,5
3C,5
3D,5
3E,5
3F,5
40,5
41,5
42,5
43,5
44,5
45,5
46,5
47,5
48,5
49,5
4A,5
1ECB
1ECC
1ECD
1ECE
1ECF
1F05
1F06
1F0B
1F0C
1F0D
1F0E
1F0F
1F10
1F11
1F12
1F13
1F14
1F15
1F16
1F17
1F18
1F19
1F1A
1F1B
1F1C
1F1D
1F1E
1F1F
1F20
1F21
1F22
1F23
1F24
1F25
1F26
1F27
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
4B,5
4C,5
4D,5
4E,5
4F,5
PORTA,6
PORTB,6
INTCON,EEIE
0C,6
0D,6
0E,6
0F,6
10,6
11,6
12,6
13,6
14,6
15,6
16,6
17,6
18,6
19,6
1A,6
1B,6
1C,6
1D,6
1E,6
1F,6
20,6
21,6
22,6
23,6
24,6
25,6
26,6
27,6
335
1F28
1F29
1F2A
1F2B
1F2C
1F2D
1F2E
1F2F
1F30
1F31
1F32
1F33
1F34
1F35
1F36
1F37
1F38
1F39
1F3A
1F3B
1F3C
1F3D
1F3E
1F3F
1F40
1F41
1F42
1F43
1F44
1F45
1F46
1F47
1F48
1F49
1F4A
1F4B
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
28,6
29,6
2A,6
2B,6
2C,6
2D,6
2E,6
2F,6
30,6
31,6
32,6
33,6
34,6
35,6
36,6
37,6
38,6
39,6
3A,6
3B,6
3C,6
3D,6
3E,6
3F,6
40,6
41,6
42,6
43,6
44,6
45,6
46,6
47,6
48,6
49,6
4A,6
4B,6
1F4C
1F4D
1F4E
1F4F
1F85
1F86
1F8B
1F8C
1F8D
1F8E
1F8F
1F90
1F91
1F92
1F93
1F94
1F95
1F96
1F97
1F98
1F99
1F9A
1F9B
1F9C
1F9D
1F9E
1F9F
1FA0
1FA1
1FA2
1FA3
1FA4
1FA5
1FA6
1FA7
1FA8
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
4C,6
4D,6
4E,6
4F,6
PORTA,7
PORTB,7
INTCON,GIE
0C,7
0D,7
0E,7
0F,7
10,7
11,7
12,7
13,7
14,7
15,7
16,7
17,7
18,7
19,7
1A,7
1B,7
1C,7
1D,7
1E,7
1F,7
20,7
21,7
22,7
23,7
24,7
25,7
26,7
27,7
28,7
336
1FA9
1FAA
1FAB
1FAC
1FAD
1FAE
1FAF
1FB0
1FB1
1FB2
1FB3
1FB4
1FB5
1FB6
1FB7
1FB8
1FB9
1FBA
1FBB
1FBC
1FBD
1FBE
1FBF
1FC0
1FC1
1FC2
1FC3
1FC4
1FC5
1FC6
1FC7
1FC8
1FC9
1FCA
1FCB
1FCC
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
BTFSS
29,7
2A,7
2B,7
2C,7
2D,7
2E,7
2F,7
30,7
31,7
32,7
33,7
34,7
35,7
36,7
37,7
38,7
39,7
3A,7
3B,7
3C,7
3D,7
3E,7
3F,7
40,7
41,7
42,7
43,7
44,7
45,7
46,7
47,7
48,7
49,7
4A,7
4B,7
4C,7
1FCD
1FCE
1FCF
2004
2005
2006
2007
2008
2009
200A
200B
200C
200D
200E
200F
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
201A
201B
201C
201D
201E
201F
2020
2021
2022
2023
2024
BTFSS
BTFSS
BTFSS
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
4D,7
4E,7
4F,7
004
005
006
007
008
009
00A
00B
00C
00D
00E
00F
010
011
012
013
014
015
016
017
018
019
01A
01B
01C
01D
01E
01F
020
021
022
023
024
337
2025
2026
2027
2028
2029
202A
202B
202C
202D
202E
202F
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
203A
203B
203C
203D
203E
203F
2040
2041
2042
2043
2044
2045
2046
2047
2048
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
025
026
027
028
029
02A
02B
02C
02D
02E
02F
030
031
032
033
034
035
036
037
038
039
03A
03B
03C
03D
03E
03F
040
041
042
043
044
045
046
047
048
2049
204A
204B
204C
204D
204E
204F
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
205A
205B
205C
205D
205E
205F
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
206A
206B
206C
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
049
04A
04B
04C
04D
04E
04F
050
051
052
053
054
055
056
057
058
059
05A
05B
05C
05D
05E
05F
060
061
062
063
064
065
066
067
068
069
06A
06B
06C
338
206D
206E
206F
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
207A
207B
207C
207D
207E
207F
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
208A
208B
208C
208D
208E
208F
2090
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
06D
06E
06F
070
071
072
073
074
075
076
077
078
079
07A
07B
07C
07D
07E
07F
080
081
082
083
084
085
086
087
088
089
08A
08B
08C
08D
08E
08F
090
2091
2092
2093
2094
2095
2096
2097
2098
2099
209A
209B
209C
209D
209E
209F
20A0
20A1
20A2
20A3
20A4
20A5
20A6
20A7
20A8
20A9
20AA
20AB
20AC
20AD
20AE
20AF
20B0
20B1
20B2
20B3
20B4
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
091
092
093
094
095
096
097
098
099
09A
09B
09C
09D
09E
09F
0A0
0A1
0A2
0A3
0A4
0A5
0A6
0A7
0A8
0A9
0AA
0AB
0AC
0AD
0AE
0AF
0B0
0B1
0B2
0B3
0B4
339
20B5
20B6
20B7
20B8
20B9
20BA
20BB
20BC
20BD
20BE
20BF
20C0
20C1
20C2
20C3
20C4
20C5
20C6
20C7
20C8
20C9
20CA
20CB
20CC
20CD
20CE
20CF
20D0
20D1
20D2
20D3
20D4
20D5
20D6
20D7
20D8
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
0B5
0B6
0B7
0B8
0B9
0BA
0BB
0BC
0BD
0BE
0BF
0C0
0C1
0C2
0C3
0C4
0C5
0C6
0C7
0C8
0C9
0CA
0CB
0CC
0CD
0CE
0CF
0D0
0D1
0D2
0D3
0D4
0D5
0D6
0D7
0D8
20D9
20DA
20DB
20DC
20DD
20DE
20DF
20E0
20E1
20E2
20E3
20E4
20E5
20E6
20E7
20E8
20E9
20EA
20EB
20EC
20ED
20EE
20EF
20F0
20F1
20F2
20F3
20F4
20F5
20F6
20F7
20F8
20F9
20FA
20FB
20FC
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
0D9
0DA
0DB
0DC
0DD
0DE
0DF
0E0
0E1
0E2
0E3
0E4
0E5
0E6
0E7
0E8
0E9
0EA
0EB
0EC
0ED
0EE
0EF
0F0
0F1
0F2
0F3
0F4
0F5
0F6
0F7
0F8
0F9
0FA
0FB
0FC
340
20FD
20FE
20FF
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
210A
210B
210C
210D
210E
210F
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
211A
211B
211C
211D
211E
211F
2120
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
0FD
0FE
0FF
100
101
102
103
104
105
106
107
108
109
10A
10B
10C
10D
10E
10F
110
111
112
113
114
115
116
117
118
119
11A
11B
11C
11D
11E
11F
120
2121
2122
2123
2124
2125
2126
2127
2128
2129
212A
212B
212C
212D
212E
212F
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
213A
213B
213C
213D
213E
213F
2140
2141
2142
2143
2144
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
121
122
123
124
125
126
127
128
129
12A
12B
12C
12D
12E
12F
130
131
132
133
134
135
136
137
138
139
13A
13B
13C
13D
13E
13F
140
141
142
143
144
341
2145
2146
2147
2148
2049
214A
201B
214C
214D
214E
214F
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
215A
215B
215C
215D
215E
215F
2160
2161
2162
2163
2164
2165
2166
2167
2168
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
145
146
147
148
149
14A
14B
14C
14D
14E
14F
150
151
152
153
154
155
156
157
158
159
15A
15B
15C
15D
15E
15F
160
161
162
163
164
165
166
167
168
2169
216A
216B
216C
216D
216E
216F
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
217A
217B
217C
217D
217E
217F
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
218A
218B
218C
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
169
16A
16B
16C
16D
16E
16F
170
171
172
173
174
175
176
177
178
179
17A
17B
17C
17D
17E
17F
180
181
182
183
184
185
186
187
188
189
18A
18B
18C
342
218D
218E
218F
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
219A
219B
219C
219D
219E
219F
21A0
21A1
21A2
21A3
21A4
21A5
21A6
21A7
21A8
21A9
21AA
21AB
21AC
21AD
21AE
21AF
21B0
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
18D
18E
18F
190
191
192
193
194
195
196
197
198
199
19A
19B
19C
19D
19E
19F
1A0
1A1
1A2
1A3
1A4
1A5
1A6
1A7
1A8
1A9
1AA
1AB
1AC
1AD
1AE
1AF
1B0
21B1
21B2
21B3
21B4
21B5
21B6
21B7
21B8
21B9
21BA
21BB
21BC
21BD
21BE
21BF
21C0
21C1
21C2
21C3
21C4
21C5
21C6
21C7
21C8
21C9
21CA
21CB
21CC
21CD
21CE
21CF
21D0
21D1
21D2
21D3
21D4
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
1B1
1B2
1B3
1B4
1B5
1B6
1B7
1B8
1B9
1BA
1BB
1BC
1BD
1BE
1BF
1C0
1C1
1C2
1C3
1C4
1C5
1C6
1C7
1C8
1C9
1CA
1CB
1CC
1CD
1CE
1CF
1D0
1D1
1D2
1D3
1D4
343
21D5
21D6
21D7
21D8
21D9
21DA
21DB
21DC
21DD
21DE
21DF
21E0
21E1
21E2
21E3
21E4
21E5
21E6
21E7
21E8
21E9
21EA
21EB
21EC
21ED
21EE
21EF
21F0
21F1
21F2
21F3
21F4
21F5
21F6
21F7
21F8
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
1D5
1D6
1D7
1D8
1D9
1DA
1DB
1DC
1DD
1DE
1DF
1E0
1E1
1E2
1E3
1E4
1E5
1E6
1E7
1E8
1E9
1EA
1EB
1EC
1ED
1EE
1EF
1F0
1F1
1F2
1F3
1F4
1F5
1F6
1F7
1F8
21F9
21FA
21FB
21FC
21FD
21FE
21FF
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
220A
220B
220C
220D
220E
220F
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
221A
221B
221C
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
1F9
1FA
1FB
1FC
1FD
1FE
1FF
200
201
202
203
204
205
206
207
208
209
20A
20B
20C
20D
20E
20F
210
211
212
213
214
215
216
217
218
219
21A
21B
21C
344
221D
221E
221F
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
222A
222B
222C
222D
222E
222F
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
223A
223B
223C
223D
223E
223F
2240
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
21D
21E
21F
220
221
222
223
224
225
226
227
228
229
22A
22B
22C
22D
22E
22F
230
231
232
233
234
235
236
237
238
239
23A
23B
23C
23D
23E
23F
240
2241
2242
2243
2244
2245
2246
2247
2248
2249
224A
224B
224C
224D
224E
224F
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
225A
225B
225C
225D
225E
225F
2260
2261
2262
2263
2264
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
241
242
243
244
245
246
247
248
249
24A
24B
24C
24D
24E
24F
250
251
252
253
254
255
256
257
258
259
25A
25B
25C
25D
25E
25F
260
261
262
263
264
345
2265
2266
2267
2268
2269
226A
226B
226C
226D
226E
226F
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
227A
227B
227C
227D
227E
227F
2280
2281
2282
2283
2284
2285
2286
2287
2288
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
265
266
267
268
269
26A
26B
26C
26D
26E
26F
270
271
272
273
274
275
276
277
278
279
27A
27B
27C
27D
27E
27F
280
281
282
283
284
285
286
287
288
2289
228A
228B
228C
228D
228E
228F
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
229A
229B
229C
229D
229E
229F
22A0
22A1
22A2
22A3
22A4
22A5
22A6
22A7
22A8
22A9
22AA
22AB
22AC
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
289
28A
28B
28C
28D
28E
28F
290
291
292
293
294
295
296
297
298
299
29A
29B
29C
29D
29E
29F
2A0
2A1
2A2
2A3
2A4
2A5
2A6
2A7
2A8
2A9
2AA
2AB
2AC
346
22AD
22AE
22AF
22B0
22B1
22B2
22B3
22B4
22B5
22B6
22B7
22B8
22B9
22BA
22BB
22BC
22BD
22BE
22BF
22C0
22C1
22C2
22C3
22C4
22C5
22C6
22C7
22C8
22C9
22CA
22CB
22CC
22CD
22CE
22CF
22D0
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
2AD
2AE
2AF
2B0
2B1
2B2
2B3
2B4
2B5
2B6
2B7
2B8
2B9
2BA
2BB
2BC
2BD
2BE
2BF
2C0
2C1
2C2
2C3
2C4
2C5
2C6
2C7
2C8
2C9
2CA
2CB
2CC
2CD
2CE
2CF
2D0
22D1
22D2
22D3
22D4
22D5
22D6
22D7
22D8
22D9
22DA
22DB
22DC
22DD
22DE
22DF
22E0
22E1
22E2
22E3
22E4
22E5
22E6
22E7
22E8
22E9
22EA
22EB
22EC
22ED
22EE
22EF
22F0
22F1
22F2
22F3
22F4
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
2D1
2D2
2D3
2D4
2D5
2D6
2D7
2D8
2D9
2DA
2DB
2DC
2DD
2DE
2DF
2E0
2E1
2E2
2E3
2E4
2E5
2E6
2E7
2E8
2E9
2EA
2EB
2EC
2ED
2EE
2EF
2F0
2F1
2F2
2F3
2F4
347
22F5
22F6
22F7
22F8
22F9
22FA
22FB
22FC
22FD
22FE
22FF
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
230A
230B
230C
230D
230E
230F
2310
2311
2312
2313
2314
2315
2316
2317
2318
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
2F5
2F6
2F7
2F8
2F9
2FA
2FB
2FC
2FD
2FE
2FF
300
301
302
303
304
305
306
307
308
309
30A
30B
30C
30D
30E
30F
310
311
312
313
314
315
316
317
318
2319
231A
231B
231C
231D
231E
231F
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
232A
232B
232C
232D
232E
232F
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
233A
233B
233C
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
319
31A
31B
31C
31D
31E
31F
320
321
322
323
324
325
326
327
328
329
32A
32B
32C
32D
32E
32F
330
331
332
333
334
335
336
337
338
339
33A
33B
33C
348
233D
233E
233F
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
234A
234B
234C
234D
234E
234F
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
235A
235B
235C
235D
235E
235F
2360
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
33D
33E
33F
340
341
342
343
344
345
346
347
348
349
34A
34B
34C
34D
34E
34F
350
351
352
353
354
355
356
357
358
359
35A
35B
35C
35D
35E
35F
360
2361
2362
2363
2364
2365
2366
2367
2368
2369
236A
236B
236C
236D
236E
236F
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
237A
237B
237C
237D
237E
237F
2380
2381
2382
2383
2384
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
361
362
363
364
365
366
367
368
369
36A
36B
36C
36D
36E
36F
370
371
372
373
374
375
376
377
378
379
37A
37B
37C
37D
37E
37F
380
381
382
383
384
349
2385
2386
2387
2388
2389
238A
238B
238C
238D
238E
238F
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
239A
239B
239C
239D
239E
239F
23A0
23A1
23A2
23A3
23A4
23A5
23A6
23A7
23A8
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
385
386
387
388
389
38A
38B
38C
38D
38E
38F
390
391
392
393
394
395
396
397
398
399
39A
39B
39C
39D
39E
39F
3A0
3A1
3A2
3A3
3A4
3A5
3A6
3A7
3A8
23A9
23AA
23AB
23AC
23AD
23AE
23AF
23B0
23B1
23B2
23B3
23B4
23B5
23B6
23B7
23B8
23B9
23BA
23BB
23BC
23BD
23BE
23BF
23C0
23C1
23C2
23C3
23C4
23C5
23C6
23C7
23C8
23C9
23CA
23CB
23CC
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
3A9
3AA
3AB
3AC
3AD
3AE
3AF
3B0
3B1
3B2
3B3
3B4
3B5
3B6
3B7
3B8
3B9
3BA
3BB
3BC
3BD
3BE
3BF
3C0
3C1
3C2
3C3
3C4
3C5
3C6
3C7
3C8
3C9
3CA
3CB
3CC
350
23CD
23CE
23CF
23D0
23D1
23D2
23D3
23D4
23D5
23D6
23D7
23D8
23D9
23DA
23DB
23DC
23DD
23DE
23DF
23E0
23E1
23E2
23E3
23E4
23E5
23E6
23E7
23E8
23E9
23EA
23EB
23EC
23ED
23EE
23EF
23F0
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
3CD
3CE
3CF
3D0
3D1
3D2
3D3
3D4
3D5
3D6
3D7
3D8
3D9
3DA
3DB
3DC
3DD
3DE
3DF
3E0
3E1
3E2
3E3
3E4
3E5
3E6
3E7
3E8
3E9
3EA
3EB
3EC
3ED
3EE
3EF
3F0
23F1
23F2
23F3
23F4
23F5
23F6
23F7
23F8
23F9
23FA
23FB
23FC
23FD
23FE
23FF
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
280A
280B
280C
280D
280E
280F
2810
2811
2812
2813
2814
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
3F1
3F2
3F3
3F4
3F5
3F6
3F7
3F8
3F9
3FA
3FB
3FC
3FD
3FE
3FF
000
001
002
003
004
005
006
007
008
009
00A
00B
00C
00D
00E
00F
010
011
012
013
014
351
2815
2816
2817
2818
2819
281A
281B
281C
281D
281E
281F
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
282A
282B
282C
282D
282E
282F
2830
2831
2832
2833
2834
2835
2836
2837
2838
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
015
016
017
018
019
01A
01B
01C
01D
01E
01F
020
021
022
023
024
025
026
027
028
029
02A
02B
02C
02D
02E
02F
030
031
032
033
034
035
036
037
038
2839
283A
283B
283C
283D
283E
283F
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
284A
284B
284C
284D
284E
284F
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
285A
285B
285C
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
039
03A
03B
03C
03D
03E
03F
040
041
042
043
044
045
046
047
048
049
04A
04B
04C
04D
04E
04F
050
051
052
053
054
055
056
057
058
059
05A
05B
05C
352
285D
285E
285F
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
286A
286B
286C
286D
286E
286F
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
287A
287B
287C
287D
287E
287F
2880
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
05D
05E
05F
060
061
062
063
064
065
066
067
068
069
06A
06B
06C
06D
06E
06F
070
071
072
073
074
075
076
077
078
079
07A
07B
07C
07D
07E
07F
080
2881
2882
2883
2884
2885
2886
2887
2888
2889
288A
288B
288C
288D
288E
288F
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
289A
289B
289C
289D
289E
289F
28A0
28A1
28A2
28A3
28A4
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
081
082
083
084
085
086
087
088
089
08A
08B
08C
08D
08E
08F
090
091
092
093
094
095
096
097
098
099
09A
09B
09C
09D
09E
09F
0A0
0A1
0A2
0A3
0A4
353
28A5
28A6
28A7
28A8
28A9
28AA
28AB
28AC
28AD
28AE
28AF
28B0
28B1
28B2
28B3
28B4
28B5
28B6
28B7
28B8
28B9
28BA
28BB
28BC
28BD
28BE
28BF
28C0
28C1
28C2
28C3
28C4
28C5
28C6
28C7
28C8
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
0A5
0A6
0A7
0A8
0A9
0AA
0AB
0AC
0AD
0AE
0AF
0B0
0B1
0B2
0B3
0B4
0B5
0B6
0B7
0B8
0B9
0BA
0BB
0BC
0BD
0BE
0BF
0C0
0C1
0C2
0C3
0C4
0C5
0C6
0C7
0C8
28C9
28CA
28CB
28CC
28CD
28CE
28CF
28D0
28D1
28D2
28D3
28D4
28D5
28D6
28D7
28D8
28D9
28DA
28DB
28DC
28DD
28DE
28DF
28E0
28E1
28E2
28E3
28E4
28E5
28E6
28E7
28E8
28E9
28EA
28EB
28EC
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
0C9
0CA
0CB
0CC
0CD
0CE
0CF
0D0
0D1
0D2
0D3
0D4
0D5
0D6
0D7
0D8
0D9
0DA
0DB
0DC
0DD
0DE
0DF
0E0
0E1
0E2
0E3
0E4
0E5
0E6
0E7
0E8
0E9
0EA
0EB
0EC
354
28ED
28EE
28EF
28F0
28F1
28F2
28F3
28F4
28F5
28F6
28F7
28F8
28F9
28FA
28FB
28FC
28FD
28FE
28FF
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
290A
290B
290C
290D
290E
290F
2910
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
0ED
0EE
0EF
0F0
0F1
0F2
0F3
0F4
0F5
0F6
0F7
0F8
0F9
0FA
0FB
0FC
0FD
0FE
0FF
100
101
102
103
104
105
106
107
108
109
10A
10B
10C
10D
10E
10F
110
2911
2912
2913
2914
2915
2916
2917
2918
2919
291A
291B
291C
291D
291E
291F
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
292A
292B
292C
292D
292E
292F
2930
2931
2932
2933
2934
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
111
112
113
114
115
116
117
118
119
11A
11B
11C
11D
11E
11F
120
121
122
123
124
125
126
127
128
129
12A
12B
12C
12D
12E
12F
130
131
132
133
134
355
2935
2936
2937
2938
2939
293A
293B
293C
293D
293E
293F
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
294A
294B
294C
294D
294E
294F
2950
2951
2952
2953
2954
2955
2956
2957
2958
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
135
136
137
138
139
13A
13B
13C
13D
13E
13F
140
141
142
143
144
145
146
147
148
149
14A
14B
14C
14D
14E
14F
150
151
152
153
154
155
156
157
158
2959
295A
295B
295C
295D
295E
295F
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
296A
296B
296C
296D
296E
296F
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
297A
297B
297C
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
159
15A
15B
15C
15D
15E
15F
160
161
162
163
164
165
166
167
168
169
16A
16B
16C
16D
16E
16F
170
171
172
173
174
175
176
177
178
179
17A
17B
17C
356
297D
297E
297F
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
298A
298B
298C
298D
298E
298F
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
299A
299B
299C
299D
299E
299F
29A0
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
17D
17E
17F
180
181
182
183
184
185
186
187
188
189
18A
18B
18C
18D
18E
18F
190
191
192
193
194
195
196
197
198
199
19A
19B
19C
19D
19E
19F
1A0
29A1
29A2
29A3
29A4
29A5
29A6
29A7
29A8
29A9
29AA
29AB
29AC
29AD
29AE
29AF
29B0
29B1
29B2
29B3
29B4
29B5
29B6
29B7
29B8
29B9
29BA
29BB
29BC
29BD
29BE
29BF
29C0
29C1
29C2
29C3
29C4
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
1A1
1A2
1A3
1A4
1A5
1A6
1A7
1A8
1A9
1AA
1AB
1AC
1AD
1AE
1AF
1B0
1B1
1B2
1B3
1B4
1B5
1B6
1B7
1B8
1B9
1BA
1BB
1BC
1BD
1BE
1BF
1C0
1C1
1C2
1C3
1C4
357
29C5
29C6
29C7
29C8
29C9
29CA
29CB
29CC
29CD
29CE
29CF
29D0
29D1
29D2
29D3
29D4
29D5
29D6
29D7
29D8
29D9
29DA
29DB
29DC
29DD
29DE
29DF
29E0
29E1
29E2
29E3
29E4
29E5
29E6
29E7
29E8
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
1C5
1C6
1C7
1C8
1C9
1CA
1CB
1CC
1CD
1CE
1CF
1D0
1D1
1D2
1D3
1D4
1D5
1D6
1D7
1D8
1D9
1DA
1DB
1DC
1DD
1DE
1DF
1E0
1E1
1E2
1E3
1E4
1E5
1E6
1E7
1E8
29E9
29EA
29EB
29EC
29ED
29EE
29EF
29F0
29F1
29F2
29F3
29F4
29F5
29F6
29F7
29F8
29F9
29FA
29FB
29FC
29FD
29FE
29FF
2A00
2A01
2A02
2A03
2A04
2A05
2A06
2A07
2A08
2A09
2A0A
2A0B
2A0C
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
1E9
1EA
1EB
1EC
1ED
1EE
1EF
1F0
1F1
1F2
1F3
1F4
1F5
1F6
1F7
1F8
1F9
1FA
1FB
1FC
1FD
1FE
1FF
200
201
202
203
204
205
206
207
208
209
20A
20B
20C
358
2A0D
2A0E
2A0F
2A10
2A11
2A12
2A13
2A14
2A15
2A16
2A17
2A18
2A19
2A1A
2A1B
2A1C
2A1D
2A1E
2A1F
2A20
2A21
2A22
2A23
2A24
2A25
2A26
2A27
2A28
2A29
2A2A
2A2B
2A2C
2A2D
2A2E
2A2F
2A30
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
20D
20E
20F
210
211
212
213
214
215
216
217
218
219
21A
21B
21C
21D
21E
21F
220
221
222
223
224
225
226
227
228
229
22A
22B
22C
22D
22E
22F
230
2A31
2A32
2A33
2A34
2A35
2A36
2A37
2A38
2A39
2A3A
2A3B
2A3C
2A3D
2A3E
2A3F
2A40
2A41
2A42
2A43
2A44
2A45
2A46
2A47
2A48
2A49
2A4A
2A4B
2A4C
2A4D
2A4E
2A4F
2A50
2A51
2A52
2A53
2A54
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
231
232
233
234
235
236
237
238
239
23A
23B
23C
23D
23E
23F
240
241
242
243
244
245
246
247
248
249
24A
24B
24C
24D
24E
24F
250
251
252
253
254
359
2A55
2A56
2A57
2A58
2A59
2A5A
2A5B
2A5C
2A5D
2A5E
2A5F
2A60
2A61
2A62
2A63
2A64
2A65
2A66
2A67
2A68
2A69
2A6A
2A6B
2A6C
2A6D
2A6E
2A6F
2A70
2A71
2A72
2A73
2A74
2A75
2A76
2A77
2A78
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
255
256
257
258
259
25A
25B
25C
25D
25E
25F
260
261
262
263
264
265
266
267
268
269
26A
26B
26C
26D
26E
26F
270
271
272
273
274
275
276
277
278
2A79
2A7A
2A7B
2A7C
2A7D
2A7E
2A7F
2A80
2A81
2A82
2A83
2A84
2A85
2A86
2A87
2A88
2A89
2A8A
2A8B
2A8C
2A8D
2A8E
2A8F
2A90
2A91
2A92
2A93
2A94
2A95
2A96
2A97
2A98
2A99
2A9A
2A9B
2A9C
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
279
27A
27B
27C
27D
27E
27F
280
281
282
283
284
285
286
287
288
289
28A
28B
28C
28D
28E
28F
290
291
292
293
294
295
296
297
298
299
29A
29B
29C
360
2A9D
2A9E
2A9F
2AA0
2AA1
2AA2
2AA3
2AA4
2AA5
2AA6
2AA7
2AA8
2AA9
2AAA
2AAB
2AAC
2AAD
2AAE
2AAF
2AB0
2AB1
2AB2
2AB3
2AB4
2AB5
2AB6
2AB7
2AB8
2AB9
2ABA
2ABB
2ABC
2ABD
2ABE
2ABF
2AC0
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
29D
29E
29F
2A0
2A1
2A2
2A3
2A4
2A5
2A6
2A7
2A8
2A9
2AA
2AB
2AC
2AD
2AE
2AF
2B0
2B1
2B2
2B3
2B4
2B5
2B6
2B7
2B8
2B9
2BA
2BB
2BC
2BD
2BE
2BF
2C0
2AC1
2AC2
2AC3
2AC4
2AC5
2AC6
2AC7
2AC8
2AC9
2ACA
2ACB
2ACC
2ACD
2ACE
2ACF
2AD0
2AD1
2AD2
2AD3
2AD4
2AD5
2AD6
2AD7
2AD8
2AD9
2ADA
2ADB
2ADC
2ADD
2ADE
2ADF
2AE0
2AE1
2AE2
2AE3
2AE4
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
2C1
2C2
2C3
2C4
2C5
2C6
2C7
2C8
2C9
2CA
2CB
2CC
2CD
2CE
2CF
2D0
2D1
2D2
2D3
2D4
2D5
2D6
2D7
2D8
2D9
2DA
2DB
2DC
2DD
2DE
2DF
2E0
2E1
2E2
2E3
2E4
361
2AE5
2AE6
2AE7
2AE8
2AE9
2AEA
2AEB
2AEC
2AED
2AEE
2AEF
2AF0
2AF1
2AF2
2AF3
2AF4
2AF5
2AF6
2AF7
2AF8
2AF9
2AFA
2AFB
2AFC
2AFD
2AFE
2AFF
2B00
2B01
2B02
2B03
2B04
2B05
2B06
2B07
2B08
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
2E5
2E6
2E7
2E8
2E9
2EA
2EB
2EC
2ED
2EE
2EF
2F0
2F1
2F2
2F3
2F4
2F5
2F6
2F7
2F8
2F9
2FA
2FB
2FC
2FD
2FE
2FF
300
301
302
303
304
305
306
307
308
2B09
2B0A
2B0B
2B0C
2B0D
2B0E
2B0F
2B10
2B11
2B12
2B13
2B14
2B15
2B16
2B17
2B18
2B19
2B1A
2B1B
2B1C
2B1D
2B1E
2B1F
2B20
2B21
2B22
2B23
2B24
2B25
2B26
2B27
2B28
2B29
2B2A
2B2B
2B2C
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
309
30A
30B
30C
30D
30E
30F
310
311
312
313
314
315
316
317
318
319
31A
31B
31C
31D
31E
31F
320
321
322
323
324
325
326
327
328
329
32A
32B
32C
362
2B2D
2B2E
2B2F
2B30
2B31
2B32
2B33
2B34
2B35
2B36
2B37
2B38
2B39
2B3A
2B3B
2B3C
2B3D
2B3E
2B3F
2B40
2B41
2B42
2B43
2B44
2B45
2B46
2B47
2B48
2B49
2B4A
2B4B
2B4C
2B4D
2B4E
2B4F
2B50
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
32D
32E
32F
330
331
332
333
334
335
336
337
338
339
33A
33B
33C
33D
33E
33F
340
341
342
343
344
345
346
347
348
349
34A
34B
34C
34D
34E
34F
350
2B51
2B52
2B53
2B54
2B55
2B56
2B57
2B58
2B59
2B5A
2B5B
2B5C
2B5D
2B5E
2B5F
2B60
2B61
2B62
2B63
2B64
2B65
2B66
2B67
2B68
2B69
2B6A
2B6B
2B6C
2B6D
2B6E
2B6F
2B70
2B71
2B72
2B73
2B74
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
351
352
353
354
355
356
357
358
359
35A
35B
35C
35D
35E
35F
360
361
362
363
364
365
366
367
368
369
36A
36B
36C
36D
36E
36F
370
371
372
373
374
363
2B75
2B76
2B77
2B78
2B79
2B7A
2B7B
2B7C
2B7D
2B7E
2B7F
2B80
2B81
2B82
2B83
2B84
2B85
2B86
2B87
2B88
2B89
2B8A
2B8B
2B8C
2B8D
2B8E
2B8F
2B90
2B91
2B92
2B93
2B94
2B95
2B96
2B97
2B98
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
375
376
377
378
379
37A
37B
37C
37D
37E
37F
380
381
382
383
384
385
386
387
388
389
38A
38B
38C
38D
38E
38F
390
391
392
393
394
395
396
397
398
2B99
2B9A
2B9B
2B9C
2B9D
2B9E
2B9F
2BA0
2BA1
2BA2
2BA3
2BA4
2BA5
2BA6
2BA7
2BA8
2BA9
2BAA
2BAB
2BAC
2BAD
2BAE
2BAF
2BB0
2BB1
2BB2
2BB3
2BB4
2BB5
2BB6
2BB7
2BB8
2BB9
2BBA
2BBB
2BBC
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
399
39A
39B
39C
39D
39E
39F
3A0
3A1
3A2
3A3
3A4
3A5
3A6
3A7
3A8
3A9
3AA
3AB
3AC
3AD
3AE
3AF
3B0
3B1
3B2
3B3
3B4
3B5
3B6
3B7
3B8
3B9
3BA
3BB
3BC
364
2BBD
2BBE
2BBF
2BC0
2BC1
2BC2
2BC3
2BC4
2BC5
2BC6
2BC7
2BC8
2BC9
2BCA
2BCB
2BCC
2BCD
2BCE
2BCF
2BD0
2BD1
2BD2
2BD3
2BD4
2BD5
2BD6
2BD7
2BD8
2BD9
2BDA
2BDB
2BDC
2BDD
2BDE
2BDF
2BE0
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
3BD
3BE
3BF
3C0
3C1
3C2
3C3
3C4
3C5
3C6
3C7
3C8
3C9
3CA
3CB
3CC
3CD
3CE
3CF
3D0
3D1
3D2
3D3
3D4
3D5
3D6
3D7
3D8
3D9
3DA
3DB
3DC
3DD
3DE
3DF
3E0
2BE1
2BE2
2BE3
2BE4
2BE5
2BE6
2BE7
2BE8
2BE9
2BEA
2BEB
2BEC
2BED
2BEE
2BEF
2BF0
2BF1
2BF2
2BF3
2BF4
2BF5
2BF6
2BF7
2BF8
2BF9
2BFA
2BFB
2BFC
2BFD
2BFE
2BFF
3000
3001
3002
3003
3004
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
3E1
3E2
3E3
3E4
3E5
3E6
3E7
3E8
3E9
3EA
3EB
3EC
3ED
3EE
3EF
3F0
3F1
3F2
3F3
3F4
3F5
3F6
3F7
3F8
3F9
3FA
3FB
3FC
3FD
3FE
3FF
00
01
02
03
04
365
3005
3006
3007
3008
3009
300A
300B
300C
300D
300E
300F
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
301A
301B
301C
301D
301E
301F
3020
3021
3022
3023
3024
3025
3026
3027
3028
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
3029
302A
302B
302C
302D
302E
302F
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
303A
303B
303C
303D
303E
303F
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
304A
304B
304C
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
366
304D
304E
304F
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
305A
305B
305C
305D
305E
305F
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
306A
306B
306C
306D
306E
306F
3070
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
3071
3072
3073
3074
3075
3076
3077
3078
3079
307A
307B
307C
307D
307E
307F
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
308A
308B
308C
308D
308E
308F
3090
3091
3092
3093
3094
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
367
3095
3096
3097
3098
3099
309A
309B
309C
309D
309E
309F
30A0
30A1
30A2
30A3
30A4
30A5
30A6
30A7
30A8
30A9
30AA
30AB
30AC
30AD
30AE
30AF
30B0
30B1
30B2
30B3
30B4
30B5
30B6
30B7
30B8
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
30B9
30BA
30BB
30BC
30BD
30BE
30BF
30C0
30C1
30C2
30C3
30C4
30C5
30C6
30C7
30C8
30C9
30CA
30CB
30CC
30CD
30CE
30CF
30D0
30D1
30D2
30D3
30D4
30D5
30D6
30D7
30D8
30D9
30DA
30DB
30DC
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
B9
BA
BB
BC
BD
BE
BF
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
368
30DD
30DE
30DF
30E0
30E1
30E2
30E3
30E4
30E5
30E6
30E7
30E8
30E9
30EA
30EB
30EC
30ED
30EE
30EF
30F0
30F1
30F2
30F3
30F4
30F5
30F6
30F7
30F8
30F9
30FA
30FB
30FC
30FD
30FE
30FF
3400
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
MOVLW
RETLW
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
00
3401
3402
3403
3404
3405
3406
3407
3408
3409
340A
340B
340C
340D
340E
340F
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
341A
341B
341C
341D
341E
341F
3420
3421
3422
3423
3424
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
369
3425
3426
3427
3428
3429
342A
342B
342C
342D
342E
342F
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
343A
343B
343C
343D
343E
343F
3440
3441
3442
3443
3444
3445
3446
3447
3448
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
3449
344A
344B
344C
344D
344E
344F
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
345A
345B
345C
345D
345E
345F
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
346A
346B
346C
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
370
346D
346E
346F
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
347A
347B
347C
347D
347E
347F
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
348A
348B
348C
348D
348E
348F
3490
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
3491
3492
3493
3494
3495
3496
3497
3498
3499
349A
349B
349C
349D
349E
349F
34A0
34A1
34A2
34A3
34A4
34A5
34A6
34A7
34A8
34A9
34AA
34AB
34AC
34AD
34AE
34AF
34B0
34B1
34B2
34B3
34B4
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
371
34B5
34B6
34B7
34B8
34B9
34BA
34BB
34BC
34BD
34BE
34BF
34C0
34C1
34C2
34C3
34C4
34C5
34C6
34C7
34C8
34C9
34CA
34CB
34CC
34CD
34CE
34CF
34D0
34D1
34D2
34D3
34D4
34D5
34D6
34D7
34D8
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
34D9
34DA
34DB
34DC
34DD
34DE
34DF
34E0
34E1
34E2
34E3
34E4
34E5
34E6
34E7
34E8
34E9
34EA
34EB
34EC
34ED
34EE
34EF
34F0
34F1
34F2
34F3
34F4
34F5
34F6
34F7
34F8
34F9
34FA
34FB
34FC
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
D9
DA
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
372
34FD
34FE
34FF
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
380A
380B
380C
380D
380E
380F
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
381A
381B
381C
381D
381E
381F
3820
RETLW
RETLW
RETLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
FD
FE
FF
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
3821
3822
3823
3824
3825
3826
3827
3828
3829
382A
382B
382C
382D
382E
382F
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
383A
383B
383C
383D
383E
383F
3840
3841
3842
3843
3844
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
373
3845
3846
3847
3848
3849
384A
384B
384C
384D
384E
384F
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
385A
385B
385C
385D
385E
385F
3860
3861
3862
3863
3864
3865
3866
3867
3868
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
3869
386A
386B
386C
386D
386E
386F
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
387A
387B
387C
387D
387E
387F
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
388A
388B
388C
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
374
388D
388E
388F
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
389A
389B
389C
389D
389E
389F
38A0
38A1
38A2
38A3
38A4
38A5
38A6
38A7
38A8
38A9
38AA
38AB
38AC
38AD
38AE
38AF
38B0
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
B0
38B1
38B2
38B3
38B4
38B5
38B6
38B7
38B8
38B9
38BA
38BB
38BC
38BD
38BE
38BF
38C0
38C1
38C2
38C3
38C4
38C5
38C6
38C7
38C8
38C9
38CA
38CB
38CC
38CD
38CE
38CF
38D0
38D1
38D2
38D3
38D4
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D0
D1
D2
D3
D4
375
38D5
38D6
38D7
38D8
38D9
38DA
38DB
38DC
38DD
38DE
38DF
38E0
38E1
38E2
38E3
38E4
38E5
38E6
38E7
38E8
38E9
38EA
38EB
38EC
38ED
38EE
38EF
38F0
38F1
38F2
38F3
38F4
38F5
38F6
38F7
38F8
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
38F9
38FA
38FB
38FC
38FD
38FE
38FF
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
390A
390B
390C
390D
390E
390F
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
391A
391B
391C
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
IORLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
F9
FA
FB
FC
FD
FE
FF
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
376
391D
391E
391F
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
392A
392B
392C
392D
392E
392F
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
393A
393B
393C
393D
393E
393F
3940
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
3941
3942
3943
3944
3945
3946
3947
3948
3949
394A
394B
394C
394D
394E
394F
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
395A
395B
395C
395D
395E
395F
3960
3961
3962
3963
3964
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
377
3965
3966
3967
3968
3969
396A
396B
396C
396D
396E
396F
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
397A
397B
397C
397D
397E
397F
3980
3981
3982
3983
3984
3985
3986
3987
3988
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
80
81
82
83
84
85
86
87
88
3989
398A
398B
398C
398D
398E
398F
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
399A
399B
399C
399D
399E
399F
39A0
39A1
39A2
39A3
39A4
39A5
39A6
39A7
39A8
39A9
39AA
39AB
39AC
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
378
39AD
39AE
39AF
39B0
39B1
39B2
39B3
39B4
39B5
39B6
39B7
39B8
39B9
39BA
39BB
39BC
39BD
39BE
39BF
39C0
39C1
39C2
39C3
39C4
39C5
39C6
39C7
39C8
39C9
39CA
39CB
39CC
39CD
39CE
39CF
39D0
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D0
39D1
39D2
39D3
39D4
39D5
39D6
39D7
39D8
39D9
39DA
39DB
39DC
39DD
39DE
39DF
39E0
39E1
39E2
39E3
39E4
39E5
39E6
39E7
39E8
39E9
39EA
39EB
39EC
39ED
39EE
39EF
39F0
39F1
39F2
39F3
39F4
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
379
39F5
39F6
39F7
39F8
39F9
39FA
39FB
39FC
39FD
39FE
39FF
3A00
3A01
3A02
3A03
3A04
3A05
3A06
3A07
3A08
3A09
3A0A
3A0B
3A0C
3A0D
3A0E
3A0F
3A10
3A11
3A12
3A13
3A14
3A15
3A16
3A17
3A18
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
ANDLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
3A19
3A1A
3A1B
3A1C
3A1D
3A1E
3A1F
3A20
3A21
3A22
3A23
3A24
3A25
3A26
3A27
3A28
3A29
3A2A
3A2B
3A2C
3A2D
3A2E
3A2F
3A30
3A31
3A32
3A33
3A34
3A35
3A36
3A37
3A38
3A39
3A3A
3A3B
3A3C
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
380
3A3D
3A3E
3A3F
3A40
3A41
3A42
3A43
3A44
3A45
3A46
3A47
3A48
3A49
3A4A
3A4B
3A4C
3A4D
3A4E
3A4F
3A50
3A51
3A52
3A53
3A54
3A55
3A56
3A57
3A58
3A59
3A5A
3A5B
3A5C
3A5D
3A5E
3A5F
3A60
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
3A61
3A62
3A63
3A64
3A65
3A66
3A67
3A68
3A69
3A6A
3A6B
3A6C
3A6D
3A6E
3A6F
3A70
3A71
3A72
3A73
3A74
3A75
3A76
3A77
3A78
3A79
3A7A
3A7B
3A7C
3A7D
3A7E
3A7F
3A80
3A81
3A82
3A83
3A84
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
80
81
82
83
84
381
3A85
3A86
3A87
3A88
3A89
3A8A
3A8B
3A8C
3A8D
3A8E
3A8F
3A90
3A91
3A92
3A93
3A94
3A95
3A96
3A97
3A98
3A99
3A9A
3A9B
3A9C
3A9D
3A9E
3A9F
3AA0
3AA1
3AA2
3AA3
3AA4
3AA5
3AA6
3AA7
3AA8
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
A5
A6
A7
A8
3AA9
3AAA
3AAB
3AAC
3AAD
3AAE
3AAF
3AB0
3AB1
3AB2
3AB3
3AB4
3AB5
3AB6
3AB7
3AB8
3AB9
3ABA
3ABB
3ABC
3ABD
3ABE
3ABF
3AC0
3AC1
3AC2
3AC3
3AC4
3AC5
3AC6
3AC7
3AC8
3AC9
3ACA
3ACB
3ACC
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
382
3ACD
3ACE
3ACF
3AD0
3AD1
3AD2
3AD3
3AD4
3AD5
3AD6
3AD7
3AD8
3AD9
3ADA
3ADB
3ADC
3ADD
3ADE
3ADF
3AE0
3AE1
3AE2
3AE3
3AE4
3AE5
3AE6
3AE7
3AE8
3AE9
3AEA
3AEB
3AEC
3AED
3AEE
3AEF
3AF0
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
3AF1
3AF2
3AF3
3AF4
3AF5
3AF6
3AF7
3AF8
3AF9
3AFA
3AFB
3AFC
3AFD
3AFE
3AFF
3C00
3C01
3C02
3C03
3C04
3C05
3C06
3C07
3C08
3C09
3C0A
3C0B
3C0C
3C0D
3C0E
3C0F
3C10
3C11
3C12
3C13
3C14
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
XORLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
383
3C15
3C16
3C17
3C18
3C19
3C1A
3C1B
3C1C
3C1D
3C1E
3C1F
3C20
3C21
3C22
3C23
3C24
3C25
3C26
3C27
3C28
3C29
3C2A
3C2B
3C2C
3C2D
3C2E
3C2F
3C30
3C31
3C32
3C33
3C34
3C35
3C36
3C37
3C38
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
3C39
3C3A
3C3B
3C3C
3C3D
3C3E
3C3F
3C40
3C41
3C42
3C43
3C44
3C45
3C46
3C47
3C48
3C49
3C4A
3C4B
3C4C
3C4D
3C4E
3C4F
3C50
3C51
3C52
3C53
3C54
3C55
3C56
3C57
3C58
3C59
3C5A
3C5B
3C5C
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
384
3C5D
3C5E
3C5F
3C60
3C61
3C62
3C63
3C64
3C65
3C66
3C67
3C68
3C69
3C6A
3C6B
3C6C
3C6D
3C6E
3C6F
3C70
3C71
3C72
3C73
3C74
3C75
3C76
3C77
3C78
3C79
3C7A
3C7B
3C7C
3C7D
3C7E
3C7F
3C80
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
80
3C81
3C82
3C83
3C84
3C85
3C86
3C87
3C88
3C89
3C8A
3C8B
3C8C
3C8D
3C8E
3C8F
3C90
3C91
3C92
3C93
3C94
3C95
3C96
3C97
3C98
3C99
3C9A
3C9B
3C9C
3C9D
3C9E
3C9F
3CA0
3CA1
3CA2
3CA3
3CA4
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
385
3CA5
3CA6
3CA7
3CA8
3CA9
3CAA
3CAB
3CAC
3CAD
3CAE
3CAF
3CA0
3CB1
3CB2
3CB3
3CB4
3CB5
3CB6
3CB7
3CB8
3CB9
3CBA
3CBB
3CBC
3CBD
3CBE
3CBF
3CC0
3CC1
3CC2
3CC3
3CC4
3CC5
3CC6
3CC7
3CC8
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
C0
C1
C2
C3
C4
C5
C6
C7
C8
3CC9
3CCA
3CCB
3CCC
3CCD
3CCE
3CCF
3CD0
3CD1
3CD2
3CD3
3CD4
3CD5
3CD6
3CD7
3CD8
3CD9
3CDA
3CDB
3CDC
3CDD
3CDE
3CDF
3CE0
3CE1
3CE2
3CE3
3CE4
3CE5
3CE6
3CE7
3CE8
3CE9
3CEA
3CEB
3CEC
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
C9
CA
CB
CC
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
386
3CED
3CEE
3CEF
3CF0
3CF1
3CF2
3CF3
3CF4
3CF5
3CF6
3CF7
3CF8
3CF9
3CFA
3CFB
3CFC
3CFD
3CFE
3CFF
3E00
3E01
3E02
3E03
3E04
3E05
3E06
3E07
3E08
3E09
3E0A
3E0B
3E0C
3E0D
3E0E
3E0F
3E10
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
SUBLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
3E11
3E12
3E13
3E14
3E15
3E16
3E17
3E18
3E19
3E1A
3E1B
3E1C
3E1D
3E1E
3E1F
3E20
3E21
3E22
3E23
3E24
3E25
3E26
3E27
3E28
3E29
3E2A
3E2B
3E2C
3E2D
3E2E
3E2F
3E30
3E31
3E32
3E33
3E34
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
387
3E35
3E36
3E37
3E38
3E39
3E3A
3E3B
3E3C
3E3D
3E3E
3E3F
3E40
3E41
3E42
3E43
3E44
3E45
3E46
3E47
3E48
3E49
3E4A
3E4B
3E4C
3E4D
3E4E
3E4F
3E50
3E51
3E52
3E53
3E54
3E55
3E56
3E57
3E58
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
3E59
3E5A
3E5B
3E5C
3E5D
3E5E
3E5F
3E60
3E61
3E62
3E63
3E64
3E65
3E66
3E67
3E68
3E69
3E6A
3E6B
3E6C
3E6D
3E6E
3E6F
3E70
3E71
3E72
3E73
3E74
3E75
3E76
3E77
3E78
3E79
3E7A
3E7B
3E7C
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
388
3E7D
3E7E
3E7F
3E80
3E81
3E82
3E83
3E84
3E85
3E86
3E87
3E88
3E89
3E8A
3E8B
3E8C
3E8D
3E8E
3E8F
3E90
3E91
3E92
3E93
3E94
3E95
3E96
3E97
3E98
3E99
3E9A
3E9B
3E9C
3E9D
3E9E
3E9F
3EA0
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
7D
7E
7F
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
3EA1
3EA2
3EA3
3EA4
3EA5
3EA6
3EA7
3EA8
3EA9
3EAA
3EAB
3EAC
3EAD
3EAE
3EAF
3EB0
3EB1
3EB2
3EB3
3EB4
3EB5
3EB6
3EB7
3EB8
3EB9
3EBA
3EBB
3EBC
3EBD
3EBE
3EBF
3EC0
3EC1
3EC2
3EC3
3EC4
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
C0
C1
C2
C3
C4
389
3EC5
3EC6
3EC7
3EC8
3EC9
3ECA
3ECB
3ECC
3ECD
3ECE
3ECF
3ED0
3ED1
3ED2
3ED3
3ED4
3ED5
3ED6
3ED7
3ED8
3ED9
3EDA
3EDB
3EDC
3EDD
3EDE
3EDF
3EE0
3EE1
3EE2
3EE3
3EE4
3EE5
3EE6
3EE7
3EE8
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
3EE9
3EEA
3EEB
3EEC
3EED
3EEE
3EEF
3EF0
3EF1
3EF2
3EF3
3EF4
3EF5
3EF6
3EF7
3EF8
3EF9
3EFA
3EFB
3EFC
3EFD
3EFE
3EFF
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
ADDLW
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
390
LEXIQUE
391
Adresse
Prenez une longue rue, avec une infinit de maisons toutes pareilles.
Ce qui les diffrencie est le numro figurant au-dessus de chaque porte
(ladresse).
De mme, dans un systme mmoires, chaque emplacement (que dans les
C PIC on appelle registre ou ile) est rang lun ct de lautre.
Ce qui les diffrencie est le numro de la position quils occupent dans
lespace mmoire dans lequel ils sont rangs.
Ce numro de position sappelle adresse.
Assemblage
Aprs avoir crit un programme source, il faut lassembler.
Lassemblage est une tape importante dans la phase de dveloppement
dun programme.
La tche de lassembleur est de traduire le programme source en langage
machine (programme objet), de construire la table des symboles utilise par
le programme, dindiquer les ventuelles erreurs et de les compter.
Directives dassemblage
Les directives dassemblage sont des instructions que lon donne
exclusivement lassembleur. Elles ne sont pas traduites en langage
machine.
Les directives dassemblage permettent entre autres :
392
- laffectation de symboles et dtiquettes des valeurs
numriques (EQU...)
- la gestion de la mmoire et limplantation du programme
objet (ORG...)
- la dfinition de constantes et de textes cods en ASCII
- de dfinir la partie du programme assembler et les programmes
quil convient dinclure dans la phase dassemblage (INCLUDE,
END...)
Lassemblage termin, les directives dassemblage ne jouent plus aucun
rle.
Digit Carry
Le Digit Carry est lun des flags du registre dtat.
Cest lindicateur que lon appelle retenue auxiliaire, ou retenue
intermdiaire ; cest dire le dbordement du quartet de poids faible dun
octet sur son quartet de poids fort.
Par exemple, soit additionner 9 + 9 (dcimal), soit :
Quartets de Quartets de
poids fort poids faible
0000 1001
+ 0000 1001
_________________
= 0001 0010
393
Include
Cette instruction inclut un fichier source dans un programme pour que
celui-ci sy ajoute.
Cela revient copier son contenu dans un listing, sans quil soit ncessaire
de rcrire une une toutes les instructions qui le composent.
Exemple : INCLUDE P16F84.INC
On peut inclure un ou plusieurs fichiers, en faisant chaque fois appel
linstruction INCLUDE.
INCLUDE est une instruction qui sadresse lassembleur ou au
compilateur.
Leffet produit par linstruction INCLUDE est exactement le mme que
celui quon obtiendrait si lon crivait lendroit o celle-ci figure dans le
programme toutes les lignes du fichier insr.
Les instructions INCLUDE peuvent tre imbriques jusqu 6 niveaux.
Le nom du fichier peut tre crit de deux faons :
394
- soit prcd par le signe < et termin par le signe >
- soit prcd par le signe et termin par le signe
Si le fichier inclure ne se trouve pas dans le mme environnement dans
lequel on se trouve, un chemin daccs doit lui tre expressment indiqu.
Lordre en est le suivant : nom du rpertoire, nom du dossier, nom du
fichier.
Interruption
Une interruption est un vnement externe, qui se produit un instant
alatoire, sans pravis, qui demande au C dabandonner ce quil est en
train de faire, et de diriger toute son attention ailleurs.
Autrement dit, une interruption est la possibilit dinterrompre tout
moment le droulement du programme principal, pour permettre au C de
prendre en compte un vnement dont la frquence est alatoire mais dont
limportance est plus grande que celle de la tche quil est occup traiter.
Ds lors, le C termine lexcution de linstruction quil a en cours,
mmorise ladresse suivante (pour y revenir ensuite), et se branche un
sous-programme (sous-programme dinterruption) pour effectuer des
oprations prioritaires.
Une fois que le sous-programme dinterruption a t trait, le
microcontrleur revient au programme principal.
Les interruptions peuvent tre masquables ou non masquables.
Si elles sont masquables, elles narrtent pas forcment le C.
Cest le programmeur qui examine leur importance et qui dcide.
Si plusieurs interruptions peuvent surgir en mme temps, cest le
programmeur qui leur affecte un degr de priorit, et juge sur ce que le
processeur doit faire.
Par contre, les interruptions non masquables arrtent le processeur sans
conditions.
395
Pile (Stack)
La pile (Stack) est une zone de la mmoire RAM dans laquelle sont
mmorises les adresses de retour chaque fois quon fait appel une
instruction CALL, cest dire chaque fois que le programme arrte
lexcution squentielle des instructions et se dbranche pour aller excuter
les instructions contenues dans un sous-programme.
La pile du C 16F84 peut mmoriser jusqu 8 adresses.
En fait, tout en disposant dun bus interne de 13 lignes et pouvant, par
consquent, adresser jusqu' 1 1111 1111 1111 (1FFF)
la pile du 16F84 est bride
11 1111 1111 ( 3FF)
du fait que ce modle de microcontrleur est limit 1K de mmoire.
Comme la pile ne possde que 8 emplacements, il est vident quon peut
imbriquer jusqu 8 appels sous-programme, en sachant que
malheureusement il n'existe aucun flag avertissant que la pile est pleine.
Do la ncessit de la surveiller, au risque de constater de drles
danomalies, car ces 8 cases mmoire sont disposes comme en anneau, de
telle sorte que si lon enregistrait un 9me appel sous-programme, la 9me
valeur dadresse prendrait la place de la premire, avec toutes les
consquences quon peut imaginer.
La pile est adresse par un compteur spcial appel Pointeur de Pile.
396
linstruction range juste aprs la prcdente, mais il se branche ailleurs,
aiguill par le PC qui, lui-mme, obit alors aux ordres de CALL et GOTO.
Du fait que le 16F84 possde une mmoire de programme de 1K
instructions, le PC (Program Counter) de ce C utilise un bus de 10 lignes
dont ltendue va de ladresse 000 jusqu ladresse 3FF (1.024 adresses
au total, dont les cinq premires rserves) :
11 1111 1111 (en binaire)
3
F
F
( en hexa )
NB : Bien que cela ne concerne pas le 16F84, il est bon de savoir
que le Program Counter de certains modles de PIC est organis en deux
bytes : lun fournissant la partie basse de ladresse, lautre fournissant la
partie haute.
Alors que les adresses de la partie basse sont disponibles en
permanence, celles de la partie haute sont fournies par le registre PCLATH
(Program Counter Latch).
Le vecteur de RESET
A la mise sous tension, avant dobir lune quelconque des instructions du
programmeur, le C obit une instruction pr-dfinie par son fabricant,
que personne ne peut ni supprimer ni modifier.
Cette instruction est linstruction RESET.
Elle oblige tout programme dmarrer obligatoirement partir de ladresse
000 .
En ce sens linstruction RESET est un vecteur : le C sy rend, dirig par
une force suprme (celle quexerce sur lui le programme rsident).
Un Reset peut avoir lieu :
1) en coupant lalimentation gnrale ;
2) en mettant la masse, mme fugitivement, la patte MCLR ;
3) en activant le timer du Watch Dog (chien de garde intgr).
397
398
Sommaire
Copyright...............................................................................
Ddicace...............................................................................
Avant-propos........................................................................
Du contrleur au microcontrleur........................................
Le microcontrleur 16F84...................................................
- Prsentation gnrale......................................................
- Brochage du PIC 16F84.................................................
- Le cortge des invariants................................................
- Pilotage par quartz..........................................................
- Pilotage par oscillateur RC........................................
Les Entres/Sorties..............................................................
Organisation de la mmoire du PIC 16F84.........................
Les registres spciaux..........................................................
- EEADR...........................................................................
- EECON1.........................................................................
- EECON2.........................................................................
- EEDATA........................................................................
- FSR File Select Register)...............................................
- INTCON (INTerrupt CONtrol)......................................
- OPTION..........................................................................
- PCL (Program Counter Low).........................................
- PCLATH Program Counter LATch High).....................
- PORTA-PORTB............................................................
- STATUS Registre dtat)..............................................
- TMR0 (Timer 0).............................................................
- TRISA-TRISB...............................................................
La Programmation...............................................................
- Diffrentes faons de programmer.................................
Avantages et inconvnients de la programmation en
langage ASSEMBLEUR................................................
Avantages et inconvnients de la programmation en
langage BASIC...............................................................
Les outils ncessaires pour programmer en
langage ASSEMBLEUR.................................................
Les outils ncessaires pour programmer en
langage BASIC...............................................................
Structure dun programme...................................................
Canevas dun programme....................................................
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
2
3
5
7
8
8
9
10
11
12
13
14
23
24
25
26
27
28
29
33
36
37
38
40
42
43
44
44
Page 45
Page 46
Page 47
Page 48
Page 49
Page 50
399
Programmation en langage ASSEMBLEUR.......................
Les instructions du 16F84....................................................
- Classement par lettre alphabtique.................................
- Classement par genre......................................................
- Classement par type.......................................................
- Classement par ordre croissant dencodage..................
- ADDLW........................................................................
- ADDWF........................................................................
- ANDLW........................................................................
- ANDWF........................................................................
- BCF...............................................................................
- BSF...............................................................................
- BTFSC.............................................................................
- BTFSS.............................................................................
- CALL..............................................................................
- CLRF..............................................................................
- CLRW.............................................................................
- CLRWDT.......................................................................
- COMF............................................................................
- DECF.............................................................................
- DECFSZ........................................................................
- GOTO............................................................................
- INCF..............................................................................
- INCFSZ.........................................................................
- IORLW..........................................................................
- IORWF..........................................................................
- MOVF........................................................ ...................
- MOVLW..................................................... ..................
- MOVWF...................................................... . ...............
- NOP.............................................................. ................
- OPTION..................................................... ..................
- RETFIE........................................................................
- RETLW.........................................................................
- RETURN.......................................................................
- RLF................................................................................
- RRF...............................................................................
- SLEEP...........................................................................
- SUBLW.........................................................................
- SUBWF.........................................................................
- SWAPF..........................................................................
- TRIS..............................................................................
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
51
52
54
56
58
60
61
62
64
66
68
70
72
74
76
78
79
80
81
83
84
86
87
88
90
92
94
96
97
98
99
100
101
102
103
105
107
108
109
110
111
400
- XORLW........................................................................
- XORWF........................................................................
Encodage des instructions..................................................
- Signification des lettres utilises pour
lencodage des instructions............................................
Exemples de programmes crits en langage
ASSEMBLEUR............................................................
- Programme 1................................................................
- Organigramme..................................................
- Fichier extension .asm...................................
- Fichier extension .hex....................................
- Programme 2................................................................
- Organigramme..................................................
- Fichier extension .asm...................................
- Fichier extension .hex....................................
- Programme 3...............................................................
- Organigramme..................................................
- Fichier extension .asm...................................
- Fichier extension .hex....................................
- Programme 4..................................................................
- Organigramme....................................................
- Fichier extension .asm.....................................
- Fichier extension .hex......................................
- Programme 5..................................................................
-Fichier extension .asm......................................
- Programme 6..................................................................
-Fichier extension .asm......................................
- Programme 7..................................................................
-Fichier extension .asm......................................
MPLAB...............................................................................
- Quest-ce que MPLAB..................................................
- Comment obtenir MPLAB............................................
- Caractristiques requises par le PC pour linstallation
de MPLAB....................................................................
- Comment installer MPLAB..........................................
- Comment dsinstaller MPLAB.....................................
- Comment dmarrer avec MPLAB................................
Premire tape : cration du projet.....................................
- Crer un projet..............................................................
- Comment crer un projet..............................................
Deuxime tape : criture du programme source...............
Page 113
Page 115
Page 117
Page 117
Page 118
Page 118
Page 118
Page 119
Page 120
Page 121
Page 121
Page 122
Page 124
Page 125
Page 125
Page 126
Page 129
Page 130
Page 130
Page 131
Page 133
Page 134
Page 134
Page 137
Page 137
Page 140
Page 140
Page 143
Page 143
Page 145
Page 146
Page 147
Page 157
Page 158
Page 160
Page 160
Page 161
Page 165
401
Troisime tape : conversion du programme source en
programme objet..........................................................
Quatrime tape : correction des erreurs............................
Cinquime tape : simulation du programme.....................
- Mode pas pas..............................................................
- Mode Step Over............................................................
- Mode excution automatique........................................
- Ouverture de fentres....................................................
Programmation en langage BASIC................................
- Symbol................................................................
- Les variables de type B et W..............................
- Les variables de bit.............................................
- Dnomination des lignes de PORTS..................
- Configuration des bits de chaque Port................
- Port A...................................................
- Port B...................................................
- Lecture des Ports................................................
- Les Constantes...................................................
- Les Labels..........................................................
- Les Commentaires.............................................
Le set dinstructions du MEL PicBASIC...........................
- Classement par ordre alphabtique....................
- Classement par genre.........................................
- BRANCH............................................
- BUTTON............................................
- CALL...................................................
- DEBUG...............................................
- DIRS....................................................
- EEPROM............................................
- END.....................................................
- FOR...NEXT........................................
- GOSUB................................................
- GOTO..................................................
- HIGH...................................................
- I2Cin....................................................
- I2Cout..................................................
- If... Then..............................................
- INPUT.................................................
- LET......................................................
- LOOKdown.....................................
- LOOKup..............................................
Page 169
Page 176
Page 177
Page 178
Page 181
Page 183
Page 184
Page 187
Page 189
Page 190
Page 191
Page 192
Page 193
Page 193
Page 194
Page 195
Page 196
Page 197
Page 198
Page 199
Page 200
Page 201
Page 202
Page 203
Page 205
Page 206
Page 207
Page 208
Page 209
Page 210
Page 214
Page 216
Page 217
Page 218
Page 221
Page 222
Page 223
Page 224
Page 225
Page 226
402
- LOW....................................................
- NAP.....................................................
- OUTPUT.............................................
- PAUSE................................................
- PEEK...................................................
- PINS....................................................
- POKE..................................................
- POT.....................................................
- PULSin................................................
- PULSout..............................................
- PWM...................................................
- RANDOM...........................................
- READ..................................................
- RETURN.............................................
- REVERSE............................................
- SERin...................................................
- SERout.................................................
- SLEEP..................................................
- SOUND................................................
- TOGLE................................................
- TRISA..................................................
- WRITE.................................................
Exemples de programmes crits en langage PicBASIC.....
- Programme 1.................................................................
- Programme 2.................................................................
- Programme 3.................................................................
- Programme 4.................................................................
- Programme 5.................................................................
- Programme 6.................................................................
- Programme 7.................................................................
- Programme 8.................................................................
- Programme 9.................................................................
- Programme 10...............................................................
- Programme 11...............................................................
- Programme 12...............................................................
- Programme 13...............................................................
- Programme 14...............................................................
- Programme 15...............................................................
- Programme 16...............................................................
- Programme 17...........................................................
BIBLE pour dsassembler la main...............................
Page 227
Page 228
Page 229
Page 230
Page 231
Page 232
Page 234
Page 235
Page 237
Page 239
Page 240
Page 244
Page 245
Page 246
Page 247
Page 248
Page 250
Page 253
Page 254
Page 256
Page 257
Page 258
Page 259
Page 260
Page 261
Page 263
Page 264
Page 265
Page 266
Page 268
Page 269
Page 270
Page 271
Page 272
Page 273
Page 274
Page 275
Page 276
Page 277
Page 278
Page 279
403
Lexique...............................................................................
- Adresse.........................................................................
- Assemblage...................................................................
- Directives dassemblage...............................................
- Digit Carry....................................................................
- Environnement de Dveloppement Intgr..................
- Include..........................................................................
- Interruption............................................................... ...
- Pile (Stack)...................................................................
- Program Counter (EEPROM).......................................
- Le vecteur de Reset.......................................................
- Watch Dog Timer.........................................................
Sommaire..........................................................................
Page 390
Page 391
Page 391
Page 391
Page 392
Page 393
Page 393
Page 394
Page 395
Page 395
Page 396
Page 397
Page 398