Vous êtes sur la page 1sur 7

Génie

Electrique

Classe : Bac Technique

Série N°17 : Devoir de Révision 2

Dossier Réponses

---------------------------------
S

Nom du Prof :

Abdellaoui Hichem
G.E
I. Etude du circuit de gestion de l’approvisionnement en intercalaires (décompteur C3)
Se référer, dans cette partie, à la paragraphe DT4 du dossier technique.
1. Etude du circuit C.I 4029 :
En se référant au « chronogramme du circuit 4029 »
a. Identifier le mode de fonctionnement du circuit pour chaque intervalle de temps :
➢ [ t1 , t2 ] : ………………………………………………………………………………..
➢ [ t2 , t3 ] : ………………………………………………………………………………..
➢ [ t3 , t4 ] : ………………………………………………………………………………..
b. Compléter le tableau suivant relatif à la description du CI 4029 :
Désignation N° broche Activation (Haut/Bas) Fonction
𝑩/𝑫̅ ………… ……………………. …………………………………………………………….
𝑼/𝑫̅ ………… ……………………. ……………………………………………………………..
………………… ………… ……………………. Autorisation de comptage
………………. ………… …………………… Chargement parallèle
VSS ……….. …………………………………………………………….
VDD ………. ……………………………………………………………..
c. Compléter le tableau suivant relatif au fonctionnement du CI 4029 :

Etat précédant Etat suivant


PL ̅̅̅̅
𝑪𝑬 ̅
𝑩/𝑫 ̅
𝑼/𝑫 ABCD MODE
CP QDQCQBQA QDQCQBQA
1 1 1 1 X 1110 1111 ………. …………..……………
0 0 1 1  1110 0110 ………. …………………………
0 1 1 1  1110 1110 ……….
…………………………
0 1 1 0  1110 1110 ……….
1 1 0 1 X 0000 1001 ………. …………………..……
0 1 0 0  1110 1001 ……….
…………………………
0 1 0 1  1110 1001 ……….

2. Etude du décompteur intercalaire :


Le bac de stockage des intercalaires possède une capacité maximale de 75, pour ce fait on désire
faire la gestion de ce stock en utilisant un décompteur BCD synchrone telle que : Si au cours du
fonctionnement, la quantité d’intercalaires est totalement utilisée, le système s’arrête Et enclenche
une alarme, après que l’opérateur place 75 intercalaires dans la zone correspondante, il réinitialise
l’alarme et autorise un nouveau cycle de comptage par impulsion sur le bouton poussoir S.
a. Déduire le modulo de ce compteur et préciser son cycle de fonctionnement
• Modulo : ………………………………………………………………….
• Cycle de fonctionnement : ……………………………………………..

1
G.E
b. Préciser l’état logique des différentes variables pour réaliser ce mode de fonctionnement

PL ̅̅̅̅
𝑪𝑬 ̅
𝑩/𝑫 ̅
𝑼/𝑫
CP
… …. ….. ….. MD3

c. Compléter les liaisons manquantes assurant le bon fonctionnement du montage en :

➢ Précisant les valeurs de chargement des deux circuits (P3P2P1P0)


➢ La mise en cascade synchrone des circuits
➢ La validation du circuit décompteur unités
➢ Les entrées du comparateur 7485 assurant la validation du comptage après initialisation par S
➢ L’entrée de chargement PL à la sortie convenable

MD3
Afficheur Unités

Bascule RS
Alarme AL
S Q
Afficheur Dizaines

II. Etude du circuit de gestion de l’approvisionnement en carton épais (compteur C2)


Dans le but d’avoir un approvisionnement équilibré entre les trois éléments (limiter le temps
d’approvisionnement en une seule intervention) on désire calibrer compteur C2 des cartons épais

2
G.E
1. En se référant à la description du système au dossier technique page 1/5 déduire en le justifiant
la capacité convenable du stock des cartons épais
………………………………………………………………………………………………………………………
2. Déduire le modulo du compteur C2 ainsi que son cycle de comptage
Modulo : …………… Cycle de comptage : …………………………………………………………
3. Déduire les valeurs logiques des entrées de pré chargement :
Circuit 1(LSQ) : P3P2P1P0 =………………… Circuit 2(MSQ) : P3P2P1P0 =…………………
4. Déduire la combinaison de recyclage de ce compteur ; justifier ?
…………………………………………………………………………………………………………..
5. Compléter les liaisons manquantes au montage pour assurer le bon fonctionnement du montage
➢ Mise en cascade asynchrone des circuits 4029 ;
➢ Le label adéquat au signal d’horloge (CP) ;
➢ Les entrées de mise en cascade du comparateur ;

……

Q0
Q1
Q2
Q3

Bascule RS
Alarme AL
S Q

R
Q4
Q5
Q6
Q7

3
G.E
III. Etude du circuit décompteur C3 en logique programmée :
Pour cette partie se référer au dossier technique page 4/5
1. Justifier le choix de la broche RB0/INT pour brancher le capteur MD3 :
………………………………………………………………………………………………….
2. Préciser la valeur du registre INTCON suivant l’état du capteur MD3 et le décompteur C3

