Os sistemas eletrônicos microcontrolados muitas vezes precisam se comunicar com equipamentos externos, como computadores, por exemplo. Para tanto, pode ser utilizada a interface de comunicação serial do microcontrolador. Selecione a alternativa correta com relação à programação da interface de comunicação serial dos microcontroladores PIC usando funções do compilador CCS.
Questão
Os sistemas eletrônicos microcontrolados muitas vezes precisam se comunicar com equipamentos externos, como computadores, por exemplo. Para tanto, pode ser utilizada a interface de comunicação serial do microcontrolador.
Selecione a alternativa correta com relação à programação da interface de comunicação serial dos microcontroladores PIC usando funções do compilador CCS.
Alternativas
a) O comando kbhit(); retorna o dado recebido pela interface de comunicação serial do microcontrolador PIC.
b) O comando printf(“Mensagem”); envia a mensagem de texto “Mensagem” pela interface de comunicação serial do microcontrolador PIC.
c) O comando getc(); retorna “1” quando um dado é recebido pela interface de comunicação serial do microcontrolador PIC.
d) O comando putc(A); envia o caractere “A” pela interface de comunicação serial do microcontrolador PIC.
Explicação
Vamos analisar o que cada função do compilador CCS para PIC (USART/serial) faz:
- kbhit();
- Essa função não retorna o dado recebido.
- Ela retorna um valor lógico (verdadeiro/falso) indicando se há um caractere disponível no buffer de recepção. → Portanto, a alternativa (a) está errada.
- printf("Mensagem");
- No CCS,
printf()é uma função de formatação/saída, mas para enviar pela serial normalmente é necessário que ela esteja associada a um dispositivo/stream, por exemploprintf("...")quando o#use rs232(...)define o stream padrão, ou entãoprintf(PC, "...")/fprintf(...)dependendo da configuração. - Do jeito que a alternativa afirma, como regra geral e sem contexto de stream configurado, fica impreciso dizer que sempre enviará pela serial. → Assim, (b) não é a melhor/correta.
- getc();
getc()lê e retorna o caractere recebido (o byte) da interface serial.- Ele não retorna "1" quando chega dado; quem sinaliza disponibilidade é
kbhit(). → Portanto, (c) está errada.
- putc(A);
putc()envia um caractere pela interface serial (ou pelo stream configurado).- Se
Arepresenta o caractere 'A' (por exemplo,putc('A');ou uma variável contendo esse valor), a função envia esse caractere. → Logo, (d) é a correta.
Alternativa correta: (d).