Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Microprocesseurs et Microcontrôleurs
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 1
Plan
Introduction
Modes d’adressage
Instructions opérant sur registre
Instructions opérant sur un bit
Instructions opérant sur une constante
Instructions de saut et d’appel de procédures
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 2
1
07/11/2019
introduction
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 3
introduction
Format d’une instruction
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 4
2
07/11/2019
Modes d’adressage
Exemple :
movlw 0xC4 ; Transfert la valeur 0xC4 dans W
Exemple :
movf 0x2B, 0 ; Transfert dans W la valeur contenue à l'adresse 0x2B.
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 5
Modes d’adressage
Un seul pointeur est disponible pour l'adressage indirect : FSR. Contenu à l'adresse
04h dans les deux banques
INDF utilisé pour accéder à la donnée elle-même, FSR servant à choisir l'adresse.
Exemple :
movlw 0x1A ; Charge 1Ah dans W
movwf FSR ; Charge W, contenant 1Ah, dans FSR
movf INDF, 0 ; Charge la valeur contenue à l'adresse 1Ah dans W
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 6
3
07/11/2019
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 7
F (File) désigne une adresse, qui appartient (0x00 à 0x7F), de n'importe quel
registre SFR ou GPR
Pour les registres SFR, on peut utiliser leurs noms à condition d'inclure le fichier
p16F84A.inc dans le programme
W (Work register) : registre de travail qui fait la fonction d’un accumulateur
d (Destination select)
• d=0 ou W : Stockage du résultat dans W
• d=1 ou f : Stockage du résultat dans F(File)
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 8
4
07/11/2019
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 9
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 10
5
07/11/2019
b : numéro du bit dans un registre de 8 bits, qui peut être remplacé le nom du
bit si le fichier p16F84A.inc est inclus dans le programme
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 11
• Exemples
Écrire la partie du programme qui permettra de mettre 1 le bit RB5 du PORTB
BSF 0x06, 5 ; on peut aussi faire BSF PORTB,RB5
Écrire la partie du programme qui permet de mettre à zéro le bit 3 du port A et
le bit 5 du port B
BCF PORTA,3 ; mettre à 0 le bit 3 du port A
BCF PORTB,5 ; mettre à 0 le bit 5 du port B
BSF STATUS, RP0 ; Mettre à 1 le bit RP0 du STATUS: se mettre sur ;BANK1
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 12
6
07/11/2019
Elles manipulent les données qui sont codés directement dans l’instruction. Ce
sont les instructions entre l’accumulateur W est une constante K
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 13
• Exemples
Écrire la partie du programme qui permettra de faire l’addition entre la valeur
0x55 et le contenu du registre W
ADDLW 0x55 ; W contiendra le résultat W+0x55
Écrire la partie du programme qui permet d’écrire la valeur 0x12 sur le port B
MOVLW 0x12 ; mettre 0x12 dans le registre W
MOVWF PORTB ; transférer W=0x55 sur PORTB
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 14
7
07/11/2019
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 15
• L’instruction GOTO
Instruction 1
Instruction 2
Goto bonjour
Instruction 3
Instruction 4
Instruction 5
bonjour Instruction 6
Instruction 7
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 16
8
07/11/2019
• L’instruction CALL
L’instruction call permet d’appeler une fonction
Une fonction est un sous programme écrit à la
suite du programme principal. Sa première ligne
doit comporter une étiquette et elle doit se
terminer par return
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 17