SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Programação Assembly
                 8051 – Aula 1


31 de julho de 2012   Minicurso: Assembly para 8051 GDESTE   1
Agora, vamos ao que interessa...




31 de julho de 2012   Minicurso: Assembly para 8051 GDESTE   2
Descrição
                A família de microcontroladores MCS-51TM,
                desenvolvida, fabricada e comercializada pela
                Intel é baseada em padrões industriais de
                microcontroladores de 8 bits, sendo o 8051 o
                componente inicial desta família. O 8051 possui
                128 bytes de RAM, 4 Kbytes de memória de
                programa, 2 contadores/temporizadores de 16
                bits e 32 linhas de entrada/saída bidirecionais e
                individualmente endereçáveis – 4 portas de E/S.


31 de julho de 2012       Minicurso: Assembly para 8051 GDESTE      3
Partes do microcontrolador
                • CPU: tem a função de acionar e se comunicar
                  com todos os barramentos obedecendo as
                  diretivas gravadas na ROM. É responsável
                  pela execução de instruções programadas,
                  interpretar e executar comandos.
                • Memória: utiliza uma memória ROM para ler
                  as instruções que deve executar e se utiliza
                  de uma memória RAM para armazenar
                  temporariamente dados de uso das
                  instruções ou variáveis do programa.
31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE    4
Partes do microcontrolador
                • Periféricos de E/S: são todos os dispositivos
                  externos ligados à CPU, como teclados,
                  displays, motores, timers, porta serial etc.




31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE     5
CPU
                • Unidade de Controle: processa o controle do
                  fluxo das informações a fim de executar a
                  instrução recebida pela ROM. Envia impulsos
                  elétricos para controlar em sequencia
                  apropriada e sincronizada as operações dos
                  componentes.
                • Unidade de lógica e aritmética: realiza todas
                  as operações de lógica e aritmética da CPU.



31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE     6
CPU
                • Unidade de registradores: servem para o
                  armazenamento temporário de dados de
                  utilidade interna e externa à CPU.
                  Proporcionam um tempo rápido de
                  transferência de bits. Dentre eles podemos
                  destacar o contador de programa, o registro
                  de instruções e o acumulador.
                • Contador de programa: armazena o
                  endereço da célula que contém o código da
                  próxima instrução a ser executada.
31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE   7
CPU
                • Acumulador: principal registrador da CPU,
                  pois várias instruções se referem a ele para
                  operar, como por exemplo ADD A,#40H. O
                  resultado das operações é guardado no
                  próprio acumulador.




31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE    8
Arquitetura interna
                Está dividida em unidade de processamento
                central, oscilador interno, memória ROM
                interna,   memória RAM           interna,   dois
                temporizadores, uma porta serial, quatro
                portas paralelas de 8 bits, circuito de controle
                de interrupção e circuito de controle de
                barramento.




31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE      9
Arquitetura externa




                                                             AT89S52

31 de julho de 2012   Minicurso: Assembly para 8051 GDESTE             10
Arquitetura externa
                • VCC E GND: Entradas de tensão de
                  alimentação de +5V e Terra.
                • Porta 0 (P0.7 a P0.0): Porta bidirecional de 8
                  bits, com saída de dreno aberto, ou entrada
                  de alta impedância. Multiplexa o barramento
                  de dados e o barramento de endereços.
                  Pode servir como saída de bytes de
                  instrução, sendo necessária a colocação de
                  resistores de pull-up’s externos. Seus pinos
                  podem ser individualmente endereçáveis.
31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE      11
Arquitetura externa
                • Porta 1 (P1.7 a P1.0): Nenhuma função
                  alternativa está associada a esta porta, ela é
                  usada apenas para conectar dispositivos
                  externos. Necessita de pull-up’s externos
                  para suprir ou drenar cargas. Seus pinos
                  podem ser individualmente endereçáveis.




31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE      12
Arquitetura externa
                • Porta 2 (P2.7 a P2.0): é bidirecional de 8 bits
                  com resistores de pull-up’s internos. Seus
                  pinos podem suprir ou drenar cargas TTL
                  sem resistores externos e podem ser
                  individualmente endereçáveis.
                • Porta 3 (P3.7 a P3.0): Porta de 8 bits
                  bidirecional. Seus pinos podem ser
                  individualmente endereçáveis, servindo
                  também para as funções especiais descritas
                  a seguir.
