SlideShare uma empresa Scribd logo
Programação Assembly
                8051 – Aula 3


5 de agosto de 2012   Minicurso: Assembly para 8051 GDESTE   1
Instrução de acesso à tabela
               MOV DPTR , #TABELA
               MOVC A , @A + DPTR




               TABELA: DB 10,20,30,40,50,60




5 de agosto de 2012     Minicurso: Assembly para 8051 GDESTE   2
Interrupções
               Quando uma interrupção é aceita, a CPU
               guarda na memória de dados o endereço de
               ROM que contém a próxima instrução do
               programa normal que seria executada e
               desloca-se para um novo endereço de memória
               de programa específico daquela interrupção,
               procurando por instruções da sub-rotina de
               interrupção.



5 de agosto de 2012    Minicurso: Assembly para 8051 GDESTE   3
Propriedades
               • Vetorada ou não vetorada: todas as
                 interrupções do 8051 são do tipo não
                 vetorada. Isso significa que ele possui um
                 endereço fixo de interrupção. Quando o
                 microcontrolador permite que o dispositivo
                 que o interrompeu envie o endereço do
                 desvio é chamada de vetorada.




5 de agosto de 2012     Minicurso: Assembly para 8051 GDESTE   4
Propriedades
               • Mascaramento: é a propriedade de permitir
                 ou não que dispositivos internos ou externos
                 interrompam o microcontrolador. No 8051 as
                 interrupções são habilitadas por software.
               • Prioridade: Define a prioridade de cada
                 evento de interrupção, para não haver
                 conflito de disputas de interrupção.




5 de agosto de 2012     Minicurso: Assembly para 8051 GDESTE    5
Propriedades
               • Tipos de disparo: é propriedade das
                 interrupções externas. Pode-se programar o
                 microcontrolador para ser interrompido por
                 nível(0 ou 1) ou borda(subida ou descida).




5 de agosto de 2012     Minicurso: Assembly para 8051 GDESTE   6
Endereços das Interrupções
                      INTERRUPÇÃO                      ENDEREÇO
                         Reset                            000H
                       Externa 0                          003H
                        Timer 0                           00BH
                        Externa 1                        0013H
                         Timer 1                          01BH
                         Serial                           023H




5 de agosto de 2012    Minicurso: Assembly para 8051 GDESTE       7
Habilitação
                              REGISTRO IE (Interrupt enable)
            EA        -           -     ES       ET1         EX1      ET0   EX0



                          SÍMBOLO                       FUNÇÃO
                            EA                 Todas as interrupções
                            ES                         Porta Serial
                            ET1                          Timer 1
                            EX1                Interrupção externa 1
                            ET0                          Timer 0
                            EX0                Interrupção externa 0


5 de agosto de 2012         Minicurso: Assembly para 8051 GDESTE                  8
Prioridade das Interrupções
                                REGISTRO IP (Interrupt priority)
             -        -            -      PS       PT1       PX1      PT0   PX0



                          SÍMBOLO                        FUNÇÃO
                              PS                       Porta Serial
                             PT1                         Timer 1
                             PX1                 Interrupção externa 1
                             PT0                         Timer 0
                             PX0                 Interrupção externa 0

                          1 -> Alta prioridade / 0 -> Baixa prioridade

5 de agosto de 2012           Minicurso: Assembly para 8051 GDESTE                9
Flags

                       Flag                      Interrupção
                      RI E TI                    Porta Serial
                       TF1                          Timer 1
                       IE1                  Interrupção externa 1
                       TF0                         Timer 0
                       IE0                  Interrupção externa 0




5 de agosto de 2012     Minicurso: Assembly para 8051 GDESTE        10
Interrupções externas 0 e 1
               São utilizadas quando uma determinada sub-
               rotina deve ser executada conforme um sinal
               de controle externo, que pode ser uma chave,
               um sensor, outro microcontrolador etc.




5 de agosto de 2012     Minicurso: Assembly para 8051 GDESTE   11
Interrupções externas 0 e 1

      INTERRUPÇÃO        BIT DE               MODO DE
                                                               SINAL APLICADO
        EXTERNA       PROGRAMAÇÃO             DISPARO


                         IT0 = 1                Borda
              0
                         IT0 = 0                 Nível


                         IT1 = 1                Borda
              1
                         IT0 = 0                 Nível



5 de agosto de 2012     Minicurso: Assembly para 8051 GDESTE                    12
Temporizadores
               O 8051 possui dois Temporizadores/Contadores
               de 16 bits. Cada Timer é formado por duas
               posições de RAM, a parte alta e a parte baixa.
                                          TIMER
                                            TH0                  (Parte alta)
                      0
                                            TL0                  (Parte baixa)
                                            TH1                  (Parte alta)
                      1
                                            TL1                  (Parte baixa)




