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:
Postar um comentário