Logique combinatoire, Lecture notes of Electronics

Exercises with notes and a how system combinatory work

Typology: Lecture notes

2025/2026

Uploaded on 01/28/2026

mohamed-jarraya
mohamed-jarraya 🇹🇳

2 documents

1 / 30

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
LOGIQUE COMBINATOIRE
FONCTIONS COMBINATOIRES
Addition binaire
I. Définition
L’addition de deux nombres binaires est réalisée exactement comme
l’addition en décimal. La fonction addition binaire donne une somme (S) et un
bit retenu désigné par (C) selon le résultat de calcul.
II. Addition de deux bits
Dans la table (figure 1), les deux bits A et B ont 4 combinaisons. A chacune
d’elles correspond une somme binaire.
Fig. 1
Dans la ligne 4, la somme en binaire = (10)2. Le résultat 10 est composé de
deux bits :
le bit à droite est désigné par S0 (somme) ;
le bit à gauche est désigné par C1 (Carry : Retenu en français).
III. Demi-additionneur
III.1. Définition
Le demi-additionneur (figure 2) est une fonction combinatoire réalisant
l’addition de deux nombres binaires à 1 bit sans retenue
antérieure.
Un demi-additionneur est défini par (A1, B1) → (S1, C1),
avec :
A1 et B1 : les deux nombres binaires (bits) à
additionner ;
S1 : la somme de A1 et de B1 ;
C1 : la retenue de cette somme.
III.2. Etude d’un demi-additionneur
Fig. 2
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Partial preview of the text

Download Logique combinatoire and more Lecture notes Electronics in PDF only on Docsity!

LOGIQUE COMBINATOIRE

FONCTIONS COMBINATOIRES

Addition binaire

I. Définition

L’addition de deux nombres binaires est réalisée exactement comme

l’addition en décimal. La fonction addition binaire donne une somme (S) et un

bit retenu désigné par (C) selon le résultat de calcul.

II. Addition de deux bits

Dans la table (figure 1 ), les deux bits A et B ont 4 combinaisons. A chacune

d’elles correspond une somme binaire.

Fig. 1

Dans la ligne 4 , la somme en binaire = ( 10 ) 2. Le résultat 10 est composé de

deux bits :

 le bit à droite est désigné par S 0 (somme) ;

 le bit à gauche est désigné par C1 (Carry : Retenu en français).

III. Demi-additionneur

III.1. Définition

Le demi-additionneur (figure 2 ) est une fonction combinatoire réalisant

l’addition de deux nombres binaires à 1 bit sans retenue

antérieure.

Un demi-additionneur est défini par (A1, B1) → (S1, C1),

avec :

 A1 et B1 : les deux nombres binaires (bits) à

additionner ;

 S1 : la somme de A 1 et de B 1 ;

 C1 : la retenue de cette somme.

III.2. Etude d’un demi-additionneur

Fig. 2

La figure 3 présente la table de vérité, l’équation de S1 et celle de C1 ainsi

que le logigramme.

Fig. 3

IV. Additionneur complet

IV.1. Définition

Un additionneur complet nécessite trois entrée An, Bn et la troisième pour la

retenue de l’addition immédiatement précédente désignée par (Cn-1).

(An, Bn, Cn-1) → (Sn, Cn)

IV.2. Equations logiques

La figure 4 présente la table de vérité et les équations logiques de Sn et Cn.

Fig.. 4

IV.3. Logigramme et modélisation

Fig. 5

V. Additionneur de deux nombres à 4 bits

La modélisation (figure 6 ) montre qu’il est possible d’associer plusieurs

additionneurs complets afin de réaliser l’addition de deux nombres à n bits.

LOGIQUE COMBINATOIRE

FONCTIONS COMBINATOIRES

Solution programmée d’un additionneur de

deux nombres binaires

I. Schéma du circuit

Un additionneur de deux nombres à 4 bits est réalisé avec une carte

électronique à base de microcontrôleur du type PIC16F876A (figure 1 ).

Fig. 1

II. Programme

Structure Algorithme Programme

Déclaration Déclarer 4 variables du type entier : NA et NB sont deux nombres à 4 bits chacun, C0 représente la retenue précédente et NS représente la somme. char NA, NB, NS, C0 ; DEBUT Mot clé du début du programme void main() { Orientation des ports et initialisation des variables de sortie Configurer le port B trisB =0b11111111; Configurer le port C trisC =0b11111111; Configurer le port A trisA =0b11100000; Configurer le port A en numérique adcon1 =0x06; Initialiser NS à 0 NS=0; Corps du programme Boucle répétitive TANT QUE (vraie) DÉBUT While (1) { Lecture du contenu binaire du port B NA = PortB; Masquer les 4 bits (B7 ...B4) NA=NA & 0x0F; Lecture du contenu binaire du port B NB = PortB; Masquer les 4 bits (B3 ...B0) NB=NB & 0xF0; Décalage à droite de 4 bits NB = NB >> 4; Lecture du contenu binaire du port C C0 = PortC; Ns = A plus B plus C0 NS = NA + NB + C0 ; Afficher la somme S sur le port A PortA = NS; Fin TANT QUE } FIN Fin du programme }

