7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

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

CONJUNTO DE INSTRUÇÕES

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

Prof. Adilson Gonzaga

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

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

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

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

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

1. Instruções de Desvio

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

EXERCÍCIOS RESOLVIDOS

CAPÍTULO 4 CONJUNTO DE INSTRUÇÕES

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Microcontroladores 8051

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR

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

Aula 8 Microcontrolador 8051

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

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

Aula 8 Microcontrolador 8051

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

O microcontrolador Quatro partes importantes

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Organização de Memórias

Interrupção. Prof. Adilson Gonzaga

NOTAS DE AULA 06 MICROCONTROLADOR 8051

Prof. Adilson Gonzaga

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

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

Assembly Saltos e Subrotinas

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

Laboratório de Microprocessadores e Microcontroladores

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

Conjunto de Instruções e Modelos de Arquiteturas

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

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

Estrutura Básica de um Computador

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

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 e Modelos de Arquiteturas

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

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

Laboratório de Microprocessadores e Microcontroladores

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

Prof. Adilson Gonzaga. Técnicas de Interface

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

PROJETOS COM MICROCONTROLADORES

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

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

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada

Programação em Linguagem Assembly (Saltos e Subrotinas)

Prof. Adilson Gonzaga

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada

Laboratório de Microprocessadores e Microcontroladores

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

Laboratório de Microprocessadores e Microcontroladores

Departamento de Engenharia Elétrica. ELE Microprocessadores II. Prof. Carlos Antonio Alves Sala 59 Fone

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

Instruções de movimentação de dados

5 Programação modular em Linguagem Assembly

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

EXERCÍCIOS 2 Prof. Adilson Gonzaga

Microprocessadores. Organização de Memória

SEMINÁRIO ASSEMBLY: Arquitetura 8051

Microcontrolador 8051

Microcontroladores (µcs) e microprocessadores (µps) A família 80C51. 80C51: Arquitectura do núcleo de base. Os µcs da família 80C51

Arquitectura de Computadores

SEL 337 Aplicação de Microprocessadores II

Neander - características

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

Laboratório de Microprocessadores e Microcontroladores

Processamento e Linguagem de Máquina. O processador Programação Assembler (Linguagem de Máquina)

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

Transcrição:

7. PROGRAMANDO O MICROCONTROLADOR 1

7. PROGRAMANDO O MICROCONTROLADOR: Hardware parte física do circuito eletrônico CPU onde está localizado o microcontrolador. Dentro do microcontrolador existe um conjunto de microprogramas associados a cada uma de suas instruções. Linguagem de Máquina composta por números binários que podem ser: códigos de operação das instruções do microcontrolador (OPCODES) ou seus OPERANDOS. 2

7. PROGRAMANDO O MICROCONTROLADOR: Linguagem Assembly é o mesmo programa escrito em linguagem de máquina, mas que representa as instruções através de MNEMONICOS padronizados permitindo uma maior inteligibilidade. Linguagem de Alto Nível É a linguagem de programação que possui uma estrutura e palavras reservadas mais próximas da linguagem humana, tornando os programas mais fáceis de serem lidos e escritos. 3

7. PROGRAMANDO O MICROCONTROLADOR: Um programa, escrito em qualquer linguagem, deverá ser obrigatoriamente transformado por programas especiais (Assemblers ou Compiladores), para seu equivalente em linguagem de máquina para daí sim, estando na memória de programa, ser executado. 4

7.1 PROGRAMA EM LINGUAGEM C: 5

7.2 PROGRAMA EM ASSEMBLY: 6

7.3 RESULTADO DO COMPILADOR: 7

7.4 PROGRAMA EM LINGUAGEM DE MÁQUINA: 8

8. 8051 HARDWARE PROPOSTO: - Microcontrolador AT89S52 possui core 8051. - Mem. flash de 8 Kbytes, ISP (In-System programming) programável por meio de uma interface periférica serial (SPI). - Oscilador interno, com freqüência definida pelo cristal. - O circuito de reset: automático e manual. - P0, P1, P2 e P3 disponibilizados em barras de pinos. - P1 é dedicada à interface SPI(pinos P1.5, P1.6 e P1.7). Estes bits (MOSI, MISO E SCK), mais o sinal de reset e de GND estão disponíveis no conector P1. - Fonte 7~12V/450mA. 9

9. ASSEMBLY DO 8051: Características: Opcodes de 8 bits Extensão variável de 1 a 3 bytes Tempo de execução variável de 1 a 4 ciclos de máquina (1CM-12CLOCKS) Mnemônicos seguem o padrão Intel

9.1 OPCODES: mnemônicos MOV A, #1C ADD A, #F2 opcodes 01110100 00011100 00100100 11110010 Memória Assembler ISP, gravador, etc

9.2 LABELS: CLR C ;faz carry=0 SUBB A, R0 ;subtrai R0 de A JZ IGUAL ;se R0=A salta para IGUAL JC MAIOR ;se R0>A salta para MAIOR MENOR: MOV R1, #01 ;sinaliza em R1 que R0<A SJMP FIM MAIOR: MOV R1, #02 ;sinaliza em R1 que R0>A SJMP FIM IGUAL: MOV R1, #00 ;sinaliza em R1 que R0=A FIM: ;segue em frente Labels Comentários

9.3 CONJUNTO DE INSTRUÇÕES: Transferência de dados MOV, MOVX, MOVC PUSH, POP XCH, XCHD Aritméticas ADD, ADDC, SUBB INC, DEC MUL, DIV DA

