Académique Documents
Professionnel Documents
Culture Documents
Mémoires de données
PIC16F84
1
Architecture interne du PIC 16F84
• Le PIC 16F84 est conçu selon l’architecture de Harvard donc il possède
2 mémoires séparées physiquement ayant chacune les bus
nécessaires:
– Mémoire de programme (ou de code) avec bus d’adresses d’instructions et bus
des instructions véhiculant les codes d’instructions,
– Mémoire de données avec bus d’adresses de données et bus qui véhicule les
données)
2
Architecture interne du PIC16F84
1
3
Mémoires de données PIC16F84
1.Mémoire EEPROM: 2. Mémoire RAM:
• (Electrical Erasable Programmable Read Only • Mémoire volatile.
Memory). • Mot mémoire: 8 bits.
• 64 Octets.
• Plus Rapide que la EEPROM.
• Mot mémoire: 8 bits. • Découpée en deux pages : Bank 0 et Bank 1.
• Accessible pour lecture et écriture. • 68 octets (GPR).
• Non volatile.
• Très utiles pour conserver des paramètres
semi-permanents.
• Plus lente que la RAM.
4
Configuration des Entrées Sorties : Mémoire de données
La mémoire RAM :
• Elle contient deux types de registres :
SFR
Les SFR ( Special Function Registers): des
emplacements mémoires spécialisés et
ne peuvent contenir qu'un type bien
précis de données.
La mémoire RAM :
• Elle contient deux types de registres :
SFR
Les SFR ( Special Function Registers): des
emplacements mémoires spécialisés et
ne peuvent contenir qu'un type bien
précis de données.
• BTFSS f,b ; Bit Test File Skip if Set = si le bit b du registre f == 1 alors sauter une ligne
File /registre numéro du bit
Exemple :
BTFSS PORTA,2 ; si (PORTA.RA2==1) Si condition est vrai : sauter une ligne
Si condition est Fausse Exécuter la ligne suivante
BCF PORTB,2 ;
Exécuter PORTB.RB2=0
BSF PORTB,2 ; Exécuter PORTB.RB2=1
8
Quelques Instructions assembleur
instruction Arguments de l’instructions
• BTFSC f,b ; Bit Test File Skip if Clear = si le bit b du registre f == 0 alors sauter une ligne
File /registre numéro du bit
Exemple :
BTFSC PORTA,2 ; si (PORTA.RA2==0) Si condition est vrai : sauter une ligne
Si condition est Fausse Exécuter la ligne suivante
BSF PORTB,2 ;
Exécuter PORTB.RB2=1
BCF PORTB,2 ; Exécuter PORTB.RB2=0