MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

Documentos relacionados
MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) Resposta Esperada

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!!

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

EXERCÍCIOS RESOLVIDOS

Laboratório de Microprocessadores e Microcontroladores

Temporizadores e Contadores (Timer/Counter)

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

Prof. Adilson Gonzaga

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

Laboratório de Microprocessadores e Microcontroladores. Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico

Lista de Exercícios 2

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

Lista de Exercícios 1

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

Temporizadores e Contadores

Interrupção. Prof. Adilson Gonzaga

Aula 10 Microcontrolador Intel 8051 Parte 2

Laboratório de Microprocessadores e Microcontroladores

MICROCONTROLADOR 8051

Lista de Exercícios 1

EXERCÍCIOS 2 Prof. Adilson Gonzaga

Laboratório de Microprocessadores e Microcontroladores

mov R1,10H ; Carrega o dado do endereço 10H em R1 mov R1,#10H ; Carrega 10H em R1

Microprocessadores TIMER/COUNTER I

Prof. Adilson Gonzaga

Oprojeto apresenta três níveis de dificuldade: fácil, médio e difícil. No modo fácil tem-se uma

PRÁTICAS. Microcontroladores: (LT36D) Prof: DaLuz. Práticas - 2º sem Microcontroladores LT36D - 26/04/ :56 1/16

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO

MICROPROCESSADORES E MICROCONTROLADORES PROVA 1

17/04/2017. Comunicação Serial. Comunicação Serial. Comunicação de Dados em Microprocessadores. . Comunicação Paralela. Comunicação Serial

Memória de Dados Interna. Memória de Dados Interna

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR

1. Instruções de Desvio

208 = D0 h TMOD. MOV TMOD,#20h ;TMOD = Timer 1 no ;Modo 2, controle por software SCON. ;Canal Serial

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE

Microprocessadores. Organização de Memória

2.4 Temporização da CPU

Organização de Memórias

Microcontroladores 8051

Lista de Exercícios 1

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1

Apontamentos sobre o 8051 Prof. Eng Luiz Antonio Vargas Pinto Versão revista e ampliada em 01/07/2009 Revisada em 28/02/2006 Revisada em 18/11/2007

Microcontrolador 8051

O microcontrolador Quatro partes importantes

SEL 337 Aplicação de Microprocessadores II

Aplicações de Microprocessadores I. Prof. Adilson Gonzaga

Interrupções por hardware

PROJETOS COM MICROCONTROLADORES

Interface Serial. Prof. Adilson Gonzaga

Família 8051 (introdução) 2011/1

CONJUNTO DE INSTRUÇÕES

Ocircuito da Fig.1 é usado para o acionamento dos Leds do Cubo.

Aula 8 Microcontrolador 8051

ORGANIZAÇÃO DE MEMÓRIA NO 8051: Microcontroladores - Prof: Demantova 1

NOTAS DE AULA 06 MICROCONTROLADOR 8051

Transcrição:

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA 1. Escreva as instruções para as configurações pedidas. Valor: 2,0 a) Habilita as interrupções externas zero e um e a interrupção do temporizador 0. As interrupções externas são por transição. A interrupção zero tem prioridade alta. 1 0 0 0 0 1 1 1 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 0 0 0 0 0 1 0 1 IP X X X PS PT1 PX1 PT0 PX0 0 0 0 0 0 0 0 1 MOV IE,#87H MOV TCON,#05H MOV IP,#01 b) Configura o temporizador 1 para operar no modo 1 com início de contagem em 3CAFH. Habilita a interrupção do temporizador 1. TMOD G1 C/T\ M1.1 M0.1 G0 C/T\ M1.0 M0.0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#0AFH MOV IE,#88H 2. A Figura 1 mostra um diagrama simplificado de acionamento de um motor de corrente contínua de 12 V e está associada ao programa mostrado na Tabela 1. A Tabela 2 mostra a lógica de funcionamento do motor CC e a Tabela 3 mostra o valor de recarga de um temporizador, no modo 1, para gerar diferentes quantidades de pulsos. O cristal oscilador é de 12 MHz. Valor: 4,0 Tabela 1: Programa para acionamento de motor de corrente contínua RÓTULO MNEMÔNICO RÓTULO MNEMÔNICO CH1 EQU P3.5 OPERA2: CLR P1.2 CH2 EQU P3.2 SETB P1.3 SETB P1.6 ORG 00H MOV R1,#10 LJMP PROB2 V4: LCALL ATRASO DJNZ R1,V4 ORG 30H SJMP V1 PROB2: MOV SP,#2FH MOV TMOD,#01H OPERA1: SETB P1.2 MOV R0,#10 CLR P1.3 MOV R1,#20 Parte 1 Parte 3 Parte 4