9.3 CONJUNTO DE INSTRUÇÕES: Lógicas ANL, ORL, XRL, CLR, CPL, RL, RLC, RR, RRC, SWAP Booleanas (bits) CLR, SETB, CPL, ANL, ORL MOV

9.3 CONJUNTO DE INSTRUÇÕES: Desvio ACALL, LCALL, RET, RETI AJMP, LJMP, SJMP, JMP JZ, JNZ, JC, JNC, JB, JNB, JBC CJNE, DJNZ NOP

9.4 NOTAÇÃO DOS MNEMÔNICOS: A - acumulador B registro B Rn - R0 ~ R7 do banco em uso direto - endereço da RAM interna (8 bits) @Ri ( R0,R1) @DPTR - DPTR como ponteiro da ROM ou RAM externa (16 bits)

9.4 NOTAÇÃO DOS MNEMÔNICOS: #dado - constante de 8 bits #dado16 - constante de 16 bits Bit - flag, bit de controle ou de port de E/S end11 - endereço dentro de página de 2KB end16 - endereço dentro do espaço de 64KB rel - destino relativo à próxima instrução (-128 a +127)

9.4 NOTAÇÃO DOS MNEMÔNICOS: Endereçamento Direto MOV 25h, A Move A para o conteúdo da posição de memória 25h Endereçamento por Constante Imediata MOV A, #25h Move o dado imediato 25h (#) para A

9.5 MODOS DE ENDEREÇAMENTO: Endereçamento Indireto MOV A, @R1 Move para A o conteúdo da posição de memória apontada por R1 (@) Endereçamento via Registrador MOV A, R1 Move para A o conteúdo de R1

9.5 MODOS DE ENDEREÇAMENTO: Endereçamento Indexado MOVX A, @DPTR Move o conteúdo da posição de memória externa apontada por DPTR para A MOVX @DPTR,A Move para A o conteúdo da posição de memória externa apontada por DPTR MOVC A, @A+DPTR Move para A o conteúdo da posição de memória de código apontada por A+DPTR MOVC A, @A+PC Move para A o conteúdo da posição de memória de código apontada por A+PC

9.6 DIRETIVAS DO ASSEMBLER: ORG exp END exp label: DB exp label: DW exp label: LONG exp label: ASCII exp Label EQU val

9.7 PROGRAMA EM ASSEMBLY: TESTE EQU 01010101B ;CONSTANTE DE TESTE ORG 0000H ;ENDERECO DE RESET RESET: LJMP INICIO ;SALTA PARA O INICIO ORG 0100H ;INICIO DO PROGRAMA INICIO: MOV A, #040H ;INICIALIZA CONTADOR MOV R0, #64 ;ENDERECO INICIAL REPETE:MOV @R0, #TESTE ;ESCREVE CONSTANTE INC R0 ;PRÓXIMO ENDEREÇO DEC A ;DECREMENTA CONTADOR CJNE A, #0, REPETE ;SE NAO TERMINOU REPETE FINAL: JMP FINAL Elaborado por Gilson Yukio Sato

9.8 RESULTADO DO MONTADOR: LOC OBJ LINE SOURCE 0055 1 TESTE EQU 01010101B 2 0000 3 ORG 0000H 0000 020100 4 RESET: LJMP INICIO 5 0100 6 ORG 0100H 0100 7440 7 INICIO: MOV A, #040H 0102 7840 8 MOV R0, #64 0104 7655 9 REPETE: MOV @ R0, # 85 0106 08 10 INC R0 0107 14 11 DEC A 0108 B400F9 12 CJNE A, #0, REPETE 010B 80FE 13 FINAL: JMP FINAL Elaborado por Gilson Yukio Sato

9.9 INSTRUÇÕES DE CARGA: Instrução Descrição Exemplo Op Clk MOV A,Rn Move registro p/ acumulador MOV A,R2 1 12 MOV A,direto Move byte direto p/ acumulador MOV A,7Fh 2 12 MOV A,@Ri Move RAM indireto p/ acumulador MOV A,@R0 1 12 MOV A,#dado Move dado imediato p/ acumulador MOV A,#20 2 12 MOV Rn,A Move acumulador p/ registro MOV R7,A 1 12 MOV Rn,direto Move byte direto p/ registro MOV R3,7Fh 2 24 MOV Rn,#dado Move dado imediato p/ registro MOV R6,#200 2 12 MOV direto,a Move acumulador p/ byte direto MOV 7Fh,A 2 12 MOV direto,rn Move registro p/ byte direto MOV 7Fh,R1 2 24 MOV direto,direto Move byte direto p/ byte direto MOV 7Fh,30h 3 24 MOV direto,@ri Move RAM indireto p/ byte direto MOV 7Fh,@R0 2 24 MOV direto,#dado Move dado imediato p/ byte direto MOV 40h,#100 2 24 MOV @Ri,A Move acumulador p/ RAM indireto MOV @R4,A 1 12 MOV @Ri,direto Move byte direto p/ RAM indireto MOV @R3,40h 2 24 MOV @Ri,#dado Move dado imediato p/ RAM indireto MOV @R4,#0Fh 2 12 MOV DPTR,#dado16 Move 2 bytes p/ data pointer MOV DPTR,#2000h 3 24 Elaborado por Gilson Yukio Sato