'Micro-Info asbl Mars - Avril 2009 '********************************* ' Exercice N° 6 - LecturePot + LCD '********************************* ' Description des tâches: ' Affichage d'un message sur le LCD au démarrage du programme. ' Lecture d'un Pot et affichage de la valeur sur un LCD 2*16. ' La ligne 1 doit comporter le texte suivant: où ' ADC est la valeur décimale du POT. ' La ligne 2 doit afficher un barre-graphe. ' - Note: Les chiffres ne doivent pas se déplacer latéralement. ' - Challenge: ' Essayer de réaliser un barre-graphe sur toute la ligne 2 du LCD. ' Créer des caractères personnalisés pour cet usage. ' ' Beaucoup de plaisir à tous. '*************************************************************************** '* Programmation Strucutrée * '**************************** BEGIN 'Définition des variables Declare I As WORD ' variable de travail Declare Valpot$ As ALPHA ' variable pour affichage valeur ADC (8 Chars) Declare Ligne$ As ALPHA ' variable de travail pour affichage (32 Chars) Declare Ligne1$ As ALPHA ' première ligne d'affichage du LCD (16 Chars) Declare Ligne2$ As ALPHA ' deuxième ligne d'affichage du LCD (16 Chars) Declare Analogue As WORD ' valeur lue par le convertisseur ADC 'Affichage du message d'acceuil LET Ligne1$ = "Affi. Valeur Pot" ' Définition de la première ligne LET Ligne2$ = " --Micro-Info-- " ' Définition de la seconde ligne GOSUB Affilcd ' Appel de la routine d'affichage ' Petite pause 'Début du programme principal Do 'Début de la boucle infinie 'Formation de la première ligne d'affichage ' Le but est de former une variable alphanumérique ' qui fait toujours 4 caractères de long (Valpot$). ' Elle se termine par les 1, 2, 3 ou 4 chiffres ' qui forment la valeur de lecture du potentiomètre ' précédée du nombre d'espace nécessaire pour avoir ' une longeur fixe de 4 caractères. ' Cette variable sera affichée à la suite du message ' " Val. Pot = ". LET Analogue = LET Valpot$ = LET Valpot$ = Right$(" " + Valpot$,4) LET Ligne1$ = " Val. Pot = " + Valpot$ 'Formation de la deuxième ligne d'affichage ' Cette ligne affiche un nombre d'étoile qui est ' proportionnel à la valeur de lecture : ' 0 = pas d'étoiles, 1023 = 16 étoiles. LET I = 17 - (Analogue + 1)/64 LET Ligne$ = "**************** " LET Ligne2$ = Mid$(ligne$ , I , 16) Gosub Affilcd 'Affichage des 2 lignes Loop 'Bouclage sur la boucle infinie End '**************************************************************************** '* Sous routines * '***************** ' AffiLCD : Affichage de deux lignes de 16 caractères ' --------------------------------------------------- SUB Affilcd ENDSUB '*****************************************************************************