1.1 Noções básicas sobre interrupções em Microcontroladores

Documentos relacionados
Interrupção Externa. Capítulo 1. Noções básicas sobre interrupções em Microcontroladores PIC

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0

Eder Terceiro. Programação C com o PIC16F628a. Eder Terceiro. 31 de Outubro de 2016

Sistemas Digitais e Microcontrolados

Sistemas Digitais e Microcontrolados

OMicrocontrolador PIC16F877A implementa um conversor

Registros do 16F628A. Prof. Luiz Antonio Vargas Pinto Prof. Vargas

Sistemas Microcontrolados. Período Aula 6. 1 Saulo O. D. Luiz

Sistemas Microcontrolados

Curso de Microcontroladores PIC 16F84A

Arquitetura de Computadores. Prof. João Bosco Jr.

6. Estrutura do Programa em Assembly

01. Identifique o conjunto de portas de entrada A e o conjunto de portas B na figura abaixo.

Interrupções e Timers

ARQUITETURA DE PROCESSAMENTO

Sequencial Supermáquina (TEMPORIZAÇÃO SIMPLES)

AAAA AAAA SEL Aplicação de Microprocessadores I. Aula 5 Temporização e Interrupção. Marcelo Andrade da Costa Vieira

Microcontrolador PIC 16F877

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

BANKSEL ADCON1 clrf ADCON1 bsf ADCON1,ADFM ; seta AD para VCC, GND e entradas analogicas, setando o bit ADFM configura como justificado a direita

LABORATÓRIO DE ARQUITETURA DE COMPUTADORES PREPARAÇÃO 03: INTERRUPÇÕES

Microprocessadores. Cap. 4 Assembly

Sistemas Microcontrolados

Sistemas Microcontrolados. Período Aula 4. 1 Saulo O. D. Luiz

Prof. Adilson Gonzaga

Microcontroladores PIC

Hardware Parte I. Fábio Rodrigues de la Rocha

Sistemas Microcontrolados. Período Aula 9. 1 Saulo O. D. Luiz

Sistemas Microprocessados

Placa McLab1 Upgrade PIC16F84A p/ PIC16F62x

OMPLAB é um programa para PC, que roda sobre a

SEL0338 Tópicos Especiais em Sistemas Digitais

Interrupção. Prof. Adilson Gonzaga

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

PIC16F84 Profº MSc.Engº Getúlio Teruo Tateoki

Sistemas Microcontrolados

5. Conjunto de Instruções do MCU PIC

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

Interrupção

Sistemas Microcontrolados

1.1. Microprocessadores e microcontroladores Sistemas genéricos e sistemas dedicados. 2. Microcontrolador PIC:

Sistemas Digitais e Microcontrolados

Utilize o programa fonte em linguagem assembly abaixo para responder as questões seguintes.

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

Introdução aos Microcontroladores PIC

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina

OMódulo Comparador Analógico consiste em um conjunto

Marcelo Fernandes Valter Rodrigues de Jesus Junior. Thermal Control

Sistemas Embarcados:

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado

INSTITUTO DE TECNOLOGIA EMERSON MARTINS

Laboratório de Microprocessadores e Microcontroladores

Jadsonlee da Silva Sá

Sistemas Embarcados:

Laboratório de Microprocessadores e Microcontroladores

Construção de Robôs Jogadores de Futebol (2ª Parte)

CAPÍTULO 2 MICROCONTROLADOR PIC16F84 CAPÍTULO INTRODUÇÃO CISC, RISC APLICAÇÕES

C:\seminario\guiao_aluno\trab6\trab6.asm

Microcontroladores. Interrupções no Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

Copyright 2013 VW Soluções

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Prof. Adilson Gonzaga

Manual do usuário. - Kit Clp Pic 40 v4.0. Manual do usuário. Copyright VW Soluções

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto Prof. Vargas

Manual do Usuário. McMaster Desenvolvimento de Sistemas com Microcontroladores PIC

OMicrocontrolador PIC16F877A apresenta dois módulos

Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

V1 5V +V. (14)Vdd (6)RB0 PIC 16F628A. (16) Clk-out. C1 33pF. C2 33pF. Figura 1 Circuito pisca-pisca.

Microcontrolador 8051:

Projeto Instrumentação Eletrônica Conversor A/D para Tensões 3φ

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

DEPARTAMENTO DE ELECTROTECNIA. João Paulo Baptista. Curso de Engenharia Electrotécnica Electrónica e Computadores

Microcontroladores. 1 Microprocessadores x Microcontroladores Microprocessadores: Microcontroladores: 2 Microcontrolador x DSP

Microcontroladores. Contadores e Temporizadores. Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

Ex.: Rotinas de tempo

Microcontroladores: Programação em C

Microcontrolador PIC 16F877

