Sistemas Digitais e Microcontrolados

Documentos relacionados
Sistemas Digitais e Microcontrolados

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

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

Sistemas Digitais e Microcontrolados

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

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

Interrupções e Timers

Sistemas Microcontrolados

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

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

ENG-1450 Microcontroladores e Sistemas Embarcados. Lab02 Apresentação Kit PicGenios Interrupção e Timers

Microprocessadores. Cap. 4 Assembly

6. Estrutura do Programa em Assembly

Curso de Microcontroladores PIC 16F84A

OMicrocontrolador PIC16F877A implementa um conversor

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

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

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

Microcontrolador PIC 16F877

Sistemas Microcontrolados

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

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

Prof. Adilson Gonzaga

OMódulo Comparador Analógico consiste em um conjunto

Interrupções e timers

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

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

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

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

Interrupção. Prof. Adilson Gonzaga

Copyright 2013 VW Soluções

OMicrocontrolador PIC16F877A apresenta dois módulos

Temporizadores e Contadores

Temporizadores e Contadores (Timer/Counter)

Sistemas Microcontrolados

Hardware Parte I. Fábio Rodrigues de la Rocha

Sistemas Digitais e Microcontrolados

2a Prova de ELT024 Programação para Sistemas Embarcados Prof. Rodrigo Maximiano Antunes de Almeida

Microcontroladores PIC

LABORATÓRIO DE ARQUITETURA DE COMPUTADORES PREPARAÇÃO 02: DISPLAY DE 7 SEGMENTOS MICROCONTROLADO

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

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

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

Sistemas Embarcados:

Jadsonlee da Silva Sá

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

Arquitetura PIC - PWM

Laboratório de Microprocessadores e Microcontroladores

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

Comunicação RC5 com o dspic Vitor Amadeu Souza

5. Conjunto de Instruções do MCU PIC

Sequencial Supermáquina (TEMPORIZAÇÃO SIMPLES)

Copyright 2013 VW Soluções

Laboratório de Microprocessadores e Microcontroladores

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

Introdução ao Microcontrolador PIC

MICROCONTROLADORES PIC

Curso de Linguagem C. Rinaldo Câmara Gonçalves Labtools Mosaico Didactic Division Revisão 2

Um resumo do Microcontrolador PIC18xx

Copyright 2014 VW Soluções

Conversor Analógico Digital do MSP430G2553

TECLADO MATRICIAL. Universidade Tecnológica Federal do Paraná - UTFPR Sistemas Microcontrolados Monitor da disciplina: Luís Paulo Custódio

Experiência. Montagem Kit Didático. 2. Turma: Nota: 5. MICRO-I Prof. Mauricio. Identificação dos Alunos:

INSTITUTO DE TECNOLOGIA EMERSON MARTINS

Projeto para interligação do Teclado Matricial 4X3 o módulo PIC PCI-208 Princípio de Funcionamento:

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

Lista de Exercícios A1

OMPLAB é um programa para PC, que roda sobre a

Sistemas Microcontrolados

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

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

Prof. Adilson Gonzaga

Microcontroladores PIC. Interrupções e Timers

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9.

Servo-Motor. por. Nuno Monteiro & Gabriel Dinis Eng. Electrotécnica, UTAD Junho de nuno_monteiro@portugalmail.com gabrieldinis@portugalmail.

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) Kit de Desenvolvimento ACEPIC 28

Sistemas Microprocessados baseados no PIC16F877A

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

Transcrição:

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL Sistemas Digitais e Microcontrolados Contador/Temporizador TIMER 0 - PIC16F877A amauriassef@utfpr.edu.br 1

Contador/Temporizador Timer 0 CARACTERÍSTICAS Contador binário de 8 bits (0x00 0xFF) Prescaler programável (divisor de frequência) Seleção de clock interno ou externo Interrupção de overflow de 0xFF para 0x00 Seleção de borda para clock externo (subida ou descida) Registro de contagem TMR0 (endereço 0x01 banco 0) FUNÇÕES BÁSICAS Contagem de eventos externos (clock de entrada no pino RA4/T0CKI) Temporização (contagem de tempo) para clock interno (fclk / 4) 2

Diagrama em bloco do TIMER 0 T0SE T0CS PSA PSA PS2:PS0 PSA 3

Registrador de configuração do TIMER 0 OPTION_REG Bit 7 - /RBPU Bit 6 INTEDG Bit 5 T0CS: Bit de seleção da fonte de clock do TIMER 0 0 Interno 1 Transição do pino T0CKI Bit 4 T0SE: Bit de seleção da borda do TMR0 0 Incrementa na transição 1 para 0 do pino T0CKI 1 Incrementa na transição 0 para 1 do pino T0CKI Bit 3 PSA: Bit de atribuição do prescaler 0 Prescaler para o TIMER 0 1 Prescaler para p WDT Bit 2-0 PS2:PS0: Bits de seleção da taxa do prescaler O registro OPTION_REG fica no BANCO 1, endereço 0x81 4

Interrupção Pode ser causada por evento interno ou externo: Mudança de estado no pino Overflow do timer Conversão do A/D Endereço de retorno salvo na pilha Vetor de interrupção no endereço 0x04 Retorno da interrupção com a instrução RETFIE Salvamento de contexto W, STATUS e PCLATH Limpar o bit de sinalização da interrupção, por exemplo BCF INTCON, TMR0IF (Assembly) INTCON.TMR0IF = 0 (C) ou TMR0IF_bit = 0 5