31 de julho de 2012       Minicurso: Assembly para 8051 GDESTE      13
Arquitetura externa
        BIT       NOME FUNÇÃO ALTERNATIVA
        P3.0      RXD     Receptor da porta serial assíncrona.
                  TXD/    Saída de transmissão da porta serial ou saída de clock
        P3.1
                  clock   para os registradores de deslocamento externos.
                          Interrupção externa 0 ou bit de controle para o
        P3.2      INT0
                          timer/contador 0.
                          Interrupção externa 1 ou bit de controle para o
        P3.3      INT1
                          timer/contador 1.
        P3.4      T0      Entrada para o timer/contador 0.
        P3.5      T1      Entrada para o timer/contador 1.
        P3.6      WR      Strobe de escrita na memória externa.
        P3.7      RD      Strobe de leitura na memória externa.
31 de julho de 2012         Minicurso: Assembly para 8051 GDESTE                   14
Arquitetura externa
       P1             0    0         0         0         0        0       0   0
               SETB P1.2
       P1             0    0         0         0         0            1   0   0
                MOV P1,#075H
        P1            0    1          1         1        0            1   0   1
                CLR P1.6
        P1            0    0          1        1         0            1   0   1
               MOV P1,#00H
        P1            0    0          0         0        0            0   0   0



31 de julho de 2012            Minicurso: Assembly para 8051 GDESTE               15
Arquitetura externa
                • RESET: Um nível alto nesse pino realiza uma
                  inicialização do circuito.
                • EA: Deve ser ligado ao nível alto, para que o
                  processador tenha acesso a memória interna
                  de programa. Se estiver ligado ao nível
                  baixo, toda a área de programa será
                  considerada externa.
                • XTAL1 e XTAL2: entradas para o clock
                  externo.

31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE     16
Memória
                O 𝜇 C8051 contém 210 localizações de bits
                endereçáveis, dos quais 128 são os bytes
                endereçados de 20H até 2FH e os restantes
                estão nos registros de funções especiais.




31 de julho de 2012     Minicurso: Assembly para 8051 GDESTE   17
7F
                                                                           RAM de propósito geral
           Memória                                          30
                                                            2F   7F   7E     7D   7C    7B   7A     79    78
                                                            2E   77   76     75   74    73   72     71    70
                                                            2D   6F   6E     6D   6C    6B   6A     69    68
                                                            2C   67   66     65   64    63   62     61    60
                                                            2B   5F   5E     5D   5C    5B   5A     59    58
                                                            2A   57   56     55   54    53   52     51    50




                        Localização dos bits endereçáveis
                                                            29   4F   4E     4D   4C    4B   4A     49    48
                                                            28   47   46     45   44    43   42     41    40
                                                            27   3F   3E     3D   3C    3B   3A     39    38
                                                            26   37   36     35   34    33   32     31    30
                                                            25   2F   2E     2D   2C    2B   2A     29    28
                                                            24   27   26     25   24    23   22     21    20
                                                            23   1F   1E     1D   1C    1B   1A     19    18
                                                            22   17   16     15   14    13   12     11    10
                                                            21   0F   0E     0D   0C    0B   0A     09    08
                                                            20   07   06     05   04    03   02     01    00
                                                            1F
                                                                                   Banco 3
                                                            18
                                                            17
                                                                                   Banco 2
                                                            10
                                                            0F
                                                                                   Banco 1
                                                            08
                                                            07
                                                                                   Banco 0
                                                            00

                                                                                                         RAM
