Aide urgent pour Pic 16F877

Fermé
sporta01 - 29 sept. 2010 à 20:37
Bonjour,

salut à tous et à tout ,j'ai un projet à faire ,une partie de ce projet concernant l'envoie d'une donné numérique de (0 à 255) ,la donnés doit etre envoyer par un slider de Labview à une carte a travers le port série,
le probleme ,lorsque je fais la simulation par isis (reception d'une donné par le port série) j'affiche la donné sur afficheur Lcd ,lorsque par exemple j'envoie la donné 124 ,l'afficheur affiche 1puis 2 puis 122 au lieu 124
comment je peux resoudre le probleme. comment je peux declarer la fin de lecture par un caractere par exemple A,pour que le port serie cesse de lire lorsquelle recoit le caractere A exemple 124A s'affiche 124.
merci pour les recomandation que vous m'avez precedement donnés,voici maintenant le programme.

char lin;
char i;
char lcdtext[3];
unsigned short pos;

void main()
{

TRISB = 0b11111000; // PORTB = RB2 à RB0 E, RS du LCD et LED en sortie
TRISC=(TRISC & 0b10110000); // TX, D7 à D4 du LCD-> en sortie 0xf0;



Usart_Init(9600);//initialisation port serie
Lcd_Init(&portb);//l'afficheur est connecté au port b
lin=0;
while(1)
{
while ( ! Usart_Data_Ready()) ;
i=0;
while (i<3) {
cdtext[i]=Usart_Read(); //lecture port serie(3caractere)
i++;
}

if (lin==0) Lcd_Cmd(LCD_RETURN_HOME);
else Lcd_Cmd(LCD_SECOND_ROW); //pour afficher sur trois position
lin++;
if (lin==2) lin=0;

for(pos=0;pos<3;pos++)
{
portb=0b11110100;
Lcd_Chr_CP(lcdtext[pos]); // l'affichage du .
Delay_ms(300); tableau 3 caractere

}



}
}
A voir également: