Laboratório de Microprocessadores e Microcontroladores

Documentos relacionados
Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada

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

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

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

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

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

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

EXERCÍCIOS RESOLVIDOS

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

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!!!!

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

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

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

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga

MICROPROCESSADORES E MICROCONTROLADORES PROVA 1

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

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

Interrupção. Prof. Adilson Gonzaga

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

1. Instruções de Desvio

Aula 10 Microcontrolador Intel 8051 Parte 2

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

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

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br

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

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

CONJUNTO DE INSTRUÇÕES

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

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

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

EXERCÍCIOS 2 Prof. Adilson Gonzaga

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

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

Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET

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

Instruções de movimentação de dados

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Lista de Exercícios 2

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO

Microprocessadores e Microcontroladores Parte 3. Expansão de Memória Mapeamento de Memória

Lista de Exercícios 1

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

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

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

MICROPROCESSADORES E MICROCONTROLADORES Parte 3 Microcontrolador 8051

PROJETOS COM MICROCONTROLADORES

MICROCONTROLADOR 8051

Organização de Memórias

FORMATO DO PROGRAMA FONTE

Microcontroladores. Conjunto de Instruções do Prof. Guilherme Peron Prof. Heitor Lopes Prof. Ronnier Rohrich Prof. Rubão

Técnicas de Interface com Microcontroladores (8051)

NOTAS DE AULA 06 MICROCONTROLADOR 8051

Lista de Exercícios 1

Conjunto de Instruções do 8051

Microcontroladores 8051

Instruções Assembly x Código de máquina Microprocessador Didático

Interface com Teclas, Leds e Teclados Matriciais. Prof. Adilson Gonzaga

O microcontrolador Quatro partes importantes

Temporizadores e Contadores (Timer/Counter)

Prof. Adilson Gonzaga. Técnicas de Interface

TRABALHO DE CONCLUSÃO DO CURSO TÉCNICO EM ELETRÔNICA MÁQUINA DE VENDAS AUTOMÁTICA

Prof. Adilson Gonzaga

LABORATÓRIO DE ARQUITETURA DE COMPUTADORES PREPARAÇÃO 02: DISPLAY DE 7 SEGMENTOS MICROCONTROLADO

Sistemas Embarcados:

Transcrição:

Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 2: Teclado e Rotação de LEDs Alunos: Matrícula: Prof. Dr. José Wilson Lima Nerys Goiânia, 1º semestre de 2017

Laboratório de Microprocessadores e Microcontroladores 1-2 SUMÁRIO 1 Teclado e Rotação de LEDs... 1-3 1.1 Introdução Geral... 1-3 1.2 Teclado... 1-3 1.3 Conjunto de LEDs... 1-4 2 Tarefas do Experimento 2... 2-5 2.1 Tarefa 1 Rotação de LEDs... 2-5 2.2 Tarefa 2 Rotação de LEDs... 2-6 2.3 Tarefa 3 Mapeamento do Teclado... 2-6 2.4 Tarefa 4 Efeito sobre os LEDs usando o Teclado... 2-9

Laboratório de Microprocessadores e Microcontroladores 1-3 1 Teclado e Rotação de LEDs 1.1 Introdução Geral O presente experimento faz uso de um kit didático, Fig. 1, que contém um teclado de 16 teclas conectado à porta P2, um conjunto de 8 LEDs conectado à porta P1, um conector com acesso a todas as Portas (P0, P1, P2 e P3) e um módulo de comunicação serial, além de chaves do tipo push-button para reset e para as interrupções 0 e 1. Fig. 1 - Esquemático com os componentes do Kit didático O microcontrolador deverá ser gravado através de uma gravadora separada do Kit. As chaves INT0 e INT1 conectam, respectivamente, os pinos P3.2 e P3.3 ao Terra. 1.2 Teclado As conexões do teclado são mostradas na Fig. 2. As teclas são conectadas na forma de uma matriz 4 x 4. As linhas 1 a 4 são conectadas, respectivamente aos pinos P2.7, P2.6, P2.5 e P2.4. As colunas 1 a 4 são conectadas, respectivamente aos pinos P2.3, P2.2, P2.1 e P2.0. Fig. 2 - Teclado do kit didático

