Langage C :acquisition des connaissances sous forme de TP.
This presentation is the property of its rightful owner.
Sponsored Links
1 / 6

Langage C :acquisition des connaissances sous forme de TP. PowerPoint PPT Presentation


  • 46 Views
  • Uploaded on
  • Presentation posted in: General

Langage C :acquisition des connaissances sous forme de TP. Les différents programmes sont à réaliser avec le logiciel WinAvr afin de programmer le composant ATmeg16 présent sur les cartes stk 500. TP1. Début. #include <90S8535.h> #include <stdio.h> void main() { DDRC=0xFF; PORTC=0xFF;

Download Presentation

Langage C :acquisition des connaissances sous forme de TP.

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Langage c acquisition des connaissances sous forme de tp

Langage C :acquisition des connaissances sous forme de TP.

Les différents programmes sont à réaliser avec le logiciel WinAvr afin de programmer le composant

ATmeg16 présent sur les cartes stk 500

TP1

Début

#include <90S8535.h>

#include <stdio.h>

void main()

{

DDRC=0xFF;

PORTC=0xFF;

}

Initialisation PortC

en sortie

Ecrire $F0 sur le portc

Fin

1. Après avoir créé un nouveau projet , créer un nouveau fichier source et saisir le programme ci-dessus.Ssauvegarder ce fichier source, choisir « configure » dans l ’onglet Projet afin d ’associer votre fichier au projet, de choisir le composant 90S8535, et de cocher l ’option programmer après avoir fait le projet.

Vous pouvez maintenant cliquer sur l ’icône « make the projet » puis programmer si il n ’y a pas d ’erreur.

2. Quelle est la valeur à mettre dans le registre de direction DDR afin que le port soit configuré en sortie ?

En déduire la valeur à mettre dans DDRA afin de positionner ce port en entrée.