31 de julho de 2012   Minicurso: Assembly para 8051 GDESTE                                                     18
FF
                                                            F0    F7   F6   F5    F4     F3     F2    F1   F0    B

           Memória                                          E0

                                                            D0
                                                                 E7

                                                                 D7
                                                                       E6

                                                                       D6
                                                                            E5

                                                                            D5
                                                                                  E4

                                                                                  D4
                                                                                         E3

                                                                                         D3
                                                                                                E2

                                                                                                D2
                                                                                                      E1

                                                                                                      D1
                                                                                                           E0

                                                                                                           D0
                                                                                                                ACC

                                                                                                                PSW

                                                            B8   BF    BE   BD    BC     BB     BA    B9   B8    IP

                                                            B0   B7    B6   B5    B4     B3     B2    B1   B0    P3

                                                            A8   AF    AE   AD    AC     AB     AA    A9   A8    IE




                        Localização dos bits endereçáveis
                                                            A0   A7    A6   A5    A4     A3     A2    A1   A0    P2

                                                            99               Bits não endereçáveis              SBUF
                                                            98   9F    9E   9D     9C     9B     9A   99   98   SCON

                                                            90   97    96   95     94     93     92   91   90     P1
                                                            8B               Bits não endereçáveis               TH1
                                                            8C               Bits não endereçáveis               TH0
                                                            8B               Bits não endereçáveis               TL1
                                                            8A               Bits não endereçáveis               TL0
                                                            89               Bits não endereçáveis              TMOD
                                                            88   8F    8E   8D     8C     8B     8A   89   88   TCON
                                                            87               Bits não endereçáveis              PCON

                                                            83               Bits não endereçáveis              DPH
                                                            82               Bits não endereçáveis              DPL
                                                            81               Bits não endereçáveis               SP
                                                            80   87    86   85     84     83     82   81   80    P0

                                                                 REGISTROS DE FUNÇÕES ESPECIAIS
31 de julho de 2012   Minicurso: Assembly para 8051 GDESTE                                                             19
Banco de registros
                O conjunto de instruções do 8051 contem 8
                registros, R0 até R7 e por default estão com
                endereços de 00H-07H. O banco de registro
                ativo pode ser alterado trocando os bits de
                seleção dos bancos de registros. A ideia de
                banco de registros permite uma rápida e
                efetiva troca de dados.




31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE   20
Outros registros
                Acumulador;
                Registrador B;
                Registro dos temporizadores;
                Registro de palavra de status de programa
                (PSW);
                DPTR;
                SP;
                SBUF;
                PCON.


31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE   21
Primeiro contato com o Assembly
                • Diretiva ORG: altera a localização para iniciar
                  a nova contagem do programa.
                • END: Finaliza o processo de montagem.
                • EQU: iguala um rótulo com outro ou com um
                  valor numérico. Exemplos:
                  LED EQU P2.0
                  DEZ EQU 10



31 de julho de 2012       Minicurso: Assembly para 8051 GDESTE      22
Conjunto de instruções
                As operações possuem diferentes modos de
                endereçamento.
                ADD A , 7FH           ; Endereçamento direto
                ADD A , @R0            ; Endereçamento indireto
                ADD A , R7             ; Endereçamento de registro
                ADD , #10H            ; Endereçamento imediato



31 de julho de 2012      Minicurso: Assembly para 8051 GDESTE        23
Instruções Aritméticas
                  MNEMÔNICO                    OPERAÇÃO           TEMPO DE EXECUÇÃO(𝜇s)
                 ADD A, <byte>               A = A + <byte>                 1
                 ADDC A, <byte>            A = A + <byte> + C               1
                 SUBB A, <byte>             A = A + <byte> - C              1
                        INC A                    A=A+1                      1
                      INC <byte>           <byte> = <byte> + 1              1
                      INC DPTR              DPTR = DPTR + 1                 2
                        DEC A                    A=A–1                      1
                      DEC <byte>           <byte> = <byte> -1               1
                       MUL AB                  B,A = B X A                 4
                        DIV AB               A = Int(A/B) e                4
                                             B = Resto(A/B)
31 de julho de 2012                Minicurso: Assembly para 8051 GDESTE                   24
Instruções de transferência
                MNEMÔNICO                   OPERAÇÃO            TEMPO DE EXECUÇÃO(𝜇s)
               MOV A, <fonte>               A = <fonte>                   1
             MOV <destino> , A             <destino> = A                  1
          MOV <destino> , <fonte>       <destino> = <fonte>               2
                XCH A,<byte>                Troca dados                   1
           MOV DPTR,#<2bytes>            DPTR = <2bytes>                  2


            Exemplos:
            MOV R7,#10H
            MOV A,R0
            MOV SP,#5FH