Laboratório de Microprocessadores e Microcontroladores 1-4 A leitura da tecla digitada é feita por varredura do teclado. Inicialmente todos os pinos da porta P2 estão em nível lógico alto. Assim, por exemplo, coloca-se a Linha L1 em nível lógico baixo (L1=0), através da instrução CLR L1 e verifica-se (varredura) o estado das colunas C1 a C4. Se a coluna C1 estiver em nível lógico baixo, significa que a tecla "1" foi pressionada. Se, ao invés disso, a coluna C3 estiver em nível lógico baixo, a tecla pressionada foi "3". Dessa forma, a varredura completa do teclado é feita colocando-se cada linha em nível lógico baixo e verificando o estado das colunas. 1.3 Conjunto de LEDs A capacidade de corrente do microcontrolador 8051 de 40 pinos não é suficiente para acionar diretamente um LED, cuja corrente prevista está em torno de 10 ma. Assim, é utilizado o drive ULN2803, mostrado na Fig. 3. Fig. 3 - drive ULN2803 para o motor de passo Os 8 LEDs são, portanto, conectados à porta P1 através do drive ULN2803.

Laboratório de Microprocessadores e Microcontroladores 2-5 2 Tarefas do Experimento 2 Cada um dos experimentos será realizado em duas etapas: no simulador do Kit Didático e no Kit didático real. A compilação dos programas pode ser feita no simulador MCU 8051. 2.1 Tarefa 1 Rotação de LEDs Passo 1: Digite e compile no simulador MCU 8051 o programa da Tabela 1. Não é necessário digitar os comentários. Tabela 1: Rotação de LEDs para a esquerda na porta P1 Rótulo Mnemônico Comentário ORG 00H ; A instrução a seguir está no endereço 00H LJMP INICIO ORG 30H ; A instrução a seguir está no endereço 30H INICIO: MOV SP,#2FH ; O apontador de pilha assume o valor 2FH MOV A,#01H ; O acumulador A recebe o valor 01H V1: JB P3.2,V1 ; Enquanto P3.2=1, espera em um loop infinito MOV P1,A ; O conteúdo de A é enviado para os LEDs LCALL ATRASO ; Chama subrotina de atraso de tempo RL A ; Rotaciona para a esquerda o conteúdo de A SJMP V1 ; Retorna para a linha V1 ATRASO: MOV R0,#10 ; R0 recebe o valor 10 decimal V3: MOV R1,#100 ; R1 recebe o valor 100 decimal V2: MOV R2,#200 ; R2 recebe o valor 200 decimal DJNZ R2,$ ; O registrador R2 é decrementado até zerar DJNZ R1,V2 ; Enquanto R1 0, retorna para V2 DJNZ R0,V3 ; Enquanto R0 0, retorna para V3 RET ; Retorna da subrotina de atraso de tempo END Passo 2: Use o simulador do Kit Didático para simular o programa da Tabela 1. VERIFIQUE e COMENTE o que ocorre quando a chave conectada ao pino P3.2, é mantida pressionada e quando ela é liberada. COMENTÁRIO: Passo 3: Use o gravador MaxLoader para gravar o programa da Tabela 1 no microcontrolador do kit didático. Repita o procedimento de verificação de funcionamento usado no simulador do kit didático.

