Alternativa B - bsf PORTD, 0
Análise Detalhada
Para resolver esta questão, é necessário entender a sintaxe de programação Assembly para microcontroladores da família PIC, onde são utilizadas instruções específicas para manipular bits individuais dos registradores.
Conceitos Fundamentais
- RD0: Refere-se ao pino 0 da Porta D. Em termos de bits, isso corresponde ao bit 0.
- Definir como Alto: Significa colocar o bit correspondente no nível lógico 1 (Lógica Alta).
- Instruções de Manipulação de Bits:
- BSF (Bit Set File): Define um bit específico como 1 (Alto).
- BCF (Bit Clear File): Define um bit específico como 0 (Baixo).
Avaliação das Alternativas
| Alternativa | Instrução | Função | Resultado no Pino RD0 |
|---|
| A | bcf PORTD, 0 | Limpa o bit 0 | Torna o pino BAIXO (0) |
| B | bsf PORTD, 0 | Seta o bit 0 | Torna o pino ALTO (1) ✅ |
| C | movlw b'00000000' | Carrega 0 na W | Prepara valor, não aciona o pino |
| D | movwf TRISD | Configura direção | Define pinos como saída, sem mudar estado |
| E | goto loop | Salto condicional | Controla fluxo, não muda nível do pino |
Por que a alternativa B é a correta?
A instrução bsf (Bit Set File) é utilizada especificamente para alterar um bit de um registrador para o valor 1.
A sintaxe geral é: bsf <Registrador>, <Número do Bit>
No caso da questão:
\text{bsf PORTD, 0}
Isso indica ao processador: "Vá até o registrador PORTD e coloque o bit 0 (que corresponde ao pino RD0) no nível alto". Como a questão afirma que "é necessário definir o pino como alto" para acender o LED, esta é a ação direta necessária.
A alternativa A (bcf) faria o oposto (definiria como baixo/apagado). As demais alternativas configuram direções ou fluxos de programa, mas não definem o nível lógico imediato para acender o componente.