TP04_13T
description
Transcript of TP04_13T
Royaume du Maroc
OFFICE DE LA FORMATION PROFESSIONNELLE ET DE LA PROMOTION DU TRAVAIL
Cours 13TLangage C et Gestion des Entrées/Sorties
Guide des Travaux Pratiques
Deuxième Année
Programme de Formation des TechniciensSpécialisés en Électronique
DIRECTION DE LA RECHERCHE ET INGENIERIE DE LA FORMATION
Septembre 1996
Guide des Travaux Pratiques Langage C et Gestion des Entrées/Sorties
TECCART INTERNATIONAL 2000 inc.3155, rue Hochelaga,
Montréal, Québec (Canada)
H1W 1G4
RÉDACTION
Robert Pesant
DESSINS ET CONCEPTION GRAPHIQUE
Robert Pesant
RÉVISION TECHNIQUE
Robert Pesant
RÉVISION LINGUISTIQUE
François Gaudreau
COMMISSION DE VALIDATION
Formateurs de l’OFPPT
Les droits de reproduction et de diffusion de ce document sont cédés par Teccart International 2000 inc. à l’Office de la Formation Professionnelle et de la Promotion du Travail du Royaume du Maroc, pour sa propre utilisation au Maroc.
Mis à part l’OFPPT, toute reproduction, en tout ou en partie, par quelque procédé que ce soit, est interdite.
Imprimé à Montréal, le j 卯月水曜日document.doc
Les modèles de programme Page TPii OFPPT/TECCART
Guide des Travaux Pratiques Langage C et Gestion des Entrées/Sorties
TABLE DES MATIÈRES
TP4. MODÈLES DE PROGRAMME
0TP4.1 Méthode de travail suggérée
1TP4.2 Description du programme
2TP4.3 Informations complémentaires0TP4.3.1 Introduction à la mise à l’échelle........................................................................1TP4.3.2 Constantes symboliques et variables suggérées..................................................2TP4.3.3 Conversion « degrés Celsius » en « degrés Fahrenheit ».....................................
3TP4.4 Conception du programme par étapes3TP4.4.1 Exercice #1: ECHELLE1.C................................................................................4TP4.4.2 Exercice #2: ECHELLE2.C................................................................................
Les modèles de programme Page TPiii OFPPT/TECCART
4Modèles de programme 4.1 Méthode de travail suggérée Pour chaque nouveau programme à rédiger, nous nous suggérons la méthode de travail suivante.1. Lisez attentivement toutes les données du problème.2. Identifiez le modèle de programme qui convient à votre application.
· Modèle #1: Programme qui présente un menu à l’usager, attend sa décision, exécute la tâche choisie et retourne au menu pour attendre la prochaine intervention.
· Modèle #2: Programme qui exécute une tâche répétitive, scrute le clavier après chaque cycle de cette tâche, traite la demande de l’usager et reprend, par la suite, la tâche en cours.
3. Copiez, dans votre répertoire de travail, le modèle de programme qui convient le mieux à votre application: MODEL_1A.C, MODEL_1B.C, MODEL_1C.C, MODEL_2A.C ou MODEL_2B.C.
4. Renommez la copie du modèle en fonction de votre application.5. Rédigez votre programme d’application en modifiant le modèle choisi.
4.2 Description du programme Le programme à rédiger simule une acquisition de donnée par une carte d’entrées/sorties analogique. Le convertisseur A/N (analogique/numérique) de 8 bits génère les codes hexadécimaux de $00 à $FF pour un signal d’entrée de 1-5 V ou de 4-20 mA dans une résistance de 250 ê branchée en parallèle avec l’entrée. On suppose que ce signal provient d’un transmetteur de température dont l'étendue d'échelle est comprise entre -50 C et +100 C.
Ce programme doit effectuer les tâches suivantes.6. Afficher un menu comportant les choix suivants:
· conversion en degré Celsius;· conversion en degré Fahrenheit;· conversion en valeur de courant 4-20 mA;· conversion en tension 1-5 V;· conversion en pourcentage;· quitter en appuyant sur Q.
7. Le retour au menu, après un choix de conversion, doit se faire sans utiliser clrscr() pour éviter de faire clignoter l'interface opérateur.
8. Présenter un message invitant l’usager à entrer le code hexadécimal.9. Présenter un message d’affichage des résultats.10. Accepter un code hexadécimal compris entre $00 et $FF que l'usager doit entrer
correctement pour simuler le transmetteur de température.11. Effectuer les calculs nécessaires pour faire la mise à l'échelle, en fonction du choix de
l'usager, et afficher le résultat avec deux chiffres après le point.12. Effacer les résultats et le choix de l'usager lors du retour au menu.13. Effacer l'écran en sortant au DOS.
4.3 Informations complémentaires 4.3.1 Introduction à la mise à l’échelleLes principales caractéristiques d’un transmetteur de signal, concernant la grandeur physique mesurée, sont les suivantes.14. La portée minimale (« OFFSET »): limite inférieure de la grandeur mesurée.15. La portée maximale: limite supérieure de la grandeur mesurée.16. L’étendue d’échelle (« SPAN »): la différence entre la portée maximale et la portée
minimale.Les signaux de sortie standard sont 4-20 mA, 1-5 V, 3-15 psi, ... selon le type du transmetteur. Dans un système de mesure, ces signaux analogiques peuvent être appliqués à l’entrée d’un convertisseur analogique/numérique (A/N) dont le code hexadécimal résultant peut être interprété par un programme quelconque.
Faire un calcul de mise à l’échelle, c’est faire une règle de trois entre une grandeur et un signal dans le but d’interpréter ce dernier.
La première mise à l’échelle du programme à rédiger concerne la relation qui existe entre la température mesurée en degré Celsius et le code hexadécimal 8 bits du convertisseur A/N fictif.
La Figure TP 4-1 montre la technique recommandée pour trouver la fonction de transfert dans un calcul de mise à l’échelle.
4.3.2 Constantes symboliques et variables suggéréesPour faciliter le calcul de mise à l’échelle par votre programme, nous vous suggérons d’utiliser les constantes symboliques et les variables suivantes.17. Constantes symboliques:
· CODE_MAX:......0xFF· CODE_MIN:.......0x00· T_MAX:..............+100.0· T_MIN:...............-50.0· SPAN_T:.............T_MAX - T_MIN· OFFSET_T:........T_MIN
18. Variables:· code_in:...............code hexadécimal entré au clavier. Attention au type de
donnée! Indice: valeur comprise entre 0 et 255.· t_celsius:..............température correspondant à la valeur de code_in. Attention
au type de donnée! Indice: doit être affichée avec deux chiffres après le point.· ratio_in:...............voir la Figure TP 4-1. Attention au type de donnée! Indice:
une fraction est comprise entre 0 et 1. Revoir le programme NOMTYPE.C du répertoire \CHAP.003 de la disquette COURS_13T.
4.3.3 Conversion « degrés Celsius » en « degrés Fahrenheit »Avec un calcul de mise à l’échelle, on peut trouver la relation qui existe entre les degrés Celsius et les degrés Fahrenheit. Sachant que
- 0 øC == -32 øF et que- 100 øC == 212 øF,
démontrez que...........tF = ((9 / 5) * tC) + 32.
A
BD
C
T_MAX
T_MIN
t_celsius
CODE_MAX
CODE_MIN
code_in grandeurmesurée
portéemaximale
portéeminimale
INPUT OUTPUTFONCTION
DETRANSFERT
Mise à l'échelle
A / B = C / D
(code_in - CODE_MIN)
(T_MAX - T_MIN)
(t_celsius - T_MIN)
(CODE_MAX - CODE_MIN)=
t_celsius = (ratio_in x SPAN_T) + OFFSET_T
SPAN_T
(t_celsius - OFFSET_T)= ratio_in
SPAN_T = T_MAX - T_MIN
OFFSET_T = T_MIN
(code_in - CODE_MIN)
(CODE_MAX - CODE_MIN)ratio_in =
où
F IGURE TP 4-1: M ISE À L 'ÉCHELLE D 'UN TRANSMETTEUR DE SIGNAL
4.4 Conception du programme par étapes 4.4.1 Exercice #1: ECHELLE1.C19. Exécutez le programme ECHELLE1.EXE du répertoire \TP.004 de la disquette
COURS_13T.20. Exécutez également le programme ECHELLE2.EXE du répertoire \TP.004 de la
disquette COURS_13T.21. Lisez attentivement la description du programme ECHELLE2.C. Identifiez le modèle de
programme qui convient le mieux à cette application. Utilisez ce modèle de programme pour rédiger ECHELLE1.C, car vous aurez à le modifier pour obtenir ECHELLE2.C. Alors autant débuter du bon pied.· Modèle de programme: #1 ou #2· Fichier source choisi: ______________.C
22. Créez le répertoire de travail C:\BC_DATA\TP.004.23. Appelez BC à partir de ce répertoire de travail.24. Rédigez le programme ECHELLE1.C à partir du fichier source du modèle de programme
choisi. Ce programme doit réaliser les tâches suivantes.· Effacer l’écran.· Afficher le titre (c.f. exécution de ECHELLE1.EXE).· Afficher la ligne de menu « Une touche pour une conversion, 'Q' pour
quitter ».· Présenter le message invitant l’usager à entrer le code hexadécimal.· Présenter le message d’affichage des résultats.· Accepter un code hexadécimal compris entre $00 et $FF que l'usager doit entrer
correctement pour simuler le transmetteur de température.· Effectuer les calculs nécessaires pour faire la mise à l'échelle en degré Celsius
seulement et afficher le résultat, avec deux chiffres après le point.· Effacer les résultats et le choix de l'usager lors du retour à la ligne de menu.· Effacer l'écran en sortant au DOS.
25. Faites une copie de secours de votre fichier source dans le répertoire \TP.004 sur une disquette de données.
26. Nettoyez votre répertoire C:\BC_DATA\OBJ_EXE en prévision des prochains exercices.
4.4.2 Exercice #2: ECHELLE2.C27. Appelez BC à partir de votre répertoire de travail C:\BC_DATA\TP.004.28. Enregistrez le programme ECHELLE1.C en lui donnant le nom ECHELLE2.C.29. Modifiez le programme ECHELLE2.C pour ajouter les autres conversions:
· conversion en degré Fahrenheit;· conversion en valeur de courant 4-20 mA;· conversion en tension 1-5 V;· conversion en pourcentage.
30. Faites une copie de secours de votre fichier source dans le répertoire \TP.004 sur une disquette de données.
31. Nettoyez votre répertoire C:\BC_DATA\OBJ_EXE en prévision des prochains exercices.