Pesquisar neste blog

09/03/2023

Comunicação serial com PIC 18F4550

Código feito em CCS C Compiler

#include <18F4550.h>
#fuses INTRC, NOWDT, NOMCLR
#use delay(clock = 4MHz)

// diretiva rs232, velocidade 9600, pino de transmisão, pino de recebimento
#use rs232(baud = 9600, xmit= PIN_C6, rcv= PIN_C7) 

//diretiva de interrupção da comunicação serial
#INT_RDA
void serial_int(){
   char temp;
   //enquanto estiver dados na leitura disponível
   while ( kbhit()) { // funcão retorna 1 se estiver disponível e 0 caso contrário
      temp = getc();    // fazendo a leitura do dado no bufer serial
      
      if (temp == 'L'){
         output_bit(PIN_D0, 1);
         printf("-> LIGOU !");
      }
      if (temp == 'D'){
         output_bit(PIN_D0, 0);
         printf("-> DESLIGOU !");
      }
   }
}

void main(){
   
   enable_interrupts( GLOBAL ); // habilita a interrupção global
   enable_interrupts( INT_RDA );
   
}

Saída gerada no Proteus



Nenhum comentário: