Buscar

Programação de Microcontroladores - Linguagem C e Assembly - Prova Pós Unopar

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

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:
Serial e laranja.
Analógica e verde.
Digital e azul.
AVR e amarelo. check CORRETO
I2C e cinza.
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.
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. check CORRETO
Remoção de variáveis e Delay.
Instruções JUMP de variáveis.
Instrução Clean e .DGS.
Set de variáveis e remoções.
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:
Resolução comentada:
3)
4)
5)
Código da questão: 71457
Alternativas:
Ambos os códigos tratam de configurações da DDRB.
O registrador R17 armazena 5.
Ambos configuram as portas PB0 a PB3 do microcontrolador.
Ambos configuram as portas PD4 a PD7 do microcontrolador. check CORRETO
Os trechos não têm a mesma funcionalidade.
Ambos configuram as portas PD4 a PD7 do microcontrolador ATmega328p, que está diretamente interligado às portas digitais 4 a 7.
Código da questão: 71468
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; baixo; alto; lógicos. check CORRETO
Baixo; entendida; menor; alto; baixo; lógicos.
Baixo; removida; menor; baixo; alto; lógicos.
Alto; entendida; menor; baixo; baixo; lógicos.
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.
Código da questão: 71465
Considere as seguintes linhas de programa em linguagem C, divididas em colunas, para facilitar a compreensão de implementação:
Resolução comentada:
Resolução comentada:
6)
Considere que a coluna (a) seja inserida em um início de código, antes da configuração, e que os valores de (b) sejam inseridos na inicialização. Quando o
código entra em loop, uma comparação inicial é feita relacionada à variável “e”, que, se ela for igual a ‘A’, faz as linhas de códigos representadas em (c) e,
logo em seguida, (d). Sendo assim, caso a afirmação seja verdadeira, qual será o valor aproximado de h? Assinale a alternativa correta.
Alternativas:
250.
15.
133.
12.
170. check CORRETO
(a) e (b) são elementos comuns no código, e em (b) temos a definição de e = ‘A’, o que faz jus à comparação e à continuidade de (c) e (d).
Como final, todas as operações serão válidas, respeitando as do tipo inteira e float.
Sendo assim, temos os seguintes resultados em linhas:
a = 8
b = -5
c = 10.1
d = 1.62
i = -b = 5
Logo,
j = a + b + i = 8 + 5 -5 = 8
E assim,
g = j * c = 8 * 10.1 = 80.8
h = (1.3 * g) * d = (1.3 * 80.8) * 1.62 = 170.1648
Vale ressaltar que em programação não se utiliza “,” em casas decimais, e sim “.”.
Com os resultados, o número mais próximo é dado por 170.
Código da questão: 71470
Dado uma arquitetura com instruções através de um microcontrolador genérico, representada pela figura seguinte, informe as três instruções prováveis
para o que foi armazenado na memória de programa (FLASH), que está sendo armazenado na memória de programa (SRAM). Considerando que os dois
primeiros endereços são para armazenar valores de variáveis decimais convertidas em binário; o terceiro endereço, para operação matemática e salvar
resultado; o quarto, o valor lido pela porta digital E0; o quinto, de comparação.
Resolução comentada:
7)
Alternativas:
Remover o valor 20 em 0x01; salvar o valor 60 em 0x02; somar o valor armazenado em 0x01 de 0x02 e salvar em 0x03; ler o valor da porta digital E0 e
salvar em 0x01; comparar se o valor armazenado em 0x04 é igual a 1 e, caso for, deixar a porta S0 em HIGH - Nível lógico alto.
Salvar o valor 13 em 0x01; salvar o valor 12 em 0x02; somar o valor armazenado em 0x01 de 0x02 e salvar em 0x03; ler o valor da porta digital E0 e salvar
em 0x04; comparar se o valor armazenado em 0x04 é igual a 1 e, caso for, deixar a porta S0 em HIGH - Nível lógico alto.
Salvar o valor 20 em 0x01; salvar o valor 60 em 0x02; somar o valor armazenado em 0x01 de 0x02 e salvar em 0x03; ler o valor da porta digital E0 e salvar
em 0x01; comparar se o valor armazenado em 0x04 é igual a 1 e, caso for, deixar a porta S0 em HIGH - Nível lógico alto.
Salvar o valor 13 em 0x01; salvar o valor 12 em 0x02; subtrair o valor armazenado em 0x01 de 0x02 e salvar em 0x03; ler o valor da porta digital E0 e
salvar em 0x04; comparar se o valor armazenado em 0x04 é igual a 0 e, caso for, deixar a porta S0 em HIGH - Nível lógico alto.
Salvar o valor 13 em 0x01; salvar o valor 12 em 0x02; subtrair o valor armazenado em 0x01 de 0x02 e salvar em 0x03; ler o valor da porta digital E0 e
salvar em 0x04; comparar se o valor armazenado em 0x04 é igual a 1 e, caso for, deixar a porta S0 em HIGH - Nível lógico alto. check CORRETO
1. Ao notar na figura, identificamos que a memória SRAM tem nd bytes capacidade de memória de dados disponíveis, com cada repartição de endereço de 8
bits.
 2. A memória FLASH tem um programa gravado com especificação restante em np = 0x01, np = 0x02 e np = 0x04.
