Académique Documents
Professionnel Documents
Culture Documents
Les PIC 16FXX sont des microcontrôleurs 8 bits (largeur du bus de données) conçus en
technologie CMOS (faible consommation électrique).
Tous les PIC 16FXX utilisent une architecture RISC ( Reduce Instruction Set Computer
-> Processeur à jeu d’instructions réduit ).
Grâce à cette architecture RISC, un programme nécessite environ deux fois moins
d’espace mémoire et « tourne » environ deux fois plus vite que sur les systèmes à
architecture classique.
2. Le PIC 16F84
2.1. Présentation générale, spécificités
• la zone donnée
• la zone programme
• les registres à usage général (GPR) qui constituent les 36 octets de RAM du 16F84
• les registres à usage spécial (SFR) qui sont en fait constitués du registre d’état du
noyau du processeur (CORE) et des registres de contrôle et d’état des
périphériques.
IMPORTANT :
La zone de donnée est divisée en 2 banques. Avant d’accéder à certains
registres, il faut s’assurer que la banque correspondante est sélectionnée.
Cette sélection se fait par l’affectation du bit 5 (RP0) du registre STATUS
(0 -> Banque 0 / 1 -> Banque 1).
• d’un code opération (OPCODE), disposé sur les bits de poids forts du mot,
précisant le type d’instruction
• d’une ou plusieurs opérande(s), codée(s) sur les bits restants, précisant
l’opération de l’instruction.
Exemples :
0 0 0 1 1 1 1 0 0 0 1 1 0 0
ADDWF 0x0C
d=1
résultat dans le registre
considéré de la zone FILE.
S’il avait fallu loger le résultat du calcul dans W, l’écriture de l’instruction aurait
été le suivant :
ADDWF 0x0C, 0
et son codage :
0 0 0 1 1 1 0 0 0 0 1 1 0 0
Exercices :
I - Charger 0x22 dans le premier emplacement RAM.
LAB1
• ‘Data Latch’ : Cette bascule permet de mémoriser l’état à déposer sur la ligne
dans le cas où celle-ci est utilisée en sortie.
• Les 8 lignes du port B comportent une de ces bascules ce qui constitue le registre
de donnée du port B (PORTB).
• Une résistance de rappel (pull-up) interne au PIC peut-être disposée sur chaque
entrée ce qui évite de devoir la rajouter sur le montage lorsque certaines
applications en ont besoin. Cette possibilité se sélectionne par logiciel à l’aide
d’un bit du registre ‘OPTION’. Cette fonctionnalité, si elle est utilisée, s’applique
sur toutes les lignes du port B. Le port A ne possède pas cette possibilité.
De plus, lorsqu’elles sont utilisées en entrées, les lignes RB4 à RB7 peuvent être
configurées pour déclencher une interruption lors d’un changement d’état sur une de ces
quatre entrées. Cette fonctionnalité est permise grâce aux fonctions logiques ‘A’, ‘B’, ‘C’
et ‘Porte IT’.
2.8. Le TIMER
Remarques importantes :
Exemple :
#include "p16F84.inc"
org 0
goto debut
inter org 4
bcf INTCON,INTF ; enlève le Flag d’int erruption par RB0
nop
retfie
debut
bsf INTCON,GIE ; demasque les interruptions
bsf INTCON,INTE ; autorise l’interruption par RB0
Exercice VII
Proposer un programme qui fasse clignoter une led sur RB1 toute les
200ms (1/400e-3 Hz)
Exercice VIII
Proposer un programme qui modifie l’état d’une LED branchée sur RA0 à
chaque front montant vu sur RB0. (utilisation des interruptions.)
Annexe
HARVARD
VON NEUMAN
Decodeur instructions
et données
d'adresse
BC
CPU
RAM
instructions
et données
Bus de donnée
PERIPHE
RIQUE
Données