Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Exemple:
2007H
68 Octets
3/10 2 ème STE CHAINE D’INFORMATION : TRAITER AZNAG
PC : est un compteur ordinal (13 bits) qui lors de la mise sous tension démarre à zéro puis s’incrémente
de 1 tous les quatre coups d’horloge (un cycle d'instruction).
A ces deux registres, PORTA et PORTB correspondent également deux registres de direction :
TRISA et TRISB.
La configuration de direction pour chaque bit du port est déterminée avec le registre TRIS.
• Bit i de TRIS = 0 → bit i de PORT configuré en sortie.
• Bit i de TRIS = 1 → bit i de PORT configuré en entrée.
3.7- Quelques registres spéciaux de la RAM :
STATUS ou registre d'état (adresse 03 et 83) :
Registre d’état. Les cinq bits de poids faible de ce registre sont en lecture seule, ce sont des
témoins (drapeaux ou flag en anglais) caractérisant le résultat de l’opération réalisée par l’UAL. Le
bit RP0 est lui en lecture /écriture et c’est lui qui permet de sélectionner la page dans la mémoire
RAM.
IRP et RP1 doivent être laissés à "0" pour avoir accès aux deux pages possibles du PIC 16F84 (de 00 à
7F et de 80 à FF).
TO (Time Out) : débordement du timer WDT.
PD (Power Down) : ce bit est mis à 0 par l'instruction SLEEP.
Z (Zero) : ce bit est mis à 1 quand un résultat arithmétique ou logique est nul.
DC (Digit Carry) : retenue sur un quartet (4 bits).
C (carry) : retenue sur un octet (8 bits).
OPTION (adresse 81) :
Ce registre en lecture écriture permet de configurer les pré-diviseurs du Timer et du Watchdog, la
source du Timer, le front des interruptions et le choix du Pull ups (résistances de tirage) sur le Port
B.
RBPU (RB Pull Up) : Résistances de tirage à Vdd des entrées du port B.
Si RBPU= 0 les résistances de pull-up sont connectées en interne sur l'ensemble du port B.
INTEDG (Interrupt Edge) sélection du front actif de l’interruption sur RB0/INT (1 pour front montant
et 0 pour front descendant).
TOCS (TMR0 Clock Source) sélection du signal alimentant le timer0 :
0 pour horloge interne, 1 pour RA4/T0CLK.
TOSE (TMR0 Source Edge) sélection du front actif du signal timer0 :
0 pour front montant, 1 pour front descendant.
6/10 2 ème STE CHAINE D’INFORMATION : TRAITER AZNAG
F représente un registre ; b représente un numéro de bit ; K représente une donnée aussi appelé littéral
8/10 2 ème STE CHAINE D’INFORMATION : TRAITER AZNAG
Pour écrire un programme, il existe plusieurs solutions ( langages) mais chacune nécessite une forme
de traduction :
Langage de programmation de haut niveau (C , BASIC , PASCAL…) : pour le traduire en
code machine il faut utiliser plusieurs programmes ( des compilateurs et des interpreteurs).
Langage de programmation de bas niveau appelé aussi assembleur :c’est un langage proche du
code machine. Il est alors facile de le traduire mais il faut connaître l’architecture interne du
microcontrôleur.
Les étapes nécessaires permettant de voir un programme s'exécuter sur un PIC sont :
Ecrire un programme en langage assembleur (avec le jeu d’instructions du PIC) dans un
fichier texte et le sauvegarder avec l'extension .asm (fichier source) en utilisant un éditeur texte ;
Compiler ce programme avec l'assembleur MPASM fourni par Microchip. Le résultat est un
fichier exécutable avec l’extension. hex (code machine) ;
Transférer le fichier .hex dans la mémoire programme du PIC (mémoire flash) à l'aide d'un
kit programmateur et son logiciel de transfert ;
Mettre le PIC dans son montage final, mettre sous tension.
LIST : permet de définir un certain nombre de paramètres comme le type de PIC utilisé….
Exemple : LIST p=16F84A,
INCLUDE : permet d'insérer un fichier source. Par exemple le fichier p16f84A.inc qui contient la
définition d'un certain nombre de constante comme les noms des registres ainsi que les noms de
certains bits.
Exemple: # INCLUDE< p16f84A.inc>
INCLUDEp16f84A.inc
9/10 2 ème STE CHAINE D’INFORMATION : TRAITER AZNAG
__CONFIG : permet de définir les 14bits de configuration qui seront copié dans l'EEPROM de
configuration lors de l'implantation du programme dans le PIC (protection de code, type
d'oscillateur, chien de garde et temporisation du départ)
Exemple : __CONFIG B'11111111111001'
__CONFIG H'3FF9'
ORG : permet de choisir l’adresse de début, dans laquelle sera logée la première instruction de
votre programme.
La syntaxe ORG, peut être utilisée plusieurs fois, ce qui permet de loger des sous programmes à des
emplacements mémoire définie.
; : le compilateur ignore tout ce qui suit un point-virgule (; ).
Exemple : ; je peux écrire des commentaires après le point-virgule
2.3 Les étiquettes (Labels) : permettent de remplacer une adresse en format numérique.
Exemple : GOTO tempo
2.4 Format des nombres :
L'assembleur reconnaît les nombres en décimal, hexadécimal, binaire ou octal. Pour préciser la base il
faut utiliser les préfixes précisés dans le tableau ci-dessous :
Exercice 2:
1 - A quoi sert le programme suivant :
MOVLW B’00000001’
MOVWF TRISA
Exercice 3 : Configurer le PORTB en entrée. Lire le contenu du PORTB. Mettre le résultat dans la
case mémoire d’adresse 1CH.
Exercice 4 : Configurer le PORTB en sortie. Initialiser le PORTB à 4FH.
Exercice 5 : Configurer les broches RB0, RB3, RB6, RB7 du PORTB en entrée et les broches RB1, RB2,
RB4, RB5 du PORTB en sortie.
Exercice 6 : Configurer les broches RA0, RA1, RA2 du PORTA en entrée et les broches RA3, RA4
du PORTA en sortie.
Exercice 7 :
Écrire un programme qui additionne deux valeurs en RAM ("donnee1" et "donnee2") et met le résultat
dans une variable 8 bits "somme".
Exercice 8 :
Réaliser un programme qui vient chercher six fois des valeurs (8 bits) sur le PORTB et les additionne
dans une variable "Somme" (8 bits). On vous demande de gérer la somme sur 8 bits seulement sans
gérer la retenue.
Exercice 9 : Ecrire un programme qui permet d’allumer successivement une led rouge, orange puis
verte (l’allumage de la led suivante éteint la précédente, chaque led sera allumée pendant 0,5 s). Le
programme tournera indéfiniment.
Nota : Pour simplifier l’étude utiliser un algorigramme avant d’écrire le programme.