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

PDF
SX1302屋外8ch.LoRaWAN ゲートウェイ DLOS8Nマニュアル
PDF
A20 b 1003-009005a-ac-servo-board-fanuc-manual (1)
PPT
Фактори, які впливають на ступінь ураження людини електрострумом
PDF
PERKINS 3000 SERIES 3012 CV12 12 CYLINDER DIESEL ENGINE Service Repair Manual
PDF
Perkins 1100 series 1104 d (mech) industrial engine model (nm) service repair...
PDF
R. Hespérides nº 17 (2015)
PDF
Linguagem assembly
PPTX
Arquitetura de Computadores: Assembly
SX1302屋外8ch.LoRaWAN ゲートウェイ DLOS8Nマニュアル
A20 b 1003-009005a-ac-servo-board-fanuc-manual (1)
Фактори, які впливають на ступінь ураження людини електрострумом
PERKINS 3000 SERIES 3012 CV12 12 CYLINDER DIESEL ENGINE Service Repair Manual
Perkins 1100 series 1104 d (mech) industrial engine model (nm) service repair...
R. Hespérides nº 17 (2015)
Linguagem assembly
Arquitetura de Computadores: Assembly

Destaque (20)

PDF
Aula 2 - Assembly - 8051
PDF
Aula 3 - Assembly - 8051
PPT
PDF
Aula 4 - Assembly - 8051
PDF
TCC Virgilio Rocha Ximenes
PPTX
Seminário: C++
PPTX
Seminário: Delphi
PPTX
PPTX
PPTX
Seminário: Lisp
PDF
PPTX
Seminário: C#
PDF
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
PPTX
Seminário: JavaScript
PPTX
Seminário: Lua
PPTX
Linguagens de Programação
PDF
Metodologia trabalhos acadêmicos
PPTX
PPT
Comandos de pascal e estrutura de repetição (para...fazer)
PDF
Linguagem de Programação Pascal
Aula 2 - Assembly - 8051
Aula 3 - Assembly - 8051
Aula 4 - Assembly - 8051
TCC Virgilio Rocha Ximenes
Seminário: C++
Seminário: Delphi
Seminário: Lisp
Seminário: C#
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
Seminário: JavaScript
Seminário: Lua
Linguagens de Programação
Metodologia trabalhos acadêmicos
Comandos de pascal e estrutura de repetição (para...fazer)
Linguagem de Programação Pascal
Anúncio

Semelhante a Aula 1 - Assembly - 8051 (20)

PDF
Aula1 30-07-120922184742-phpapp02
PDF
Aula3 120922184753-phpapp02
PDF
Aula2 120922184746-phpapp01
PDF
Aula4 120922184731-phpapp01 (1)
PDF
Lista2009 2
PDF
Desenvolvimento com o ATmega8
PPT
8085 Introducao
PDF
07_-_Microcomputadores e microcontroladores
PDF
Apostila cpic
PDF
Microcontroladores: El microcontrolador 8051
PDF
Microcontroladores: Lenguaje de ensamblador de microcontroladores AVR
PDF
Processadores intel 8008 e 8080
PPT
Programação básica de microcontroladores
PDF
Hardware de sistemas
PDF
Comunicação PC - PC via porta paralela
PDF
Portas de comunicacao
PDF
Programacão para não programadores
PPTX
ApresPP.pptx
PDF
Implementação UHCI para Memtest86+
PDF
Apresentação-Jun18-V1.pdf_bresimar_training
Aula1 30-07-120922184742-phpapp02
Aula3 120922184753-phpapp02
Aula2 120922184746-phpapp01
Aula4 120922184731-phpapp01 (1)
Lista2009 2
Desenvolvimento com o ATmega8
8085 Introducao
07_-_Microcomputadores e microcontroladores
Apostila cpic
Microcontroladores: El microcontrolador 8051
Microcontroladores: Lenguaje de ensamblador de microcontroladores AVR
Processadores intel 8008 e 8080
Programação básica de microcontroladores
Hardware de sistemas
Comunicação PC - PC via porta paralela
Portas de comunicacao
Programacão para não programadores
ApresPP.pptx
Implementação UHCI para Memtest86+
Apresentação-Jun18-V1.pdf_bresimar_training
Anúncio

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