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

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

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

Sistemas Digitais e Microcontrolados

OMicrocontrolador PIC16F877A implementa um conversor

Curso de Microcontroladores PIC 16F84A

Microcontrolador PIC 16F877

Interrupções e Timers

RTC Real Time Counter e Pinos do JM60

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

Acetatos de apoio às aulas teóricas

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

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

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

Interrupção. Prof. Adilson Gonzaga

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

C:\seminario\guiao_aluno\trab9\trab9p2\trab9VoltUart.asm

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

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

INSTITUTO DE TECNOLOGIA EMERSON MARTINS

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

2 - Considere a seguinte figura que representa uma parte dos componentes básicos de um microprocessador:

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

EL08D - MICROCONTROLADORES

Temporizadores e Contadores

Microcontroladores PIC. Interrupções e Timers

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA CURSO DE ENGENHARIA DE COMPUTAÇÃO MICROPROCESSADORES II

Acetatos de apoio às aulas teóricas

Arquitetura PIC - PWM

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

Fundamentos de Microprocessadores ENGENHARIA ELECTROTÉCNICA

Sistemas Embutidos Prática. Prof. Marcos Augusto Menezes DCC/ /UFMG

Aula 14. Contadores Assíncronos. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Acetatos de apoio às aulas teóricas

Introdução ao Microcontrolador PIC

Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Eletrónica e Telecomunicações e de Computadores

Exemplos de Programas em C para o 8051 para o compilador crossware EEL Prof. Raimes Moraes

Copyright 2014 VW Soluções

Circuitos Digitais. Tipos de circuitos digitais: Circuitos combinacionais Circuitos sequenciais

PMR2415 Microprocessadores em Automação e Robótica. Jun Okamoto Jr.

Estudo de Programação em PIC16F84

Faculdade de Tecnologia SENAI Pernambuco - Unidade Santo Amaro Curso de Tecnologia em Mecatrônica Industrial

1 Objetivos. 2 Material utilizado. 3 Normas de segurança e conduta no laboratório. 4 Contextualização. Pág 1/6