Fig. 2

II. Codeur intégré Décimal / BCD

Le circuit intégré 74LS147 (figure 3 ) est un codeur de priorité Décimal/ BCD. Il dispose de 9 entrées et quatre sorties produisant 10 codes BCD. Ses entrées et ses sorties sont complémentés. Il est dit de priorité car en cas où plusieurs entrées sont simultanément actives, c’est l’entrée de plus fort poids qui l’emporte. Fig. 3

II.1. Extrait du document technique

La figure 4 représente un extrait du document technique du circuit intégré

Fig. 4

Plus d’information dans la datasheet du circuit intégré 74147.

III. Solution programmée d’un codeur Décimal BCD

III.1. Schéma du circuit

Le schéma du circuit (figure 5 ) est à base d’un microcontrôleur du type

PIC16F628A. Elle illustre la fonction codage Décimal / BCD.

Fig. 5

LOGIQUE COMBINATOIRE

FONCTIONS COMBINATOIRES

I. Fonction Décodage BCD / Décimal

I.1. Définition

La fonction décodage BCD / Décimal consiste à convertir chaque quartet du

nombre codé en BCD (N)BCD en un chiffre décimal en commençant par la

droite. Le résultat obtenu est (N) 10.

I.2. Etude de la fonction décodage BCD / Décimal

La figure 1 présente l’étude d’un décodeur BCD / Décimal par :

 sa modélisation ;

 sa table de vérité^ ;

 les équations des variables de sorties.

FIg. 1

II. Solution programmée de la fonction décodage BCD /

Décimal

II.1. Schéma du circuit

La fonction décodage BCD / Décimal est illustrée par une carte électronique à

base de microcontrôleur du type PIC16F876A (figure 2 ).

Fig. 2

II.2. Programme

Algorithme Programme

Mot clé du début du programme DÉBUT DU PROGRAMME void main() { Configurer le port A en entrées trisA = 0xFF; Configurer le port B en sorties trisB = 0x00; Configurer RC0 et RC1 en sorties TrisC=0xFC; Configurer le port A en numérique ADCON1 =6; Initialiser ..... PortB =0; PortC.B0 = 0; PortC.B 1 = 0; TANT QUE (vraie) DÉBUT While (1) { SELON (PORT A ) DÉBUT Switch (portA) { Cas portA →0 : PortB  1  PortC  0, Sauter, case (0x00) : portb = 1; portC = 0; break; Cas portA →1 : PortB  2  PortC  0, Sauter, case (0x01) : portb = 2; portC = 0; break; Cas portA →2 : PortB  4  PortC  0, Sauter, case (0x02) : portb = 4; portC = 0; break; Cas portA →3 : PortB  8  PortC  0, Sauter, case (0x03) : portb = 8; portC = 0; break; Cas portA →4: PortB  16  PortC  0, Sauter, case (0x04) : portb = 16; portC = 0; break; Cas portA →5: PortB  32  PortC  0, Sauter, case (0x05) : portb = 32; portC = 0; break; Cas portA →6: PortB  64  PortC  0, Sauter, case (0x06): portb = 64; portC = 0; break; Cas portA →7: PortB  128  PortC 0, Sauter, case (0x07) : portb=128;portC = 0; break; Cas portA →8 : PortB  0  PortC 1, Sauter, case (0x08) : portb = 0; portC = 1; break; Cas portA → 9 : PortB  0  PortC  2, Sauter, case (0x09) : portb = 0; portC = 2; break; Défaut : PortB  0  PortC 0, Sauter, default : portb = 0; portC = 0; break; Fin SELON } Fin TANT QUE } Fin du programme }

III. Décodeur intégré BDC / Décimal

LOGIQUE COMBINATOIRE

FONCTIONS COMBINATOIRES

I. Fonction Transcodage BCD 7segments

I.1. Définition

Cette fonction consiste à convertir chaque quartet d’un nombre codé en BCD

en un nombre codé dans un format de 7bits appelé 7segments. Ce code est

utilisé pour alimenter un afficheur 7segments. Le chiffre (de 0 à 9) affiché est

équivalent au quartet correspondant du code BCD appliqué en entrée.

I.2. Afficheurs 7 segments

L'afficheur est composé de 7 LED (segments) a, b, c, d, e, f et g alimentées

séparément. Ces diodes ont une connexion commune au niveau des anodes

ou au niveau des cathodes. Ainsi, un afficheur, en fonction du type (anode

commune ou cathode commune) nécessite une polarisation spécifique.

FIg. 1

I.2.1. Afficheur à cathode commune

La figure ( 1 ; a) montre que toutes les cathodes sont reliées et connectées au

potentiel bas (GND). La commande de chaque segment se fait par son anode

mise au potentiel haut.

