Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

*
*
Prof. Remy Eskinazi
Sistemas Microprocessados
 
Interrupções no 8051
Prof. Henrique Figueirôa
IFPE – Recife 
*
*
Prof. Remy Eskinazi
Bibliografia
Interrupções no 8051 – prof. Remy Eskinazi, MSc UPE – Politécnica ( material em ppt )
Microcontrolador 8051 – prof. José Wilson Lima Nerys Universidade Federal de Góias – Escola de Engenharia Elétrica e de Computação ( material em pdf )
Aplicações Práticas do Microcontrolador 8051 eng.Vidal Pereira da Silva Jr. – Editora Érica – 12a edição
*
*
Prof. Remy Eskinazi
Dispositivos de Entrada e Saída
Entrada : teclado, mouse, scanners, leitores óticos e magnéticos(disco rígido), cameras de vídeo, microfone, sensores, placas de rede, etc.
Saída : impressoras, monitores de vídeo, plotters, atuadores, placas de rede, placa de som, etc.
A comunicação se dá através de interfaces que compatibilizam diferenças elétricas, de velocidade, do formato da informação, etc.
*
*
Prof. Remy Eskinazi
Exemplo de Comunicação
Recepção dos dados do Teclado
CPU
Interface
Dado Paralelo
Solicitação de acesso
Dado Serial
Endereço
 Dado Serial
Dado Paralelo
Endereço
*
*
Prof. Remy Eskinazi
O que é uma Interrupção?
Interrupção, temporária, do processo atual da CPU para o atendimento a um outro processo, interno ou externo, num dado instante.
No 8051 :
		a) Atendimento aos periféricos (I/O).
		b) Overflow nos Temporizadores/ 			Contadores internos.
		c) Eventos da transmissão serial.
*
*
Prof. Remy Eskinazi
O que é uma Interrupção?
MOV A, #0FFh
INC DPTR
MOV R1, 0
MOV R2, 1
MOV IE, #0
SETB 0
Evento
externo
Programa principal :
Sub-rotina de atendimento à Interrupção :
*
*
Prof. Remy Eskinazi
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
Program Execution
interrupt
ISR:	orl P1MDIN, #40h	 
	orl P1MDOUT,#40h 
	setb P1.6
here:	sjmp here	
	cpl P1.6 
	reti
return
*
*
Prof. Remy Eskinazi
Características das Interrupções
Fontes de Interrupções – Agentes que produzem as Interrupções;
Vetorização – Cada interrupção tem um vetor (endereço) onde começa a sub-rotina de atendimento;
Mascaramento – Cada interrupção pode ser habilitada (reconhecida) ou não, em um 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
*
*
Prof. Remy Eskinazi
Fontes de Interrupções ( 8051 )
1- Por Hardware Externo :	
 Interrupção externa 0 (INTO\) – pino 12 (P3.2)
 Interrupção externa 1 (INT1\) – pino 13 (P3.3)
 Interrupção via canal Serial(Pinos 10 e 11 ou P3.0 e P3.1)
2- Por Hardware Interno :	
 Interrupção através do Timer/Counter 0 – TIMER0
 Interrupção através do Timer/Counter 1 – TIMER1
Agentes que provocam as Interrupções :
*
*
Prof. Remy Eskinazi
Seqüência de Interrupção e Vetorizaçã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 continua no 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
*
*
Prof. Remy Eskinazi
Mapa de Vetores das Interrupções no 8051
Região para a subrotina de INT0\ (com 8 bytes)
*
*
Prof. Remy Eskinazi
Registradores que comandam as Interrupções no 8051 (*)
Mascaramento : Habilita ou não as Interrupções
(*)Todos são Registradores de Funções Especiais da RAM.
Priorização : Define grau de prioridade entre as Interrupções
Modo de Acionamento : Define a forma de identificação do 			 acionamento.
*
*
Prof. Remy Eskinazi
Flag de habilitação global
Habilita as interrupções para as 5 fontes do 8051 standard
	Serial 
		Timer 1
			External 1
				Timer 0
					External 0
