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

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

Prof. Adilson Gonzaga

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

CONJUNTO DE INSTRUÇÕES

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

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

1. Instruções de Desvio

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

Conjunto de Instruções do 8051

Aula 10 Microcontrolador Intel 8051 Parte 2

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

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

Laboratório de Microprocessadores e Microcontroladores

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

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

CAPÍTULO 4 CONJUNTO DE INSTRUÇÕES

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

Laboratório de Microprocessadores e Microcontroladores

EXERCÍCIOS RESOLVIDOS

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

Laboratório de Microprocessadores e Microcontroladores

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

Interrupção. Prof. Adilson Gonzaga

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

Conjunto de Instruções (ISA) I

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Laboratório de Microprocessadores e Microcontroladores

Aula 8 Microcontrolador 8051

Prof. Adilson Gonzaga

Aula 5: Introdução a Arquitetura do Microcontrolador 8051

Estrutura Básica de um Computador

Microprocessadores. Organização de Memória

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

Aula 8 Microcontrolador 8051

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

Conjunto de Instruções e Modelos de Arquiteturas

Laboratório de Microprocessadores e Microcontroladores

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

Microcontroladores 8051

Introdução à Organização de Computadores. Aula 8

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Laboratório de Microprocessadores e Microcontroladores

Nível do Conjunto de Instruções Prof. Edson Pedro Ferlin

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

Unidade de Controle. UC - Introdução

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

Símbolos e abreviaturas utilizadas na descrição das instruções

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

Instruções de movimentação de dados

FORMATO DO PROGRAMA FONTE

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

Laboratório de Microprocessadores e Microcontroladores

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

EXERCÍCIOS 2 Prof. Adilson Gonzaga

O microcontrolador Quatro partes importantes

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

CONJUNTO DE INSTRUÇÕES

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

III.2 - Princípios de Arquitetura

Prof. Adilson Gonzaga

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Laboratório de Microprocessadores e Microcontroladores

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016

Conjunto de Instruções e Modelos de Arquiteturas

Organização de Memórias

Instruções. Maicon A. Sartin

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ORGANIZAÇÃO DE COMPUTADORES

Microprocessadores. Movimentação de Dados

Aula 14 Funcionamento de Processadores (Visão específica)

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

Solução Lista de Exercícios Processadores

Arquitectura de Computadores

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

Transcrição:

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Programação de Microprocessadores Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários armazenados em memória. Programação de Microprocessadores Prof: Evandro L. L. Rodrigues As ordens ou comandos compreendidos por um determinado Microprocessador, são INSTRUÇÕES seqüencialmente armazenadas na Memória. Ao conjunto de Instruções compreendidos por um determinado Microprocessador dá-se o nome de INSTRUCTION SET. Cada Microprocessador tem seu próprio Instruction Set que é em geral, diferente do Instruction Set de outro Microprocessador de fabricantes diferentes. Uma seqüência de Instruções do Instruction Set, armazenadas na memória e que realiza alguma operação, recebe o nome de PROGRAMA. Cada Instrução do Microprocessador é um código binário formada em geral por um ou mais Bytes. A cada código binário equivalente a uma Instrução está associado um Mnemônico para facilitar a compreensão da função que a Instrução executa. Ao conjunto de Instruções e seus Mnemônicos equivalentes dá-se o nome de LINGUAGEM ASSEMBLY.

Fluxograma Para a documentação lógica de um Programa em Assembly utiliza-se um Fluxograma ou Diagrama de Blocos. Cada bloco do Fluxograma equivale a um sub-conjunto do Instruction Set do Microprocessador. O Fluxograma é uma forma de se implementar logicamente um programa, antes que o mesmo seja codificado na Linguagem Assembly do Microprocessador. Linhas de Fluxo do Programa Bloco de Processo Execute Fluxograma Mostram a seqüência de execução das Instruções. Cada Bloco do Fluxograma possui apenas uma linha de Fluxo de Entrada e uma ou duas de saída Equivalem às Instruções que realizam alguma operação do tipo: - Movimento de Dados - Operação Aritmética - Operação Lógica Fluxograma Fluxograma Bloco de Decisão Processo Pré-definido Equivale às Instruções que decidem sobre o Fluxo do Programa. Equivale às Instruções que mandam executar uma Sub-rotina armazenada em outro lugar da Memória. X = 0? V F Se a função dentro do bloco for Verdadeira(V) o programa continua abaixo, se for Falsa(F) o programa muda o fluxo. Observe que quando a sub-rotina termina, o fluxo do programa continua normalmente.

Fluxograma Bloco de Início de Programa Bloco de Fim de Programa Início FIM Exemplo de Fluxograma de um Programa de Microprocessador Início Ler o dado da Memória O programa ao lado deve Ler um Dado da memória, verificar se é igual a zero. Se não for zero, continua em LOOP. Se for zero para o programa. O Bloco de Início de Programa não equivale a uma Instrução específica do Instruction SET. O Bloco de FIM equivale a uma instrução que termina o Programa. É chamado de FIM LÓGICO do Programa. Dado = 0? V Parar F Codificação Assembly Para Codificar um Programa escrito através de um Fluxograma, deve-se escolher o Microprocessador, ou seja, conhecer seu Conjunto de Instruções. Instruções do 8051 O 8051 apresenta 111 tipos de instruções, sendo 49 de 1 byte, 45 de 2 bytes e 17 de 3 bytes. Considerando-se as variações de cada tipo, chega-se a 255 instruções. Os Microcontroladores da família MCS-51 serão os dispositivos a serem aplicados nesta disciplina. 5 Grupos -Transferência de dados, -Operações lógicas, -Operações aritméticas, -Manipulação de variáveis booleanas (Bits) -Controle de programa (Desvios)

