TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Comunicação USART Com PIC

Pesquisas Acadêmicas: Comunicação USART Com PIC. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  18/4/2014  •  1.999 Palavras (8 Páginas)  •  1.053 Visualizações

Página 1 de 8

Comunicação Serial UART com PIC

Para enviar dados de qualquer microcontrolador PIC para qualquer dispositivo (seja outro uC, computador e etc) utilizando a interface UART, basta ativar o suporte à comunicação serial do compilador ( #use rs232 ) ou fazer uma inclusão de biblioteca ao seu código ( #include < uart.c >). A única diferença estaria nos comandos para controle da comunicação e inicialização:

-------------------------------

#use rs232 (baud = (velocidade), xmit = (pino tx), rcv = (pino rx) ) // inclui e configura a comunicação

putc (); // envia dado pela porta serial

getc (); // recebe dado pela porta serial

------------------------------

#include < uart.c > // inclui a comunicação (configuração dos pinos é automática)

uart_unicializa ( (UxBRG), 1); // configura velocidade da comunicação (prefira velocidades tabeladas

// como: 9600, 19200, etc

uart_transmite (); // envia dado pela porta serial

uart_recebe (); // recebe dado pela porta serial

------------------------------

Atenção: O UxBRG é a velocidade da comunicação, obtido através do calculo:

UxBRG = Fosc/2

____________ -1

16 * Baud Rate

Exemplo simples para melhor entendimento:

___________________________________________________

Código do Chip 1 :

#include < 16f628a.h > // define o microcontrolador utilizado

#use delay(clock=4000000) // define o cristal utilizado

#fuses intrc_io, nowdt, nolvp, nomclr, put // configura os fusíveis

#use rs232(baud=9600 , xmit = pin_b2, rcv = pin_b1) // configura a velocidade da comunicação,

// pino transmissor e pino receptor

main() // inicio do programa

{

while(true) // loop infinito

{

putc ('g'); // envia o caractere "g"

delay_ms(500); // espera 500 milisegundos

putc('r'); // envia o caractere "r"

delay_ms(500); // espera 500 milisegundos

} // volta para o loop

}

Código do Chip 2 :

#include < 16f628a.h > // define o microcontrolador utilizado

#use delay(clock=4000000) // define o cristal utilizado

#fuses intrc_io, nowdt, nolvp, nomclr, put // configura os fusiveis

#use rs232(baud=9600 , xmit = pin_b2, rcv = pin_b1) // configura a velocidade da comunicação,

// pino transmissor e pino receptor

char dado = 0; // variável global de nome "dado"

main() // início do programa

{

while(true) // loop infinito

{

dado = getc(); // "dado" é igual ao que for recebido pela comunicação

if (dado == 'r') output_high(pin_a1), output_low(pin_a3); // se "dado" for "r" seta pino a1 e desliga a3

if (dado == 'g') output_high(pin_a3), output_low(pin_a1); // se "dado" for "g" seta pino a3 e desliga a1

} // volta para loop

}

_____________________________________________

Muito fácil!

Qualquer duvida, poste um comentário que responderei o mais rápido possível.

Postado por Zio Matrix às 05:24

Enviar por e-mailBlogThis!Compartilhar no TwitterCompartilhar no FacebookCompartilhar no OrkutCompartilhar com o Pinterest

Marcadores: Tutoriais

9 comentários:

1.

Anônimosexta-feira, 08 junho, 2012

obrigado,estava tentando uma comunicação serial a muito tempo(1 ano),baixei varios tutoriais,mas não estava entendendo,somente esta explicação simples resolveu meu problema,vlw mesmo e continue ajudando quem precisa!!!

Responder

...

Baixar como (para membros premium)  txt (7.7 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no TrabalhosGratuitos.com