Registro de Interrupção - INTCON Bit 7 GIE: Bit Global Interrupt Enable Habilitação global das interrupções 0 Desabilita todas as interrupções 1 Habilita todas as interrupções desmascaradas Bit 5 TMR0IE: Bit de habilitação da interrupção de overflow do TIMER0 0 Desabilita a interrupção do TMR0 1 Habilita a interrupção do TMR0 Bit 2 TMR0IF: Bit de sinalização da interrupção de overflow do TIMER0 0 TIMER0 sem overflow 1 TIMER0 com overflow 6

Interrupção do Timer 0 DESCRIÇÃO A interrupção do TIMER 0 é gerada quando o registro TMR0 transborda (overflow) de 0xFF para 0x00 O overflow seta o bit TMR0IF (timer 0 interrupt flag) do registro INTCON A interrupção pode ser mascarada resetando o bit TMR0IE do registro INTCON O bit TMR0IF deve ser resetado por software para habilitar nova interrupção 7

Contador/Temporizador Timer 0 RESUMO DOS REGISTRADORES DO TIMER 0 8

Exemplo de cálculo para o TIMER 0 Utilizando o TIMER 0, escrever um programa para inverter o conteúdo do PORTD a cada 2ms (clock de 8MHz): PRESCALER TEMPO 1:2 256μs FCLK = 8MHz TTMR = 4 / 8M = 0,5μs 1:4 512μs TESTOURO = 256 * 0,5μs = 128μs (ver prescale) 1:8 1,024ms 1:16 2,048ms 1:32 4,096ms 1:64 8,192ms 1:128 16,384ms 1:256 32,768ms OPTION_REG <= B 0000 0011 9

Programa principal (Assembly): INICIO Configura o PIC16F877A BANK1 MOVLW 0X00 MOVWF TRISD ; CONFIGURA PORTD COMO SAÍDA MOVLW B'00000011 ; TIMER 0 -> PRESCALER DE 1:16 MOVWF OPTION_REG BANK0 CLRF PORTD TESTE BTFSS INTCON,TMR0IF ; VERIFICA SE OCORREU OVERFLOW DO T0 GOTO TESTE BCF INTCON,TMR0IF ; LIMPA BIT DE OVERFLOW COMF PORTD,F ; INVERTE O PORTD A CADA OVERFLOW DO T0 GOTO TESTE 10

Programa principal (C) MikroC: void main() { OPTION_REG = 0B000000011; // ATRIBUIÇÃO DO PRESCALER PARA TIMER0 TRISD = 0x00; // PORTB COMO SAÍDA PORTD = 0x00; // VALOR INICIAL = 00 TMR0 = 0X00; // LIMPA TMR0 while(1) { if (INTCON.F2) // TESTA O BIT DE OVERFLOW { INTCON.F2 = 0; // LIMPA O BIT DE OVERFLOW PORTD = ~PORTD; } } } 11

Programa principal (C) MikroC Pro: void main() { OPTION_REG = 0B000000011; // ATRIBUIÇÃO DO PRESCALER PARA TIMER0 TRISD = 0x00; // PORTB COMO SAÍDA PORTD = 0x00; // VALOR INICIAL = 00 TMR0 = 0X00; // LIMPA TMR0 while(1) { if (INTCON.TMR0IF) // TESTA O BIT DE OVERFLOW { INTCON.TMR0IF = 0; // LIMPA O BIT DE OVERFLOW PORTD = ~PORTD; } } } 12

Habilitação da interrupção do TIMER0: a) Assembly MOVLW B 10100000' ; TIMER 0 -> PRESCALER DE 1:16 ; ---------> HABILITA A INTERRUPÇÃO DO TIMER0 ; ---------> HABILITA A INTERRUPÇÃO GLOBAL MOVWF INTCON b) C INTCON = 0B10100000; 13

Habilitação da interrupção do TIMER0: #define LEDS PORTD void interrupt () { } INTCON.TMR0IF = 0; LEDS = ~LEDS; // LIMPA O BIT DE OVERFLOW void main() { OPTION_REG = 0B000000011; // ATRIBUIÇÃO DO PRESCALER PARA TIMER0 TRISD = 0x00; // PORTD COMO SAÍDA LEDS = 0x00; // VALOR INICIAL = 00 TMR0 = 0X00; // LIMPA TMR0 INTCON = 0B10100000; // INT DO TIMER0 HABILITADA while(1) { } } 14

Exercício 1 Contador/Temporizador Timer 0 A partir do exemplo anterior, desenhar o fluxograma e escrever o firmware para piscar os LEDs com atraso de 1 segundo utilizando prescaler 1:128. Exercício 2 Desenhar o fluxograma e escrever o firmware para executar as seguintes funções: 1. Dentro da interrupção do Timer 0, testar a chave conectada no pino RB0 a cada 8 ms (prescaler 1:64). Considerando 2 displays de 7 segmentos do tipo catodo comum multiplexados conectado ao PORTD, escrever os caracteres Ab se chave aberta ou FE caso contrário. Obs: testar o pino de acionamento RE0 ou RE1 para a seleção do display. 2. No laço principal, escrever a função para que o Rele conectado no pino RE2 seja acionado/desacionado com atraso de 2 segundos implementado por software. 15

Exercício 3 Desenhar o fluxograma e escrever o firmware para executar as seguintes funções: 1. Dentro da interrupção do Timer 0, testar a chave conectada no pino RB0 a cada 8 ms (prescaler 1:64). Considerando 2 displays de 7 segmentos do tipo catodo comum multiplexados conectado ao PORTD, escrever os caracteres S1 se chave aberta ou S2 caso contrário. Obs : testar o pino de acionamento RE0 ou RE1 para a seleção do display. 2. No laço principal, mover o motor para um dos sentidos (pinos RC0, RC3, RC4 e RC5), conforme o estado da chave. Obs: utilizar atraso de 10 ms por software. 16