Exercice 1:: Mot A
Exercice 1:: Mot A
Exercice 1:: Mot A
SW -DIP4
BP_COMPARE MOT B
1 8
2 7
13 33 3 6
OSC1/CLKIN RB0/INT
14 34 4 5
OSC2/CLKOUT RB1
1 35
MCLR/Vpp/THV RB2
36 SW -DIP4
RB3/PGM
16
15
14
13
12
11
10
2 37
9
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4
RA2/AN2/VREF- RB6/PGC
39 RN1
5 40 RX8
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
1
2
3
4
5
6
7
8
R1 7
RA5/AN4/SS RC0/T1OSO/T1CKI
15 Q1
3k3 16 2N2222
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25 R3
RC6/TX/CK
26
RC7/RX/DT
3k3
8 * 270
19 1 16
RD0/PSP0
20 2 15
RD1/PSP1
21 3 14
RD2/PSP2
22 4 13
RD3/PSP3
27 5 12
RD4/PSP4
28 6 11
RD5/PSP5
29 7 10
RD6/PSP6
30 8 9
RD7/PSP7
PIC16F877
Soit à comparer deux nombres binaires A et B à 4 bits chacun (voir figure ci-dessus). Donner le
programme en assembleur qui permet de comparer et d’afficher le Min des 2 nombres sur un afficheur 7
segments; afficher : si A> B, et si A<B.
Le programme consiste à introduire les valeurs de A et B (interrupteurs), ensuite appuyer sur le bouton poussoir
BP_COMPARE pour réaliser la comparaison, puis afficher le résultat sur l’afficheur.
Exercice 2 :
Donner le programme qui permet de réaliser le comptage des nombres de 0 jusqu’à la valeur
MOD -1 ainsi que l’affichage de ces nombres sur un afficheur 7 segments à anode commune. La
valeur maximale est introduite en ‘binaire’ via les interrupteurs « MOD » et l’incrémentation des
nombres se fait en utilisant les interruptions générées par des fronts descendants sur la ligne RB0/INT
connectée au bouton poussoir BP_INC.
vcc VCC
MOD
1 8
R 2 7
3k3 3 6
4 5
SW -DIP4
16
15
14
13
12
10
11
13 33
9
OSC1/CLKIN RB0/INT
14 34
BP_INC
OSC2/CLKOUT RB1
1
MCLR/Vpp/THV RB2
35 8 * 4.7K
36
RB3/PGM
2 37
RA0/AN0 RB4
1
2
3
4
5
6
7
8
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
7
RA5/AN4/SS RC0/T1OSO/T1CKI
15 R1 Q1
16 2N2222
RC1/T1OSI/CCP2
8 17 3k3
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
RC6/TX/CK
26
RC7/RX/DT 8 * 270
19 1 16
RD0/PSP0
20 2 15
RD1/PSP1
21 3 14
RD2/PSP2
22 4 13
RD3/PSP3
27 5 12
RD4/PSP4
28 6 11
RD5/PSP5
29 7 10
RD6/PSP6
30 8 9
RD7/PSP7
PIC16F877
MIN VCC
vcc OFF ON
8 1
7 2
6 3
5 4
BP-DECOMPTAGE
16
15
14
13
12
11
10
9
13 33
OSC1/CLKIN RB0/INT
14
OSC2/CLKOUT RB1
34 8 * 4.7K
1 35
MCLR/Vpp/THV RB2
36
RB3/PGM
1
2
3
4
5
6
7
8
2 37
RA0/AN0 RB4
3 38
4
RA1/AN1 RB5
39 AFFICHEUR
RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD 8 * 270
R 6
RA4/T0CKI
3k3 7 15 1 16 a
RA5/AN4/SS RC0/T1OSO/T1CKI
16 2 15
RC1/T1OSI/CCP2
8 17 3 14
RE0/AN5/RD RC2/CCP1
9 18 4 13
RE1/AN6/WR RC3/SCK/SCL
10 23 5 12
RE2/AN7/CS RC4/SDI/SDA
24 6 11
RC5/SDO g
25 7 10
RC6/TX/CK
26 8 9
RC7/RX/DT
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
RD4/PSP4
27 R1 Q1
28 2N2222
RD5/PSP5
29 3k3
RD6/PSP6
30
RD7/PSP7
PIC16F877
Exercice 4 :
Un moteur d’essuie-glaces est commandé par un interrupteur C et un commutateur à trois
positions E, I et OFF (voir schéma). Le fonctionnement des essuie-glaces n’est possible que si le
contact C est fermé. La position E permet de faire fonctionner continuellement le moteur des essuie-
glaces, par contre le fonctionnement en mode intermittent est assuré par la position I. Un contact de
fin de course FC, lié au mécanisme, permet de remettre les essuie-glaces en leur position initiale
(position initiale Fc ouvert). Le positionnement du commutateur en position OFF entraîne l’arrêt du
moteur une fois les essuie-glaces en position initiale.
Donner le programme en assembleur qui permet de réaliser la commande du moteur.
VCC
12V
VCC
RL1
13 33
OSC1/CLKIN RB0/INT
14
OSC2/CLKOUT RB1
34 D1
1 35
E MCLR/Vpp/THV RB2
36
RB3/PGM
2 37
RA0/AN0 RB4
3 38
OFF RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
5
RA3/AN3/VREF+ RB7/PGD
40 R3 Q1
6 2N2222
I 7
RA4/T0CKI
15
RA5/AN4/SS RC0/T1OSO/T1CKI 3k3
16
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
FC RC6/TX/CK
26
RC7/RX/DT MOTEUR
19
RD0/PSP0
20
RD1/PSP1
3k3 3k3 21
RD2/PSP2
22
RD3/PSP3
27 +88.8
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877