Vous êtes sur la page 1sur 3

Ministère de l’Enseignement ‫وزارة اﻟﺘﻌﻠﻴﻢ اﻟﻌﺎﻟﻴﻮاﻟﺒﺤﺜﺎﻟﻌﻠﻤﻴﻮاﻟﺘﻜﻨﻮﻟﻮﺟﻴﺎ‬

Supérieur, de la Recherche
Scientifique et de la Technologie

Institut Supérieur
des Etudes Technologiques ‫اﻹدارة اﻟﻌﺎﻣﺔ ﻟﻠﺪراﺳﺎت اﻟﺘﻜﻨﻮﻟﻮﺟﻴﺔ‬
‫اﻟﻤﻌﻬﺪ اﻟﻌـﺎﻟﻲ ﻟﻠﺪراﺳﺎت اﻟﺘﻜﻨﻮﻟﻮﺟﻴﺔ‬
de Mahdia
‫ﺑﺎﻟﻤﻬﺪﻳﺔ‬

Matière : Microcontrôleur

Documents : Non autorisés

Durée : 1.5h / Janvier 2020 / 2 pages + 1 Document repense + Annexe

Classe : Electronique industrielle

Enseignants responsables : Ahlem KEHILI &Asma CHAOUCH

N.B : Plus la présentation est propre et soignée, plus le correcteur sera enclin de vous lire
dans le détail et être indulgent

EXERCICE# 1(7pts)
1. Quelle est l’utilité de registre TMRO ?
2. Quel est le rôle de bit TOCS ?
3. Quel est le rôle de bit PSA ?
4. Quels sont les registres du TIMER1 qui sont nécessaires de configurer ?
5. Expliquer les modes du fonctionnement de TIMER1 ?
6. compléter le registre T1CON ?

- - TCKPS1

EXERCICE# 2(4pts)

On désire utiliser une horloge externe de valeur 4Mhz sur la broche RA4 du PIC 16f877.
On aura à choisir un prédiviseur de valeur 4, avec une valeur du registre TMR0 16.
- Déterminer la période calculée par le Timer0 dans ce cas.
- Déterminer la configuration du registre OPTION_REG dans ce cas.
- Donner les instructions à utiliser en choisissant les paramètres adéquats pour avoir
cette configuration.

EXERCICE# 3(9pts) ROBOT EXPLORATEUR


Nous allons mettre en œuvre un robot d’exploration commandé à distance en temps
réel et permettant de faire la cartographie d’un lieu inconnu.

Sur le mobile, une caméra autonome est placée sur une tourelle capable de lui permettre de
faire un mouvement de balayage horizontal. Pour réaliser ce mouvement, le robot est équipé
d’un servomoteur qui est commandé par un microcontrôleur 16F877 alimenté d’un quartz de
4 Mhz.

Pour faire tourner la caméra d’un angle de -90°, Il faut générer un signal de durée 1ms comme
le montre la figure2.

Figure 3
Pour que la caméra puisse faire un balayage horizontal, on va envoyer le signal périodique ci-
dessous à travers le microcontrôleur.

Figure 4

Pour cela on va créer une interruption en utilisant le timer0 pour chaque 100 ms (tdésiré = 100
ms).

Travail demandé :

1/ Donner les valeurs à charger dans les registres suivants :

- Pré-diviseur
- TIMER0
- OPTION_REG
2/ Donner le programme qui permet de générer le signal qui se trouve dans la figure 2 en
utilisant le TIMER0.

BONNE REUSSITE