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 }