Ir ao conteúdo
  • Cadastre-se

Comunicação Serial


ancg

Posts recomendados

Eu gostaria de fazer um programa de comunicação serial usando um Display de Sete segmentos,Pic18F4520 e o COMPIM e queria saber como posso fazer.

Tenho um exemplo mais não estou entendendo muito bem.

/* Main.c file generated by New Project wizard * * Created:   Sun Jun 1 2014 * Processor: PIC18F4520 * Compiler:  MPLAB C18 */#include <p18f4520.h>#include <delays.h>#include <usart.h>//--------------------------#define BOTAO     PORTCbits.RC0#define RECEBE    PORTB#define TRANSMITE PORTD#define DSP1      PORTEbits.RE0#define DSP2      PORTEbits.RE1//--------------------------#pragma config WDT=OFF          // Desabilitando o cao de guarda.#pragma config OSC=HS           // Habilitando o clock externo (4Mhz).//--------------------------unsigned char vetor[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x98,0xF9,0x8C,0x46,0xC1,0x86,0xC8};unsigned char BDADO, CONVERTIDO, recebe, transmite;//--------------------------void main() {  TRISC  = 0x01;    TRISB  = 0x00;     TRISD  = 0x00;    TRISE  = 0x00;    ADCON1 = 0xFF;      PORTD  = 0xC0;    PORTB  = 0xC0;//--------------------------    SPBRG  = 25;           // Taxa de transmissao 9615bps(Fosc = 4).    BAUDCONbits.BRG16 = 0; // Definindo para ser 8 bits.    TXSTAbits.BRGH    = 0; // Habilitando em velocidade baixa.     TXSTAbits.SYNC    = 0; // Operando em modo assíncrono.    RCSTAbits.SPEN    = 1; // Configurando os pinos RC6 e RC7.    TXSTAbits.TX9     = 0; // Configurando transmissão em 8 bits.    TXSTAbits.TXEN    = 1; // Habilitando a transmissão.    RCSTAbits.RX9     = 0; // Configurando recepção em 8 bits.    RCSTAbits.CREN    = 1; // Habilitando a recepção.        IPR1bits.RCIP     = 1; // Prioridade da interrupção de recepção.    PIE1bits.RCIE     = 1; // Habilitando a interrupção de recepçãp.    DSP1 = 1;    DSP2 = 1;       while (1)   {// Se o botão for igual a zero, o BDADO vai incrementar de acordo com a recepção, enviando para o display o valor recebido.      if(BOTAO==0)                  {  	 BDADO++;// Com o botão negado, o dado vai ser carregado no TXREG para setar o valor do botão para a transmissão.              while (!BOTAO)	    	 TXREG = BDADO;	 transmite = TXREG;	 CONVERTIDO = vetor[transmite];          TRANSMITE  = CONVERTIDO; 	 while (!TXSTAbits.TRMT);      }// Irá sinalizar a recepção e bufferizar a recepção enviando para o display.      if(PIR1bits.RCIF)      {  RCREG  = BDADO;	 CONVERTIDO = vetor[BDADO];          RECEBE = CONVERTIDO; 	      }            if(BDADO==10)	 BDADO=0;   }   }
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...