GIE PEIE T0IE INTE RBIE T0IF INTF RBIF INTCON

MD3=0 et C3=74 ……. 0 ……. ……. ……. …… ……. …… =0X……

MD3=1 et C3=74 …… 0 …….. …….. ……. ……. ……. …… =0X……

3. Compléter le programme en MIKROC assurant le fonctionnement souhaité en CDCF :


// Configuration des broches pour le LCD ………………………………; // Initialiser les variables de calcul
sbit LCD_EN at RA4_bit; Lcd_Init(); // Initialise le LCD
sbit LCD_RS at RA5_bit; Lcd_Cmd(_...........................); // Efface l'afficheur LCD
sbit LCD_D4 at RA3_bit; Lcd_Cmd(_LCD_CURSOR_OFF); // Désactive le curseur
sbit LCD_D5 ………………………..; Lcd_Out(1, 1, "N1="); // préparer l’affichage de N1
sbit LCD_D6 at …………………….; Lcd_Out(1, 10, ……………); // préparer l’affichage de N2
sbit LCD_D7 at RA0_bit; Lcd_Out(2, 1, "N3="); // préparer l’affichage de N3
// Configuration des directions des broches pour le LCD intcon = 0x90; // Interruption sur front montant de RB0
sbit LCD_RS_Direction at ……………………….; while (1) {
sbit LCD_EN_Direction at ………………………; N1_D = ………………………; //extraire Les 4 bits de droite
sbit LCD_D4_Direction at TRISA3_bit; N1_U = ……………………..; // extraire Les 4 bits de gauche
sbit LCD_D5_Direction at TRISA2_bit; N1 = ………………………………..; // Calcul de N1
sbit LCD_D6_Direction at TRISA1_bit; ……………………………….; // Calcul de N3
sbit LCD_D7_Direction at TRISA0_bit; delay_ms(10); // pause de .01s
// Déclaration des Variables // Conversion des valeurs en chaînes de caractères
char N1, N2, N3, N1_D, N1_U; // variable de type octet ByteToStr(N1, N1_aff);
char N1_aff[7], N2_aff[7], N3_aff[7]; ………………………………………..;
…………….……………………….; // alarme branchée sur RB1 …………………………………………;
delay_ms(10); // pause de .01s
void interrupt() { // procedure interruption // Affichage des valeurs sur le LCD
if (…………………………………….) { Lcd_Out(1, 3, ………………..);//affiche N1 à 1er ligne 3eme colonne
…………………..; // Incrémente N2 à chaque interruption …………………………………...; //affiche N2 à 1er ligne 15eme colonne
delay_ms(50); // Délai anti-rebond ……………………………………; //affiche N3 à2eme ligne 5eme colonne
intcon.INTF = 0; // Réactive les interruptions externes delay_ms(10); // pause de .01s
}
………………………..……..;// Si N2 dépasse N1, réinitialise N2 if (……………..) // Activation de l'alarme si N3 est égal à 0
} ………………………………;
// Début programme principal Else // sinon désactivation
………………………………….. // Mot clé réservée Alarme = 0;
ADCON1 = 0X07; // Configuration analogiques/digitales ……… // Fin boucle tant que
TRISA = 0x………; // RA0 en sortie pour Alarme } // Fin programme
TRISC = 0x……….; // portC en entrée pour nombre N1
TRISB = 0x……..; // RB0 en entrée pour l'interruption
/*toute broche Non Connecté est prise comme Entrée */

4
G.E
IV. Etude du circuit compteur C2 en logique programmée :
Pour cette partie se référer au dossier technique page 4/5
1. Justifier le choix de la broche RA4/T0CKI pour brancher le capteur MD1 :
………………………………………………………………………………………………….
2. Préciser la valeur du registre OPTION_REG pour réaliser le compteur C1 :
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
̅̅̅̅̅̅̅̅
𝐑𝐁𝐏𝐔 INTEDG TOCS TOSE PSA PS2 PS1 PS0
1 1 …. …. … 0 0 0

3. Compléter le programme en MIKROC assurant le fonctionnement souhaité en CDCF :


Programme Algorithme
sbit CU at RA0_bit ; 1. Déclarations des variables :
……………….. at RA1_bit ; • CU, CD et Alarme : variables binaires connectées sur RA0, RA1 et RA5
…………………………………………. ; • NP, NP_U et NP_D : variable de calcul interne de type octet
…………………. NP,NP_U,NP_D; • NC, NC_U et NC_D : variable de calcul interne de type octet
……………………………………….. ;
void main() { 2. Début programme
TRISA=0X……. ; 3. Initialisation :
ADCON1=0X07 ; • Configurer les ports d'E/S selon les spécifications.
TRISB=…………… ; • Configurer les entrées/sorties analogiques.
TRISC=…………… ;
• Configurer le timer TMR0 en mode compteur incrémenté à chaque front
OPTION_REG=0X………….. ;
………………………….. ; montant de MD1 (OPTION_REG) et l’initialiser.
NP=……….. ; Alarme = ………. ; • Initialiser les variables (NP, Alarme).

………………………………… 4. Début boucle tant que


5. Lire et convertir le nombre de palettes ajoutées à partir de PORTC.

NC_U = ………………………….. ; • Extraire le digit des unités


……………………………………….. ; • Extraire le digit des dizaines
NC = NC_U + 16* NC_D ; • Calculer NC en BCD
NC = Bcd2Dec(NC) ; • Convertir NC en décimal
……………………………………… ; • Si la valeur du timer TMR0 est supérieure à NC, réinitialiser TMR0 à zéro (modulo).
………………………………….. ; • Stocker la valeur actuelle de TMR0 dans la variable NP.
6. Lire et convertir le nombre de palettes utilisées à partir du Timer0.
NP_U = ……………………… ; ………………………………………….. ;
NP_U = (( NP_U & 0X01)*8) + ………………………………………. + ………………………………………… + ……………………………………………….. ;
NP_D = ……………………………. + (…………………………………) *4 + ((NP_D & 0X04)>>2)*2 + ((NP_D & 0X08)>>3) ;

7. Afficher les digits des unités et des dizaines en utilisant l'affichage multiplexé.
…………………………………………….. ;delay_ms(5) ; • Éteindre les afficheurs.
……………………………………………… ;delay_ms(5) ; • Activer l'afficheur des unités, en affichant la valeur NP_U.
…………………………………………….. ; delay_ms(5) ; • Éteindre les afficheurs.
CU = 0 ;CD = 1 ; PORTB= NP_D ;delay_ms(5) ;
• Activer l'afficheur des dizaines, en affichant la valeur NP_D.
if (………………………..)
8. Commande alarme
Alarme = …….; Vérifier si le nombre de palettes (NP) est égal au nombre de palettes ajoutées (NC).
else ……………………………… ; Alors activer l'alarme Sinon désactiver l'alarme.
…………………………………………
9. Fin Boucle et programme

5
G.E
4. Etude du 2eme solution au système de comptage des palettes :
4.1. Compléter le tableau suivant relatif aux valeurs sur le PORTB

Digit en Déc 0 1 2 3 4 5 6 7 8 9
( DCBA )16 0X00 …….. …….. …….. …….. …….. 0X06 …….. …….. ……..
( ABCD )16 0X00 …….. …….. …….. …….. …….. 0X06 …….. …….. ……..

4.2. Compléter le tableau suivant relatif aux valeurs sur le PORTC

PORTC RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0


PORTC << 4 ; ou bien ……………… ……….. ………. ……….. ……….. ………… ………… ………… …………
………………… ; ou bien ……………… 0 0 0 0 RB7 RB6 RB5 RB4
(PORTC << 4) …………………………… RB3 RB2 RB1 RB0 RB7 RB6 RB5 RB4

4.3. En s’inspirant des questions précédentes proposer une autre approche à la solution proposée

Programme Algorithme
1. Déclarations des variables :
/* garder les variables nécessaires seulement*/
…………………………………………………………………………………….; • NP,NC : variable de calcul interne de type octet
………………………………………………………………………………………………….. ; • Prévoir un tableau de conversion
void main() { 2. Début programme
3. Initialisation :
• /* Garder la configuration nécessaire et requise */
…………………………………………. • Ajouter si nécessaire
4. Début boucle tant que
5. Lire et convertir le nombre de palettes ajoutées à partir de PORTC.
…………………………………………………………………….. ; Utiliser la réponse au question 4.2.
NC = Bcd2Dec (NC) ;
6. Lire et convertir le nombre de palettes utilisées à partir du Timer0.
• Si la valeur du timer TMR0 est supérieure à NC, réinitialiser TMR0 à zéro
if (tmr0 == NC) tmr0 = 0 ; • Stocker la valeur actuelle de TMR0 dans la variable NP.
……………………………………………………… ;
• Extraire le digit unités
……………………………………………………… : • Extraire le digit dizaine
……………………………………………………… ;

7. Afficher les digits des unités et des dizaines en utilisant l'affichage multiplexé.
/****************************************/ Utiliser la réponse au question 4.1.
…………………………………………………….………… ;delay_ms(5) ; • Activer l'afficheur des unités, en affichant la valeur NP_U.
/*******************************/ • Activer l'afficheur des dizaines, en affichant la valeur NP_D.
CU = …. ;CD = … ; ………………………….………….;delay_ms(5) ;

8. Commande alarme
Alarme = (NP……….NC) ?...... : …….. ; Vérifier si le nombre de palettes (NP) est égal au nombre de palettes ajou-
tées (NC) alors activer l'alarme Sinon désactiver l'alarme.
/**********************************/
9. Fin Boucle et programme

Vous aimerez peut-être aussi