5 de agosto de 2012       Minicurso: Assembly para 8051 GDESTE                   13
Temporizadores
               Quando um timer começa a contar o registro é
               incrementado a cada contagem. Inicialmente o
               registro baixo é incrementado e quando este
               estoura, o registro alto é incrementado.

                                 𝑇𝑒𝑚𝑝𝑜 𝑡𝑜𝑡𝑎𝑙 𝑑𝑒 𝑐𝑜𝑛𝑡𝑎𝑔𝑒𝑚 × 𝐹𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑖𝑎
                  𝑁º 𝑑𝑒 𝑝𝑢𝑙𝑠𝑜𝑠 =
                                                  12




5 de agosto de 2012        Minicurso: Assembly para 8051 GDESTE         14
Contadores
               Os registros baixos dos timers são
               incrementados a cada transição de nível lógico
               baixo ( 1 para 0) do sinal aplicado ao pinos
               externo do respectivo timer.
                            TIMER                     PORTA
                               0                        P3.4
                               1                        P3.5




5 de agosto de 2012     Minicurso: Assembly para 8051 GDESTE    15
TMOD (registro de programação)
               • Bits não-endereçáveis.
               • Responsável pela programação dos dois
                 timers.


                            REGISTRO TMOD (Timer Mode Control)
            GATE      C/T      M1        M0       GATE       C/T     M1   M0



                       TIMER 1                                 TIMER 0


5 de agosto de 2012         Minicurso: Assembly para 8051 GDESTE               16
TMOD (registro de programação)
               • GATE: quando este bit é setado, o controle
                 liga/desliga do timer pode ser feito por um
                 sinal externo ao microcontrolador.
               • C/T: quando C/T = 1, o timer funciona como
                 um contador e os pulsos vêm do pino
                 externo. Quando C/T = 0, funciona como
                 temporizador e os pulsos vêm do oscilador
                 interno.



5 de agosto de 2012     Minicurso: Assembly para 8051 GDESTE   17
TMOD (registro de programação)
               • M1 E M0: determinam o modo de
                 funcionamento do timer de acordo com a
                 tabela abaixo.

                 M1    M0               Modo de Funcionamento
                  0     0                             0
                  0     1                             1
                  1     0                             2
                  1     1                             3




5 de agosto de 2012    Minicurso: Assembly para 8051 GDESTE     18
TMOD (registro de programação)
               • Modo 0: Funciona como um contador de 13
                 bits. O contador é composto por todo o
                 registro alto (THx) e os 5 bits menos
                 significativos da parte baixa (TLx). O sinal de
                 flag será gerado quando o bit mais
                 significativo do registro alto mudar de 1 para
                 0. A contagem máxima é até 8192 pulsos.




5 de agosto de 2012      Minicurso: Assembly para 8051 GDESTE      19
TMOD (registro de programação)
               • Modo 1: Funciona como um contador de 16
                 bits. A contagem máxima vai até 65535
                 pulsos.




5 de agosto de 2012    Minicurso: Assembly para 8051 GDESTE   20
TMOD (registro de programação)
               • Modo 2: funciona como contador de 8 bits
                 com recarga automática. É composto apenas
                 pela parte baixa (TLx). A contagem máxima
                 será até 255. A função da parte alta é
                 guardar o byte que deverá ser carregado
                 automaticamente na parte alta.




5 de agosto de 2012    Minicurso: Assembly para 8051 GDESTE   21
TMOD (registro de programação)
               • Modo 3: este modo só pode ser aplicado ao
                 timer 0. Neste modo o timer 0 será dividido
                 em dois timers de 8 bits.




5 de agosto de 2012     Minicurso: Assembly para 8051 GDESTE   22

Mais conteúdo relacionado

PDF
Aula 4 - Assembly - 8051
PDF
Aula 2 - Assembly - 8051
PDF
Aula 1 - Assembly - 8051
PDF
Aula1 30-07-120922184742-phpapp02
PDF
Pic18xx
PPT
8085 Introducao
PPT
8085 3
PPT
8085 2
Aula 4 - Assembly - 8051
Aula 2 - Assembly - 8051
Aula 1 - Assembly - 8051
Aula1 30-07-120922184742-phpapp02
Pic18xx
8085 Introducao
8085 3
8085 2

Mais procurados (20)

