Telechargé par Oussama Dbibih

DBIBIH OUSSAMA Compte rendue

publicité
Table des matières
I.
Présentation .................................................................................................................................... 2
II.
Objectifs........................................................................................................................................... 2
III. Outils de développement ................................................................................................................ 3
IV.
Test et application ‘PIC16F84A’ ....................................................................................................... 4
I.
Présentation
La PIC16F84 est un microcontrôleur de la famille PIC développé par Microchip Technology. Il offre une
architecture RISC 8 bits, une mémoire flash de 1 024 mots et des capacités d'E/S polyvalentes.
II.
Objectifs
1- Le compte rendu du TP en Binôme est à adresser à [email protected]
a. Réalisez l’implantation du programme ci-dessus dans votre environnement MPLAB X.
b. A l’aide de l’outil de DEBUG exécutez en pas à pas votre programme et commentez la
variation des registre STATUS et SFR, imprimez l’état des mémoires où se situent votre
programme, vos data (Ram et EEROM), ainsi que la pile système lors de l’appel au tempo.
Fournir un mini compte rendu de l’utilisation du débugger.
2 - Fournir le code asm qui permet de réaliser :
✓ L’Initialisation de la zone mémoire avec valeur 0x1A comprise entre 0x10 à 0x25
✓ Imprimez l’image écran de la mémoire avant et après exécution du programme.
III.
Outils de développement
MPLAB X IDE est un environnement de développement intégré (IDE) puissant et convivial
développé par Microchip Technology. Il offre des fonctionnalités avancées pour la
programmation, le débogage et la simulation de microcontrôleurs PIC, dsPIC et AVR. Doté
d'une interface utilisateur intuitive, MPLAB X IDE facilite la création, le test et la mise au point
des applications embarquées, ce qui en fait un outil essentiel pour les développeurs de
systèmes embarqués.
Tools
Project
Fenêtre
MPLABE X IDE
Debugger
Code ASM
Target
memory view
IV.
Test et application ‘PIC16F84A’
✓ Réalisez l’implantation du programme ci-dessus dans votre environnement MPLAB X.
✓ A l’aide de l’outil de DEBUG
En utilisant l'outil de débogage de MPLAB X IDE, nous pouvons observer que lorsque nous cliquons
sur le bouton bleu "RESET", le programme entre dans la partie reset_vect.
✓ L’Initialisation de la zone mémoire avec valeur 0x1A comprise entre 0x10 à 0x25
;-----------------------------------------------------------------------------; Fonction : init_memory
; Description : Initialise une zone m�moire avec la valeur 0x1A de l'adresse 0x10
;
� l'adresse 0x25.
;-----------------------------------------------------------------------------init_memory:
BANK0
; Initialisation des param�tres
movlw 0x1A
; Valeur � stocker
movwf FSR
; Adresse de d�part
movlw 0x16
; Nombre d'octets � initialiser
movwf COUNT ; Initialiser le compteur
fill_memory_loop:
movwf INDF
incf FSR, 1
decfsz COUNT, 1
goto fill_memory_loop
movlw 0x10
movwf FSR
display_memory_loop:
movf FSR, W
movf INDF, W
incf FSR, 1
decfsz COUNT, 1
goto display_memory_loop
BANK1
return
✓ Imprimez l’image écran de la mémoire avant et après exécution du programme.
✓ Test d’une application simple a l’aide de Proteus 8 et MPLAB X IDE
Une application en langage C utilisant la PIC16F84A pour simuler un feu rouge de rue.
Lorsque l'utilisateur appuie sur le bouton, le feu rouge s'allume des deux côtés pendant 3
secondes pour permettre aux piétons de traverser en toute sécurité.
void main() {
TRISB = 0x00; // Définir le PORTB comme sortie
TRISA = 0x00; // Définir le PORTA comme sortie
TRISB.RB6 = 1; // Définir RB6 comme entrée
for (;;) {
// (si RB6 est à l'état bas)
if (PORTB.RB6 == 0) {
// Éteindre la LED
PORTB = 0b00001001;
delay_ms(3000); // temps pour que le passeger traverse la route
PORTB.RB6 == 1;
} else {
// Allumer la sortie RB0 et RB6
PORTB = 0b00100001;
delay_ms(1000);
// Allumer la sortie RB1 et RB4
PORTB = 0b00010010;
delay_ms(1000);
// Allumer la sortie RB2 et RB3
PORTB = 0b00001100;
delay_ms(1000);
}
}
}
Téléchargement