Académique Documents
Professionnel Documents
Culture Documents
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
1
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 :
2
10/10 2 ème STE CHAINE D’INFORMATION : TRAITER AZNAG
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.