Interrupções do Interrupções Gabriel Kovalhuk. UTFPR DAELN - Tecnologia em Mecatrônica Industrial

Fundamentos de Microprocessadores 2006/2007 1º Ano Eng. Electrotécnica (Bolonha) 1º Exame (14/07/2007)

Acetatos de apoio às aulas teóricas

MICROCONTROLADORES - PIC 16F84/16F84A/16F628/16F628A

Temporizadores e Contadores (Timer/Counter)

Introdução a família de microntroladores PIC

LBM-UMA PROPOSTA DE LINGUAGEM BÁSICA ESTRUTURADA PARA PROGRAMAÇÃO DE MICROCONTROLADORES NOS CURSOS DE ENGENHARIA.

RTC Real Time Counter e Pinos do JM60

Manual do usuário. Kit Clp Pic. - Kit Clp Pic 28 v4.0. Manual do usuário. Copyright VW Soluções

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento. Apostila de BASIC para PIC16F628A

Placa de desenvolvimento USB AFSmartBoard utiliza PIC18F4550 da Microchip, microcontrolador com o Flash 32kb, 2048 bytes de memória RAM

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051

Microprocessadores 1º Ano - LECOM. Universidade do Minho Dept. De Electrónica Industrial

Controladores do IBM-PC. Gustavo G. Parma

Microcontroladores. Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage:

Objetivos MICROCONTROLADORES HARDWARE. Microcontroladores I. Prof. Mauricio. Micro-I Prof. Mauricio 1. Microcontroladores PIC. Requisitos de Hardware

PIC16F628a. Pinagem do PIC16F628a:

programáveis por software

Transcrição:

Capítulo 1 Interrupções 1.1 Noções básicas sobre interrupções em Microcontroladores PIC Interrupções é obrigação em uma programação profissional. Quando um evento ocorrer, uma bandeira de interrupção será definida forçando o programa a desviar para o endereço de interrupção. Isso libera a necessidade de um loop a espera do evento. As interrupções podem ocorrer na mudança de port, transbordo do temporizador, na comunicação serial Interrupções recursos que permitem o tratamento imediato a eventos de maior prioridade interrompendo a execução normal do programa para executar tarefas de maior prioridade no momento. Atende determinados eventos executando o código armazenado em uma posição de memória vinculada a própria interrupção e depois tem retorno imediato a execução normal do programa. As interrupções são tratadas como sub-rotinas de hardware. Observe que a distância entre o vetor de inicialização (0000h) e o vetor de reset (0004h) é de apenas 4 endereços. Dessa forma quando as interrupções estão desabilitadas o PC passa por 0004h normalmente durante a execução de um programa. Quando se faz necessário o uso de interrupções, as rotinas de tratamento de interrupção são colocadas a partir do vetor de reset 0004h. No intervalo entre o vetor de inicialização e o vetor de reset é colocado um desvio para um endereço após as rotinas de interrupção a partir do qual o programa realmente começa. Quando da interrupção, o programa é desviado para um endereço pré-estabelecido, o vetor de reset (0004h). O tratamento da interrupção é feito a partir desse endereço executando rotinas associadas ao evento da interrupção. O PIC 16F877A possui 15 fontes de interrupções: 1. Interrupção do timer 0; 2. Interrupção do timer 1; 3. Interrupção do timer 2; 4. Interrupção externa (RB0/INT); 5. Interrupção por mudança de estado (bits 4 a 7 do portal B); 1

6. Interrupção de transmissão serial; 7. Interrupção de recepção serial; 8. Interrupção do módulo comparador analógico; 9. Interrupção do módulo CCP1; 10. Interrupção do módulo CCP2; 11. Interrupção da memória EEPROM; 12. Interrupção do conversor analógico para digital; 13. Interrupção da porta paralela escrava; 14. Interrupção da comunicação SPI; 15. Interrupção por colisão no barramento I2C. Na interrupção estão associados quatro bits: o flag indicador de interrupção, setado na interrupção ou pelo próprio programa, o bit de habilitação de interrupção ser alterado apenas pelo programa, PEIE interrupções dos periféricos egie (bit de habilitação global) interrupção global quando em 0 todas interrupções estão desabilitadas em 1 as interrupções habilitadas geram interrupção na CPU. Os flags das interrupções são setados por um evento mesmo que essa interrupção desabilitada. A interrupçção INT atende diretamente os eventos externos ao microcontrolador e a interrupção RB0 atende as mudanças de estado do port B. As demais interrupções são internas e causadas pelos periféricos para indicar determinados eventos (chegada de dado pelo portal serial, estouro de timer, etc). Qualquer interrupção sempre chama o vetor de interrupção no endereço (0004h). Obviamente é o endereço para qualquer a rotina de tratamento de interrupção O teste dos bits de flags determinam interrupção ocorrida entre todas as interrupções ativas. A prioridade das interrupções fica determinada pela ordem dos bits do flag. Numa interrupção nenhum registro é salvo automaticamente. Há a necessidade de salvar os registros W, STATUS e qualquer outro SFR antes do tratamento da interrupção, o chamado salvamento de contexto. Recomenda se que o registro STATUS seja zerado. Tudo isso enseja que a criação de variáveis para manter esses registros. Também não se deve usar durante o tratamento da interrupção de registros em uso em outro segmento do programa Esses cuidados garantem o tratamento adequado das interrupções. pode ocorrer a qualquer momento. Na execução de um trecho qualquer do programa determinados endereços de memória (variáveis do programa ou SFR) são usadas, e seus valores devem ser reestabelecidos após a interrupção ser tratada. Recomenda se um codigo curto para o tratamento das interrupções Durante o tratamento de qualquer interrupção chamada, todas as demais permanecem desabilitadas, pois GIE é resetado até a execução da intrução RETFIE que o seta novamente. 2