PDF
Pic apostila
PDF
Interrupts and the timer
PDF
Material Auxiliar Para Curso BáSico Msp430 55 A 98
PDF
Apostila cpic
PDF
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
PPT
Pic aula1
PDF
Workshop Microchip Curiosity Board
PDF
Roteiro exp9
PDF
Processador intel 4040
PPT
PDF
Apresentação curso pic básico fbs eletrônica
PDF
Utilizando um Display de LCD
PDF
Leitura de teclas com arranjo matricial
PDF
Microcontroladores pic ling c unicamp
PDF
38698469 slides-arduino
PDF
Pisca 2 leds
PPT
PPT
Programação básica de microcontroladores
Pic apostila
Interrupts and the timer
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Apostila cpic
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
Pic aula1
Workshop Microchip Curiosity Board
Roteiro exp9
Processador intel 4040
Apresentação curso pic básico fbs eletrônica
Utilizando um Display de LCD
Leitura de teclas com arranjo matricial
Microcontroladores pic ling c unicamp
38698469 slides-arduino
Pisca 2 leds
Programação básica de microcontroladores
Anúncio

Destaque (20)

PDF
Linguagem assembly
PPT
PPTX
Arquitetura de Computadores: Assembly
PPTX
Seminário: C#
PPTX
PDF
PPTX
Seminário: Delphi
PPTX
Seminário: Lisp
PPTX
Seminário: C++
PPTX
PDF
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
PPTX
Seminário: JavaScript
PPTX
Seminário: Lua
PPTX
PPT
Comandos de pascal e estrutura de repetição (para...fazer)
PDF
Linguagem de Programação Pascal
PDF
Programando com pascal
DOC
Algoritmos e linguagem pascal
PPT
Algoritmos - Pascal
ODP
Pascal Arquivos
Linguagem assembly
Arquitetura de Computadores: Assembly
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
Comandos de pascal e estrutura de repetição (para...fazer)
Linguagem de Programação Pascal
Programando com pascal
Algoritmos e linguagem pascal
Algoritmos - Pascal
Pascal Arquivos
Anúncio

Semelhante a Aula 3 - Assembly - 8051 (14)

PDF
Aula3 120922184753-phpapp02
PDF
APRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdf
PDF
APRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdf
PDF
AA Apresentacao_TIMER0_PIC16F877A_2016.pdf
PPTX
TIMER e Interrupção por Timer no compilador Mikroc
PDF
Aula2 120922184746-phpapp01
PDF
Configurações do microcontrolador PIC16F877a
PDF
Proteção e seletividade cap. 3 - dispositivos de proteção parte 1
PDF
gk_2021_01_Aula07-twi.pdf
PDF
PDF
Cartilha Micro-Controlador 80c51 - Assembly
PDF
Aula4 120922184731-phpapp01 (1)
PDF
Apostila - Tutorial Arduino (Básico).PDF
PDF
Introdução ao Arduino
Aula3 120922184753-phpapp02
APRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdf
APRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdf
AA Apresentacao_TIMER0_PIC16F877A_2016.pdf
TIMER e Interrupção por Timer no compilador Mikroc
Aula2 120922184746-phpapp01
Configurações do microcontrolador PIC16F877a
Proteção e seletividade cap. 3 - dispositivos de proteção parte 1
gk_2021_01_Aula07-twi.pdf
Cartilha Micro-Controlador 80c51 - Assembly
Aula4 120922184731-phpapp01 (1)
Apostila - Tutorial Arduino (Básico).PDF
Introdução ao Arduino