C:\Users\House\Desktop\fluxo.c 1: /****************************************************************************** 2: * Objetivo: Este projeto visa

Programação em Linguagem Assembly

PSI2662 Projeto em Sistemas Eletrônicos Embarcados: Sensores e Atuadores. Temporizadores e Interrupção, AD/DA, Display, Integração com MatLab

Prof. Adilson Gonzaga

ELD - Eletrônica Digital Aula 7 Circuitos Sequenciais Contadores. Prof. Antonio Heronaldo de Sousa

Programação em C Aplicações de Microprocessadores 2006/2007

CURSO TERMO TURMA PERIODO DISCIPLINA ENGENHARIA MECATRÔNICA 8 A NOTURNO SISTEMAS DE AQUISIÇÃO DE DADOS

Microcontrolador 8051:

Computação 1 - Python Aula 8 - Teórica: Estrutura de Repetição : for 1/ 10

DE POSICIONAMENTO DE UM DETECTOR USANDO CIRCUITO ELETRÔNICO MICROCONTROLADO E PROGRAMAÇÃO ASSEMBLY

Tutorial Multiplexando Displays de Sete Segmentos com PIC 16F628A

Notas de Aula Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca

1. Microcontrolador PIC. 1.1 Introdução

Tutoriais PET-Tele. Introdução à Amostragem de Sinais com o kit Arduino (Versão: A2016M06D21)

Microprocessadores 1º Ano - LECOM

Conversor Analógico Digital do MSP430G2553

Aplicações: Conversão de Códigos e Motor de Passo. Prof. Adilson Gonzaga

PCS 2304 PROJETO LÓGICO DIGITAL 19/05/2006 Gabarito Preliminar 6 a Lista de Exercícios Contadores

2.4 Temporização da CPU

Botão de Pânico Supervisionado MANUAL DE OPERAÇÃO

Contador crescente e decrescente...

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

Objetivo Geral Compreender o funcionamento dos softwares de simulação Mplab e Proteus com um simples programa.

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

Microcontrolador 8051

NOTAS DE AULA NE7720 SISTEMAS DIGITAIS - II AULA

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!!

UFJF FABRICIO CAMPOS

Organização de Memórias

DECODIFICADORES. Capítulo 5

22:43. MIC29004 Microprocessadores. Microcontroladores. Microcontroladores. Microcontroladores. Microcontroladores

Família 8051 (introdução) 2011/1

EXPERIÊNCIA 4: IMPLEMENTAÇÃO DE UM CRONÔMETRO

ENGC40 - Eletrônica Digital

LÓGICA DIGITAL CONCEITOS DE CLOCK RELÓGIOS (CLOCK) Prof. Celso Candido ADS / REDES / ENGENHARIA

Lista de Exercícios 2

Transferência de dados via rede elétrica baseado no protocolo X-10

Leitura e escrita em memória serial 24LC1025 usando o microcontrolador PIC16F877A e programação assembly

Porta de Impressora IEEE Walter Fetter Lages.

Federal de Alagoas. Universidade PROVA PRÁTICA 09. TÉCNICO EM ELETROELETRÔNICA. (Editais nº 31 e 81/2016) UNIVERSIDADE FEDERAL DE ALAGOAS

Apontamentos sobre o 8051 Prof. Eng Luiz Antonio Vargas Pinto Versão revista e ampliada em 01/07/2009 Revisada em 28/02/2006 Revisada em 18/11/2007

ELETRÔNICA DIGITAL APLICADA Aula 8- Registradores de deslocamento como contadores

Circuito Eletrônico. Entendendo o circuito eletrônico na robótica. domingo, 28 de agosto de 11

Microcontroladores: Programação em C

Controladores do IBM-PC. Gustavo G. Parma

Usando display LCD tipo 16x2

MSP 430 Lab 04 Fontes de clock e configuração das entradas e saídas digitais

SISTEMA DE MEDIÇÃO DE TEMPO DE RESPOSTA: UMA APLICAÇÃO PARA A MEDIÇÃO DE TEMPO DE REFLEXO E TREINAMENTO DE ATLETAS

Departamento de Engenharia Elétrica. ELE Microprocessadores II. Prof. Carlos Antonio Alves Sala 59 Fone

Capítulo 3 Circuitos lógicos seqüenciais: flip-flops, latches, contadores e registradores

Presys Instrumentos e Sistemas

Neste volume: Considerações básicas sobre o PIC16F877

Eletrônica Digital II. Flip-Flop s. Prof. Msc. Getúlio Teruo Tateoki 1

Linguagem C para Microcontroladores

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br

Comunicando com um teclado PS2 Vitor Amadeu Souza

Introdução à Programação em C (II)

Transcrição:

Programação C com o PIC16F628a 31 de Outubro de 2016

2016-2 2

Conteúdo 3

2016-2 4

Capítulo 1 Interrupções Timer0 1.1 Registradores relacionados as Interrupcoes 1.1.1 Registrador OP T ION R EG Configura a Identificacao e configuracao de interrupcoes Figura 1.1: OP T ION R EG Os bits do registrador OPTION_REG são: 1. /RBPU, Habilitacao de pull-up na porta B, (a) 1 desabilita pull-up (b) 0 habilita pull-up. 2. INTEDG, Selecao de borda de interrupcao, (a) 1 interrupcao na borda de subida do pino RB0/INT (b) 0 interrupcao na borda de descida do pino RB0/INT. 3. T0CS, Selecao da fonte de clock do TMR0, (a) 1 clock na entrada do pino RA4/T0CKI (b) 0 clock interno. 4. T0SE, Selecao da borda da fonte de clock do TMR0, 5

2016-2 (a) 1 incrementa na borda descendente no pino RA4/T0CKI (b) 0 incrementa na borda ascendente no pino RA4/T0CKI. 5. PSA, Sinalizacao do prescaler (a) 1 assinala o prescaler ao WDT (b) 0 assinala o prescaler ao TMR0. 6. PS2, PS1 e PS0, Selecão da escala do prescaler 1.1.2 Registrador INTCON 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 Configura a Identificacao e configuracao de interrupcoes Figura 1.2: INTCON Os bits do registrador INTCON são: (1.1) 1. GIE Habilita tratamento Global de Interrupcoes (a) 1 = Trata interrupcoes. (b) 0 = Ignora interrupcoes. 2. PEIE Habilita interrupcoes dos perifericos (a) 1 = habilitadas. (b) 0 = desabilitadas. 3. T0IE Habilitacao da interrupcao de transbordo do Timer0 6

2016-2 (a) 1 = habilitada. (b) 0 = deshabilitada. 4. INTE Habilitacao da interrupcao externa (RB0/INT) (a) 1 = habilitada. (b) 0 = desabilitada. 5. RBIE Habilitacao de interrupcao por mudanca 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 = nao houve transbordo. 7. INTF Flag sinalizador de interrupcao externa (RB0/INT) (a) 1 = ha pedido externo de interrupcao (b) 0 = Nao ha pedido externo de interrupcao 8. RBIF Flag sinalizador de alteracao nos pinos RB4 a RB7 (a) 1 = Houve alteracao. (b) 0 = Nao houve alteracao. 1.2 Descrição do código C para a interrupção do timer0 1 /* Autor : 2 * T t u l o : I n t e r r u p o usando o Timer0 3 * D e s c r i o : Um circuito com dois leds. O led1 f i c a r aceso a t r a v s 4 * de uma rotina normal chamada no corpo principal. 5 * A i n t e r r u p o gerada pelo transbordo do timer 0, i r apagar 6 * o led 1 e a c e n d e r o led 2. 7 * Data0 : 230516 8 */ 9 # include <stdio.h> 10 # include <stdio.h> 11 # include <xc.h> 12 # include <htc.h> 13 # include < pic16f648a.h > 14 15 // C o n f i g u r a o 16 Use o Configuration Bits 17 18 // D e f i n i e s b s i c a s 19 # define _XTAL_FREQ 4000000 20 # define LED1 PORTBbits. RB7 7

