Vous êtes sur la page 1sur 2

Faculté de technologie Master – Electronique des

Département Ingénierie des systèmes systèmes embarqués S3


électriques
Dr. KAOUANE Mohamed Module : Systèmes Embarqués 2021/2022

TD/TP 01 : Les entrées-sorties numériques - corrigé

Exercice 1 :
R4(1)
Le code suivant permet de faire clignoter une LED sur une période de 400ms

R5 R4
10k 10k
U1
program CODE1 9 21
OSC1/CLKIN RB0/INT
main: 10
OSC2/CLKOUT RB1
22
23
TRISC = 0 2
RB2
24
RA0/AN0 RB3/PGM
PORTC = 0 3
RA1/AN1 RB4
25
4 26
m: RA2/AN2/VREF-/CVREF RB5
5 27
RA3/AN3/VREF+ RB6/PGC
6 28
PORTC.0 = 1 7
RA4/T0CKI/C1OUT RB7/PGD
RA5/AN4/SS/C2OUT R1
delay_ms(200) RC0/T1OSO/T1CKI
11
1 12
PORTC.0 = 0 MCLR/Vpp/THV RC1/T1OSI/CCP2
13
150
D1
RC2/CCP1
delay_ms(200) RC3/SCK/SCL
14 R2 R
15 G K
goto m RC4/SDI/SDA
16 150
B
RC5/SDO
end. 17 RGBLED-CC
RC6/TX/CK
18 R3
RC7/RX/DT
PIC16F876A 150

1.1. Proposer d’autres syntaxes du même programme (Utiliser while TRUE wend, NOT …)

1.2. Proposer un programme permettant de changer la couleur de la LED toutes les 200ms
(basculement entre les trois couleurs (rouge, vert et bleu).
Exercice 2 :
L’algorithme suivant permet d’allumer/éteindre une LED à l’aide d’un seul bouton poussoir
Chaque fois que le bouton est appuyé et ensuite relâché, la LED change d’état (ON-OFF)
Le changement d’état se fait une fois que le bouton est relâché (front montant de l’impulsion)
2.1. Modifier l’algorithme pour avoir des changements d’état en front descendant de l’impulsion

RC0 = 0 RC0 = 0
m m

Non Oui Non Oui


RB0 = 0 RB0 = 0
k
RC0 = NOT RC0
Non Oui k
RB0 = 1
Non Oui
RB0 = 1
RC0 = NOT RC0

2.2. Donner les deux programmes

2.3. On veut utiliser deux boutons, le premier pour allumer la LED avec un signal maintenu et le
deuxième pour l’éteindre.
- Proposer un algorithme et donner le programme

RC0 = 0
m

Non Oui
RB1 = 0

Non Oui
RB0 = 0

RC0 = 1 RC0 = 0

Vous aimerez peut-être aussi