Master et Slave mode USART Communication utilisant deux PIC MCU
By Bernice Zuiya
Introduction
Maître et esclave utilisant le PIC 16F877A microcontrôleur PIC 16 montrant essentiellement comment nous pouvons communiquer deux microcontrôleur PIC 16 en utilisant le module UART.
PIC16F877A micro-controlleur
Ce projet montrera simplement comment interagir deux microcontrôleurs PIC à l'aide du module UART, et l'opération sera de basculer quelques broches haute ou basse du côté esclave et l'instruction provenant du maître.
Working:
En voyant juste le code écrit ci-dessous, nous pouvons voir un ensemble de commutateurs connectés à un port du microcontrôleur PIC maître, nous créons un caractère char variable pour stocker la valeur lue sur le port où les commutateurs sont connectés et de Le côté esclave est également un certain nombre de leds connectés à un port et le nombre de LED correspond au nombre d'interrupteurs utilisés sur le côté maître. Nous utilisons une résistance en série avec des LED pour limiter le courant, mais la résistance utilisée dans le maître peut être utilisée comme résistance pull-up ou down et dans mon cas j'ai utilisé des résistances avec des valeurs égales à 10K ohm.
Step:
-
Initialiser le module UART dans la fonction principale
-
Créer un char variable pour les deux côtés
-
Utiliser le registre TRIS et PORT pour savoir si le port doit agir comme port d'entrée ou de sortie.
-
Raccorder les commutateurs avec une résistance de traction ou de descente pour le maître uniquement
-
Connecter les diodes électroluminescentes avec une résistance de courant limite en série au côté de l'esclave
-
Créer une boucle infinie dans les deux fonctions principales, pour le programme maître écrire à plusieurs reprises la valeur stockée dans la variable char au port UART, et côté de l'esclave donnent le caractère d'entrée reçu du port série au port configuré comme port de sortie.
-
La vitesse de transmission doit être égale des deux côtés.
Circuit Diagram
Le schéma de circuit ci-dessous est le diagramme de base très nécessaire pour clignoter un led à l'aide du microcontrôleur 16F877A, vous devez respecter les connexions pour obtenir le meilleur résultat.
-
Une résistance de valeur 4k7 ohm est connectée en série avec +5 volt et la broche de réinitialisation (1ère broche)
-
Q1 est l'oscillateur de cristal dans ce cas, il est oscillation de fréquence est de 20 MHz.
-
Alimentation: le circuit est connecté à une tension maximale égale à 5 volts
-
R3 est une résistance de courant de limitation pour protéger la LED.
-
C1 & C2 are of 22pF.
Code:
char port_;
void main() {
UART1_Init(9615);
delay_ms(50);
TRISD=0XFF;
TRISB=0X00;
PORTB=0X00;
while(1){
port_ = PORTD;
delay_ms(10);
PORTB=port_;
UART1_write(port_);
delay_ms(50);
}
}
Master code:
char port_;
void main() {
UART1_Init(9615);
delay_ms(10);
TRISD=0X00;
PORTD=0X00;
for(;;){
port_=UART1_Read();
delay_ms(10);
PORTD = port_;
}
}
Slave code:
Download the full project here