Interrup - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Interrup

Description:

Interrup es no 8051 Disciplina: Microcontroladores Prof. Remy Eskinazi, MSc UPE - POLI O que uma Interrup o? Ocorre quando o processador solicitado a ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 17
Provided by: RogerH91
Category:
Tags: interrup

less

Transcript and Presenter's Notes

Title: Interrup


1
Interrupções no 8051
  • Disciplina Microcontroladores
  • Prof. Remy Eskinazi, MSc
  • UPE - POLI

2
O que é uma Interrupção?
  • Ocorre quando o processador é solicitado a
    interromper uma atividade atual para atender
    outra de maior urgência naquele instante
  • MOV A, 0FFh
  • INC DPTR
  • MOV R1, 0
  • MOV R2, 1
  • MOV IE, 0
  • SETB 0

EXT1
3
Outro exemplo
mov a, 2 mov b, 16 mul ab mov R0, a mov R1,
b mov a, 12 mov b, 20 mul ab add a, R0 mov R0,
a mov a, R1 addc a, b mov R1, a end
interrupt
ISR orl P1MDIN, 40h orl
P1MDOUT,40h setb P1.6 here sjmp here cpl
P1.6 reti
Program Execution
return
4
Características das interrupções
  • Vetorização Cada interrupção tem um vetor
    (endereço) onde começa a rotina de atendimento
  • Mascaramento Cada interrupção pode ser
    habilitada (reconhecida) ou não em dado momento
  • Priorização As interrupções podem ter um grau
    de prioridade de forma a serem escalonáveis
  • Modo de acionamento Maneira como as
    interrupções são acionadas
  • HW
  • Transição
  • Nível
  • SW
  • Instruções INT

5
Mapa de Vetores das interrupções no 8051
6
Fontes de interrupção
  • O 8051 apresenta 5 fontes de interrupções
  • External Interrupt 0
  • Timer 0 overflow
  • External Interrupt 1
  • Timer 1 overflow
  • Serial Port events (buffer full, buffer empty)
  • Variantes do 8051 apresentam mais fontes
  • timers, programmable counter array, ADC, more
    external interrupts, another serial port (UART)


Priorização natural (Pooling sequence)
_
7
Seqüência de interrupção
  • Se um pedido de interrupção ocorrer E o flag da
    interrupção estiver habilitada E o flag de
    habilitação global estiver habiltado E na
    seqüência correta das prioridades, então
  • O PC atual é colocado na pilha
  • A execução do programa continuano vetor da
    interrupção (PC ? (vetor) )
  • Quando a instrução RETI é encontrada o valor no
    topo da pilha é carregado no PC e a execução
    retorna para o ponto anterior a interrupção

8
Registradores de Controle das Interrupções
IE Interrupt Enable
Habilita as interrupções para as 5 fontes do 8051
standard Serial (UART0) Timer 1 External
1 Timer 0 External 0
Flag de habilitação global
1 Habilita 0 Desabilita
9
Registradores de Controle das Interrupções
IP Interrupt priority
Prioriza as interrupções para as 5 fontes do 8051
standard Serial (UART0) Timer 1 External
1 Timer 0 External 0
1 Alta prioridade 0 Baixa prioridade
10
Controle das Interrupções
  • Registrador Timer Control (TCON)

Controle das interrupções externas
Controle dos Timers/Counters
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TCON (0X88)
Modo acionamento de int Ext0
Flag de interrupção int Ext0
Modo acionamento de int Ext1
Flag de interrupção int Ext1
Liga / desliga timer 0
Flag de interrupção int timer 0
Liga / desliga timer 1
Flag de interrupção int timer 1
11
Controle das Interrupções
  • Registrador Serial Control (SCON)

Controle das interrupções externas
Controle dos Timers/Counters
SM0
SM1
SM2
REN
TB8
RB8
RI
TI
SCON (0X98)
Flag de interrupção TX Serial
Flag de interrupção RX Serial
Recebe bit 8 (9o bit)
Transmite bit 8 (9o bit)
Habilita Recepção
Modo funcional 2
Modo funcional 1
Modo funcional 0
12
Programa acha zero com controle de interrupção
INÍCIO
DPTR ? ENDEREÇO INICIAL
Objetivo Determinar se em um range de memória
existe um byte 0
A ? M(DPTR)
F0 ? 1
S
A0 ?
N
DPTR ? DPTR1
N
FIM?
S
RET
13
Programa acha zero com controle de interrupção
  • Programa Acha Zero
  • Autores Turma Dispositivos
  • Descrição O Programa faz a busca no
    range 0000h a 01FFh de um byte 0.
  • Se existir, sinalizamos com flag F01 e saímos
    do programa com DPTRPosição
  • do byte 0.
  • Reset
  • ORG 0 Diretiva de origem no endereco 0
  • LJMP INICIO Salto para o inicio do programa
  • INT EXTERNA_0
  • ORG 03h Externa 0
  • LJMP EXTERNA_0 Salta para Rotina Externa 0
  • INT TIMER_0
  • ORG 0Bh TIMER 0
  • LJMP TIMER_0 Salta para Rotina TIMER 0
  • INT EXTERNA_1
  • ORG 13h EXTERNA 1

14
Programa acha zero com controle de interrupção
  • INICIO MOV DPTR, 0h Inicia Ponteiro
  • CLR F0 Limpa Flag F0
  • REPETE MOVX A, _at_DPTR Poe o dado da
    posição indicada pelo DPTR no
  • Acumulador
  • CJNE A, 0h, CONTINUA Pula para CONTINUA
    se A! 0
  • ACHOU SETB F0 Sinaliza o encontro do
    valor zero com F01
  • SJMP FIM Finaliza programa
  • CONTINUA INC DPTR Se não encontrou
    byte zero, aponta para próxima posição
  • MOV A, DPH
  • CJNE A, 02h, REPETE Se DPTRlt0200h pula
    para REPETE
  • FIM SJMP FIM FIM
  • Continua ...

15
Programa acha zero com controle de interrupção
TRATAMENTO DAS
INTERRUPÇÕES
EXTERNA_0 NOP Código de tratamento de
externa0 RETI TIMER_0 NOP
Código de tratamento de timer0 RETI
EXTERNA_1 NOP Código de tratamento de
externa1 RETI TIMER_1 NOP Código de
tratamento de timer1 RETI SERIAL_COM NOP
Código de tratamento de serial RETI

END Fim de
Arquivo p/ compilação
16
Simulação
  • Fazer a simulação do programa Acha zero com
    controle de interrupção
  • Fazer a simulação do programa normalmente
  • O que deve ser acrescentado ao programa para que
    este habilite as interrupções?
  • Acionar os bits indicados para solicitação da
    interrupção
  • Verifique se a rotina de tratamento
    correspondente é atendida

A diferença entre Sonho e Realidade é a
quantidade certa de Tempo e Trabalho W. Douglas
Write a Comment
User Comments (0)
About PowerShow.com