31 de julho de 2012            Minicurso: Assembly para 8051 GDESTE                     25
Instruções booleanas
                  MNEMÔNICO                     OPERAÇÃO           TEMPO DE EXECUÇÃO(𝜇s)
                      ANL C,<bit>             C = C AND <bit>                2
                      ORL C,<bit>             C = C OR <bit>                 2
                      SETB <bit>                  <bit> = 1                  1
                       CLR <bit>                 <bit> = 0                   1
                       CPL <bit>             <bit> = NOT <bit>               1
                  MOV C, <bit>                   C = <bit>                   1
                  MOV C, /<bit>                C = NOT <bit>                 1




31 de julho de 2012                 Minicurso: Assembly para 8051 GDESTE                   26
Instruções booleanas
                Exemplo:
                LOOP: MOV C,P1.0
                      ANL C,P1.1
                      MOV P1.2,C
                      AJMP LOOP
                                                           8051
                      P1.0
                      P1.1
                      P1.2



31 de julho de 2012          Minicurso: Assembly para 8051 GDESTE   27
Prática 1: Criando uma porta NOR
                ORG 00H
                AJMP LOOP

                ENT1 EQU P1.0
                ENT2 EQU P1.1
                SAIDA EQU P2.0

                LOOP: MOV C,ENT1
                      ORL C,ENT2
                      CPL C
                      MOV SAIDA,C
                      AJMP LOOP
                END
31 de julho de 2012       Minicurso: Assembly para 8051 GDESTE   28
Prática 2: Pisca LED
                ORG 00H
                AJMP INICIO

                LED EQU P2.0

                DELAY:    MOV R2,#10
                VOLTA2:   MOV R1,#200
                VOLTA:    MOV R0,#250
                          DJNZ R0,$
                          DJNZ R1,VOLTA
                          DJNZ R2,VOLTA2
                          RET

                INICIO:   CLR LED          ;LED inicia desligado
                LOOP:     CPL LED
                          ACALL DELAY
                          AJMP LOOP
                END


31 de julho de 2012            Minicurso: Assembly para 8051 GDESTE   29

Mais conteúdo relacionado

Mais procurados

Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesaPacc UAB
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linuxRogério Cardoso
 
Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10LucasMansueto
 
Excel fórmulas básicas
Excel fórmulas básicasExcel fórmulas básicas
Excel fórmulas básicasAfonso Lima
 
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadoresArquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadoresCleber Fonseca
 
Aula 3 - Algoritmos computacionais - parte 2
Aula 3 - Algoritmos computacionais - parte 2Aula 3 - Algoritmos computacionais - parte 2
Aula 3 - Algoritmos computacionais - parte 2Pacc UAB
 
Construção de Obras Hidráulicas
Construção de Obras Hidráulicas Construção de Obras Hidráulicas
Construção de Obras Hidráulicas Danilo Max
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processosComputação Depressão
 
Slides - minicurso app inventor
Slides - minicurso app inventorSlides - minicurso app inventor
Slides - minicurso app inventorMichel de Souza
 
Introdução aos Sistemas Operativos
Introdução aos Sistemas OperativosIntrodução aos Sistemas Operativos
Introdução aos Sistemas OperativosJorge Louro
 
Matéria de apoio a diciplina de Sistemas de Exploração e Aplicações Informáticas
Matéria de apoio a diciplina de Sistemas de Exploração e Aplicações InformáticasMatéria de apoio a diciplina de Sistemas de Exploração e Aplicações Informáticas
Matéria de apoio a diciplina de Sistemas de Exploração e Aplicações InformáticasAndré Silva
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Faculdade Mater Christi
 
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estadosHamilton Sena
 
Sistemas Especialistas
Sistemas EspecialistasSistemas Especialistas
Sistemas Especialistaselliando dias
 

Mais procurados (20)

Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
 
Linguagem Assembly
Linguagem AssemblyLinguagem Assembly
Linguagem Assembly
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linux
 
Apostila metasploit
Apostila metasploitApostila metasploit
Apostila metasploit
 
Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10
 
Excel fórmulas básicas
Excel fórmulas básicasExcel fórmulas básicas
Excel fórmulas básicas
 
Pipeline
PipelinePipeline
Pipeline
 
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadoresArquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
 