Aula 3 - Assembly - 8051

  • 1. Programação Assembly 8051 – Aula 3 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 1
  • 2. Instrução de acesso à tabela MOV DPTR , #TABELA MOVC A , @A + DPTR TABELA: DB 10,20,30,40,50,60 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 2
  • 3. Interrupções Quando uma interrupção é aceita, a CPU guarda na memória de dados o endereço de ROM que contém a próxima instrução do programa normal que seria executada e desloca-se para um novo endereço de memória de programa específico daquela interrupção, procurando por instruções da sub-rotina de interrupção. 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 3
  • 4. Propriedades • Vetorada ou não vetorada: todas as interrupções do 8051 são do tipo não vetorada. Isso significa que ele possui um endereço fixo de interrupção. Quando o microcontrolador permite que o dispositivo que o interrompeu envie o endereço do desvio é chamada de vetorada. 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 4
  • 5. Propriedades • Mascaramento: é a propriedade de permitir ou não que dispositivos internos ou externos interrompam o microcontrolador. No 8051 as interrupções são habilitadas por software. • Prioridade: Define a prioridade de cada evento de interrupção, para não haver conflito de disputas de interrupção. 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 5
  • 6. Propriedades • Tipos de disparo: é propriedade das interrupções externas. Pode-se programar o microcontrolador para ser interrompido por nível(0 ou 1) ou borda(subida ou descida). 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 6
  • 7. Endereços das Interrupções INTERRUPÇÃO ENDEREÇO Reset 000H Externa 0 003H Timer 0 00BH Externa 1 0013H Timer 1 01BH Serial 023H 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 7
  • 8. Habilitação REGISTRO IE (Interrupt enable) EA - - ES ET1 EX1 ET0 EX0 SÍMBOLO FUNÇÃO EA Todas as interrupções ES Porta Serial ET1 Timer 1 EX1 Interrupção externa 1 ET0 Timer 0 EX0 Interrupção externa 0 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 8
  • 9. Prioridade das Interrupções REGISTRO IP (Interrupt priority) - - - PS PT1 PX1 PT0 PX0 SÍMBOLO FUNÇÃO PS Porta Serial PT1 Timer 1 PX1 Interrupção externa 1 PT0 Timer 0 PX0 Interrupção externa 0 1 -> Alta prioridade / 0 -> Baixa prioridade 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 9
  • 10. Flags Flag Interrupção RI E TI Porta Serial TF1 Timer 1 IE1 Interrupção externa 1 TF0 Timer 0 IE0 Interrupção externa 0 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 10
  • 11. Interrupções externas 0 e 1 São utilizadas quando uma determinada sub- rotina deve ser executada conforme um sinal de controle externo, que pode ser uma chave, um sensor, outro microcontrolador etc. 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 11
  • 12. Interrupções externas 0 e 1 INTERRUPÇÃO BIT DE MODO DE SINAL APLICADO EXTERNA PROGRAMAÇÃO DISPARO IT0 = 1 Borda 0 IT0 = 0 Nível IT1 = 1 Borda 1 IT0 = 0 Nível 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 12
  • 13. Temporizadores O 8051 possui dois Temporizadores/Contadores de 16 bits. Cada Timer é formado por duas posições de RAM, a parte alta e a parte baixa. TIMER TH0 (Parte alta) 0 TL0 (Parte baixa) TH1 (Parte alta) 1 TL1 (Parte baixa) 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 13
  • 14. Temporizadores Quando um timer começa a contar o registro é incrementado a cada contagem. Inicialmente o registro baixo é incrementado e quando este estoura, o registro alto é incrementado. 𝑇𝑒𝑚𝑝𝑜 𝑡𝑜𝑡𝑎𝑙 𝑑𝑒 𝑐𝑜𝑛𝑡𝑎𝑔𝑒𝑚 × 𝐹𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑖𝑎 𝑁º 𝑑𝑒 𝑝𝑢𝑙𝑠𝑜𝑠 = 12 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 14
  • 15. Contadores Os registros baixos dos timers são incrementados a cada transição de nível lógico baixo ( 1 para 0) do sinal aplicado ao pinos externo do respectivo timer. TIMER PORTA 0 P3.4 1 P3.5 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 15
  • 16. TMOD (registro de programação) • Bits não-endereçáveis. • Responsável pela programação dos dois timers. REGISTRO TMOD (Timer Mode Control) GATE C/T M1 M0 GATE C/T M1 M0 TIMER 1 TIMER 0 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 16
  • 17. TMOD (registro de programação) • GATE: quando este bit é setado, o controle liga/desliga do timer pode ser feito por um sinal externo ao microcontrolador. • C/T: quando C/T = 1, o timer funciona como um contador e os pulsos vêm do pino externo. Quando C/T = 0, funciona como temporizador e os pulsos vêm do oscilador interno. 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 17
  • 18. TMOD (registro de programação) • M1 E M0: determinam o modo de funcionamento do timer de acordo com a tabela abaixo. M1 M0 Modo de Funcionamento 0 0 0 0 1 1 1 0 2 1 1 3 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 18
  • 19. TMOD (registro de programação) • Modo 0: Funciona como um contador de 13 bits. O contador é composto por todo o registro alto (THx) e os 5 bits menos significativos da parte baixa (TLx). O sinal de flag será gerado quando o bit mais significativo do registro alto mudar de 1 para 0. A contagem máxima é até 8192 pulsos. 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 19
  • 20. TMOD (registro de programação) • Modo 1: Funciona como um contador de 16 bits. A contagem máxima vai até 65535 pulsos. 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 20
  • 21. TMOD (registro de programação) • Modo 2: funciona como contador de 8 bits com recarga automática. É composto apenas pela parte baixa (TLx). A contagem máxima será até 255. A função da parte alta é guardar o byte que deverá ser carregado automaticamente na parte alta. 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 21
  • 22. TMOD (registro de programação) • Modo 3: este modo só pode ser aplicado ao timer 0. Neste modo o timer 0 será dividido em dois timers de 8 bits. 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 22