Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação de Microcontroladores - Linguagem C e Assembly Professor(a): Claudio Mori Junior (Mestrado acadêmico) 1) 2) Prepare-se! Chegou a hora de você testar o conhecimento adquirido nesta disciplina. A Avaliação Virtual (AV) é composta por questões objetivas e corresponde a 100% da média final. Você tem até cinco tentativas para “Enviar” as questões, que são automaticamente corrigidas. Você pode responder as questões consultando o material de estudos, mas lembre-se de cumprir o prazo estabelecido. Boa prova! Alternativas: Analógica e verde. Digital e azul. I2C e cinza. Serial e laranja. AVR e amarelo. CORRETO Código da questão: 71466 Em programas de diferentes linguagens aplicadas a microcontroladores, existem estruturas básicas que ajudam a inicialização de componentes e a verificação de rotinas. Como a estrutura básica é definida? Assinale a alternativa correta. Alternativas: Configuração ou inicialização e Loop. CORRETO Remoção de variáveis e Delay. Instruções JUMP de variáveis. Set de variáveis e remoções. Instrução Clean e .DGS. Resolução comentada: Os pinos do microcontrolador ATmega328p, em sua maioria, são diretamente interligados aos barramentos laterais da placa, como os pinos digitais e analógicos, que são representados por PBx, PCx e PDx. Para defini-los em Assembly, é necessário configurar a sequência de 8 bits em 0 e 1, que também podem ser representados na forma hexadecimal. Já na linguagem de programação C/C++, basta identificar quando é uma saída ou entrada pela representatividade numérica para portas digitais e com Ax para as analogias. Mas, devemos notar que, quando queremos indicar uma porta através da plataforma Arduino, é preciso identificar na placa, e não no microcontrolador. 3) 4) Código da questão: 71457 Sobre as declarações de variáveis em C, analise as afirmativas a seguir e assinale-as com V (verdadeiro) ou F (falso): ( ) A capacidade de algumas variáveis é dependente do microcontrolador da placa embarcada que está sendo utilizado. ( ) Em float e double, utiliza-se o conceito de faixa de valores com base em 𝑚𝑎𝑛𝑡𝑖𝑠𝑠𝑎 𝑥 10𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒, cuja representatividade em bits se dá por sinal, expoente e mantissa e, quanto maior o número de bits da mantissa, maior a precisão do número. ( ) A precisão numérica de variáveis do tipo float é, de aproximadamente, 6 casas decimais, enquanto do tipo double é de 15 casas decimais Assinale a alternativa que contenha a sequência correta. Alternativas: F – V – F. V – F – V. V – V – F. F – F – V. INCORRETO V – V – V. CORRETO Código da questão: 71462 A linguagem de máquina é a linguagem de mais _________ nível de entendimento pelo ser humano e a única que pode ser _________ por um processador. Assim, definimos em programação que, quanto _________ o nível da linguagem, mais a programação se aproxima da linguagem de máquina, e a Assembly é considerada uma linguagem de _________ nível, já que suas instruções são as mesmas instruções do código de máquina. Já a linguagem de programação C é definida como _________ nível, pois está diretamente ligada aos conceitos _________ entendidos pelos seres humanos. Alternativas: Baixo; entendida; maior; baixo; alto; lógicos. Baixo; entendida; menor; alto; baixo; lógicos. Baixo; removida; menor; baixo; alto; lógicos. Alto; entendida; menor; baixo; baixo; lógicos. Baixo; entendida; menor; baixo; alto; lógicos. CORRETO Código da questão: 71465 Resolução comentada: Em um programa com linguagem Assembly ou em outra linguagem que faça o envio ao microcontrolador em linguagem de máquina, tem uma estrutura básica de código com uma leitura na rotina de configuração ou inicialização e rotinas contínuas na de verificação, denominada como loop. Resolução comentada: · Cada fabricante de microcontrolador divide seus dispositivos em famílias para atender a áreas específicas, sendo assim, um microcontrolador com maior capacidade tem um armazenamento na memória maior para determinadas variáveis. · A faixa de valores em float e double é dependente de bits para cada parte, e o maior número de bits se dá para a mantissa, a qual, quanto maior, melhor a sua resolução. Já o expoente indica diretamente a faixa de valores que podem ser representados. · As variáveis do tipo double têm uma faixa de valores superior à do tipo float e, respectivamente, sua precisão numérica. Resolução comentada: Quanto maior o nível de uma linguagem de programação, mais ela é facilmente compreendida pelo ser humano e com maiores necessidades de conversão para a linguagem de máquina. Sendo assim, a Assembly é considerada uma linguagem de baixo nível, enquanto C/C++ e outras são consideradas de alto nível. 5) 6) A integração de circuitos dedicados em um único chip originou os famosos Circuitos Integrados (CI), o que foi importante para o desenvolvimento de microcontroladores. Sabendo que um microcontrolador pode controlar periféricos externos de forma autônoma através de um conjunto de periféricos internos, qual dos componentes seguintes pode ser considerado um periférico externo? Assinale a alternativa correta. Alternativas: Display de 7 segmentos. CORRETO SPI. Memória SRAM. CPU. Memória FLASH. Código da questão: 71451 Considere o seguinte programa em linguagem Assembly: O código é uma forma de acionar um LED conectado em PD7 em série com um resistor, e uma botoeira PULL-UP, conectada a PD6, através de um microcontrolador AVR ATmega328p. A seta com indicativo da próxima instrução é um escopo com validação das portas digitais, como a seguir: Caso o bit 6 esteja sem seleção, como deve ser o comportamento do bit 7 em PORTD e o respectivo valor, até o fim de todas as instruções de validação? Assinale a alternativa correta. Alternativas: Resolução comentada: O periférico externo em questão é o display de 7 segmentos, o qual é utilizado para demonstrar informações alfanuméricas em diferentes aplicações. Como é um dispositivo para exibir uma informação, pode ser utilizado como forma de demonstração, sendo assim, associa-se como periférico externo. O display utiliza, muitas vezes, 7 LEDs em cada segmento, o que faz com que a representação alfanumérica aconteça. Valor 0x80 não seleccionado. Valor 0x00 seleccionado. Valor 0x40 não seleccionado. Valor 0xC0 seleccionado. CORRETO Valor 0x80 seleccionado. Código da questão: 71463 Resolução comentada: Comparando que, quando estiver pressionado, significa que está sem seleção, ou em nível lógico alto, a validação será na diretiva _LED. Na diretiva _LED, verifica-se que o LED será habilitado. Para retornar à diretiva _LOOP, a PORTD seleciona o bit7 e incrementa o valor em hexa para 0xC0. 7) 8) 9) Alternativas: Ambos configuram as portas PD4 a PD7 do microcontrolador. CORRETO Ambos os códigos tratam de configurações da DDRB. O registrador R17 armazena 5. Os trechos não têm a mesma funcionalidade. Ambos configuram as portas PB0 a PB3 do microcontrolador. Código da questão: 71468 Sobre os registradores de propósito geral, analise as afirmativas a seguir e assinale-as com V (verdadeiro) ou F (falso): ( ) Armazenar dados da execução do programa. ( ) Local com dados a serem processados pela ULA, ou seus endereços de memória. ( ) Armazena informações para gerenciamento do processo. Assinale a alternativa que contenha a sequência correta. Alternativas: F – F – V. V – V – F. CORRETO F – V – F V – F – F. V – V – V. Código da questão: 71454 Antes de existirem os microcontroladores, circuitos de memórias eram desenvolvidos para armazenar informações digitais por tempo indeterminado ou determinado. A integração de memórias aos microcontroladores é de suma importância, tanto para programa quanto para dados. Considere que um dado de um cartão de acesso de usuário precisa ser armazenado, alterado e requisitado quando for necessário. Dos periféricos internos de um microcontrolador, qual dos seguintes pode ser utilizado para a funcionalidade? Assinale a alternativa correta. Alternativas: Barramentos.CPU. Memória EEPROM. CORRETO Memória RAM. Resolução comentada: Ambos configuram as portas PD4 a PD7 do microcontrolador ATmega328p, que está diretamente interligado às portas digitais 4 a 7. Resolução comentada: A primeira e a segunda são verdadeiras. Veja a forma correta da afirmativa falsa: A CPU também é responsável por acessar as memórias, realizar os cálculos, controlar os periféricos e manipular as interrupções, e algumas informações importantes ficam contidas em registradores internos ao núcleo, mas não têm o papel de armazenar dados. Os dados a serem processados pela ULA, ou seus endereços de memória, ficam nos registradores de propósito geral, enquanto informações para gerenciamento do processo ficam em outros registradores especiais, de propósitos específicos. 10) SPI. Código da questão: 71452 Os microcontroladores da família ATmega328P possuem núcleo, ou CPU AVR, com arquitetura Harvard (modificada, pois há mais de um barramento de dados), e as instruções são buscadas na memória de programa por um barramento exclusivo ao de dados e são executadas por um processo de canalização, mais conhecido como _________, pois, enquanto uma instrução está sendo _________, a próxima já é _________ da memória de programa, permitindo que esta seja executada continuamente, uma em cada ciclo de relógio ou _________. Alternativas: Transporte reduzido; pausada; removida; clock. Pipeline; executada; pré-carregada; clock. CORRETO Pipeline; executada; pré-carregada; validação. Transporte reduzido; pausada; pré-carregada; clock. Pipeline; executada; removida; clock. Código da questão: 71453 Resolução comentada: Memória Somente de Leitura Programável Apagável é acessada quando se deseja armazenar dados por períodos indeterminados, como as informações de um usuário, e é usada em diferentes dispositivos eletrônicos que precisam armazenar pequenas quantidades de dados, com a possibilidade de os dados serem salvos quando o dispositivo for desenergizado. Uma aplicação para a EEPROM seria de uma validação de usuário. Resolução comentada: As instruções da memória de programa são executadas através de um pipeline simples, ou seja, enquanto uma instrução é executada, outra é lida da memória de programa e decodificada. Este conceito permite que a CPU AVR execute uma instrução a cada ciclo de clock. Arquivos e Links
Compartilhar