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
Download

MICROPROCESSADORES E MICROCOMPUTADORES