2016-2 21 # define LED2 PORTBbits. RB6 22 23 void interrupt qqcoisa (){ 24 INTCONbits. T0IF = 0; 25 LED1 = 0; 26 LED2 = 1; 27 delay_ms (1000); 28 } 29 30 void configura (){ 31 TRISB = 0 b11100000 ; 32 // C o n f i g u r a o OPTION_REG para o timer0 33 OPTION_REGbits. nrbpu = 0; // desabilita pull - up 34 OPTION_REGbits. INTEDG = 1; // i n t e r r u p o na borda de subida para pino 35 OPTION_REGbits. T0CS = 0 ; // clock interno para timer0 36 // OPTION_REGbits. T0SE n o usado 37 OPTION_REGbits. PSA = 0 ; // define prescaler para o timer 0 38 // prescalar 1:256 39 OPTION_REGbits. PS2 =1; 40 OPTION_REGbits. PS1 =1; 41 OPTION_REGbits. PS0 =1; 42 43 // C o n f i g u r a o do INTCON 44 INTCONbits. GIE = 1; // habilita todas as i n t e r r u p e s 45 INTCONbits. PEIE = 0; // desabilita as i n t e r r u p e s dos p e r i f r i c o s 46 INTCONbits. T0IE = 1; // Habilita a i n t e r r u p o pelo timer0 47 INTCONbits. INTE = 0; // Desabilita a i n t e r r u p o externa 48 INTCONbits. RBIE = 0; // Desabilita a i n t e r r u p o do MSB do PORTB 49 INTCONbits. T0IF = 0; // Limpa o flag do timer0 50 TMR0 = 0; // Valor inicial do registrador do timer0 51 } 52 53 void acende_led (){ 54 LED1 = 1; 55 } 56 57 void main () { 58 configura (); 59 while (1) acende_led (); 60 } 8