Aula 3 - Algoritmos computacionais - parte 2
Aula 3 - Algoritmos computacionais - parte 2Aula 3 - Algoritmos computacionais - parte 2
Aula 3 - Algoritmos computacionais - parte 2
 
Construção de Obras Hidráulicas
Construção de Obras Hidráulicas Construção de Obras Hidráulicas
Construção de Obras Hidráulicas
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
 
Slides - minicurso app inventor
Slides - minicurso app inventorSlides - minicurso app inventor
Slides - minicurso app inventor
 
Introdução aos Sistemas Operativos
Introdução aos Sistemas OperativosIntrodução aos Sistemas Operativos
Introdução aos Sistemas Operativos
 
Matéria de apoio a diciplina de Sistemas de Exploração e Aplicações Informáticas
Matéria de apoio a diciplina de Sistemas de Exploração e Aplicações InformáticasMatéria de apoio a diciplina de Sistemas de Exploração e Aplicações Informáticas
Matéria de apoio a diciplina de Sistemas de Exploração e Aplicações Informáticas
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
 
Resumo assembly x86 16 bits
Resumo assembly x86 16 bitsResumo assembly x86 16 bits
Resumo assembly x86 16 bits
 
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
 
Aula teclado
Aula tecladoAula teclado
Aula teclado
 
Sistemas Especialistas
Sistemas EspecialistasSistemas Especialistas
Sistemas Especialistas
 

Destaque

Destaque (20)

Aula 4 a linguagem assembly
Aula 4   a linguagem assemblyAula 4   a linguagem assembly
Aula 4 a linguagem assembly
 
Linguagem assembly
Linguagem assemblyLinguagem assembly
Linguagem assembly
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: Assembly
 
Aula 2 - Assembly - 8051
Aula 2 - Assembly - 8051Aula 2 - Assembly - 8051
Aula 2 - Assembly - 8051
 
Aula 6 emu8086
Aula 6   emu8086Aula 6   emu8086
Aula 6 emu8086
 
Aula 3 - Assembly - 8051
Aula 3 - Assembly - 8051Aula 3 - Assembly - 8051
Aula 3 - Assembly - 8051
 
Assembly
AssemblyAssembly
Assembly
 
Aula 4 - Assembly - 8051
Aula 4 - Assembly - 8051Aula 4 - Assembly - 8051
Aula 4 - Assembly - 8051
 
TCC Virgilio Rocha Ximenes
TCC Virgilio Rocha XimenesTCC Virgilio Rocha Ximenes
TCC Virgilio Rocha Ximenes
 
Seminário: C++
Seminário: C++Seminário: C++
Seminário: C++
 
Seminário: Delphi
Seminário: DelphiSeminário: Delphi
Seminário: Delphi
 
Ruby
RubyRuby
Ruby
 
Phyton
PhytonPhyton
Phyton
 
Seminário: Lisp
Seminário: LispSeminário: Lisp
Seminário: Lisp
 
Pascal
PascalPascal
Pascal
 
Seminário: C#
Seminário: C#Seminário: C#
Seminário: C#
 
Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programação
 
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas EstruturasICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
 
Seminário: JavaScript
Seminário: JavaScriptSeminário: JavaScript
Seminário: JavaScript
 
Seminário: Lua
Seminário: LuaSeminário: Lua
Seminário: Lua
 

Semelhante a Aula 1 - Assembly - 8051

EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfssuser56423c1
 
Apostila arduino
Apostila arduinoApostila arduino
Apostila arduinoEdson Paz
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduinoRui Alves
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFengelrfs
 
Curso notebook
Curso notebookCurso notebook
Curso notebooksilviosl
 
Introdução a Computação - Unidade 5.pptx
Introdução a Computação - Unidade 5.pptxIntrodução a Computação - Unidade 5.pptx
Introdução a Computação - Unidade 5.pptxRildo Reis
 
Uma CPU simples para fins didáticos
Uma CPU simples para fins didáticosUma CPU simples para fins didáticos
Uma CPU simples para fins didáticosJulioLeme
 
Manutenção & reparo de notebooks
Manutenção & reparo de notebooksManutenção & reparo de notebooks
Manutenção & reparo de notebooksFernando Mendes
 
Pic apostila
Pic apostilaPic apostila
Pic apostilamoschen
 
