Trame sous PIC 18F [Résolu]

Messages postés
2
Date d'inscription
mercredi 21 juillet 2010
Statut
Membre
Dernière intervention
22 juillet 2010
- - Dernière réponse : PIC08
Messages postés
2
Date d'inscription
mercredi 21 juillet 2010
Statut
Membre
Dernière intervention
22 juillet 2010
- 22 juil. 2010 à 14:26
Bonjour,
Je suis entrain d'écrire un programme que j'ai compilé correctement, qui a pour but d'envoyer une trame(Information) en fonction du bouton poussé d'une télécommande, je dois synchroniser la durée de chaque bit de sortie du Port B et ajouter un bit de start et un bit de stop, malheureusement je ne sais comment faire.
merci de m'aider

Voici le programme :

#include

char trame0 = 0x00; //Trame nulle
//Température//
char trame1 = 0x01; //Affichage Température
char trame2 = 0x02; //Augmenter
char trame3 = 0x03; //Diminuer
char trame4 = 0x04; //Clim Marche


void main(void) // Entrée du programme principal

{
PORTA = 0x00; // Initialisation du port A
PORTB = 0x00; // Initialisation du port B
PORTC = 0x00; // Initialisation du port C
PORTD = 0x00; // Initialisation du port D

TRISC = 0xFF; // Le port C en entrée (Boutons de commande)
TRISD = 0xFF; // Le port D en entrée (Boutons de commande)
TRISB = 0x00; // Le port B en sortie (Sortie de trames)


while (1) //Boucle infinie
{
if (PORTC & PORTD 0) PORTB trame0;
else if (PORTCbits.RC0) PORTB = trame1; // Si le bouton1 est appuyé, le port B transmet la trame1
else if (PORTCbits.RC1) PORTB = trame2; // Si le bouton2 est appuyé, le port B transmet la trame2
else if (PORTCbits.RC2) PORTB = trame3; // Si le bouton3 est appuyé, le port B transmet la trame3
else if (PORTCbits.RC3) PORTB = trame4; // Si le bouton4 est appuyé, le port B transmet la trame4

}

}

}
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
142
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2016
1
3
Merci
Puisque tu parles de start bit et de stop bit on peut penser qu'il s'agit d'une liaison série asynchrone du type rs232. Fait une recherche sur ce mot et tu verras qu'il n'y a rien de compliqué. Tu parles aussi de télécommande, dans ce cas il faut connaître les caractéristiques du récepteur et il est rare que le signal transmis soit une suite de 1 et de 0 mais bien un signal modulé entre 20 et 40 kHZ.
Amicalement

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Guilou34
Messages postés
2
Date d'inscription
mercredi 21 juillet 2010
Statut
Membre
Dernière intervention
22 juillet 2010
0
Merci
Merci pour ta réponse, il s'agit en fait d'une télécommande de climatisation, j'ai le discpositif qui dispose d'un ancien Microcontroleur NEC et je dois donc le remplacer par un PIC 18F,je part d'un cahier de charge pour pouvoir envoyer une trame et pour l'afficheur et pour le récepteur.Comme tu as dit c'est un signal modulé entre 20 et 40 kHZ.le problème c que je ne trouve que des codes en HEXADECIMAL 20H 23H...et je ne comprend pas bien l'assembleur,c pour cela j'ai du mal à en déduire les codes des trames. C'est pour ca j'essai d'écrire un programme qui permet d'envoyer n'importe quelle trame, son identification devient facile après avoir obtenu son code de la part de mon tuteur.Avez vs des conseils SVP.
Merci
Commenter la réponse de PIC08