Évaluations de Logique Combinatoire
Évaluations de Logique Combinatoire
ÉVALUATIONS
SOLUTION CABLÉE
Evaluation n°1 :
Cocher la(les) réponse(s) correcte(s) :
Un additionneur est un circuit séquentiel.
Un additionneur est un circuit combinatoire.
Un additionneur binaire est un circuit combinatoire qui effectue l’addition de deux
nombres binaires et fournit à ses sorties le résultat en BCD.
Un additionneur BCD effectue l’addition de deux opérandes codées BCD et fournit le
résultat en BCD.
On peut réaliser une opération de soustraction en utilisant un additionneur.
Un comparateur est un circuit combinatoire dont l’état logique de ses entrées de mise
en cascade n’ont pas d’effet sur le résultat de la comparaison.
L’entrée de mise en cascade (A=B) d’un comparateur doit être mise au niveau logique
bas.
L’état logique des sorties d’un comparateur dépend toujours de l’état des entrées de
mise en cascade.
Evaluation n°2
Cocher la réponse correcte :
1. Un multiplexeur est un circuit combinatoire permettant de :
Transmettre un signal d’entrée parmi plusieurs vers une sortie.
Transmettre un signal d’entrée vers une sortie parmi plusieurs.
2. Un démultiplexeur est un circuit combinatoire présentant :
Plusieurs entrées de données et une sortie.
Une entrée de donnée et plusieurs sorties.
3. Pour transmettre une entrée de donnée parmi quatre vers la sortie, on utilise :
Un multiplexeur ayant une entrée de sélection.
Un multiplexeur ayant deux entrées d’adresse.
Un démultiplexeur 1 vers 4.
4. Un multiplexeur à 3 entrées d’adresse est un :
Multiplexeur 4 vers 1.
Multiplexeur 8 vers 1.
Evaluation n°3
Nom du circuit
Rôle du circuit combinatoire
combinatoire
Il joue le rôle d’un commutateur à plusieurs
positions afin d’aiguiller vers la sortie les ………………………..
informations de n’importe quelle entrée.
Il joue le rôle d’un commutateur à plusieurs
positions afin d’orienter les informations ………………………..
d’entrée vers la sortie choisie.
1
Evaluation n°4
Pour les montages 1 et 2, donner les valeurs logiques « 1 » ou « 0 » des sorties :
0 1 0
1 1 1
1 U1 0 U2 1 U3
5 4 5 4 5 4
A0 S0 A0 S0 A0 S0
1 3
14
A1 S1
1
13
0 3
14
A1 S1
1
13
0 3
14
A1 S1
1
13
A2 S2 A2 S2 A2 S2
12 10 12 10 12 10
A3 S3 A3 S3 A3 S3
6 6 6
0 2
B0
B1
0 2
B0
B1
1 2
B0
B1
15 15 15
1 11
B2
B3
1 11
B2
B3
0 11
B2
B3
Vcc
1 7
C0 C4
9 1 7
C0 C4
9 1 7
C0 C4
9
Montage 1 Montage 2
Figure 1 Figure 2
Evaluation n°5
On donne trois montages à base de circuit intégré 4560. Colorer en rouge, pour chaque cas, les
segments allumés des afficheurs à 7 segments.
1 1
0 0
1 U1 0 U2
15 13 15 13
A1 S1 A1 S1
0 1
A2 S2 12 1 1
A2 S2 12
3 11 3 11
A3 S3 A3 S3
5 10 5 10
A4 S4 A4 S4
14 14
1 2
B1 0 2
B1
B2 B2
4 4
1 6
B3 0 6
B3
B4 B4
1 7 9 0 Vcc 7 9
CI CO CI CO
0 1
4560 4560
Figure 4
Figure 3
0 1
1 0
1 U2 0 U3
15 13 15 13
A1 S1 A1 S1
0 1
3
A2 S2
12
11
1 1
3
A2 S2
12
11
A3 S3 A3 S3
5 10 5 10
A4 S4 A4 S4
14 14
B1 B1
2 2
0 4
B2
B3
0 4
B2
B3
6 6
0 B4 0 B4
7 9 7 9
1 CI CO 0 CI CO
0 4560 1 4560
Figure 5
2
Evaluation n°6
Soit le montage suivant :
Figure 6
Avec A:a3a2a1a0 et B: b3b2b1b0 sont des représentations codées en BCD.
1) Ecrire l’équation logique de Ec en fonction des sorties du circuit intégré CI1
Ec = ……………………………………………
2) Déterminer les états logiques de B4, B3, B2 et B1 de l’additionneur CI2 dans les deux cas suivants :
Evaluation n°7
Le circuit intégré 7485 est un comparateur binaire à 4 bits dont la table de fonctionnement est donnée
dans l’extrait du document constructeur.
3
2) Compléter le câblage du CI 7485 afin de comparer deux nombres binaires A(a 3a2a1a0) et B(b3b2b1b0)
R1 R2 R3 R4
Vcc 10k 10k 10k 10k
a0
a1
U1
10
A0
12
a2 13
A1
A2
15
A3
9
B0
11
a3 14
B1
B2
1
B3
2 7
A<B QA<B
3 6
b0 4
A=B
A>B
QA=B
QA>B
5
74HC85
b1
Q(A>B)
Q(A=B)
Q(A<B)
Vcc
b2
R9 R10 R11
b3 220 220 220
R5 R6 R7 R8
10k 10k 10k 10k
Figure 7
3) Pour A=6510 et B=13010. Combien de CI 7485 doit-on utiliser pour comparer ces deux nombres ?
………………………………………………………………………………………………………………………
4) Compléter le câblage du montage ci-dessous et préciser l’état logique des différents bits
(on prend A=6510 et B=13010).
b7
b6
b5
b4
b3
b2
b1
b0
a7
a6
a5
a4
a3
a2
a1
a0
14
15
13
12
10
11
4
3
2
1
14
15
13
12
10
11
4
3
2
1
9
7485
U2
7485
U1
A>B
A=B
A<B
B3
B2
B1
B0
A3
A2
A1
A0
A>B
A=B
A<B
B3
B2
B1
B0
A3
A2
A1
A0
Vcc
QA>B
QA=B
QA<B
QA>B
QA=B
QA<B
5
6
7
5
6
7
A>B
A=B
A<B
Figure 8
4
Evaluation n°8
On veut réaliser un additionneur BCD pour additionner deux chiffres codés BCD (A = a3 a2 a1 a0 et
B = b3b2b1b0). Cette opération peut être réalisée en deux étapes.
Additionner A et B (addition binaire),
Apporter une correction par l’ajout de (6)10si le résultat de l’addition est supérieur à 9.
A = a3 a2 a1 a0 9 = (1001)2
Additionneur Comparateur
B = b 3 b2 b1 b0 binaire Z3 Z2 Z1 Z0
Vcc
Figure 10
Evaluation n°9
Soit les schémas de câblage suivants :
Vcc A Vcc B
2 4 2 4
3
1A 1Y ? S1 3
1A 1Y ? S1
5
1B 7 5
1B 7
6
2A 2Y ? S2 6
2A 2Y ? S2
11
2B 9 11
2B 9
10
3A 3Y ? S3 10
3A 3Y ? S3
14
3B 12 14
3B 12
13
4A 4Y ? S4 13
4A 4Y ? S4
4B 4B
1 1
15
A/B 15
A/B
E E
74HC157 74LS158
Figure 11 Figure 12
Vcc C
Vcc D
8 10
4
3
X0 Y
5
? S1 7
X0
X1
Y ? S1
2
X1 6
6
X2
1
X2
X3
Y ? S2 5
4
X3
15 X4
14
X4 3
X5
13
X5 2
X6
12
X6 1
X7
X7 23
X8
22
11 X9
10
A 21
X10
9
B 20
X11
C 19
X12
18
7 X13
E 17
X14
16
74HC151 X15
15
14
A
13
B
C
Figure 13 11
9
D
E
74150
Circuit C ̅ C B A S2 S1
74151 …. … …. …. …. ….
Circuit D ̅ D C B A S1
74150 …. …. … …. …. ….
Evaluation n°10
Soit le schéma de câblage du CI 4555 ci-contre :
1) Identifier ce circuit :……………………………………………..
2) Compléter le tableau suivant :
E S2 S1 Q3 Q2 Q1 Q0
0 0 0 …. …. …. ….
0 0 1 …. …. …. ….
Q0
S1
0 1 0 …. …. …. …. 2
3
A Q0
4
5 Q1
B Q1
0 1 1 …. …. …. …. S2 Q2
6
1 0 0 …. …. …. ….
1
E Q3
7 Q2
1 0 1 …. …. …. …. E 4555 Q3
1 1 0 …. …. …. ….
Figure 15
1 1 1 …. …. …. ….
3) Quel est le rôle de l’entrée E : …………………………………………………………………………..
S1 14 12
A Q0
13 11
B Q1
S2 15
Q2
10
9
F
E Q3
4555 Figure 16
Evaluation n°11
1
3 W Figure 17
2
S1 S0
6
2) Compléter les tableaux suivants pour chaque combinaison de S0 et S1.
.
S1 S0 = 00 S1 S0 = 01 S1 S0 = 10 S1 S0 = 11
b a S b a S b a S b a S
0 0 …… 0 0 …… 0 0 …… 0 0 ……
0 1 …… 0 1 …… 0 1 …… 0 1 ……
1 0 …… 1 0 …… 1 0 …… 1 0 ……
1 1 …… 1 1 …… 1 1 …… 1 1 ……
Evaluation n°12
En se référant au datasheet du circuit 74LS381 et au schéma structurel
ci-contre :
3 8
A0 F0
1 9
A1 F1
1) Préciser 19
A2 F2
11
17 12
La combinaison binaire de A3 F3
S2S1S0 = ...…..… 4
2
B0
L’état logique de CN = ..…
B1
18
B2
16
La fonction à réaliser : B3
G
13
…………………………..……. 15
CN P
14
5
S0
6
S1
7
S2
7
SOLUTION PROGRAMMÉE
Evaluation n°13
Un parking public présente deux issus à l’entrée
et deux issus à la sortie. L’accès à ce parking
est autorisé ou refusé en fonction du nombre de
places disponibles.
NE2 NE1
13 OSC1/CLKIN RB0/INT 33
14 OSC2/CLKOUT RB1 34
RB2 35
2 36
VE 3
RA0/AN0
RA1/AN1
RB3/PGM
RB4 37
4 RA2/AN2/VREF-/CVREF RB5 38
5 39
VS 6
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RB6/PGC
RB7/PGD 40
7 RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI 15
8 RE0/AN5/RD RC1/T1OSI/CCP2 16
9 RE1/AN6/WR RC2/CCP1 17
10 RE2/AN7/CS RC3/SCK/SCL 18
RC4/SDI/SDA 23
1 MCLR/Vpp/THV RC5/SDO 24
RC6/TX/CK 25
RC7/RX/DT 26
RD0/PSP0 19
Somme
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28
RD6/PSP6 29
RD7/PSP7 30
PIC16F877A
Figure 20
NS1 NS1
8
L’affichage du résultat de l’addition de l’un des nombre NS ou NE est en binaire,
compléter le programme en MikroC ci-après :
Programme Commentaires
char NE,NS ,NE1,NE2,NS1,NS2; //Déclaration des variables
sbit VE …………………………..; //Déclaration de la variable VE
……………..at PORTA.B1; //Déclaration de la variable VS
voidmain() { //Début du programme principal
TRISA=0x….; ADCON1=0x….;
TRISB=0x….; TRISC=0x….; //Configuration des registres
TRISD=…;
PORTD=…; //Initialisation du port D
while (1) { //Début de la boucle tant que
//Condition de calcul et affichage
if ((VE==1)…… (VS==0))
de NE
{
NE1=(PORTB … 0X0F); //Etablir la valeur de NE1
NE2=(PORTB)>>4; //Etablir la valeur de NE2
NE= ……………………; // Calcul du nombre NE
//Afficher la valeur de NE en
PORTD=NE;
binaire
}
else
//Condition de calcul et affichage
…((……….)&&(VE==0))
de NS
{
NS1=(……………….& 0X0F); //Etablir la valeur de NS1
NS2=(……………….>>4); //Etablir la valeur de NS2
…………………….; // Calcul du nombre NS
//Afficher la valeur de NS en
…………………....;
binaire
}
else
PORTD=0;
…….. // Fin de la boucle tant que
} //Fin du programme principal
9
NE
13 33
NGD NGU
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
35
RB2
2 36
RA0/AN0 RB3/PGM
3 37
RA1/AN1 RB4
4 38
VG 5
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RB5
RB6/PGC
39
6 40
RA4/T0CKI/C1OUT RB7/PGD
7
RA5/AN4/SS/C2OUT
15
RC0/T1OSO/T1CKI
8 16
RE0/AN5/RD RC1/T1OSI/CCP2
9 17
RE1/AN6/WR RC2/CCP1
10 18
RE2/AN7/CS RC3/SCK/SCL
23
RC4/SDI/SDA
1 24
MCLR/Vpp/THV RC5/SDO
25
RC6/TX/CK
26
RC7/RX/DT
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877A
Figure 21
NS
Programme Commentaires
char NE, NS, NG, NGU, NGD;
………………………………..; //Déclaration de la variable VG
void main() {
TRISA=0x…..; ADCON1=0x…..; //Configuration des registres
TRISB=0x…..; TRISC=0x……;
TRISD=…..;
PORTD=0;
while (1) {
if (VG==1)
{
NE=PORTB & 0x1F ; //………………………………………
NS=PORTC & 0x1F; //………………………………………
………………….; //Calcul du nombre NG
NGU= …………………; // Unités de NG
………= NG/10; //Dizaines de NG
PORTD=NGU +16*NGD; //Affichage de la valeur de NG
}
else PORTD=0;
}
}
10
Etude d’un comparateur
La partie commande du système de gestion du parking réalise la comparaison des deux
nombres binaires NG et NC représentant respectivement le nombre de voitures garées NG et
la capacité du parking NC.
On se propose de compléter le programme ci-dessous qui assure la comparaison entre deux
mots binaires NG et NC à 5 bits chacun et afficher le résultat sur un afficheur 7 segments (à
cathodes communes).
Une entrée de validation (VG) est reliée à la broche RE0 permet d’autoriser la comparaison.
Si NG>NC alors l’afficheur affiche S (Comme supérieur);
Si NG=NC alors l’afficheur affiche E (Comme égale) ;
Si NG<NC alors l’afficheur affiche I (Comme inférieur).
Figure 22
RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28
RD6/PSP6 29
RD7/PSP7 30
PIC16F877A
Figure 23
NC NG
11
Programme Commentaires
char…….,……….; //Déclarer deux variables NG et NC de type octet
# define VG RE0_bit
void main()
{
ADCON1=0x……; // PortA configuré en entrées numériques
………….…;……………….; // Configuration des portB et portc
………….…;……………….; // Configuration des portD et portE
……………………; //Initialisation du portB à 0
while (1)
{
PORTB=0;
while (VG=1)
{
NC= (PORTC & 0X1F); //Etablir la valeur de NC
…………………………; // Etablir la valeur de NG
if (…………….) PORTB=0x…….; // Afficher E
if (NG>NC) PORTB=0x ……….; //…………………………………
if (……………..) PORTB= 48; //…………………………………
}
}
}
Evaluation n°14
Etude d’une UAL :
Le microcontrôleur 16F877 est utilisé pour réaliser des opérations arithmétiques et logiques.
Soient A et B deux mots binaires à 4 bits et S le résultat de l’opération effectuée.
A (a3,a2,a1,a0), B(b3,b2,b1,b0) et S(S4,S3,S2,S1,S0), S4 étant la retenue.
Les entrées de sélection des opérations à réaliser sont affectées aux bits RE0, RE1, RE2 du
PORTE.
Le tableau ci-dessous résume le fonctionnement de L’UAL.
Bits de sélection
Opérations
RE2 RE1 RE0
0 0 1 A OR B
0 1 0 A AND B
0 1 1 A XOR B
1 0 0 A-B
1 0 1 A+B
1 1 0 A*B
1 1 1 A/B
12
En se référant au tableau de fonctionnement et au schéma de câblage ci-dessous,
compléter le programme en MikroC permettant de réaliser les différentes opérations
arithmétiques et logiques.
N.B : Utiliser des fonctions spécifiques pour chaque opération.
Résultat (S)
13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
35
RB2
2 36
RA0/AN0 RB3/PGM
3 37
RA1/AN1 RB4
4 38
RA2/AN2/VREF-/CVREF RB5
5 39
RA3/AN3/VREF+ RB6/PGC
6 40
RA4/T0CKI/C1OUT RB7/PGD
Entrée de selection
7
RA5/AN4/SS/C2OUT
15
RC0/T1OSO/T1CKI
8 16
RE0/AN5/RD RC1/T1OSI/CCP2
9 17
RE1/AN6/WR RC2/CCP1
Entrées de 10
RE2/AN7/CS RC3/SCK/SCL
18
sélection 1
MCLR/Vpp/THV
RC4/SDI/SDA
RC5/SDO
23
24
A
25
(E) RC6/TX/CK
26
RC7/RX/DT
19
RD0/PSP0 20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3 27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
RD7/PSP7
30
B
PIC16F877A
Figure 24
TRISB=0B……………..; TRISC=255;
void ET_logique ()
TRISD=………………; TRISE=7;
{ S= ………………………..; } PORTB=…………………………….;
void OU_logique () while (1)
{ S= ……………………… ;} {
void OU_exclusive () A= (PORTC & 0X0F);
{ S= (A ^ B) ; } B=(PORTD &……...);
void addition () E= PORTE;
{S= …………………...;} PORTB=S;
void soustraction () if (E==……) ET_logique();
{ S= ……………………; } if (E==…...) OU_logique();
void………………………… if (E==3) OU_exclusive();
{ S= (A * B) ; } if (E==4).………………….…;
void division () if (E==5) ……………………..;
{ S= ……………… ; } if (E==6) multiplication();
void main() if (E==……) division();
{ }
ADCON1=0x87; }
13