1 = Habilita
0 = Desabilita
IE – Interrupt Enable ( A8h )
Habilitação das Interrupções Mascaramento 
*
*
Prof. Remy Eskinazi
*
*
Prof. Remy Eskinazi
*
*
Prof. Remy Eskinazi
Prioriza as interrupções para as 5 fontes do 8051 standard
	Serial 
		Timer 1
			External 1
				Timer 0
					External 0
1 = Alta prioridade
0 = Baixa prioridade
IP – Interrupt priority ( B8h )
Interrupções do 8051 
Priorização 
*
*
Prof. Remy Eskinazi
Registradores de Controle das Interrupções
Em caso de simultaneidade de solicitação de Interrupção e um mesmo nível de prioridade, prevalecerá a ordem abaixo.
*
*
Prof. Remy Eskinazi
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
Controle das interrupções externas
Controle dos Timers/Counters
Modo acionamento de int Ext0 : “0” – Nível 0 ou “1” – Transição 0  1
Flag de Ext0: “setado” por hardware no ocorrência. Zera após a execução do RETI.
Liga / desliga timer 0
Flag de interrupção int timer 0
Liga / desliga timer 1
Flag de interrupção int timer 1
 TCON - Timer Control ( 88h )
Interrupções do 8051 
Modos de Acionamento 
Modo acionamento de int Ext1 : “0” – Nível 0 ou “1” – Transição 0  1
Flag de Ext1: “setado” por hardware no ocorrência. Zera após a execução do RETI.
*
*
Prof. Remy Eskinazi
*
*
Prof. Remy Eskinazi
*
*
Prof. Remy Eskinazi
*
*
Prof. Remy Eskinazi
Arquitetura interna do Simulador EDSIM51 
*
*
Prof. Remy Eskinazi
Circuito para Leitura do Teclado do EDSIM51 
O botão AND Enabled deverá estar fechado ( Habilita), possibilitando a geração da Interrupção ( INT1), sempre que uma tecla for pressionada.
*
*
Prof. Remy Eskinazi
Circuito para Leitura do Teclado do EDSIM51 
*
*
Prof. Remy Eskinazi
Fluxograma da Sub-rotina Leitura de Teclado
Chama Sub-rotina Ler_Tecla
Acc  PORT 0
Aguarda tecla ser liberada
INÍCIO
S
N
S
N
Acc  PESO
Retorna com código da tecla no Acc
N
N
S
S
Sub-rotina Ler_Tecla
INÍCIO
Acc  UM SHIFT PARA ESQUERDA
PORT 0  Acc 
*
*
Prof. Remy Eskinazi
;*********** Programa Teclado ***********
; Este programa faz a Leitura de um teclado matricial de 12 teclas ligadas no Port0
;obs. : No EDSIM, o teclado tem que estar no Modo Standard e o Update Freq. = 100.
 
	peso	equ	R0
	
org 0000h			; inicio do programa
	mov IE,#84h	; habilita só a Interrupção Externa 1 ( INT1\)
	mov TCON,#00h	; a INT1 será acionada por nível "0".
	mov p0,#0F0h	
	sjmp $		; Loop infinito. Aguarda a digitação de alguma tecla.
 
org 0013h			; sub-rotina p/ leitura do teclado (atendimeto a INT1)
		
inicio:	mov ie,#00h		; desabilita todas as interrupções.
	mov p0,#0FEh	; início,envia "0" para linha "0" do teclado (P0.0 = 0)	
	mov a,#00h			
cont:	mov peso,a		; guarda o peso atual
	lcall ler_tecla	; verifica se houve tecla acionada
	cjne a,#0FFh,fim1	; se houve, finaliza
	mov a, p0		; restaura no Acc estado atual port0
	rl a		; desloca bit 0 a esquerda
	mov p0,a		; devolve bit deslocado para port0
	mov a,peso		; restaura o peso no Acc
	add a,#03h		; define novo peso
	sjmp cont			
