TP04_13T

11
Royaume du Maroc OFFICE DE LA FORMATION PROFESSIONNELLE ET DE LA PROMOTION DU TRAVAIL Cours 13T Langage C et Gestion des Entr�es/Sorties Guide des Travaux Pratiques Deuxième Année Programme de Formation des Techniciens Spécialisés en Électronique DIRECTION DE LA RECHERCHE ET INGENIERIE DE LA FORMATION Septembre 1996

description

TP04_13T

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 =

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.