Baixe o app para aproveitar ainda mais
Prévia do material em texto
5407350100 A 06/06/2022 19:36 Nome: __________________________________________________________ Matrícula: ________________ Disciplina: WYF0959 / MICROCONTROLADORES Data: ___ /___ /______ Período: 2022.1 / AV2 Turma: 3001 Leia com atenção as questões antes de responder. É proibido o uso de equipamentos eletrônicos portáteis e consulta a materiais de qualquer natureza durante a realização da prova. Questões objetivas e discursivas que envolvam operações algébricas devem possuir a memória de cálculo. Boa prova. 1. _______ de 1,00 Dentre as vantagens do uso da linguagem de programação C com parado ao Assembly, assinale a alternativa incorreta: Redução do tempo de desenvolvimento. Facilidade de manutenção. Pela estruturação da linguagem, corrigir problemas e alterar o código é relativamente simples. Um programa desenvolvido em C consome menos memória e apresenta maior velocidade de processamento que um programa desenvolvido em Assembly. Os códigos são de fácil escrita, com isso, o reuso dos códigos é facilitado, principalmente pela criação de funções próprias. Portabilidade. Transferir o código de um tipo de microcontrolador para outro, mesmo com arquiteturas totalmente diferentes, é relativamente simples. 2. _______ de 1,00 O código a seguir utiliza 2 botões que quando pressionados geram as interrupções externas INT0 e INT1. Analise o código e assina a alternativa incorreta: #define LED PB5 ISR(INT0_vect); ISR(INT1_vect); //---------------------------------------------------------------------------------- int main() { DDRD = 0x00; PORTD = 0xFF; DDRB = 0b00100000; PORTB = 0b11011111; EICRA = 0b00000010; EIMSK = 0b00000011; sei(); //habilita interrupções globais, ativando o bit I do SREG while(1){} } //----------------------------------------------------------------------------------- ISR(INT0_vect) { cpl_bit(PORTB,LED); } //----------------------------------------------------------------------------------- ISR(INT1_vect) { cpl_bit(PORTB,LED); _delay_ms(200); A interrupção INT0 foi configurada para ocorrer somente na transição de 0 para 1 (borda de descida). O botão ligado a interrupção INT1 foi habilitado para gerar uma interrupção por nível lógico 0. Enquanto o botão ligado a INT1 for pressionado, o LED irá piscar com um intervalo de tempo de 200 ms. As interrupções externas INT1 e INT0 são habilitadas através dos dois bits menos significativos do registrador EIMSK Quando o botão ligado a INT0 é pressionado, o LED troca de estado (liga ou desliga). 3. _______ de 1,00 Em um microcontrolador, dispõe-se de um temporizador (timer), implementado a partir de um contador de oito bits, onde a frequência de clock empregada no circuito do timer é de 16 MHz. Um projetista necessita empregar esse timer para disparar uma rotina de interrupção no microcontrolador a cada 1,0 ms. Desse modo, o menor fator de escala que deve ser utilizado no prescaler do timer em questão é de 32 16 128 8 64 4. _______ de 1,00 De acordo com o código em C descrito abaixo, assinale a alternativa correta: #define F_CPU 16000000UL #include #include #define set_bit(Y,bit_x) (Y|=(1< #define clr_bit(Y,bit_x) (Y&=~(1< #define tst_bit(Y,bit_x) (Y&(1< #define BOTAO PD7 #define LED PD2 int main() { DDRD = 0b00000100; PORTD= 0b11111111; while(1) { if(!tst_bit(PIND,BOTAO)) { while(!tst_bit(PIND,BOTAO)); _delay_ms(10); if(tst_bit(PORTD,LED)) clr_bit(PORTD,LED); else set_bit(PORTD,LED) } } } O programa executa a tarefa de trocar o estado de um led sempre que um botão é pressionado. O programa faz um led piscar enquanto um botão estiver pressionado. O programa trata-se de um pisca-led que troca o estado do led a cada 10ms. Ao pressionar um botão, o led acende e apaga uma vez com intervalo de tempo de 10 ms. O programa testa um botão e pisca um led caso o botão não esteja pressionado. 5. _______ de 1,00 O trecho de código pode ser utilizado, tanto na configuração dos pinos de uma porta, quando na escrita e leitura da mesma. unsigned char i; DDRB = 0xC5; PORTB = 0b11000011; i = PINB; Com relação às portas de entrada e saída, considerando ainda o trecho de código apresentado, assinale o item correto. No trecho apresentado, os pinos PB7, PB6, PB0 e PB2 são configurados como saídas. No trecho apresentado, os pinos PB7, PB6, PB0 e PB2 são configurados como entradas. No trecho apresentado, DDRB seta os pinos DDB3, DDB2, DDB1 e DDB0. No trecho apresentado, os pinos PB0, PB1, PB6 e PB7 são configurados como entradas. A última linha do trecho apresentado (i= PINB;) carrega na variável i o último valor escrito pelo microcontrolador na porta B. 6. _______ de 1,00 Em microcontroladores uma interrupção é um sinal externo ou advindo de algum periférico que provoca uma troca de contexto, ou seja, o microcontrolador para o que está executando para atender o dispositivo que fez a sinalização. Com relação às interrupções do ATMega assinale a alternativa incorreta. Quando ocorre um pedido de interrupção para a CPU, o programa é desviado para um endereço pré- estabelecido, o vetor de interrupção. A ocorrência de um determinado evento faz com que uma sinalização (flag) relacionada a este evento seja setada. Se a interrupção associada a este evento estiver habilitada, a CPU receberá um pedido de interrupção. Existem vários eventos causadores de interrupção tais como transição em alguns pinos, estouro de timers. Uma interrupção não faz com que a execução normal do programa pare, elas são tratadas de forma paralela. 7. _______ de 1,00 Considere as linhas de código a seguir: signed char a, b; a = 100; b = 200; a *= b; Assinale a alternativa correta: A variável a deveria ser declarada como unsigned char. A operação acarreta em um estouro da capacidade da variável, gerando um resultado errado. A operação descrita acima realiza o resto da divisão de a por b. A operação descrita acima terá como resultado a = 20000. A operação realiza a soma entre as variáveis a e b. 8. _______ de 1,00 Um microntrolador possui diversos periféricos especializados que podem ser adequadamente configurados por meio de registradores próprios. Dentre estes, o módulo temporizador tem um importante papel. No caso do ATMega, ele possui três temporizadores/contador com características próprias. O temporizador/contador 0 do ATMega tem as seguintes características, exceto: Possui um divisor do clock para o contador de até 10 bits - prescaler.. Funciona como gerador de frequência. Pode contar eventos externos. Apresenta uma função especial para a contagem precisa de 1 s, permitindo o uso de um cristal externo independente para o seu clock (32,768 kHz).. Funciona como um contador simples baseado no clock da CPU. 9. _______ de 1,00 Com relação aos tipos de variáveis utilizadas na linguagem C, assinale a alternativa incorreta: Os modificadores unsigned e signed informam que os valores armazenados serão apenas positivos ou positivos e negativos. Os tipos de variáveis podem receber modificadores pcionais de modo a criar um tipo de dado mais adequado para cada aplicação. Uma variável declarada como unsigned char apresenta um range de 0 a 255 e tem um tamanho de 16 bits. Na linguagem C, existem 4 tipos de dados: char, int, float e double. Uma variável declarada como unsigned int apresenta um range de 0 a 65535 e tem um tamanho de 16 bits.. Campus: DUNAS - CE Prova Impressa em 06/06/2022 por RONNY GLAUBER DE ALMEIDA CACAU Ref.: 5407350100 Prova Montada em 06/06/2022 10. _______ de 1,00 No que diz respeito às interrupções externas, assinale a alternativa incorreta: Quando ocorrer um interrupção em algum dos pinos, o bit de sinalização do PORT no registrador PCIFR é ativo: PCIF0 para o PORTB, PCIF1 para o PORTC e PCIF2 para o PORTD. A habilitação individual dos pinos é feita nos registradores PCMSK0, PCMSK1 e PCMSK2.Os bits PCIE0, PCIE1 e PCIE2 do registrador PCICR habilitam as interrupções por qualquer mudança nos pinos do PORTB (PCINT0:7), nos pinos do PORTC (PCINT8:14) e nos pinos do PORTD (PCINT16:23) , respectivamente. O bit mais significativo do registrador SREG tem a função de controlar todas as interrupções, internas e externas do microcontrolador. Quando o bit mais significativo do registrador SREG é igual a zero, as interrupções habilitadas individualmente passam a funcionar, quando é igual a 1, todas as interrupções são desabilitadas. O registrador PCICR é responsável pela habilitação de todas as interrupções externas nos pino de I/O, do PCINT0 até o PCINT23.
Compartilhar