Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pt:exercises:ui [2015/12/10 18:12] – Criação deste novo documento. articapt:exercises:ui [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +<pagebreak>
 +====== Exercicios ======
 +
 +O objetivo é escrever um programa que é capaz de realizar tarefas descritas abaixo.
 +
 +===== Exercicios de aquecimento =====
 +
 +*Ao pressionar S1 um LED acende, pressionando S2 dois LEDs acendem e S3 três LEDs acendem.
 +
 +===== Para iniciantes =====
 +
 +  - Isto simula semáforos de carros.
 +  - Isto simula semáforos manuais para peões. Enquanto nenhum botão seja pressionado um LED verde está aceso para os carros. Depois de pressionar um botão (S1), o LED verde começará a piscar durante 3 segundos, o que é seguido da iluminação do LED amarelo por 3 segundos e vermelho durante 10 segundos, depois desta sequência o LED verde fica aceso novamente. Quando o LED vermelho está aceso, o display de 7 segmentos indica a contagem decrescente dos segundos até que o LED verde se ligue.
 +  - Isto conta quantas vezes o botão é pressionado. O resultado é exibido através do piscar dos LEDs. Após cada pressionamento o número de piscar aumentada de um. Um botão aleatório pode ser seleccionado. Para que o LED pisque uma sub função deve ser utilizada, com parâmetros definidos no número de piscadelas.
 +  - Apresentar números em sistema hexadecimal aleatóriamente no display de 7 segmentos. A freqüência é de 1 Hz.
 +  - Ao pressionar o botão S1, a velocidade intermitente de todos os três LEDs é diminuida duas vezes. Ao pressionar o botão S3, o piscar torna-se 2 vezes mais rápido, e ao pressiona a tecla S2 a frequência do piscar será re-definido para 1 Hz. É necessário usar interruptor (não funções de atraso por software).
 +  - Criar três músicas, que são tocadas quando o botão é pressionado. A alteração da música deve ser instantânea quando outro botão for pressionado.
 +
 +===== Para avançados =====
 +
 +  - Quando pressionar os botões em sequência S3 - S2 - S1, o LED verde fica aceso. Todas as outras combinações resultam no LED vermelho. Cada vez que algum botão seja premido um LED amarelo irá piscar.
 +  - Há um botão para cada LED. O controlador pisca LEDs aleatoriamente e o utilizador tem de repetir a seqüência. A sequência de piscar fica maior - um LED aleatório é adicionado em cada ronda. A sequência é controlada depois de cada utilizador. O intervalo de tempo entre cada entrada é de dois segundos. No caso de uma entrada incorreta todos os LEDs piscam três vezes. (O número de entradas corretas por parte do utilizador pode ser exibido no ecrãn LCD).
 +  - Luz em sequência de 6 segmentos de fora circulares sobre o indicador de 7 segmentos com o período de 500 ms.
 +  - Faça um programa onde pode mover o símbolo "X" no ecrãn. Use o botão S1 para mover para a esquerda, botão S3 para mover para a direita e S2 para mudar de linha.
 +  - Implemente o jogo da cobra no ecrãn LCD. A largura da cobra é de 1 pixel e o comprimento é de 5 pixels. A cobra pode ser programada para virar usando os botões de esquerda ou direita. A cobra deve ser capaz de evitar a colisão com a borda do ecrãn (girando antes). Os pontos de bónus são para a capacidade de apanhar as maças e fazer a cobra crescer. A solução mais simples é desenhar a cobra usando a letra "O".
 +
 +===== Questões =====
 +
 +  - Qual é a diferença entre as operações "=" e "=="? Dê dois exemplos que ilustrem.
 +  - Qual é a diferença entre as operações "|" e "||"? Dê dois exemplos que ilustrem.
 +  - Escreva uma expressão utilizando a equação "x = x + 1" doze vezes.
 +  - Como é que um loop infinito é escrito em linguagem de programação C? Forneça dois exemplos diferentes.
 +  - Que tipo de variável pode ser escolhida em linguagem C para apresentar valores positivos entre 7 e 154?
 +  - Que tipo de registo determina a direção de uma porta? Dê um exemplo de como configurar as definições de entrada e saída de portos.
 +  - Quais são os métodos para eliminar o salto dos contactos e as falsas ligações causados ​​por cintilação? Dê exemplos de soluções usando hardware e software.
 +  - O que é um bit shift? Dê um exemplo prático com uma explicação.
 +  - Por que motivo são as resistências pull-up usadas ​​em interruptores? Como é a sua resistência determinada?
 +  - Calcule a resistência para a regulação da corrente LED, a tensão é de 5 V, tensão para a frente do LED é de 2,7 V e a corrente é 30 mA.
 +  - Quantos pinos usa o indicador de números de 7 segmentos (com segmento de ponto), se estiver conectado diretamente ao controlador? Quantos pinos seria necessário se fosse controlado através do registo de deslocamento 74HC595?
 +  - O que determina o brilho do indicador de números de 7 segmentos? Como ele pode ser ajustado se o indicador de número é controladao a) diretamente b) através do registo de deslocamento 74HC595?
 +  - Como podem os números no sistema decimal ser convertidos em sistema binário (de texto) e vice-versa?
 +  - Como é o LCD monocromático (preto e branco) diferente do LCD de cor?
 +  - Como é criado o atraso por software? Em que parâmetros depende a duração do atraso de software?
 +  - O que nos faz usar atraso de hardware / temporizador com interrupções?
 +  - Calcular o período de interrupção de estouro de 8-bit timer, se a velocidade do relógio é de 16 MHz e freqüência de divisão é 1024.
 +  - O que pode ser feito com os temporizadores AVR além de contar o tempo?
 +  - Qual é a maior duração das interrupções em milissegundos que pode ser alcançado com o microcontrolador ATxmega128A1U que trabalham na frequência de relógio de 32 MHz? Mostrar a fórmula de cálculo.
 +  - No caso de o processador estar muito carregado com uma execução de um programa (por exemplo, que controla diversos motores e os valores de vários sensores de uma só vez), isto tem um efeito sobre a precisão do temporizador? Explique sua resposta.
 +
  
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0