V1: CLR P1.2 CLR P1.3 CLR P1.6 V3: CPL P1.6 LCALL ATRASO DJNZ R1,V3 SJMP V1 JB CH1,V2 SJMP OPERA1 ATRASO: CLR TF0 MOV TH0,#63H V2: JB CH2,V1 MOV TL0,#0BFH SETB TR0 JNB TF0,,$ DJNZ R0,ATRASO MOV R0,,#10 CLR TR0 RET END Parte 2 Parte 5 Figura 1: Circuito simplificado de acionamento do motor de correntee contínua Tabela 2: Lógica de operação do motor IN1 IN2 Operação do motor 0 0 Motor parado 0 1 Rotação sentido direto 1 0 Rotação sentido reverso 1 1 Motor parado Tabela 3: Recarga do temporizador-modo 1 Início da Contagem 5.535 15.535 25.535 35.535 45.535 55.535 TH0 15H 3CH 63H 8AH B1H D8H TL0 9FH AFH BFH CFH DFH EFH Questões (Valor de cada questão: 1,0): a) Como funciona a Parte 2? O que ocorre se as chaves CH1 e CH2 permanecerem livres e o que ocorre quando cada uma delas é pressionada? No início da Parte 2, as instruções CLR P1.2, CLR P1.3 e CLR P1.6 desligam o motor e o LED. A seguir o estado da chave CH1 é verificado. Se estiver em nível lógico alto (chave CH1 aberta), pula para verificar o estado da chave CH2. Se CH2 = 1 (chave CH2 aberta), volta para o início da Parte 2. Se CH1 = 0 (chave CH1 pressionada), o processamento desvia para o endereço OPERA1. Se CH2 = 0 (chave CH2 pressionada), o processamento vai para próxima linha, onde começa a rotina chamada de OPERA2. b) Explique o funcionamento da Parte 5. Qual o tempo de atraso gerado por essa subrotina? Qual papel do registrador R0? o

A Parte 5 é uma subrotina de atraso de tempo baseada no temporizador 0, operando no modo 1. Cada contagem começa em 63BFH, que corresponde ao decimal 25.535. Isso significa que o temporizador conta 40.000 pulsos (65.535-25.535). Como o cristal oscilador é de 12 MHz, cada pulso do temporizador corresponde a 1 µs. Assim, o tempo de cada contagem resulta em 40 ms. Durante cada contagem do temporizador, o processamento fica em um loop infinito (JNB TF0,$), aguardando o fim da contagem. Após cada contagem, o registrador R0 é descrementado e verificado se é zero (DJNZ R0,ATRASO); enquanto ele não for zero, o processamento volta para ATRASO, para iniciar uma nova contagem do temporizador. Como R0 = 10, significa que são realizadas 10 contagem de 25.535 até 65. 535, ou seja, a subrotina ATRASO gera um tempo de atraso de 400 ms (10 x 40 ms). Quando R0 = 0, o processamento sai da subrotina. Porém, antes de sair, o registrador R0 é redefinido com valor 10 e o temporizador é desligado. c) Explique o funcionamento da Parte 3. O que ocorre com o motor CC e com o LED? Qual o sentido de rotação do motor? Por quanto tempo o motor funcionará? A Parte 3 é executada quando a chave CH2 é pressionada. As instruções CLR P1.2 (IN2 = 0) e SETB P1.3 (IN1 = 1) faz o motor CC girar no sentido reverso. A instrução SETB P1.6 liga o LED. A seguir, o registrador R1 recebe o valor decimal 10, usado para chamar a subrotina de atraso de tempo. Ou seja, a subrotina ATRASO é chamada 10 vezes, o que significa que o motor vai girar no sentido reverso por um tempo de 10 x 400 ms = 4 s. Passado esse tempo, o processamento volta para V1, onde o motor e o LED são desligados. d) Explique o funcionamento da Parte 4. O que ocorre com o motor CC e com o LED? Qual o sentido de rotação do motor? Por quanto tempo o motor funcionará? A Parte 4 é executada quando a chave CH1 é pressionada. As instruçõess SETB P1.2 (IN2 = 1) e CLR P1.3 (IN1 = 0) faz o motor CC girar no sentido direto. A seguir, o registrador R1 recebe o valor decimal 20, usado para chamar a subrotina de atraso de tempo. Ou seja, a subrotina ATRASO é chamada 20 vezes, o que significa que o motor vai girar no sentido direto por um tempo de 20 x 400 ms = 8 s. No entanto, o funcionamento do LED é diferente do item anterior. A instrução CPL P1.6 faz o LED piscar a cada vez que o processamento volta da subrotina de atraso de tempo, ou seja, a cada 400 ms. Ao final das 20 chamadas de subrotina, o processamento volta para V1, onde o motor e o LED são desligados. 3. A Figura 2 mostra uma matriz de LEDs de 3 linhas e 8 colunas. As linhas, de baixo para cima, estão conectadas, respectivamente às portas P0, P1 e P2. Cada LED está conectado a um dos pinos dessas portas (0 a 7), conforme mostrado na Figura 2. A Figura 3 mostra essa mesma matriz em 3 instantes diferentes, onde pode-se ver o deslocamento de uma onda triangular. Faça um programa em assembly do 8051 onde a interrupção externa zero, por transição, faz essa onda triangular se deslocar 8 passos para a direita e a interrupção externa 1, por nível, faz a onda se deslocar para a esquerda, passo a passo, enquanto houver pedido de interrupção. Use uma subrotina de atraso de tempo baseada nos registradores R0 e R1. Valor: 4,0

