Vous êtes sur la page 1sur 7

Faculté d’Électronique et d’Informatique 2021-2022

Licence Électronique
Option Électronique L3 Section A

TP1 : le clignotant
1.1 Objectifs du TP
• Faire clignoter une LED de façon continue toutes les secondes. La LED sera
connectée sur le bit 0 du PortB,
• Modifier ensuite le programme pour faire clignoter deux LEDs en alternance. Mettre
LED0 sur B0 et LED1 sur B1.
• Modifier enfin le programme pour allumer la LED lorsqu’un interrupteur (switch en
anglais) connecté sur le bit RB0 du PORT B est appuyé et l’éteindre lorsqu’il est
relâché.
1.2 Connaissances préalables requises
• Être initié à l’utilisation d’ISIS
• Connaître l’outil de simulation MPLAB de Microchip
1.3 Matériels nécessaires
• 1 ordinateur équipé du logiciel Proteus et de l’environnement de développement
intégré (IDE) MPLAB
• Fichier ENTÊTE.ASM
1.4 Préparation
La préparation des TP est très importante et est prise en compte dans la notation. Elle
consiste à avoir pris connaissance du TP et avoir préparé un organigramme de programmation.
Le codage en assembleur et la saisie du schéma de simulation sur « ISIS » de Proteus est aussi
à préparer mais sont réalisés sur ordinateur lors de la séance de TP.

Le listing ci-dessus représente un entête pour le PIC 16F84 qui sera utilisé dans ce TP ainsi que
les TP ultérieurs.
; ENTÊTE.ASM pour le 16F84. Configure-le PORTA comme ENTRÉE (NB 1signifie
entrée).
; et le PORTB comme SORTIE (NB 0 signifie sortie).
;Le registre OPTION est réglé sur / 256 pour donner des pulses de 1/32 de seconde.
; Des temporisations de 1 seconde et 0.5 seconde sont inclues dans la section sous-routine.

;*********************************************************

; DEFINITION DES REGISTRES TEMPORAIRES

TMR0 EQU 1
STATUS EQU 3
PORTA EQU 5
PORTB EQU 6
TRISA EQU 85H
TRISB EQU 86H
OPTION_R EQU 81H
ZERO_BIT EQU 2
COUNT EQU 0CH
;*********************************************************
events.
LIST P = 16F84
ORG 0
GOTO DEBUT
;******************************************************************

1
; B i t s d e c onfiguration
__CONFIG H’3FF0’

;*********************************************************
;SECTION SOUS-ROUTINE.

; Temporisation 1 seconde.

TEMPO1 CLRF TMR0


BOUCLEA MOVF TMR0,W
SUBLW .32
BTFSS STATUS,
ZERO_BIT
GOTO BOUCLEA
RETLW 0
; T e m p o r i s a t i o n 0.5 seconde.
TEMPOP5 CLRF TMR0
BOUCLEB MOVF
TMR0,W
SUBLW
.16
BTFSS
STATUS,
ZERO_BIT
GOTO BOUCLEB
RETLW 0
;*********************************************************

; SECTION CONFIGURATION

DEBUT BSF STATUS,5


MOVLW B’00011111’
MOVWF TRISA
MOVLW B’00000000’
MOVWF TRISB
MOVLW B’00000111’
MOVWF OPTION_R
BCF STATUS,5
CLRF PORTA
CLRF PORTB
;*********************************************************
; Votre programme commence ici.

END ; Cela doit toujours venir à la fin de votre code

NB. Dans le programme, tout texte sur une ligne suivant le point-virgule (;) est ignoré par le
logiciel assembleur. Les commentaires du programme peuvent alors y être placés.
Le programme ci-dessus est saisi sur l’éditeur de MPLAB et est enregistrée dans le répertoire
de votre choix sous le nom ENTÊTE.ASM. Il sera utilisé dans les deux applications suivantes :
1.5 Application 1
Écrivez un programme pour allumer et éteindre une LED à 0,5 seconde d'intervalle. La
LED est connectée au bit 0 du PortB comme illustré à la Figure 1.1.
Faculté d’Électronique et d’Informatique 2021-2022
Licence Électronique
Option Électronique L3 Section A

B0 6

470R

16F84 LED1

0v

5v
68p 32kHz 16 V+ 14
4
MCLR
15 T0CKI 3

5 0.1
0v 68p 0v

0v

Figure 1.1 Schéma du circuit du clignotant à base de microcontrôleur

Ouvrez ENTÊTE.ASM. Une fois que vous l’avez chargé sur l'écran, modifiez-le en
incluant votre programme à l’endroit indiqué dans le programme ENTÊTE.ASM. Quatre
instructions seront utilisées dans cette application :
• BCF
• BSF
• CALL
• GOTO
NB. Il ne doit y avoir aucun espace dans une étiquette, une instruction ou ses données. Pour
garder le programme bien rangé vous pouvez utiliser la touche TAB du clavier.
1.6 Enregistrement et assemblage du code :
Le programme est ensuite enregistré sous le nom CLIGNOTANT.ASM. La tâche qui suit
consiste à assembler ce texte pour le convertir en code HEX que le microcontrôleur
comprend.
Ouvrez MPLAB, l'écran illustré ci-dessous dans la figure 1.2 s'ouvre.
Ouvrez le fichier CLIGNOTANT.ASM en utilisant le menu FILE comme illustré à la
Figure 1.3.
Dans le menu CONFIGURER, cliquez sur « Select Device » puis choisissez le micro 16F84
dans cet exemple, comme indiqué dans la figure 1.4.
Ouvrez de nouveau le menu CONFIGURER – Configuration Bits comme indiqué dans la Figure
1.5 et modifiez comme indiqué.
Ce paramétrage de bits de configuration permet de choisir un oscillateur LP, de désactiver le
« Watchdog Timer », d’activer le « Power Up Timer » et de désactiver « Code Protect ».
Notez que la valeur de cette configuration est 3FF0 en hexadécimal. Ces paramètres de
configuration peuvent être écrits dans le programme d'en-tête, il n'est donc pas nécessaire
de le faire ici. Le code est __CONFIG H’3FF0’