Clp completa
Clp completaClp completa
Clp completapanelada
 
Arduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius SengerArduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius SengerGlobalcode
 
Arduino introdução - 10 projectos
Arduino   introdução - 10 projectosArduino   introdução - 10 projectos
Arduino introdução - 10 projectosDaniel Chavier
 
CSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireCSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireJoao Alves
 

Semelhante a Aula 1 - Assembly - 8051 (20)

Aula1 30-07-120922184742-phpapp02
Aula1 30-07-120922184742-phpapp02Aula1 30-07-120922184742-phpapp02
Aula1 30-07-120922184742-phpapp02
 
Aula3 120922184753-phpapp02
Aula3 120922184753-phpapp02Aula3 120922184753-phpapp02
Aula3 120922184753-phpapp02
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
HC11
HC11HC11
HC11
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdf
 
ApresPP.pptx
ApresPP.pptxApresPP.pptx
ApresPP.pptx
 
Apostila arduino
Apostila arduinoApostila arduino
Apostila arduino
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
 
Mini curso arduino
Mini curso arduinoMini curso arduino
Mini curso arduino
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
 
Curso notebook
Curso notebookCurso notebook
Curso notebook
 
Introdução a Computação - Unidade 5.pptx
Introdução a Computação - Unidade 5.pptxIntrodução a Computação - Unidade 5.pptx
Introdução a Computação - Unidade 5.pptx
 
Uma CPU simples para fins didáticos
Uma CPU simples para fins didáticosUma CPU simples para fins didáticos
Uma CPU simples para fins didáticos
 
Manutenção & reparo de notebooks
Manutenção & reparo de notebooksManutenção & reparo de notebooks
Manutenção & reparo de notebooks
 
Pic apostila
Pic apostilaPic apostila
Pic apostila
 
Clp completa
Clp completaClp completa
Clp completa
 
Arduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius SengerArduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius Senger
 
Arduino introdução - 10 projectos
Arduino   introdução - 10 projectosArduino   introdução - 10 projectos
Arduino introdução - 10 projectos
 
CSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireCSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker Faire
 

