Académique Documents
Professionnel Documents
Culture Documents
Questions à choix :
1. Dans le cas d'un µC contenant un ADC de 10 bits de résolution, si nous l'utilisons pour effectuer une
conversion AN, alors pour une tension appliquée de 3 V, cela entrainera dans le ou les registres donnant
le résultat de conversion, une valeur décimale d'environ :
a- 307, si les tensions de référence Vref- et Vref+ sont respectivement -5 V et +5 V.
b- 614, si les tensions de référence Vref- et Vref+ sont respectivement 0 V et +2.5 V.
c- 614, si les tensions de référence Vref- et Vref+ sont respectivement 0 V et +5 V.
d- 614, si les tensions de référence Vref- et Vref+ sont respectivement -2.5 V et +2.5 V.
e- Aucun choix
2. Dans le cas d'un µC PIC renfermant le module CCP, en MikroC la génération d'un signal MLI ou PWM
de rapport cyclique d'environ :
a- 50%, se fait grâce à la fonction PWM1_Set_Duty(50).
b- 30%, se fait grâce à la fonction CCP1_Set_Duty(12).
c- 50%, se fait grâce à la fonction PWM1_Set_Duty(20).
d- 50%, se fait grâce à la fonction PWM1_Set_Duty(127).
e- Aucun choix
3. Dans le cas d'un µC PIC renfermant le module CCP, en MikroC, la fonction PWM1_Init(64) entraine la
génération d'un signal MLI ou PWM de rapport cyclique d'environ :
a- 50%.
b- 25%.
c- 163%.
d- 75%.
e- Aucun choix
Exercice 1
Avec v1 = 15 et v2 = 67, évaluer les expressions suivantes :
a. v1 &= v2
v1 = v1 & v2
v1 = 1510 =0000 1111
v2 = 6710 = 0100 0011
0000 1111
& 0100 0011
===========
0000 0011 = 310
➔ v1 = 310
Et v2 = 6710
b. v1 ^= v2
v1 = v1 ^ v2
v1 = 0000 1111
v2 = 0100 0011
0000 1111
^ 0100 0011
===========
0100 1100 = 7610 ➔ v1 = 7610 Et v2 = 6710
c. v1 = v1 | v2
v1 = v1 OR v2
v1 = 0000 1111
v2 = 0100 0011
0000 1111
OR 0100 0011
===========
0100 1111 = 7910
➔ v1 = 7910
Et v2 = 6710
Exercice 2
Avec PORTB = 0x08 et v = 4, évaluer l'expression suivante :
a. PORTB >>= v
PORTB = PORTB >> v
PORTB = 0000 1000 >> 4
PORTB = 0000 0000 1000 et bit C du STATUS = 1
➔ PORTB = 010
b. PORTB <<= v
PORTB = PORTB << v
PORTB = 0000 1000 << 4
PORTB = 0000 1000 0000 et bit C du STATUS = 0
➔ PORTB = 1000 0000 = 0x80 = 12810
Exercice 3
1. Avec v1 = 12 et v2 = 23, évaluer les expressions suivantes :
v1 = 1210 = 0000 1100
v2 = 2310 = 0001 0111
a. v1 = v1 >> 2 (ou v1 >>= 2)
v1 = v1 >> 2
v1 = 00 0000 1100
v1 = 0000 0011 = 310
b. v2 = v2 << 2 (ou v2 <<=2)
v2 = v2 << 2
v2 = 0001 0111 00
v2 = 0101 1100 = 9210
Exercice 4
Le microcontrôleur étant alimenté par 5 V, nous allons essayer de dimensionner la résistances R1 dans les
montages ci-dessous, selon les valeurs normalisées données au tableau suivant :
1. Dire avec quel état s'allume chacune des Leds des montages ci-dessus ?
Montage de GAUCHE → Etat 1
Montage de DROITE → Etat 0
2. Une Led rouge ( = 627 nm à 10 mA, VD = 1.95 V) est montée sur RA1 d'un PIC16F84. On demande
d'évaluer la résistance R1 à mettre pour avoir un courant ne dépassant pas environ 5 mA.
Loi des mailles ➔ - 5 + R1.IS + 1.95 = 0 ➔ R1 = 3,05/(5.10-3) = 610
E12 ➔ 560N < R1 < 680N (680N-610Cal = 70 et 610-560N = 50 ➔ R1 560
E24 ➔ 560N < R1 < 620N (620N -610Cal = 10 et 610Cal -560N = 50 ➔ R1 620
R1.IS
1.95V
5V
Exercice 5
Écrire un programme C pour mettre tous les bits du PORTB du PIC16F84 au niveau logique '1' puis à la
logique '0' (10 fois dans chacun des cas) avec des retards de ½ s entre les commutations (c.à.d. le passage de
'1' à`'0'). Nous supposons l'utilisation de l’instruction for pour créer une boucle qui répète les opérations
requises dix fois. Proposer la version standard du programme C.
void main()
{
char K ;
TRISB = 0 ; //=0x00 ou = 0b00000000
for(K = 0 ; K < 10 ; K++)
{
PORTB = 0xFF ; //=255 ou =0b11111111
Delay_ms(500) ;
PORTB = 0x00 ; //=0 ou =0b00000000
Delay_ms(500) ;
}
}
ECOLE POLYTECHNIQUE PRIVEE D'AGADIR
- 3 -© Propriété Exclusive de l'Ecole Polytechnique Privée d'Agadir Av. Hassan 1er, Cité Dakhla, Agadir - Tél : 028 23 34 34
TD Série N° 4
Module : Informatique Industrielle Enseignant : L. Bouhouch
Système de Management Qualité – ISO 9001, version 2000 V00
Exercice 6
Nous disposons de 8 LEDs qui sont connectées au PORTC du µC PIC16F876A cadencé par un quartz de
4 MHz.
Lorsqu'on initialise le microcontrôleur, les LEDs s'allument en alternance ("Chenillard") avec un délai
d’une seconde, en utilisant une temporisation logicielle grâce à la fonction Delay_ms(), de sorte qu’une
LED peut être en ON et puis en OFF.
Proposer un programme C qui réalise ce "Chenillard" en utilisant une variable qui sera décalée à gauche à
chaque cycle d'allumage.
Exercice 7
Génération d'un signal PWM (MLI) par le µC PIC16F876A cadencé par un quartz de 4 MHz.
Proposer un programme C qui permet de changer le rapport cyclique du module PWM-1, de 0% à 100%
grâce à une variable qui s'incrémente. Le signal généré est de 5 KHz de fréquence.
Si une LED est connectée à la sortie de ce module (RC2), nous observons un changement graduel de
l'illumination de cette LED. Nous pouvons également mesurer les changements par un oscilloscope.
Remarque : Afin de visualiser les changements de l'éclairement de la LED, nous introduisons un retard de
10 ms entre chaque cycle de changement du rapport cyclique.
void main()
{
unsigned char K = 100 ; // initialement cela correspond à un rapport cyclique de 39 pourcent
TRISC = 0 ;
PWM1_Init(5000) ;
PWM1_Start() ;
while(1)
{
PWM1_Set_Duty(K) ;
K++ ;
if (K > 255) K=0 ; //obligatoire uniquement si on déclare K de type int
delay_ms(10) ;
}
}