I.2.2. Afficheur à anode commune

La figure ( 1 ; b) montre que toutes les anodes sont reliées et connectées au

potentiel haut (VCC). La commande de chaque segment se fait par sa

cathode mise au potentiel bas.

I.2.3. Exemple (figure 2 )

 Chiffre 1 est affiché en alimentant les segments b et c ;

 Chiffre 5 est affiché en alimentant les segments a, c, d, f, g ;

 etc.

Fig. 2

I.3. Modélisation

Fig. 3

I.4. Table de vérité

Les variables de sortie sont pour un afficheur à cathode commune (figure 4 ).

Fig. 4

I.5. Equations logiques (figures 5 à 11 )

Equation du segment a Equation du segment b

Fig. 5 Fig.^6

Equation du segment c Equation du segment d

Fig. 7 Fig. 8

Equation du segment e Equation du segment f

Fig. 13

I.6.3. Informations associées au document constructeur

 H : niveau Haut (High level) ;

 L : niveau Bas (Low level) ;

 X: Indifférent ;

 LT: entrée de test de l'afficheur (Lamp-test input) ;

 RBI^ : entrée d'extinction de l'afficheur (Ripple blanking input)

BI/RBO: ligne de commande d'extinction de l'afficheur (Blanking input

or ripple blanking output) ;

 Note : les broches RBI et RI/RBO permettent l'extinction de l'afficheur

qui

représente un 0 non significatif d'un nombre (exemple : 0001 sera 1,

les 0 non significatifs ne sont pas affichés).

I.6.4. Schéma à base du circuit intégré 74LS48 (transcodeur BCD/

segments)

Fig. 14

I.7. Solution programmée de la fonction transcodage BCD / 7 segments

I.7.1. Schéma du circuit

La fonction transcodage BCD / 7 segments est illustrée par une carte

électronique à base de microcontrôleur du type PIC16F876A (figure 15 ).

Fig. 15

I.7.2. Programme

Algorithme Programme Variable d'entrée i reliée au port b Tableau de 10 cases du type constantes: début Case 1 ← 0 en fonction de gfedcba codé en Hex Case 2 ← 1 en fonction de gfedcba codé en Hex Case 3 ← 2 en fonction de gfedcba codé en Hex Case 4 ← 3 en fonction de gfedcba codé en Hex Case 5 ← 4 en fonction de gfedcba codé en Hex Case 6 ← 5 en fonction de gfedcba codé en Hex Case 7 ← 6 en fonction de gfedcba codé en Hex Case 8 ← 7 en fonction de gfedcba codé en Hex Case 9 ← 8 en fonction de gfedcba codé en Hex char i at portb ; const afficheur[10] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f,

LOGIQUE COMBINATOIRE

FONCTIONS COMBINATOIRES

I. Afficheurs 7 segments

FIg. 1

I.1. Afficheur à cathode commune

La figure ( 1 ; A) montre que toutes les cathodes sont reliées et connectées au

potentiel bas (GND). La commande de chaque segment se fait par son anode

mise au potentiel haut.

I.2. Afficheur à anode commune

La figure ( 1 ; B) montre que toutes les anodes sont reliées et connectées au

potentiel haut (VCC). La commande de chaque segment se fait par sa

cathode mise au potentiel bas.

I.3. Exemple (figure 2 )

 Chiffre 1 est affiché en alimentant les segments b et c ;

 Chiffre 5 est affiché en alimentant les segments a, c, d, f, g ;

 etc.

Fig. 2

I.4. Modélisation

Fig. 3

II. Solution programmée

II.1. Schéma du circuit

La fonction transcodage BCD / 7 segments est illustrée par une carte

électronique à base de microcontrôleur du type PIC16F876A (figure 4 ).

Fig. 4

II.2. Programme

Algorithme Programme Variable d'entrée i reliée au port b Tableau de 10 cases du type constantes: début Case 1 ← 0 en fonction de gfedcba codé en Hex Case 2 ← 1 en fonction de gfedcba codé en Hex Case 3 ← 2 en fonction de gfedcba codé en Hex Case 4 ← 3 en fonction de gfedcba codé en Hex Case 5 ← 4 en fonction de gfedcba codé en Hex Case 6 ← 5 en fonction de gfedcba codé en Hex Case 7 ← 6 en fonction de gfedcba codé en Hex Case 8 ← 7 en fonction de gfedcba codé en Hex Case 9 ← 8 en fonction de gfedcba codé en Hex Case 10← 9 en fonction de gfedcba codé en Hex fin char i at portb ; const afficheur[10] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f }; Mot clé du début du programme DÉBUT DU PROGRAMME void main() { Configurer le port B trisb =0x0f; Configurer le port C trisc =0x00; Initialiser port C à 0 portc=0; Initialiser i à 0 i=0; TANT QUE (vraie) DÉBUT While (1) { PortC ← contenu du tableau portc = afficheur[i]; Fin TANT QUE } Fin du programme }