2016-2 1 ; Autor : 2 ; Data : 080516 3 ; Titulo : I n t e r r u p o Timer0 4 ; D e s c r i o : O circuito composto de um p16f628a ligado a quatro leds 5 ; placa01, a i n t e r r u p a o de timer0 ira manter os 4 leds pendurados em 6 ; portab acesos por 2 s e desligados por outros 2 s. 7 LIST P =16 F628 8 include < p16f628a. inc > 9 10 CBLOCK 0 X20 11 aux, LIM1, LIM2, tempo1, tempo2 12 ENDC 13 14 org 0 x00 15 goto configura 16 17 org 0 x04 18 goto trata_interrupcao 19 20 configura 21 ; Configura i n t e r r u p e s 22 bsf INTCON, GIE ; libera todas as i n t e r r u p e s 23 BCF INTCON, PEIE ; inibe i n t e r r u p e s dos p e r i f r i c o s 24 ; I n t e r r u p o Timer0 25 BSF INTCON, T0IE ; libera i n t e r r u p o TIMER0 26 BCF INTCON, T0IF ; limpa flag TIMER0 27 28 bsf STATUS,5 ; vai banco 1 29 clrf TRISA ; porta s e r saida 30 BSF TRISB,7 ; PINO 7 DO PORTB S E R ENTRADA PARA A CHAVE 31 bcf STATUS,5 32 33 ; I n t e r r u p o pelo timer0 34 bcf OPTION_REG, T0CS ; Define fonte de clock =0 clock interno 35 bsf OPTION_REG, T0SE ; Incrementa na borda de subida da t r a n s i o 36 bcf OPTION_REG, PSA ; Habilita o prescaler para o timer0 37 bsf OPTION_REG,2 38 bsf OPTION_REG,1 39 bcf OPTION_REG,0 ; PS xxxx x111 faz escala 1/256, ver tabela 40 bcf STATUS,5 ; VOLTA ao banco 0 41 42 ; limpa as variaveis para inicio 43 clrf tempo1 44 clrf tempo2 45 movlw 0 x0f 46 movwf aux ; variavel para determinar m u d a n a do led1 47 BSF PORTA,1 48 49 PRINCIPAL 9

2016-2 50 GOTO PRINCIPAL 51 52 ATRASO 53 LOOP_EXTERNO 54 MOVLW 0 X80 55 MOVWF LIM1 56 LOOP_INTERNO 57 NOP 58 INCF LIM1, 1 59 BTFSS LIM1, 4 60 GOTO LOOP_INTERNO 61 INCF LIM2, 1 62 BTFSS LIM2, 7 63 GOTO LOOP_EXTERNO 64 RETURN 65 66 ; Tratamento das i n t e r r u p e s 67 ; Para um xtal de 4 MHz, cada i n s t r u o executa em 1 us, uma virada 68 ; completa do timer0 e n t o d a r 256 us. A macro conta_timer0 expande 69 ; esse limite ao repetir o processo incluindo novos contadores, 70 ; Pelo projeto deltat de 2s, fazendo as contas n e c e s s r i o 71 ; repetir a i n t e r r u p o timer0 por 7812,5 vezes ou 72 ; 2^7*2^6 = 2^13 = 8192 para efetivamente atender a i n t e r u p a o timer0. 73 ; Assim s e r n e c e s s r i o 8192 i n t e r r u p e s do timer0 para 74 ; uma espera de 2s, enquanto durar esse intervalo o led1 e s t a r 75 ; aceso. No outro ciclo de 2 s f i c a r apagado. 76 77 inverte_led 78 COMF aux,1 79 MOVFW aux 80 MOVWF PORTA 81 RETURN 82 83 incrementa_tempo2 84 clrf tempo1 ; limpa tempo1 para uma nova contagem 85 incf tempo2 86 btfsc tempo2,6 ; verifica se N O deu o intervalo de 2s, te 87 call inverte_led 88 nop 89 return 90 91 trata_int_timer0 92 incf tempo1 93 btfsc STATUS, C ; verifica se N O houve transbordo 94 call incrementa_tempo2 95 nop 96 return 97 98 ; Tratamento da i n t e r r u p o Timer0 10

2016-2 99 trata_interrupcao 100 btfsc INTCON, T0IF ; Verifica se i n t e r r u p o foi por timer0 101 call trata_int_timer0 102 retfie 103 END 11