Laboratório de Microprocessadores e Microcontroladores 2-6 2.2 Tarefa 2 Rotação de LEDs Passo 1: A Tabela 2 mostra o programa da Tabela 1 com uma alteração na rotina que mostra o conteúdo de A nos LEDs da Porta P1. Faça a alteração necessária, compile o programa e utilize o kit didático para verificar o funcionamento do mesmo. Tabela 2: Rotação de LEDs para a esquerda na porta P1 Rótulo Mnemônico Comentário ORG 00H ; A instrução a seguir está no endereço 00H LJMP INICIO ORG 30H ; A instrução a seguir está no endereço 30H INICIO: MOV SP,#2FH ; O apontador de pilha assume o valor 2FH MOV A,#01H ; O acumulador A recebe o valor 01H V1: JB P3.2,V1 ; Enquanto P3.2=1, espera em um loop infinito V1B: MOV P1,A ; O conteúdo de A é enviado para os LEDs LCALL ATRASO ; Chama subrotina de atraso de tempo RL A ; Rotaciona para a esquerda o conteúdo de A CJNE A,#01H,V1B ; Continua a rotação até A = 01H SJMP V1 ; Retorna para a linha V1 ATRASO: MOV R0,#10 ; R0 recebe o valor 10 decimal V3: MOV R1,#100 ; R1 recebe o valor 100 decimal V2: MOV R2,#200 ; R2 recebe o valor 200 decimal DJNZ R2,$ ; O registrador R2 é decrementado até zerar DJNZ R1,V2 ; Enquanto R1 0, retorna para V2 DJNZ R0,V3 ; Enquanto R0 0, retorna para V3 RET ; Retorna da subrotina de atraso de tempo END Passo 2: Qual a diferença no funcionamento do programa da Tabela 2, comparado com o funcionamento do programa da Tabela 1? 2.3 Tarefa 3 Mapeamento do Teclado Passo 1: Digite e compile no simulador MCU 8051 o programa da Tabela 3. Não é necessário digitar os comentários. Tabela 3: Mapeamento do Teclado, conectado à porta P2 Rótulo Mnemônico Comentário L1 EQU P2.7 ; Linha L1 equivale ao pino P2.7 L2 EQU P2.6 ; Linha L2 equivale ao pino P2.6 L3 EQU P2.5 ; Linha L3 equivale ao pino P2.5 L4 EQU P2.4 ; Linha L4 equivale ao pino P2.4 C1 EQU P2.3 ; Coluna C1 equivale ao pino P2.3 C2 EQU P2.2 ; Coluna C2 equivale ao pino P2.2 C3 EQU P2.1 ; Coluna C3 equivale ao pino P2.1 C4 EQU P2.0 ; Coluna C4 equivale ao pino P2.0

Laboratório de Microprocessadores e Microcontroladores 2-7 ORG 00H LJMP INICIO ; A instrução a seguir está no endereço 00H ORG 30H ; A instrução a seguir está no endereço 30H INICIO: MOV SP,#2FH ; O apontador de pilha assume o valor 2FH LINHA_L1: CLR L1 ; Faz L1 = 0 (Limpa Linha L1 Habilita Linha L1) SETB L2 ; Faz L2 = 1 SETB L3 ; Faz L3 = 1 SETB L4 ; Faz L4 = 1 C11: JB C1, C21 ; Verifica se C1 = 1. Se C1 = 1, desvia para C21 MOV A,#01H ; Se C1 = 0, então faz A = 01H LJMP MOSTRA ; Desvia para "MOSTRA" C21: JB C2, C31 ; Verifica se C2 = 1. Se C2 = 1, desvia para C31 MOV A,#02H ; Se C2 = 0, então faz A = 02H C31: JB C3, C41 ; Verifica se C3 = 1. Se C3 = 1, desvia para C41 MOV A,#03H ; Se C3 = 0, então faz A = 03H C41: JB C4, LINHA_L2 ; Verifica se C4 = 1. Se C4 = 1, desvia para LINHA_L2 MOV A,#04H ; Se C4 = 0, então faz A = 04H LINHA_L2: SETB L1 ; Faz L1 = 1 CLR L2 ; Faz L2 = 0 (Limpa Linha L2 Habilita Linha L2) SETB L3 ; Faz L3 = 1 SETB L4 ; Faz L4 = 1 Parte 1 Parte 2 Parte 2 Parte 2 Parte 2 Parte 1 C12: JB C1, C22 ; Verifica se C1 = 1. Se C1 = 1, desvia para C22 MOV A,#05H ; Se C1 = 0, então faz A = 01H C22: JB C2, C32 ; Verifica se C2 = 1. Se C2 = 1, desvia para C32 MOV A,#06H ; Se C2 = 0, então faz A = 02H C32: JB C3, C42 ; Verifica se C3 = 1. Se C3 = 1, desvia para C42 MOV A,#07H ; Se C3 = 0, então faz A = 03H C42: JB C4, LINHA_L3 ; Verifica se C4 = 1. Se C4 = 1, desvia para LINHA_L3 MOV A,#08H ; Se C4 = 0, então faz A = 04H LINHA_L3: SETB L1 ; Faz L1 = 1 SETB L2 ; Faz L2 = 1 CLR L3 ; Faz L3 = 0 (Limpa Linha L3 Habilita Linha L3) SETB L4 ; Faz L4 = 1 Parte 1 C13: JB C1, C23 ; Verifica se C1 = 1. Se C1 = 1, desvia para C23 MOV A,#09H ; Se C1 = 0, então faz A = 09H C23: JB C2, C33 ; Verifica se C2 = 1. Se C2 = 1, desvia para C33 MOV A,#00H ; Se C2 = 0, então faz A = 00H

