Comment envoyer une trame sous le pic 18f ?
pico90
-
fknoff -
fknoff -
J'ai écris un petit programme, il est bien compilé, mais je ne sais pas comment synchroniser la durée des bits de sortie du Port B et ajouter un bit de start et un bit de stop
Merci beaucoup
Voici le programme :
#include <p18f87k90.h>
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
}
}
}
Merci beaucoup
Voici le programme :
#include <p18f87k90.h>
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
}
}
}
A voir également:
- Comment envoyer une trame sous le pic 18f ?
- Pic de consommation électrique en mon absence - Forum Plomberie
- Envoyer de l argent en croatie ✓ - Forum Irlande
- Forum envoyer un colis en australie ✓ - Forum Etats-Unis
- Envoyer de l argent au perou - Forum Amérique du sud
- Envoyer du muguet - Guide
1 réponse
Si c'est un PIC 18F4580 par exemple il faut étudier la section 19 de son DATASHEET concernat l'EUSART et configurer les registres TXSTA, RXSTA, BAUDCON, BRG SPBRGH et SPBRG afin d'avoir la vitesse de transmission désiré ainsi que le format désiré.
Pour avoir le datasheet du PIC18F4580 par exemple :
http://ww1.microchip.com/downloads/en/DeviceDoc/39637d.pdf
Bon courage
Pour avoir le datasheet du PIC18F4580 par exemple :
http://ww1.microchip.com/downloads/en/DeviceDoc/39637d.pdf
Bon courage