Figura 2: Matriz 3x8 de LEDs Figura 3: Matriz 3x8 em diferentes instantes de acionamento Para produzir o efeito de uma onda triangular se deslocando, observar que o valor enviado para as portas mantém um padrão, que pode se deslocar usando a instrução ou R. No entanto, deve-se lembrar que essas instruções só são usadas com o acumulador, ou seja, cada valor deve ser transferido para o acumulador, rotacionado e devolvido para o registrador de origem. Os valores iniciais a serem enviados para as portas P0, P1 e P2 são, respectivamente, 88H, 55H e 22H. Após a primeira rotação à direita esses valores tornam-se: 44H, AAH e 11H e, depois, 22H, 55H e 88H. Rótulo Mnemônico LINHA1 EQU 10H LINHA2 EQU 11H LINHA3 EQU 12H ORG 00H LJMP PROB2 ORG 03H LJMP DIREITA ORG 13H LJMP ESQUERDA Comentários ; Registrador 10H guarda os valores enviados paraa P0 ; Registrador 11H guarda os valores enviados paraa P1 ; Registrador 12H guarda os valores enviados paraa P2 ; A próxima instrução está no endereço 00H ; Desvia o processamento para o endereço PROB2 ; A próxima instrução está no endereço 03H (Interrupção externa zero) ; Desvia para o endereço DIREITA ; A próxima instrução está no endereço 13H (interrupção externa um) ; Desvia para o endereço ESQUERDA PROB2: ORG 30H MOV SP,#2FH ; Pilha inicia no endereço 2FH MOV IE,#85H ; Habilita as interrupções externas 0 e 1 MOV TCON,#01H ; Interrupção externa zero por transição MOV R7,#8 ; Contador do deslocamento para a direita MOV LINHA1,#88HH ; Valor inicial da Linha 1 MOV LINHA2,#55HH ; Valor inicial da Linha 2 MOV LINHA3,#22HH ; Valor inicial da Linha 3 DIREITA: SJMP $ MOV P0,LINHA1 MOV P1,LINHA2 MOV P2,LINHA3 LCALL ATRASO MOV A,LINHA1 MOV LINHA1,A MOV A,LINHA2 MOV LINHA2,A MOV A,LINHA3 ; Loop infinito esperando interrupção ; Transfere para P0 o conteúdo da Liha 1 ; Transfere para P1 o conteúdo da Liha 2 ; Transfere para P2 o conteúdo da Liha 3 ; Chama subrotina de atraso de tempo ; Transfere para A o conteúdo da Linha 1 (necessário para a rotação) ; Devolve o conteúdo de A (rotacionado) para a Linha 1 ; Transfere para A o conteúdo da Linha 2 (necessário para a rotação) ; Devolve o conteúdo de A (rotacionado) para a Linha 2 ; Transfere para A o conteúdo da Linha 3 (necessário para a rotação)

MOV LINHA3,A ; Devolve o conteúdo de A (rotacionado) para a Linha 3 DJNZ R7,DIREITA ; Decrementa o contador R7. Enquanto R7 não for zero, volta para DIREITA MOV R7,#8 ; Recarrega R7 com o valor 8 RETI ; Sai da subrotina de interrupção ESQUERDA: MOV P0,LINHA1 ; Transfere para P0 o conteúdo da Liha 1 MOV P1,LINHA2 ; Transfere para P1 o conteúdo da Liha 2 MOV P2,LINHA3 ; Transfere para P2 o conteúdo da Liha 3 LCALL ATRASO ; Chama subrotina de atraso de tempo MOV A,LINHA1 ; Transfere para A o conteúdo da Linha 1 (necessário para a rotação) MOV LINHA1,A ; Devolve o conteúdo de A (rotacionado) para a Linha 1 MOV A,LINHA2 ; Transfere para A o conteúdo da Linha 2 (necessário para a rotação) MOV LINHA2,A ; Devolve o conteúdo de A (rotacionado) para a Linha 2 MOV A,LINHA3 ; Transfere para A o conteúdo da Linha 3 (necessário para a rotação) MOV LINHA3,A ; Devolve o conteúdo de A (rotacionado) para a Linha 3 RETI ; Sai da subrotina de atraso de tempo ATRASO: MOV R0,#250 ; Subrotina de atraso de tempo baseada nos registradores R0 e R1 V1: MOV R1,#250 DJNZ R1,$ DJNZ R0,V1 RET END Tabela 4: Alguns Registradores Especiais Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IP X X X PS PT1 PX1 PT0 PX0 PSW CY AC F0 RS1 RS0 OV X P TMOD G1 C/T\ M1.1 M0.1 G0 C/T\ M1.0 M0.0 Tabela 5: Endereços das interrupções Interrupção Solicitada Endereço de desvio Reset 0000h INT0\ 0003h Timer/counter 0 000Bh INT1\ 0013h Timer/counter 1 001Bh Canal Serial 0023h