Le choix des paramètres des bits de configuration pour le 16F84 est :


• L’Oscillateur, RC, LP, XT, HS. i.e. LP
• Watchdog Timer ON/OFF i.e., OFF

3
Figure 1.2 Écran initial de MPLAB

Figure 1.3 Ouverture de CLIGNOTANT.ASM


Faculté d’Électronique et d’Informatique 2021-2022
Licence Électronique
Option Électronique L3 Section A

Figure 1.4 CONFIGURE – select device

Figure 1.5 Paramétrage des bits de configuration

• Power Up Timer ON/OFF i.e., ON


• Code Protect ON/OFF i.e., OFF

Ensuite, nous devons convertir le fichier texte, CLIGNOTANT.ASM en un fichier de code


machine CLIGNOTANT.HEX. Pour ce faire, choisissez PROJECT - Quickbuild
CLIGNOTANT.ASM comme le montre la figure 1.6.

5
Figure 1.6 Compilation de CLIGNOTANT.ASM en CLIGNOTANT.HEX

Si le programme a compilé sans aucune erreur, MPLAB retournera avec un message « Build
Succeeded ». Il peut y avoir des avertissements et des messages mais ça n’est pas grave : le
compilateur a rencontré quelque chose auquel il ne s’attendait pas.

Par ailleurs, gardez toujours les numéros de ligne sur votre code pour vous repérer, en
particulier dans les programmes plus importants. Les numéros de ligne peuvent être activés et
désactivés avec : EDIT - PROPERTIES.
Supposons que vous ayez une erreur de syntaxe dans votre code. Le message « Build
Failed » vous sera retourné. Vous devez ensuite corriger les erreurs. MPLAB a indiqué
l'erreur dans la boîte de message. Si vous « double-cliquez » sur le message d'erreur,
MPLAB indiquera, avec une flèche, où se trouve l'erreur dans votre code. Corrigez les
erreurs et compilez à nouveau (Quickbuild) pour produire une version sans erreur.
Le fichier CLIGNOTANT.HEX est maintenant prêt à être programmé dans la puce.
1.7 Phase de simulation
Démarrez ISIS et saisissez le schéma du montage (voir figure 1.1). Sauvegardez le fichier dans
le même répertoire que celui où se trouve « CLIGNOTANT.ASM ».
1.7.1 Simulation du circuit
˗ Editez le PIC16F84A et ajoutez « CLIGNOTANT.ASM » dans le champ « Program
File »,
˗ Appuyez sur le bouton « Play ». La barre du message doit indiquer le temps écoulé
depuis le lancement de l’animation.
1.8 Application 2
Écrivez un 2ème programme qui fera clignoter deux LEDs en alternance. Mettez LED0 sur B0
et LED1 sur B1. NB. Vous pouvez réutiliser le fichier CLIGNOTANT.ASM, il suffit d'ajouter
deux lignes supplémentaires ! Puis enregistrez-le sous CLIGNOTANT2.ASM
Faculté d’Électronique et d’Informatique 2021-2022
Licence Électronique
Option Électronique L3 Section A
1.9 Application 3
Dans un système de commande, une sortie est activée ou désactivée lorsqu’un évènement
se produit à l’entrée de ce système. Dans cette application, l’entrée provient d’un
interrupteur (switch en anglais) qui permet d’allumer et d’éteindre une LED. Le schéma du
circuit est illustré à la figure 1.7. Les nouvelles instructions utilisées dans cette application
sont :
• BTFSC
• BTFSS
Écrire un programme de commande de la LED1 qui pourrait être comme suit :
1) Attendre que SW1 se ferme.
2) Allumer la LED1.
3) Attendre que SW1 s'ouvre.
4) Éteindre LED1.
5) Répéter.

Figure 1.7 Schéma de principe du l’interrupteur à base de pic16f84

Dans le schéma électrique, SW1 est connecté à A0 et LED1 à B0


1.10 Travail de demandé
1) Commentez de façon brève chacune des lignes du programme que vous avez ajouté à
« ENTÊTE.ASM » pour allumer et éteindre une LED dans la partie « Application 1 ».
Expliquez ensuite de façon plus détaillée le fonctionnement du code ajouté.
2) Mettre un commentaire bref dans chaque ligne du programme que vous avez ajouté à
« ENTÊTE.ASM » pour faire clignoter deux LEDs en alternance dans la partie
« Application 2 ». Expliquez ensuite de façon plus détaillée comment fonctionne le
code ajouté.
3) Donner l’organigramme qui décrit les étapes du programme associé à votre solution
pour l’application 3. Expliquer ensuite le fonctionnement du code.

Vous aimerez peut-être aussi