3. Quelle est la valeur affichée sur les leds (Sachant que le bit de poids fort est visualisé sur la led qui se trouve à coté des bornes d ’alimentation.

En déduire le niveau logique a appliquer sur le bit n du portc afin d ’allumer la led n correspondante ?

4. Sur le programme, entourer en bleu les directives de Headers, en rouge le programme principal.


Langage c acquisition des connaissances sous forme de tp

TP2 : programme qui permet d ’afficher sur les leds la valeur présente sur les boutons poussoirs.

Début

#include <90S8535.h>

#include <stdio.h>

void main(void)

{

DDRC=0xFF;

DDRA = ……;

PORTA=…….;

while(1)

{

PORTC=PINA;

}

}

Initialiser le port C

en sortie

Initialiser le port A

en entrée avec R pull-up

PortC <= PinA

Fin?

Fin

1. Compléter le programme ci-dessus. Saisir ce programme, le compiler et programmer le composant.

2. Vous remarquez que les leds et les boutons poussoirs ne sont pas coordonnés. Modifier le programme de manière à ce que le 1er bouton de gauche commande l ’allumage de la 1ère led de gauche etc…; Pour cela vous pourrez utiliser : PORTC.i qui pointe le bit i du port C ( i étant une constante comprise entre 0 et 7.

3. Vous constatez que 4 leds sont toujours allumées. Vous allez utiliser une opération logique de manière à les éteindre. Après avoir déterminé la valeur à mettre à la place des pointillés, ajouter la ligne suivante au programme.

PORTC= PORTC | ……..;


Langage c acquisition des connaissances sous forme de tp

TP3 : Chenillard

#include <90s8535.h>

#include <stdio.h>

#include <delay.h>

void init()

{ DDRC=0x…..;

PORTC=0x …;

DDRA=0x….;

PORTA=0x…;}

void main ()

{ char i =0x01;

init;

while(1)

{PORTC= ~i;

delay_ms(1000);

i=………….;

if (i==0) ………;

}

}

début

Initialiser les ports

I<=1

Portc<= inverse de i

I<= i décaler à gauche

I=0?

I<=1

1. Compléter le programme, le saisir, le compiler et programmer le composant.

2.Repérer en rouge le programme principal et en bleu la procédure init.

3. Recopier la ligne du programme qui déclare la variable i; Quel est l ’espace mémoire réservé pour cette variable?

4. Recopier la ligne du programme qui correspond au losange de l ’algorigramme.

5. Pourquoi y a t-il deux fois le symbole = écrit successivement dans la dernière ligne du programme?


Langage c acquisition des connaissances sous forme de tp

TP4 : programme qui réalise un chenillard jusq ’à l  ’appuie sur le bouton poussoir de gauche

#include <90S8535.h>

#include <stdio.h>

#include <delay.h>

void init (void)

{ DDRC=0xff;

DDRA=0x00;

PORTA=0xFF;

}

void main()

{

char a;

init;

while(1)

{a=0x01;

while (a!=0)

{PORTC=~a;

delay_ms(500);

a=a<<1;

if (PINA.7==0) goto end;

}

}

end: ;

}

1. Tracer l ’alogorigramme correspondant au programme C ci-dessus.

2. Saisir,compiler le programme puis,programmer le composant.

TP5 :Ce programme affiche sur les leds la somme de deux valeurs .Chaque valeur est saisie avec

les 3 boutons poussoirs de droite lorsque le bouton gauche (validation) est appuyé.

1. Réaliser l ’algorigramme d ’un programme qui saisie la valeur présente sur les 3 boutons poussoirs

lorsque le 4ème bouton est appuyé. Faire valider par le professeur.

2.Ecrire le programme C qui réalise l ’algorigramme tracé au 1. Faire valider par le professeur.

3. Saisir et tester ce programme.

Puisqu’il va valoir saisir deux valeurs, le plus simple est de créer une fonction (voir cours sur langage C)

4. Modifier le programme ci-dessus afin que la saisie de la valeur s ’effectue dans la fonction :

char saisie(void)

Faire valider par le professeur.

5. Tracer l ’algorigramme du programme qui réalise la saisie successive de deux nombres puis affiche la

somme sur les leds (la saisie sera faite par le « sous programme » ci-dessus.

6. Modifier le programme source afin de réaliser cet algorigramme.


Langage c acquisition des connaissances sous forme de tp

TP6 : Mise en œuvre de l ’afficheur LCD

Début

#include <90S8535.h>

#include <stdio.h>

#include <lcdjms.h>

void main()

{

lcd_init();

lcd_gotoxy(12,1);

lcd_putchar(‘ b ’);

}

Initialiser

l ’afficheur

Mettre le curseur sur

la colonne 12, ligne2

Ecrire la lettre « b »

Fin

1. Saisir, et tester ce programme .

2. Modifier ce programme afin d ’écrire la lettre A au centre de la première ligne.

3.Ecrire un programme qui permet d ’écrire « salut » sur la seconde ligne en utilisant uniquement les instructions décrites ci-dessus.

4. Ouvrir le fichier lcdjms.h qui se trouve dans le répertoire INC et relever la liste des différentes fonctions définies dans ce fichier, puis fermer ce fichier.

5. Modifier le programme de la question 3 afin d ’écrire « bonjour » en utilisant une seule instruction.

TP7 : Commande de l ’afficheur par un bouton poussoir

1.Faire l ’algorigramme correspondant à l ’algorithme suivant, le faire valider :

Début tp7

PORTA en entrée

Initialisation de l ’afficheur

Aller colonne 6, ligne 0

Ecrire « a »

tant que PINA.7 0

fin de tant que

effacer l ’afficheur

aller colonne 2 , ligne 0

écrire « bonjour »

aller colonne 5 , ligne 1

ecrire « vous ! »

Fin TP7

2. Ecrire et tester le programme C correspondant ; le faire valider par le professeur .


Langage c acquisition des connaissances sous forme de tp

TP8 : Affichage du contenu d ’une variable qui est incrémenté ou décrémenté par les boutons poussoirs

L ’afficheur va afficher le contenu de « variable »; si l ’utilisateur appuie sur le bouton de gauche , la variable s ’incrémente (une seule fois par appuie); si l ’utilisateur appuie sur le bouton droite , la variable est décrémentée (une seule fois par appuie). Chaque nouvelle valeur est affichée à l ’écran à la place de l ’ancienne.

Voici l ’algorithme du programme à réaliser:

Début TP8

Variable du type char = 50

PORTA en entrée

initialisation du LCD

aller colle 0, ligne 0

écrire « variable =« 

tant que vrai

si PINA.7 = 0

incrémenter variable

tant que PINA.7=0

fin tant que

fin de si

si PINA.4=0

décrémenter variable

tant que PINA.4=0

fin tant que

fin de si

aller colonne12, ligne 0

écrire le contenu de variable

attendre 0,5s

fin de tant que

Ecrire le programme correspondant et le faire valider par le professeur :

Conseil à suivre :Pour afficher le contenu d ’une variable du type INT , il est nécessaire de la convertir en chaîne de caractères (déclarée par char *chaine) en utilisant l ’instruction itoa(variable,chaine) ; vous transférerez cette chaîne en tapant lcd_puts(chaine)


  • Login