Os eventuais pedidos de interrupção nesse intervalo não são descartados O tratamento da interrupção é realizado através do flag setado correspondente da interrupção. Assim é necessário resetar o flag associado a ela ao fim do tratamento. Ao contrário o programa trava pela necessidade de responder novamente a tal interrupção A latência natural é o atraso decorrente entre a chamada da interrupção e seu tratamento, pois além do controle observar um processo interno de varredura de interrupções será necessário um desvio para o endereço 0004h além das medidas preventivas já ditas. Valores usuais são de 3 ciclos de máquina após para uma interrupção interna, e de 3 a 3,75 ciclos de máquina para interrupção externa. Em aplicações com precisão de tempo é importante considerar tais atrasos. A configuração do periférico associado a interrupção é o primeiro passo para o tratamento, normalmente executada na inicialização programa e eventualmente reconfigurado em outros trechos. A habilitação das interrupções depende da sua persistência, em alguns casos se quer ela disponível todo o tempo de execução e assim sua habilitação deve ser feita na inicialização. Em outros casos o interesse pela a interrupção só existirá a partir de um certo instante e sua habilitação ocorre num instnate conveniente O bit de habilitação global (GIE) estiver habilitado para as interrupções geram as chamadas. Finalmente as Rotinas de Tratamento de Interrupção (RTI) serão chamadas para o tratamento das as interrupções habilitadas. 1.2 Registradores relacionados as Interrupções 1.2.1 Registradores de Controle da CPU OPTION REG Configura: 1. PSA define TMR0 ou watchdog 2. PS2,PS1,PS0 valores do prescaler 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0 4. TOCS fonte de impulsos para TMR0: clock ou impulso externo 5. INDEDG define bordo para ativação da interrupção RB0/INTCON 6. RBPU habilita resistor pull-up do port B 7. Na programação usa-se option-reg, pois em PICs mais antigos existia uma instrução option. Configura a Identificação e configuração de interrupções 1. /RBPU, Habilitação de pull-up na porta B, (a) 1 desabilita pull-up 3

Figura 1.1: OPTION REG (b) 0 habilita pull-up. 2. INTEDG, Seleção de borda de interrupção, (a) 1 interrupção na borda de subida do pino RB0/INT (b) 0 interrupção na borda de descida do pino RB0/INT. 3. T0CS, Seleção da fonte de clock do TMR0, (a) 1 clock na entrada do pino RA4/T0CKI (b) 0 clock interno. 4. T0SE, Seleção da borda da fonte de clock do TMR0, (a) 1 incrementa na borda descendente no pino RA4/T0CKI (b) 0 incrementa na borda ascendente no pino RA4/T0CKI. 5. PSA, Sinalização do prescaler, (a) 1 assinala o prescaler ao WDT (b) 0 assinala o prescaler ao TMR0. 6. PS2, PS1 e PS0, Seleção da razão da escala do prescaler P S2 P S1 P S0 W DT T MR0 0 0 0 1 : 1 1 : 2 0 0 1 1 : 2 1 : 4 0 1 0 1 : 4 1 : 8 0 1 1 1 : 8 1 : 16 1 0 0 1 : 16 1 : 32 1 0 1 1 : 32 1 : 64 1 1 0 1 : 64 1 : 128 1 1 1 1 : 128 1 : 256 (1.1) 4