Laboratório de Microprocessadores e Microcontroladores 2-8 C33: JB C3, C43 ; Verifica se C3 = 1. Se C3 = 1, desvia para C43 MOV A,#0AH ; Se C3 = 0, então faz A = 0AH C43: JB C4, LINHA_L4 ; Verifica se C4 = 1. Se C4 = 1, desvia para LINHA_L4 MOV A,#0BH ; Se C4 = 0, então faz A = 0BH LINHA_L4: SETB L1 ; Faz L1 = 1 SETB L2 ; Faz L2 = 1 SETB L3 ; Faz L3 = 1 CLR L4 ; Faz L4 = 0 (Limpa Linha L4 Habilita Linha L4) Parte 1 C14: JB C1, C24 ; Verifica se C1 = 1. Se C1 = 1, desvia para C24 MOV A,#0CH ; Se C1 = 0, então faz A = 0CH C24: JB C2, C34 ; Verifica se C2 = 1. Se C2 = 1, desvia para C34 MOV A,#0DH ; Se C2 = 0, então faz A = 0DH C34: JB C3, C44 ; Verifica se C3 = 1. Se C3 = 1, desvia para C44 MOV A,#0EH ; Se C3 = 0, então faz A = 0EH C44: JB C4, V1 ; Verifica se C4 = 1. Se C4 = 1, desvia para V1 MOV A,#0FH ; Se C4 = 0, então faz A = 0FH MOSTRA: MOV P1,A ; MOSTRA NOS LEDs A TECLA PRESSIONADA V1: LJMP LINHA_L1 ; VOLTA PARA A LINHA_L1 END Passo 2: Use o simulador do Kit Didático para simular o programa da Tabela 3. Pressione uma a uma as teclas do Teclado e verifique o resultado nos LEDs. Passo 3: Comente a finalidade das Partes 1 e 2, destacadas na Tabela 3. Finalidade da Parte 1: Finalidade da Parte 2: Passo 4: Use o gravador MaxLoader para gravar no microcontrolador do kit didático o programa da Tabela 3. Verifique o funcionamento do programa pressionando uma a uma todas as teclas do teclado. Comente.

