of 45 /45
SEL-614 MICROPROCESSADORES E APLICAÇÕES Prof: Adilson Gonzaga

SEL-614 MICROPROCESSADORES E APLICAÇÕESiris.sel.eesc.usp.br/sel614/Aula1.pdf · 1980 – Intel 8051 ... •Uma seqüência de Instruções do Instruction Set, armazenadas ... Aula1.ppt

  • Author
    buidieu

  • View
    217

  • Download
    0

Embed Size (px)

Text of SEL-614 MICROPROCESSADORES E APLICAÇÕESiris.sel.eesc.usp.br/sel614/Aula1.pdf · 1980 – Intel...

  • SEL-614 MICROPROCESSADORES E

    APLICAES

    Prof: Adilson Gonzaga

  • Microprocessador

    Circuito integrado (chip) capaz de executar instrues.

    HISTRICO

    1971Intel Corporation lanou no mercado o microprocessador 4004(3.000 transistores )

  • O microprocessador um dispositivo lgico programvel em um nico

    chip de silcio, concebido sob a tecnologia VLSI (circuito integrado em

    alta escala).

    Microprocessador

    HISTRICO

    alta escala).

    Age sob o controle de um programa armazenado em memria,

    executando operaes aritmticas, lgica booleana, tomadas de deciso,

    alm de entrada e sada de dados, permitindo a comunicao com outros

    dispositivos perifricos.

  • Unidades bsicas de um Microprocessador:

    Unidade Lgica Aritmtica (ULA) - responsvel pela realizao das

    operaes lgicas e aritmticas.

    Microprocessador: parte principal de um microcomputador

    executa instrues

    Unidade de Controle (UC) - responsvel pela decodificao e execuo das

    instrues, fornecendo os sinais de temporizao adequados para as

    diversas partes do processador e do prprio computador.

    Registradores - armazenamento da Informao Binria (dados, endereos

    e instrues).

  • Memria de armazenamento de

    programa (no

    Unidade lgica e Aritmtica (ULA)

    Unidade Central de Processamento

    (CPU-Microprocessador)

    Unidade de Memria

    Unidade de Entrada e

    Sada(IO)

    ARQUITETURA DE MICROCOMPUTADORES

    programa (no voltil)

    Registradores

    Unidade de Controle (UC)

    Memria de armazenamento de

    dados (voltil)

    Entrada de Informao

    Sada de Informaes

  • MICROPROCESSADORES E MICROCONTROLADORES

    Microcomputador: computador digital com velocidade erecursos limitados, e tipicamente constitudo por:

    unidade central de processamento CPU;

    memria;

    circuitos de entrada e sada. circuitos de entrada e sada.

    Suas aplicaes so tambm limitadas quando comparadass de um computador de maior porte.

  • MICROPROCESSADORES E MICROCONTROLADORES

    Microprocessador: geralmente implementado em um nicocomponente.

    unidade central de processamento CPU;

    Mquina seqencial de uso geral, cujo comportamento no tempo determinado por um programa externo colocado em memria.

    Associado a CIs perifricos, ele pode gerar:

    microcomputadores de uso geral

    microcomputadores e controles lgicos de uso especficos

  • MICROPROCESSADORES E MICROCONTROLADORES

    Microcontroladores: possuem em um nico componente:

    a unidade central de processamento

    memria (ROM e RAM);

    perifricos dedicados (serial, paralela, timer, etc...).

    1976 - 1o microcontrolador Intel 80481980 Intel 8051

    Os microcontroladores apresentam:

    menor desempenho que os microprocessadores,

    custo muito baixo (alguns dlares tipicamente),

    destinados a aplicaes onde as dimenses, custo, tamanho e

    consumo do produto so muito importantes.

    perifricos dedicados (serial, paralela, timer, etc...).

  • O 8051 membro da famlia MCS-51, e constitui o ncleo de todos os dispositivos MCS-51

    um sistema de um chip nico, que alm do microprocessador de 8 bits pode conter: bits pode conter:

    . Memria de Programa e Memria de Dados

    . Portas de I/O

    . Comunicao Serial

    . Contadores/ Timers

    . Lgica para Controle de Interrupo

    . etc 0

  • Configurao dos pinos do 8051

    VSS VCC RST

    P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

    PO RT0

    ENDEREOS (LOW)E

    DADOS

    XTAL1

    XTAL2

    ALE

    EA

    PSEN P1.7P1.6P1.5P1.4

    POR

    P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7

    RxD TxD INT0INT1T0T1WRRD

    FUNESSECUNDRIAS

    PORT3

    P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0

    PORT2

    ENDEREOS (HIGH)

    P1.4P1.3P1.2P1.1P1.0

    RT1

  • Diagrama em Blocos do 8051

  • Organizao da memria da famlia MCS-51

    Memrias de dados e de programas separadas.

    FFFFH

    EXTERNA

    FFFFH

    MEMRIA DE PROGRAMA MEMRIA DE DADOS

    (Read/Write)(Read only)

    EXTERNA

    000000

    FFH

    INTERNA

    EA=0

    INTERNAEXTERNA

    EA=1

    0000

    PSEN RD WR

    SFR

    RAM

  • Mapeamento de memria de programa externa

    Mapeamento completo ( 64 Kb externo )

    Memria de Programa

  • O endereamento feito com 8 bits

    Chips com 128 bytes de RAM no possuem a rea I (Apenas Endereamento Indireto)

    APENAS

    ENDEREAMENTO

    INDIRETO

    APENAS

    ENDEREAMENTO

    DIRETO

    (SFR)

    ENDEREAMENTO

    DIRETO E

    128b

    ALTO

    128b

    7FH

    80H

    FFH

    80H

    FFH

    I D

    Memria de Dados Interna (RAM Interna)

    rea A: 128 bytes inferiores (00h a 7Fh) , acessveis por endereamento direto e

    indireto (existe em toda a famlia MCS-51)

    rea D : SFR (special function register) acessvel por endereamento direto (80h a

    FFh) tambm existe em todos os membros da famlia MCS-51

    rea I : 128 bytes superiores (80h a FFh acessvel somente por endereamento

    indireto, s existe nos chips de 256 bytes de RAM interna (8032,8052,...)).

    INDIRETOBAIXO

    00H A

  • Exemplos:

    a. Escrever 0AAh no endereo 80h da RAM Interna (rea D)

    MOV 80h,#0AAh

    Memria de Dados Interna (RAM Interna)

    APENAS

    ENDEREAMENTO

    INDIRETO

    APENAS

    ENDEREAMENTO

    DIRETO

    (SFR)

    ENDEREAMENTO

    DIRETO E

    128b

    ALTO

    128b

    BAIXO

    7FH

    8H:

    FFH

    80H

    FFH

    I D

    b. Escrever 0AAh no endereo 80h da RAM (rea I de um microcontrolador com 256 bytes de RAM interna)

    MOV R0,#80h

    MOV @R0,#0AAh

    INDIRETOBAIXO

    00H A

  • Acesso atravs de endereo de 16 bits espao de endereo de 64K

    bytes

    espao todo indiretamente enderevel pelo ponteiro de dados DPTR.

    Memria de Dados Externa

    Instrues :

    MOVX A,@DPTRMOVX @DPTR,A

  • a. Armazenar 3Fh na posio 34CBh da memria externa :

    Acesso atravs de endereo de 16 bits

    Exemplo :

    Memria de Dados Externa

    MOV DPTR,#34CBhMOV A,#3FhMOVX @DPTR,a

    b. Ler o contedo da posio 13F4h da memria externa :

    MOV DPTR,#13F4hMOVX A,@DPTR

  • Programao de Microprocessadores

    Microprocessadores so Mquinas de Estado Seqenciais Sncronasque operam mediante a que operam mediante a execuo de uma seqncia de cdigos binrios armazenados em memria.

  • As ordens ou comandos compreendidos por um determinado Microprocessador, so INSTRUESseqencialmente armazenadas na Memria.

    Ao conjunto de Instrues compreendidos por um determinado Microprocessador d-se o nome de determinado Microprocessador d-se o nome de INSTRUCTION SET.

    Cada Microprocessador tem seu prprio Instruction Set que em geral, diferente do Instruction Set de outro Microprocessador de fabricantes diferentes.

  • Uma seqncia de Instrues do Instruction Set, armazenadas na memria e que realiza alguma operao, recebe o nome de PROGRAMA.

    Cada Instruo do Microprocessador um cdigo binrio formada em geral por um ou mais Bytes.

    A cada cdigo binrio equivalente a uma Instruo est associado um Mnemnico para facilitar a compreenso da funo que a Instruo executa.

    Ao conjunto de Instrues e seus Mnemnicos equivalentes d-se o nome de LINGUAGEM ASSEMBLY.

  • Fluxograma

    Para a documentao lgica 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.

  • Fluxograma Linhas de Fluxo do Programa Mostram a seqncia de

    execuo das Instrues.

    Cada Bloco do Fluxograma possui apenas uma linha de Fluxo de Entrada e uma ou duas de

    Bloco de Processo

    Equivalem s Instrues que realizam alguma operao do tipo:- Movimento de Dados- Operao Aritmtica- Operao Lgica

    Execute

    de Entrada e uma ou duas de sada

  • Fluxograma

    Bloco de Deciso

    Equivale s Instrues que decidem sobre o Fluxo do

    X = 0?

    V

    F

    decidem sobre o Fluxo do Programa.

    Se a funo dentro do bloco for Verdadeira(V) o programa continua abaixo, se for Falsa(F) o programa muda o fluxo.

  • Fluxograma

    Processo Pr-definido

    Equivale s Instrues que mandam executar uma Sub-rotina armazenada executar uma Sub-rotina armazenada em outro lugar da Memria.

    Observe que quando a sub-rotina termina, o fluxo do programa continua normalmente.

  • Fluxograma

    Incio

    FIM

    Bloco de Incio de Programa Bloco de Fim de Programa

    FIM

    O Bloco de Incio de Programa no equivale a uma Instruo especfica do Instruction SET.

    O Bloco de FIM equivale a uma instruo que termina o Programa. chamado de FIM LGICO do Programa.

  • Exemplo de Fluxograma de um Programa de Microprocessador

    Incio

    Ler o dado da Memria

    O programa ao lado deve Ler um Dado da memria, verificar se igual a zero. Se no for zero, da Memria

    Dado = 0?

    Parar

    V

    F

    igual a zero. Se no for zero, continua em LOOP. Se for zero para o programa.

  • Codificao Assembly

    Para Codificar um Programa escrito atravs de um Fluxograma, deve-se escolher o Microprocessador, ou seja, conhecer seu Conjunto de Instrues.

    Os Microcontroladores da famlia MCS-51 sero os dispositivos a serem aplicados nesta disciplina.

  • Codificao Assembly do 8051 Instrues equivalentes ao Bloco de Processo

    ADD A, RnSUBB A, direct

    Instrues Aritmticas

    Execute

    ADD A, RnSUBB A, direct

    INC A

    DA A

    DEC A

  • Codificao Assembly do 8051 Instrues equivalentes ao Bloco de Processo

    Instrues Lgicas

    ANL A, Rn ORL A, direct

    Execute

    ANL A, Rn ORL A, direct

    XRL A, #data

    CLR A CPL A

    RL A SWAP A

  • Codificao Assembly do 8051 Instrues equivalentes ao Bloco de Processo

    Instrues de Transferncia de Dados

    MOV A, Rn MOVC A, @A+DPTR

    Execute

    MOV A, Rn

    MOVX A,@DPTR

    MOVC A, @A+DPTR

    PUSH direct POP direct

    XCH A, Rn

  • Codificao Assembly do 8051 Instrues equivalentes ao Bloco de Deciso

    Instrues de Desvio

    X = 0?

    V

    F

    JZ rel JNZ rel

    CJNE A, direct, rel

    JC rel JNC rel

    JB bit, rel JNB bit, rel

    DJNZ Rn, rel

  • Codificao Assembly do 8051 Instrues equivalentes ao Bloco de Processo Pr-definido

    LCALL addr16

    Instrues de Sub-Rotina

    ACALL addr11LCALL addr16 ACALL addr11

    RET

    RETI

  • Codificao Assembly do 8051 Instrues equivalentes a Mudana de Fluxo

    Instrues de Saltos

    LJMP addr16 AJMP addr11LJMP addr16 AJMP addr11

    SJMP rel

    JMP @A+DPTR

  • Modos de Endereamento do 8051

    1. Endereamento Imediato

    Opera sobre o dado localizado na prpria instruo

    Identificado atravs do sinal #

    Exemplo: ADD A,#30h

    O dado 30h somado ao Registrador A

  • Modos de Endereamento do 8051

    1. Endereamento Imediato

    ADD A,#30h

    Registrador A

    00

    Registrador A

    ADD A,#30h

    Registrador A

    30h00 + 30h

  • Modos de Endereamento do 8051

    00

    Memria Registrador A Programa Operao

    00 30+

    ADD A,#30h

    20 ADD A,#30h

    Registrador A

    30

    30

    Endereo

    (hexa)

    Contedo

    (hexa)

  • Modos de Endereamento do 8051

    2. Endereamento Direto

    Opera sobre o dado cujo endereo est na instruo

    Exemplo: ADD A,30h

    O dado armazenado no endereo 30h somado ao Registrador A

  • Modos de Endereamento do 8051

    2. Endereamento Direto

    ADD A,30h

    Registrador ARegistrador A

    00

    Contedo do Endereo 30h

    20

    ADD A,30h

    2000 + 20

    Registrador A

  • Modos de Endereamento do 8051

    00

    Memria Registrador A Programa Operao

    00 20+

    ADD A,30h

    ADD A,30h

    Registrador A

    20

    2030

    Endereo

    (hexa)

    Contedo

    (hexa)

  • Modos de Endereamento do 8051

    3. Endereamento Indireto

    Opera sobre o dado cujo endereo est armazenado em um Registrador apontado na instruo

    Exemplo: ADD A,@R0

    Identificado atravs do sinal @

    O dado armazenado no endereo apontado pelo Registrador R0 somado ao Registrador A

  • Modos de Endereamento do 8051

    3. Endereamento Indireto

    ADD A,@R0

    Registrador ARegistrador A

    00

    Contedo do Endereo 30h

    20

    ADD A,@R0

    00 + 20

    Registrador R0

    30h20

    Registrador A

  • Modos de Endereamento do 8051

    00

    Memria Registrador A Programa Operao

    00 20+

    ADD A,@R0

    ADD A,@R0

    Registrador A

    20

    2030

    Endereo

    (hexa)

    Contedo

    (hexa)

    Registrador R0

    30h

  • Exemplo de um Programa Assembly do 8051

    Incio

    Ler o dado da Memria

    ORG 0

    LOOP:

    MOV A,30Hda Memria

    Dado = 0?

    Parar

    V

    F

    MOV A,30H

    CJNE A,#00,LOOP

    AQUI: SJMP AQUI

  • Exemplo de um Programa Assembly do 8051

    ORG 0

    LOOP: MOV A,30H

    CJNE A,#00,LOOP

    AQUI: SJMP AQUI

    Mnemnicos (Programa Assembly)

    COMPILADOR

    AQUI: SJMP AQUI

    Cdigo Compilado (Opcode)

  • Exemplo de um Programa Assembly do 8051

    Memria de Programa

    E5

    30

    00

    01 30

    B4

    00

    FB

    80

    01

    02

    03

    04

    05

    Endereo Contedo

    06 FE