Figura 1.2: INTCON 1.2.2 Registradores de Controle da CPU INTCON Configura a Identificação e configuração de interrupções 1. GIE Habilita tratamento Global de Interrupções (a) 1 = Trata interrupções. (b) 0 = Ignora interrupções. 2. PEIE Habilita interrupções dos periféricos (a) 1 = habilitadas. (b) 0 = desabilitadas. 3. T0IE Habilitação da interrupção de transbordo do Timer0 (a) 1 = habilitada. (b) 0 = deshabilitada. 4. INTE Habilitação da interrupção externa (RB0/INT) (a) 1 = habilitada. (b) 0 = desabilitada. 5. RBIE Habilitação de interrupção por mudança de estado na porta B (pinos RB4 a RB7) (a) 1 = habilitada. (b) 0 = desabilitada. 6. T0IF Flag sinalizador de estouro do timer 0 (a) 1 = houve transbordo do timer 0. (b) 0 = não houve transbordo. 7. INTF Flag sinalizador de interrupção externa (RB0/INT) 5

(a) 1 = há pedido externo de interrupção (b) 0 = Não há pedido externo de interrupção 8. RBIF Flag sinalizador de alteração nos pinos RB4 a RB7 (a) 1 = Houve alteração. (b) 0 = Não houve alteração. 6

Circuito com Interrupção Externa Objetivo: Verificar o tratamento de interrupções e a inserção de uma chave simples para alterar o sequência de comandos. Uso dos registradores OPTION REG e INTCON. O código descreve a estrutura para tratamento de interrupções acendendo um led pendurado no PORTd, desde que a interrupção tenha sido estabelecida pela mudança interrupção externa no pino RB)/INT 1 p r o c e s s o r 16 f877a 2 #i n c l u d e p16f877a. i n c 3 4 CONFIG FOSC XT & WDTE OFF & PWRTE OFF & BOREN OFF & LVP OFF & C 5 6 ; DEFINE O ENDERE O INICIAL E O VETOR DE INTERRUP O 7 ORG 0x00 8 goto c o n f i g u r a r 9 ORG 0x04 10 ; c a l l i n t e r r u p c a o 11 12 CBLOCK 0 x20 13 Loop1, Loop2 14 ENDC 15 16 c o n f i g u r a r 17 BSF STATUS, RP0 18 CLRF TRISD 19 BSF STATUS, RP0 20 ; CONFIGURAR AS INTERRUP ES 21 ; REGISTRADOR OPTION REG 22 BCF OPTION REG, 7 ; RESISTORES PULLUP DESABILITADOS 23 BCF OPTION REG, 6 ; INTERRUPCAO EXTERNA NA BORDA DE DESCIDA 24 BCF OPTION REG, 5 ; CLOCK INTERNO PARA TIMER0 25 BCF OPTION REG, 4 ; INCREMENTA TIMER0 NA BORDA ASCENDENTE 26 BCF OPTION REG, PSA ; PREESCALER USADO PRO TIMER0 27 ; PRESCALER 1:256 NO TIMERO 28 BSF OPTION REG, 2 29 BSF OPTION REG, 1 30 BSF OPTION REG, 0 31 ; REGISTRADOR INTCON 32 BSF INTCON, GIE ; HABILITA TRATAMENTO GLOBAL DE INTERRUPCOES 7

33 BCF INTCON, PEIE ; DESABILITA INTERRUPCOES DOS PERIFERICOS 34 BCF INTCON, T0IE ; DESABILITA INTERRUP O DO TIMERO 35 BSF INTCON, INTE ; HABILITA INTERRUP O EXTERNA 36 BCF INTCON, RBIE ; DESABILITA INTERRUP O DO PORTB 37 BCF INTCON, T0IF ; LIMPA O FLAG DO TIMER0 38 BCF INTCON, INTF ; LIMPA O FLAG DA INTERRUPCAO EXTERNA 39 BCF INTCON, RBIF ; LIMPA O FLAG DO PORTB 40 41 p r i n c i p a l 42 movlw 0 x01 43 c a l l a c e n d e r l e d s 44 goto p r i n c i p a l 45 46 a c e n d e r l e d s 47 movwf PORTD 48 CALL a t r a s o 49 RRF PORTD 50 BTFSS PORTD, 7 51 GOTO a c e n d e r l e d s 52 RETURN 53 54 a t r a s o 55 MOVLW 0XFF 56 MOVWF Loop1 57 externo 58 MOVLW 0XFF 59 MOVWF Loop2 60 i n t e r n o 61 NOP 62 DECFSZ Loop2 63 GOTO i n t e r n o 64 DECFSZ Loop1 65 GOTO externo 66 return 67 68 i n t e r r u p c a o 69 CLRF PORTD 70 CALL a t r a s o 71 BCF INTCON, INTF ; RESETA FLAG DA INTERRUPCAO EXTERNA 72 RETFIE 73 74 end O circuito, na figura 1.3 descreve a conexão de uma interrupção externa no pic16f877: 8

Figura 1.3: Uso de interupção externa Figura 1.4: Pinagem do pic16f628a 9