Aula 1 - Assembly - 8051

  • 1. Programação Assembly 8051 – Aula 1 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 1
  • 2. Agora, vamos ao que interessa... 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 2
  • 3. Descrição A família de microcontroladores MCS-51TM, desenvolvida, fabricada e comercializada pela Intel é baseada em padrões industriais de microcontroladores de 8 bits, sendo o 8051 o componente inicial desta família. O 8051 possui 128 bytes de RAM, 4 Kbytes de memória de programa, 2 contadores/temporizadores de 16 bits e 32 linhas de entrada/saída bidirecionais e individualmente endereçáveis – 4 portas de E/S. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 3
  • 4. Partes do microcontrolador • CPU: tem a função de acionar e se comunicar com todos os barramentos obedecendo as diretivas gravadas na ROM. É responsável pela execução de instruções programadas, interpretar e executar comandos. • Memória: utiliza uma memória ROM para ler as instruções que deve executar e se utiliza de uma memória RAM para armazenar temporariamente dados de uso das instruções ou variáveis do programa. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 4
  • 5. Partes do microcontrolador • Periféricos de E/S: são todos os dispositivos externos ligados à CPU, como teclados, displays, motores, timers, porta serial etc. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 5
  • 6. CPU • Unidade de Controle: processa o controle do fluxo das informações a fim de executar a instrução recebida pela ROM. Envia impulsos elétricos para controlar em sequencia apropriada e sincronizada as operações dos componentes. • Unidade de lógica e aritmética: realiza todas as operações de lógica e aritmética da CPU. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 6
  • 7. CPU • Unidade de registradores: servem para o armazenamento temporário de dados de utilidade interna e externa à CPU. Proporcionam um tempo rápido de transferência de bits. Dentre eles podemos destacar o contador de programa, o registro de instruções e o acumulador. • Contador de programa: armazena o endereço da célula que contém o código da próxima instrução a ser executada. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 7
  • 8. CPU • Acumulador: principal registrador da CPU, pois várias instruções se referem a ele para operar, como por exemplo ADD A,#40H. O resultado das operações é guardado no próprio acumulador. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 8
  • 9. Arquitetura interna Está dividida em unidade de processamento central, oscilador interno, memória ROM interna, memória RAM interna, dois temporizadores, uma porta serial, quatro portas paralelas de 8 bits, circuito de controle de interrupção e circuito de controle de barramento. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 9
  • 10. Arquitetura externa AT89S52 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 10
  • 11. Arquitetura externa • VCC E GND: Entradas de tensão de alimentação de +5V e Terra. • Porta 0 (P0.7 a P0.0): Porta bidirecional de 8 bits, com saída de dreno aberto, ou entrada de alta impedância. Multiplexa o barramento de dados e o barramento de endereços. Pode servir como saída de bytes de instrução, sendo necessária a colocação de resistores de pull-up’s externos. Seus pinos podem ser individualmente endereçáveis. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 11
  • 12. Arquitetura externa • Porta 1 (P1.7 a P1.0): Nenhuma função alternativa está associada a esta porta, ela é usada apenas para conectar dispositivos externos. Necessita de pull-up’s externos para suprir ou drenar cargas. Seus pinos podem ser individualmente endereçáveis. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 12
  • 13. Arquitetura externa • Porta 2 (P2.7 a P2.0): é bidirecional de 8 bits com resistores de pull-up’s internos. Seus pinos podem suprir ou drenar cargas TTL sem resistores externos e podem ser individualmente endereçáveis. • Porta 3 (P3.7 a P3.0): Porta de 8 bits bidirecional. Seus pinos podem ser individualmente endereçáveis, servindo também para as funções especiais descritas a seguir. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 13
  • 14. Arquitetura externa BIT NOME FUNÇÃO ALTERNATIVA P3.0 RXD Receptor da porta serial assíncrona. TXD/ Saída de transmissão da porta serial ou saída de clock P3.1 clock para os registradores de deslocamento externos. Interrupção externa 0 ou bit de controle para o P3.2 INT0 timer/contador 0. Interrupção externa 1 ou bit de controle para o P3.3 INT1 timer/contador 1. P3.4 T0 Entrada para o timer/contador 0. P3.5 T1 Entrada para o timer/contador 1. P3.6 WR Strobe de escrita na memória externa. P3.7 RD Strobe de leitura na memória externa. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 14
  • 15. Arquitetura externa P1 0 0 0 0 0 0 0 0 SETB P1.2 P1 0 0 0 0 0 1 0 0 MOV P1,#075H P1 0 1 1 1 0 1 0 1 CLR P1.6 P1 0 0 1 1 0 1 0 1 MOV P1,#00H P1 0 0 0 0 0 0 0 0 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 15
  • 16. Arquitetura externa • RESET: Um nível alto nesse pino realiza uma inicialização do circuito. • EA: Deve ser ligado ao nível alto, para que o processador tenha acesso a memória interna de programa. Se estiver ligado ao nível baixo, toda a área de programa será considerada externa. • XTAL1 e XTAL2: entradas para o clock externo. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 16
  • 17. Memória O 𝜇 C8051 contém 210 localizações de bits endereçáveis, dos quais 128 são os bytes endereçados de 20H até 2FH e os restantes estão nos registros de funções especiais. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 17
  • 18. 7F RAM de propósito geral Memória 30 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 Localização dos bits endereçáveis 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 27 3F 3E 3D 3C 3B 3A 39 38 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 22 17 16 15 14 13 12 11 10 21 0F 0E 0D 0C 0B 0A 09 08 20 07 06 05 04 03 02 01 00 1F Banco 3 18 17 Banco 2 10 0F Banco 1 08 07 Banco 0 00 RAM 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 18
  • 19. FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B Memória E0 D0 E7 D7 E6 D6 E5 D5 E4 D4 E3 D3 E2 D2 E1 D1 E0 D0 ACC PSW B8 BF BE BD BC BB BA B9 B8 IP B0 B7 B6 B5 B4 B3 B2 B1 B0 P3 A8 AF AE AD AC AB AA A9 A8 IE Localização dos bits endereçáveis A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 99 Bits não endereçáveis SBUF 98 9F 9E 9D 9C 9B 9A 99 98 SCON 90 97 96 95 94 93 92 91 90 P1 8B Bits não endereçáveis TH1 8C Bits não endereçáveis TH0 8B Bits não endereçáveis TL1 8A Bits não endereçáveis TL0 89 Bits não endereçáveis TMOD 88 8F 8E 8D 8C 8B 8A 89 88 TCON 87 Bits não endereçáveis PCON 83 Bits não endereçáveis DPH 82 Bits não endereçáveis DPL 81 Bits não endereçáveis SP 80 87 86 85 84 83 82 81 80 P0 REGISTROS DE FUNÇÕES ESPECIAIS 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 19
  • 20. Banco de registros O conjunto de instruções do 8051 contem 8 registros, R0 até R7 e por default estão com endereços de 00H-07H. O banco de registro ativo pode ser alterado trocando os bits de seleção dos bancos de registros. A ideia de banco de registros permite uma rápida e efetiva troca de dados. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 20
  • 21. Outros registros Acumulador; Registrador B; Registro dos temporizadores; Registro de palavra de status de programa (PSW); DPTR; SP; SBUF; PCON. 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 21
  • 22. Primeiro contato com o Assembly • Diretiva ORG: altera a localização para iniciar a nova contagem do programa. • END: Finaliza o processo de montagem. • EQU: iguala um rótulo com outro ou com um valor numérico. Exemplos: LED EQU P2.0 DEZ EQU 10 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 22
  • 23. Conjunto de instruções As operações possuem diferentes modos de endereçamento. ADD A , 7FH ; Endereçamento direto ADD A , @R0 ; Endereçamento indireto ADD A , R7 ; Endereçamento de registro ADD , #10H ; Endereçamento imediato 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 23
  • 24. Instruções Aritméticas MNEMÔNICO OPERAÇÃO TEMPO DE EXECUÇÃO(𝜇s) ADD A, <byte> A = A + <byte> 1 ADDC A, <byte> A = A + <byte> + C 1 SUBB A, <byte> A = A + <byte> - C 1 INC A A=A+1 1 INC <byte> <byte> = <byte> + 1 1 INC DPTR DPTR = DPTR + 1 2 DEC A A=A–1 1 DEC <byte> <byte> = <byte> -1 1 MUL AB B,A = B X A 4 DIV AB A = Int(A/B) e 4 B = Resto(A/B) 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 24
  • 25. Instruções de transferência MNEMÔNICO OPERAÇÃO TEMPO DE EXECUÇÃO(𝜇s) MOV A, <fonte> A = <fonte> 1 MOV <destino> , A <destino> = A 1 MOV <destino> , <fonte> <destino> = <fonte> 2 XCH A,<byte> Troca dados 1 MOV DPTR,#<2bytes> DPTR = <2bytes> 2 Exemplos: MOV R7,#10H MOV A,R0 MOV SP,#5FH 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 25
  • 26. Instruções booleanas MNEMÔNICO OPERAÇÃO TEMPO DE EXECUÇÃO(𝜇s) ANL C,<bit> C = C AND <bit> 2 ORL C,<bit> C = C OR <bit> 2 SETB <bit> <bit> = 1 1 CLR <bit> <bit> = 0 1 CPL <bit> <bit> = NOT <bit> 1 MOV C, <bit> C = <bit> 1 MOV C, /<bit> C = NOT <bit> 1 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 26
  • 27. Instruções booleanas Exemplo: LOOP: MOV C,P1.0 ANL C,P1.1 MOV P1.2,C AJMP LOOP 8051 P1.0 P1.1 P1.2 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 27
  • 28. Prática 1: Criando uma porta NOR ORG 00H AJMP LOOP ENT1 EQU P1.0 ENT2 EQU P1.1 SAIDA EQU P2.0 LOOP: MOV C,ENT1 ORL C,ENT2 CPL C MOV SAIDA,C AJMP LOOP END 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 28
  • 29. Prática 2: Pisca LED ORG 00H AJMP INICIO LED EQU P2.0 DELAY: MOV R2,#10 VOLTA2: MOV R1,#200 VOLTA: MOV R0,#250 DJNZ R0,$ DJNZ R1,VOLTA DJNZ R2,VOLTA2 RET INICIO: CLR LED ;LED inicia desligado LOOP: CPL LED ACALL DELAY AJMP LOOP END 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 29