Goiânia, Maio de 2014. Prof. José Wilson Lima Nerys TAREFA 2 – Microcontrolador 8051 (Interrupções) 1. Suponha uma lâmpada de 12 V acionada através do pino P1.7 e do driver ULN2803. Faça um programa em assembly do 8051 que usa a interrupção externa zero, por transição, para ligar/desligar a lâmpada. 2. Faça um programa em assembly do 8051 que usa a interrupção externa zero, por transição, para rotacionar os LEDs da porta P1 para a esquerda e a interrupção externa 1, por transição, para rotacionar os LEDs para a direita. Use uma subrotina de atraso de tempo baseada em registradores. 3. Suponha um motor de passo conectado ao nibble inferior da porta P1. Faça um programa em assembly do 8051 que usa a interrupção externa zero, por transição, para fazer o motor de passo girar para a esquerda e a interrupção externa 1, por transição, para fazer o motor de passo girar para a direita. Use uma subrotina de atraso de tempo baseada em registradores. 4. Suponha um motor de corrente contínua, acionado através do driver L298, e conectado ao pinos P0.0 e P0.1. Faça um programa em assembly do 8051 que usa a interrupção externa zero, por transição, para fazer o motor de corrente contínua girar para a esquerda e a interrupção externa 1, por transição, para fazer o motor de corrente contínua girar para a direita. 5. Faça um programa em assembly do 8051 para acionar, usando a interrupção externa zero, uma lâmpada (pino P1.7), um motor de passo conectado ao nibble inferior da porta P1 e um motor de corrente contínua conectado aos pinos P0.0 e P0.1. O acionamento deve ser em sequência, um dispositivo por vez. Na primeira vez que a interrupção é solicitada a lâmpada é ligada; na segunda vez, a lâmpada apaga e o motor de passo gira para a esquerda; na terceira vez que a interrupção é solicitada o motor de passo para e o motor de corrente contínua é acionado. Na quarta vez todos os dispositivos são desligados. A interrupção é por transição. 6. Faça um programa em assembly do 8051 para mostrar nos LEDs da porta P1 uma contagem crescente a cada vez que a interrupção externa zero é acionada, por nível. Use uma subrotina de atraso de tempo baseada em registradores. 7. Faça um programa em assembly do 8051 onde a interrupção externa zero, quando acionada por transição, faz os LEDs da porta P1 piscarem 10 vezes, alternando o nibble inferior com o superior; e quando a interrupção externa 1 é acionada, por nível, todos os LEDs piscam ao mesmo tempo, enquanto houver pedido de interrupção. 8. Suponha que o nibble inferior da porta P1 seja usada para acionar um motor de passo. Sabendo que cada passo do motor corresponde a 7,5o, faça um programa onde, a cada pedido da interrupção externa zero, por transição, o motor gira uma volta completa (360o) e a cada pedido da interrupção externa 1, por transição, o motor gire 180o no sentido contrário ao anterior. 9. Na figura a seguir cada 4 passos do motor de passo corresponde a 1 cm. Faça um programa onde o motor de passo se desloque, de forma ininterrupta, entre as marcas de -5 cm e 5 cm, começando da marca 0 cm. A seguir faça um programa onde o motor desloca-se até tocar um dos sensores laterais, quando, então, ele muda de direção. O sensor S1 solicita uma interrupção externa zero e o sensor S2 solicita uma interrupção externa 1. Microprocessadores e Microcontroladores - www.eee.ufg.br/~jwilson Escola de Engenharia Elétrica, Mecânica e de Computação – Universidade Federal de Goiás