Documente Academic
Documente Profesional
Documente Cultură
Exercice 0 :
On souhaite réaliser un système à base du PIC 16F84 permettant de faire clignoter une led jaune (pin RA3)
automatiquement (allumée 0,5s puis éteinte 0,5s).
1) Télécharger le fichier TP1_Ex0.asm envoyé par l’enseignant : ce fichier contient l’organisation du code
assembleur à compléter.
b. Le principe de cette sous-routine est de déclarer des variables (cmpt1, cmpt2 et cmpt3) et de les
décrémenter afin de laisser écouler du temps (des cycles instructions) sans affecter le fonctionnement de
notre système.
Pourquoi a-t-on besoin de 3 variables ? Commenter les lignes de code et justifier l’achèvement de 0,5s
avec cette sous-routine tempo.
Rappel :
* Les variables sont stockées dans la mémoire de données RAM à partir de l’adresse 0x00C qui est la
première case GPR (General Purpose Register), chaque variable est de taille 1octet = 8 bits donc les
valeurs possibles pour une variable sont comprises dans l’intervalle [0-255]
* les instructions movlw, movwf, clrf, nop s’exécutent chacune en seulement 1 cycle d’instruction.
* l’instruction goto et return s’exécutent chacune en 2 cycles.
* l’instruction decfsz est une instruction qui décrémente une variable et teste au même temps si la
nouvelle valeur après la décrémentation est égale à 0 ou pas.
Si lors de l’exécution ce résultat=0, on saute une ligne et on passe directement à l’exécution de
l’instruction d’après (cela s’exécutera en 2 cycles), sinon, on exécute la ligne qui suit directement
l’instruction decfsz (et donc cela s’exécutera en 1 cycle seulement).
3) Dresser le montage électronique nécessaire, écrire le code assembleur adéquat et tester le fonctionnement
en sachant :
Exercice 1 :
On souhaite réaliser un système de défilement des feux de signalisation à base d’un PIC 16F84 comme le
montre la figure suivante :
A. Rouge pendant 1s
B. Orange pendant 0,5s
C. Vert pendant 1s
D. Orange pendant 0,5s
1
TP1 : ARCHITECTURE DES MICROCONTROLEURS
Exercice 2 :
Pour les compétitions d’athlétisme, on désire réaliser un afficheur numérique qui permet de faire le compte à rebours
pour annoncer les départs des courses sprint.
Le travail demandé :
1. Réaliser le montage sur ISIS, le montage suivant :
2. Dessiner l’organigramme et rédiger le code assembleur qui permet de faire le compte à rebours des 3
secondes.
Fonctionnement :
Au repos l’afficheur est éteint, suite à l’activation de l’entrée ON, on affiche la séquence des chiffres « 3 », « 2
», « 1 », puis la lettre « P ». Chaque chiffre est affiché pendant 1 seconde.
2
TP1 : ARCHITECTURE DES MICROCONTROLEURS
Rappel :
L’afficheur 7 segments est le suivant : Exemple : Pour le nombre décimal 2, la représentation
binaire est 00000010, pour l’afficher, les segments
A,B,D,E et G doivent être allumés comme suit :
Remarques :
* utiliser les instructions CLRF, MOVLW, MOVWF…
* utiliser le code de la sous-routine « tempo ».
Remarques :
* utiliser les instructions INCF, INCFSZ, DECF, DECFSZ, SUBWF…
* utiliser le code de la sous-routine « tempo ».