Instruções equivalentes ao Bloco de Processo Instruções equivalentes ao Bloco de Processo Instruções Aritméticas Instruções Lógicas SUBB A, direct ADD A, Rn ANL A, Rn ORL A, direct Execute INC A DEC A Execute XRL A, #data DA A CLR A CPL A RL A SWAP A Instruções equivalentes ao Bloco de Processo Instruções equivalentes ao Bloco de Decisão Instruções de Transferência de Dados Instruções de Desvio Execute MOV A, Rn MOVC A, @A+DPTR MOVX A,@DPTR PUSH direct POP direct X = 0? F JZ rel JNZ rel CJNE A, direct, rel JC rel JNC rel XCH A, Rn V JB bit, rel JNB bit, rel DJNZ Rn, rel

Instruções equivalentes ao Bloco de Processo Prédefinido Instruções de Sub-Rotina Instruções equivalentes a Mudança de Fluxo Instruções de Saltos LCALL addr16 ACALL addr11 LJMP addr16 AJMP addr11 RET RETI SJMP JMP rel @A+DPTR 1. Endereçamento Imediato Opera sobre o dado localizado na própria instrução 2. Endereçamento Direto Opera sobre o dado cujo endereço está na instrução Identificado através do sinal # Exemplo: ADD A,#30 O dado 30 é somado ao Registrador A ADD A,30 MOV A,P3 MOV 30h,A Este tipo de instrução é codificada em 2 bytes.

3. Endereçamento Indireto instrução usa o símbolo @ Opera sobre o dado cujo endereço está armazenado em um dos Registradores apontados na instrução. R0 e R1 para RAM interna e DPTR para RAM externa. ADD A,@R0 O dado armazenado no endereço apontado pelo Registrador R0 é somado ao Acumulador. MOVX A,@DPTR O dado armazenado no endereço de RAM externa apontado por DPTR é movido para o Acumulador. 3. Endereçamento Indireto ADD A,@R0 Registrador A 00 Registrador R0 30 Conteúdo do Endereço 30 20 ADD A,@R0 00 + 20 Registrador A 20 4. Endereçamento de bits 5. Endereçamento indexado As instruções que manipulam bits individuais especificam este bit de forma direta. SETB 0Fh CLR 20h Este tipo de instrução é codificada em 2 bytes. Este modo serve para endereçar a memória de programa (instrução MOVC). MOVC A,@A+DPTR MOVC A,@A+PC Este tipo de instrução é codificada em 1 byte.

6. Endereçamento dos registradores 7. Endereçamento implícito de registradores Os opcodes das instruções de acesso aos registradores R0 a R7 utilizam três dos seus oito bits para especificar o registrador endereçado. São mais curtas que o modo direto. Instruções que trabalham sempre com um ou dois registradores específicos, e portanto nenhum byte é necessário para endereçar o operando. MOV A, R3 DEC R1 Este tipo de instrução é codificada em 1 byte. Atenção para qual Banco de Registrador está ativo. DA A - RR A - INC A MUL AB - DIV AB - SWAP A 8. Endereçamento relativo Instruções permitem realizar um salto em relação a posição atual do PC. O endereço relativo (Offset) é um dado de 8 bits sinalizado - realiza um salto relativo ao endereço que está o PC de -128 a +127. 9. Endereçamento Absoluto Instruções ACALL e AJMP, permitem desvios de até 2 Kbytes pois utilizam 11 linhas para endereçamento. Este tipo de instrução é codificada em 2 bytes. SJMP LOOP SJMP $ 10. Endereçamento Longo Instruções LCALL e LJMP, permitem desvios que mapeiam todo espaço disponível de endereçamento (64K). Este tipo de instrução é codificada em 2 bytes. Este tipo de instrução é codificada em 3 bytes.

Exemplo de um Programa Assembly do 8051 Endereçamento Combinado ou Misto Início ORG 0 MOV R0,10h MOV 40h,R3 MOV R2,#40h ;Registrador e Direto ;Direto e Registrado ;Registrador e Imediato Ler o dado da Memória LOOP: MOV A,30H MOV 50h,#55h ;Direto e Imediato MOV @R1,#34h MOV 50h,@R0 MOV @R0,50h MOV 30h,60h ;Indireto e Imediato ;Direto e Indireto ;Indireto e Direto ;Direto e Direto Dado = 0? V Parar F AQUI: CJNE A,#00,LOOP SJMP AQUI Exemplo de um Programa Assembly do 8051 Mnemônicos (Programa Assembly) ORG 0 LOOP: MOV A,30H CJNE A,#00,LOOP AQUI: SJMP AQUI Código Compilado (Opcode) COMPILADOR Exemplo de um Programa Assembly do 8051 Memória de Programa 00 E5 01 30 02 B4 03 00 04 FB 05 80 06 FE Endereço Conteúdo

Exemplo de um Programa para zerar a RAM interna ORG 0 MOV R0,#0FFH LOOP: MOV @R0,#0 DJNZ R0,LOOP SJMP LOOP END Exercício para casa: Faça um programa para zerar os 64K bytes da RAM externa.