Ir ao conteúdo
  • Cadastre-se

ancg

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. ancg

    Comunicação Serial

    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; } }

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!