3. As especificações do problema é dado que np = 0x01 e np = 0x02 são de valores decimais armazenados em binário, sendo assim, basta converter os
valores das memórias.
 4. Como em np = 0x05 está comparando um valor armazenado, basta incluirmos o mesmo como leitura. E como verificamos que a leitura em E0 é de HIGH
- Nível lógico alto, basta compararmos com a saída.
Código da questão: 71455
Sobre as declarações de variáveis em C, analise as afirmativas a seguir e assinale-as com V (verdadeiro) ou F (falso): 
Resolução comentada:
8)
9)
( ) 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 dotipo 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.
F – F – V.
V – V – V. check CORRETO
V – F – V.
V – V – F.
· 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.
Código da questão: 71462
Sobre as diretivas em Assembly, analise as afirmativas a seguir e assinale-as com V (verdadeiro) ou F (falso): 
( ) CSEG é um diretiva utilizada para definição do segmento de código.
 ( ) DSEG é um diretiva utilizada para definição do segmento de dados e pode receber diferentes parâmetros.
 ( ) ESEG é um diretiva utilizada para definição do segmento da EEPROM e não pode receber parâmetros. 
Assinale a alternativa que contenha a sequência correta.
Alternativas:
V – V – V.
F – F – V.
F – V – F.
V – F – V. check CORRETO
V – V – F.
A primeira e a terceira afirmativas são verdadeiras, e a segunda afirmativa, falsa.
Veja a forma correta da afirmativa falsa: Definição de início de segmento de dados sem receber nenhum parâmetro.
Código da questão: 71458
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:
Memória FLASH.
CPU.
SPI.
Memória SRAM.
Display de 7 segmentos. check CORRETO
Resolução comentada:
Resolução comentada:
10)
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.
Código da questão: 71451
Na linguagem de programação C++, a simbologia “_______” tem significado de incremento, o que foi traduzido como um “_______” em comparação à
linguagem de programação C, pois a C é orientada a _______, e a C++ é orientada a _______. 
Assinale a alternativa que completa adequadamente as lacunas.
Alternativas:
++; algo a mais; objetos; procedimentos.
++; algo a mais; procedimentos; objetos. check CORRETO
--; algo a mais; rotinas; decrementos.
--; algo a menos; procedimentos; objetos.
--; algo a mais; procedimentos; objetos.
Na linguagem de programação C++, a simbologia “++” tem significado de incremento, o que foi traduzido como um “algo a mais” em comparação à
linguagem de programação C, pois a C é orientada a procedimentos, e a C++ é orientada a objetos. O criador do C++, Bjarne Strous, utilizou o “++”
justamente para representar o que ele dizia ser um “C com classes”.
Código da questão: 71460
Resolução comentada:
Resolução comentada:

Outros materiais