Laboratório de Microprocessadores e Microcontroladores 2-9 2.4 Tarefa 4 Efeito sobre os LEDs usando o Teclado Passo 1: Digite e compile no simulador MCU 8051 o programa da Tabela 4. Tabela 4: Efeitos sobre os LEDs na porta P1, usando o Teclado, conectado à porta P2 Rótulo Mnemônico Comentário L1 EQU P2.7 ; Linha L1 equivale ao pino P2.7 C1 EQU P2.3 ; Coluna C1 equivale ao pino P2.3 C2 EQU P2.2 ; Coluna C2 equivale ao pino P2.2 C3 EQU P2.1 ; Coluna C3 equivale ao pino P2.1 ORG 00H LJMP INICIO ; A instrução a seguir está no endereço 00H ORG 30H ; A instrução a seguir está no endereço 30H INICIO: MOV SP,#2FH ; O apontador de pilha assume o valor 2FH MOV R6,#0FH ; Valor inicial de R6 V00: MOV A,#01H ; Acumulador recebe o valor 01H V0: LCALL TECLADO ; Chama subrotina que faz leitura do teclado CJNE R7,#01H,V1 ; Verifica se R7 = 01H. Se R7 01H, desvia para V1 SJMP DIREITA ; Se R7 = 01H, desvia para DIREITA V1: CJNE R7,#02H,V4 ; Verifica se R7 = 02H. Se R7 02H, desvia para V4 SJMP ESQUERDA ; Se R7 = 02H, continua na próxima linha. Rotação à esquerda V4: CJNE R7,#03H,V0 ; Verifica se R7 = 03H. Se R7 03H, desvia para V0 ; Se R7 = 03H, continua na próxima linha com a alternância de Leds ALTERNA: MOV P1,R6 ; Envia conteúdo do registrador R6 para a porta P1 LCALL ATRASO ; Chama subrotina de atraso de tempo MOV A,R6 ; Copia conteúdo de R6 no acumulador CPL A ; Complementa o conteúdo do acumulador MOV R6,A ; Copia em R6 o conteúdo complementado de A LJMP V00 ESQUERDA: MOV P1,A ; Envia para os LEDs o conteúdo de A RL A ; Rotaciona conteúdo de A para a esquerda LCALL ATRASO ; Chama subrotina de atraso de tempo LJMP V0 ; Volta para ler novamente o Teclado DIREITA: MOV P1,A ; Envia para os LEDs o conteúdo de A RR A ; Rotaciona conteúdo de A para a direita LCALL ATRASO ; Chama subrotina de atraso de tempo LJMP V0 ; Volta para ler novamente o Teclado TECLADO: CLR L1 ; Faz L1 = 0 (Limpa Linha L1) JB C1, C12 ; Verifica se C1 = 1. Se C1 = 1, desvia para C12 MOV R7,#01H ; Se C1 = 0, então faz R7 = 01H C12: JB C2, C13 ; Verifica se C2 = 1. Se C2 = 1, desvia para C13 MOV R7,#02H ; Se C2 = 0, então faz R7 = 02H C13: JB C3,SAI ; Verifica se C3 = 1. Se C2 = 1, desvia para SAI MOV R7,#03H ; Se C3 = 0, então faz R7 = 03H SAI: SETB L1 ; Retorna Linha L1 para nível alto RET ; Retorna da subrotina Teclado ATRASO: MOV R0,#10 ; R0 recebe o valor 10 decimal V3: MOV R1,#100 ; R1 recebe o valor 100 decimal V2: MOV R2,#200 ; R2 recebe o valor 200 decimal DJNZ R2,$ ; O registrador R2 é decrementado até zerar

Laboratório de Microprocessadores e Microcontroladores 2-10 DJNZ R1,V2 DJNZ R0,V3 RET ; Enquanto R1 0, retorna para V2 ; Enquanto R0 0, retorna para V3 ; Retorna da subrotina de atraso de tempo END Passo 2: Use o simulador do Kit Didático para simular o programa da Tabela 4. O que ocorre quando a tecla 1 é pressionada? O que ocorre quando a tecla 2 é pressionada? O que ocorre quando a tecla 3 é pressionada? Por que o conteúdo de R6 foi transferido para o acumulador A (na rotina chamada de ALTERNA), antes de ser complementado? Passo 3: Grave o programa da Tabela 4 no microcontrolador do kit didático e verifique o funcionamento do programa. Revisão: Explique a função de cada um dos comandos dados na Tabela 5. Tabela 5: Função de alguns comandos Comandos Função SETB P2.7 CLR P2.6 JB P2.3,V1 RL A RR A CJNE R0,#01H,V2 MOV P1,A DJNZ R1,V3 DJNZ R2,$ CPL A