Baixe o app para aproveitar ainda mais
Prévia do material em texto
FACULDADE ESTÁCIO DE CURITIBA Curso: Engenharia Elétrica Turma: 3001 Disciplina: Sistemas a microprocessadores Professor(a): Henrique Marin van der Broocke Campos Data: 05/10/2020 Avaliação: AV1 Aluno: Igor Alekssander maurer da Silva Matrícula: 201703128303 Nota: INSTRUÇÕES PARA A AVALIAÇÃO: a) Leia atentamente todas as questões antes de iniciar; b) A interpretação das questões faz parte da avaliação; Boa Prova! 1) A respeito da linguagem de programação em C considere as afirmativas abaixo, que são verdadeiras (V) ou falsas (F) e assinale a alternativa correta. Valor: 1,0 I. As diretrizes iniciais de um programa têm a função de realizar o pré-processamento, do código, possibilitando a inclusão de bibliotecas e a definição de indicadores ou variáveis. II. O controle de fluxo ou tomada de decisão permite realizar testes de determinadas condições, que possibilitam realizar certas tarefas ou não. III. As estruturas de repetição têm por função criar um loop, ou seja, um caminho no código para a repetição de determinada tarefa, a partir da validade de determinado teste. IV. As funções if-else e switch-case são exemplos de estruturas de tomada de decisão ou controle de fluxo, ao passo que as funções for e while-do são exemplos de repetição. a) As afirmativas I e II são corretas. b) As afirmativas I, II e III são corretas. c) As afirmativas II e III são corretas. d) As afirmativas II, III e IV são corretas. e) As afirmativas I, II, III e IV são corretas. 2) Para o código descrito abaixo, responda o que se pede: Valor: 1,0 #include <16F628A.h> //Inclusão de biblioteca #fuses XT // oscilador crystal <= 4mhz #use delay (clock = 4MHz) // definido a frequencia de clock void main() // declaração da variável { int i; while(1) // estabelece laço de repetição { for(i = 0; i<256;i++) contará de 0 á 255 sendo i<256 { output_B(i); // coloca o byte no port B delay_ms(500); // Aguarda 500 milésimos de segundos } } } a) Explique o que esse código faz, descrevendo cada linha. Esta na linha do programa. 3) Descreva o que é uma memória de dados RAM e para que ela é utilizada em sistemas com microcontroladores PIC.: Valor: 1,0 R: A RAM é o tipo de memoria que grava informações, mas pode ser apagada ou sobescrita caso não seja mais útil, é uma memoria muito versátil para a execução de programas, ela deixa disponível as instruções para serem executadas mais rapidamente. 4) Descreva para que a memória EEPROM interna é utilizada. Valor: 1,0 R: A EEPROM no PIC é utilizada como uma memória não volátil, onde podemos armazenar alguma informação relevante para o programa a ser executado. A EEPROM não é volátil, portanto ao ligar o microprocessador a informação continuará armazenada na memória. 5) É uma memória considerada somente de leitura, por não permitir alterar a informação armazenada, além da informação não ser perdida na ausência de energia elétrica. Que memória é essa? Valor: 1,0 a) PROM b) EPROM c) EEPROM d) RAM e) ROM 6) Na Figura 1 é apresentado um diagrama esquemático de um microprocessador. De acordo com a Figura, trata-se de qual arquitetura de computador? Justifique. Valor: 1,0 R: Arquitetura de Harvard Figura 1 7) A Unidade Lógica Aritmética (ULA) está presente em qual parte da arquitetura dos microcomputadores? Valor: 1,0 a) Memória RAM b) Barramento de dados c) Barramento de endereços d) Microprocessador e) Unidade de Controle 8) Para esta questão considere a placa 1 do PICSIMLAB 7, utilizando o microcontrolador PIC 16F628A. O compilador sugerido é o CCS C Compiler. Crie um código que ao pressionar cada um dos 4 botões a velocidade com que os LEDs acendem e apagam é aumentada. Utilize os 4 botões disponíveis (Exemplo: botão 1 – velocidade 1 lento; botão 2 – velocidade 2; botão 3 velocidade 4 e botão 4 – velocidade 4 máxima). Utilize a mesma frequência de clock no compilador e no simulador. Apresente os prints do código no compilador e o funcionamento no simulador. Valor: 3,0 R: #include <16F628.h> //inclusão de biblioteca #fuses XT, NOWDT, NOPROTECT, NOPUT //configuração do hardware do PIC #use delay( clock=4MHz ) //configuração do clock de processamento void main () { //início do programa int btn1 = 0; //declaração de variável int btn2 = 0; //declaração de variável while (true) { //iniciando rotina while (loop infinito) if (input(PIN_A1) == 0) { //se botão A1 for 0 ... btn1 = !btn1; //variável btn1 recebe sua inversa while(input(PIN_A1) == 0); //repita instrução enquanto A1 for 0 } //encerra condição if (input(PIN_A2) == 0) { //se botão A2 for 0 ... btn2 = !btn2; //variável btn2 recebe sua inversa while(input(PIN_A2) == 0); //repita instrução enquanto A2 for 0 }//encerra condição if (btn1 == 0 && btn2 == 0) { //se as variáveis btn1 e btn2 forem 0 ... delay_ms(100); // espera 0,1s }//encerra condição if (btn1 == 0 && btn2 == 1) { //se as variáveis btn1 = 0 e btn2 = 0 ... delay_ms(500); // espera 0,5s }//encerra condição if (btn1 == 1 && btn2 == 0) { //se as variáveis btn1 = 1 e btn2 = 0 ... delay_ms(1000); // espera 1s } //encerra condição if (btn1 == 1 && btn2 == 1) { //se as variáveis btn1 e btn2 forem 1 ... delay_ms(2000); // espera 2s } //encerra condição output_toggle(PIN_B0); // altera entre LED acesso ou apagado dependendo do resultado obtido na lógica acima. } // fecha loop infinito }// fecha programa
Compartilhar