fim1:	mov R0,a		; preserva o código da tecla acinada.
loop:	mov p0,#0F0h	; loop para aguardar a liberação da tecla.
	mov a, p0
	cjne a, #0F0h,loop
	mov a,R0		; restaura o código da tecla acionada.
	mov IE,#84h		; rehabilita a interrupção INT1\ 	
	reti		; retorno com o código da tecla no Acc.
(continua.. )
*
*
Prof. Remy Eskinazi
;*********** Subrotina tecla *********
ler_tecla:	jnb p0.4, cont1		;testa a coluna 0.
		jnb p0.5, cont2	;idem 1
		jnb p0.6, cont3	;idem 2
		mov a, #0FFh	;nenhuma tecla na linha atual
		sjmp fim2
cont1:		mov a,peso		;tecla digitada na posição ( coluna 0 x linha atual )
		add a,#00h
		sjmp fim2
cont2:		mov a,peso		;idem ( coluna 1 x linha atual )
		add a,#01h
		sjmp fim2
cont3:		mova,peso		;idem ( coluna 2 x linha atual )
		add a,#02h
		sjmp fim2
fim2:		ret
		end		; fim de arquivo para compilacao
( continuação )
*
*
Prof. Remy Eskinazi
Expansão das entradas de Interrupções
Caso ocorra alguma interrupção, INT0 é acionada e o latch (74LS374) armazena os bits das entradas. Em seguida, basta fazer a leitura do Port 1.
*
*
Prof. Remy Eskinazi
Exercícios para aula prática 
1- Elaborar um programa, no qual, à medida em que as teclas forem sendo digitadas, os números correspondentes ( já transformados para decimal ) preencha uma tabela de 16 bytes, a partir do endereço 30h.
2- Elaborar um programa que receba 2 números do teclado e execute :
a) a soma desses números, caso a tecla “#” seja digitada,em sequencia.
b) a multiplicação desses números, caso a tecla “” seja digitada,em sequencia.
O resultado da operação, deverá ser apresentado nos Displays. Sendo a dezena apresentada no DISP 3 e a unidade no DISP2.
*
*
Prof. Remy Eskinazi
Controle de Processo Industrial
( ver enunciado no próximo slide )
8051
Port 
*
*
Prof. Remy Eskinazi
Controle de Processo Industrial
Descrição
Considere que, no esquema anterior, tenhamos um determinado processo de produção, o qual funciona da seguinte forma :
a)     Inicialmente, as 2 eletroválvulas A e B deveráo abrir, simultaneamente, para permitir a entradas dos insumos A e B na Caldeira. Esta etapa dura 10 segundos.
b)     Em seguida, as eletro-válvulas fecham e o motor é acionado por 30 segundos.
c)      Em seguida, com o motor, ainda, girando por mais 5 segundos, apenas, o insumo A deverá ser inserido.
d)     Na sequencia, as eletro-válvula A e B fecham, o motor é desligado e, apenas, a eletro-válvula C deverá ser aberta, durante 20 segundos, para que o produto final que se encontra na Caldeira seja escoado.
Em seguida, um novo ciclo de produção deverá ser iniciado.
O Sensor de Temperatura (ST) do Motor, em caso de superaquecimento do mesmo, muda o seu bit único de saída de “0” para “1”. 
a)           Defina de que forma este Sensor será conectado ao 8051, para que seja verificada a ocorrência de superaquecimento do Motor. 
b)           Em caso de superaquecimento, deveremos ter :
1-    A paralisação do atual processo de produção, com o imediato desligamento do Motor e fechamento das eletro-válvulas A e B.
2-    O escoamento total da produto atual que se encontra na Caldeira, com a abertura da eletro-válvula C por um período de 20 segundos.
3-    Assim que o sensor ST voltar para “0”, significando que o Motor não mais se encontra superaquecido, o processo de produção deverá ser, imediatamente, re-iniciado.
Elabore o projeto completo : Fluxograma, Hardware (conexões elétricas ) e Software. Utilizar switchs(Sensor) e LEDs(eletro – válvulas) no EDSIM.

Mais conteúdos dessa disciplina