. TD 12 GBF NUMERIQUE BTS TPIL LANGAGE C Objectifs : Le but de ce TP est de réaliser un GBF numérique piloté par le port parallèle. Nous utiliserons la carte convertisseur numérique analogique. Il s’agit d’un réseau R-2R. Le convertisseur convertit les mots binaires codés sur 8 bits en une tension analogique allant de 0 à 5V. Ex(0 sera converti en 0V et 255 sera converti en 5 V) 1. REALISATION D’UN SIGNAL RECTANGULAIRE On visualisera la sortie du CNA sur un oscilloscope. On souhaite réaliser un signal rectangulaire de fréquence , Valeur max, et rapport cyclique variable. 1. Réalisation d’un signal carré avec Umax=5V, fréquence F=0.5Hz et rapport cyclique ½ Taper le code suivant : #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) { while(1) { _outp(0x378,255) ; sleep(1000) ; _outp(0x378,0) ; sleep(1000) ; } system("pause"); } Vérifier à l’oscilloscope le signal obtenu. 2. En vous aidant du code précédent, réalisez un programme qui permet de générer un signal rectangulaire. L’utilisateur pourra choisir la fréquence, le rapport cyclique et la hauteur du signal (entre 0 et 5 V évidemment) 1 Attention : la fonction sleep ne peut pas descendre en dessous de 10 ms (durée des instructions qui la compose). Ce qui veut dire que l’on ne pourra pas descendre en dessous de 50 Hz durant ce TP ! ! ! ! On rappelle que le rapport cyclique s’exprime Ton / T 2. REALISATION D’UN SIGNAL TRIANGULAIRE 1. Construction du motif du signal Il s’agit de répéter indéfiniment un motif. Ce motif est constitué d’une rampe montante (incrémentation d’une variable de 1 en 1) puis d’une rampe descendante (décrémentation d’une variable de 1 en 1). On laisse un temps plus ou moins long entre chaque incrémentation (fonction sleep) afin de faire varier le temps de monté ou de descente. 2. Permettre à l’utilisateur de choisir la valeur max et la fréquence du signal (attention la fréquence sera très faible à cause de la fonction sleep 3. On pourra améliorer le système pour pouvoir diminuer la fréquence. On réalisera des incrémentations avec des pas plus grands. Mais le signal triangulaire peut être « déformé » 3. FINALISATION Nous allons maintenant regrouper les 2 fonctions dans le même programme. L’utilisateur pourra donc choisir entre un signal rectangulaire ou triangulaire. L’utilisateur pourra choisir la valeur max et la fréquence du signal ainsi que le rapport cyclique (exprimé en pourcentage) dans le cas du signal rectangulaire. 2