interrupÇÕes.docx

Upload: jorgeorlandoferro

Post on 02-Jun-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 INTERRUPES.docx

    1/38

    UNIDADE 1 - O MICROCONTROLADOR PIC 6Desempenho da famlia PIC 6Tipos de Memria de Programa 7Tipos de memrias de programas disponveis nos PICs: 7O PIC18F4520 7Veja em seguida as principais caractersticas do PI18F4520 7Tipos de encapsulamentos: 7Estrutura interna do PIC18F4520 9

    Descrio das funes dos pinos do PI18F4520 10Tipos de Memrias 1Vamos exemplificar um processo de gravao na memria de programa do PIC 13Introduo as portas de I/O 16161616O PORTA 17Registrador PORTA 18PORTA 18Registrador TRISA 18Leitura do LATCH de um pino do PIC 18O PORTB 19O PORTC 19O PORTD 20O PORTE 20Reset 21Os PICs possuem diversos tipos de reset: 21Ciclos de mquina 21Qual a freqncia real de execuo das instrues do nosso microcontrolador? 21Os bits de configurao (fusveis) 2Mapa dos bits de configurao do PIC18F4520 23Configurao de Clock 24Vamos conhecer cada um dos tipos de osciladores: 25Configurao dos Fusveis de Energia 27UNIDADE 2 - CANAIS A/D 30Conversor A/D do PIC 30303030Registrador ADCON0: 30303030 ADCON0: 30Registrador ADCON1: 31313131 ADCON1: 31Registrador ADCON2: 32323232 ADCON2: 32Trabalhando com AD no MikroC 3UNIDADE 3 CANAL PWM DO PIC 34Introduo 34343434Trabalhando com PWM no PIC 36UNIDADE 4 - TIMERS/COUNTERS 38Os Timers/Counters 38383838TIMER0 38Os Registradores relacionados ao TIMER0 so: 39T0CON: (TIMER0 Counter Register) 40O registrador INTCON 41INTCON (Interrupt Control) 41TIMER1 4O TIMER1: 4

  • 8/10/2019 INTERRUPES.docx

    2/38

    T1CON: (TIMER1 CONTROL REGISTER): 45Programando o TIMER1 do PIC 47Configurao do TIMER1: 49Calculo de Estouro do TIMER1: 49TIMER2 : 49T2CON (TIMER2 CONTROL REGISTER): Configura o setup do TIMER2; 50Registradores de configurao do TIMER2: 50TIMER3 51

    O TIMER3 : 51Registradores de configurao do TIMER3: 52w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 5 de 74UNIDADE 5 PROGRAMANDO AS INTERRUPES DO PIC 53 As Interrupes do PIC18F4520 53535353Introduo 54Como funciona as interrupes? 5Registradores que so usados para controlar as interrupes; 56UNIDADE 6 PROGRAMANDO A INTERRUPO EXTERNA 61INT0 61616161Vamos conhecer os registradores relacionados a INT0: 62Registradores responsveis pelas configuraes gerais das interrupes: 62Registradores responsveis pela habilitao da interrupo externa INT0 62Registrador responsvel pelo tipo de disparo de INT0: 62INT1 62626262Programando a interrupo externa INT1 62Vamos conhecer os registradores relacionados a INT1: 63Registradores responsveis pelas configuraes gerais das interrupes: 63Registradores responsveis pela habilitao da interrupo externa INT1 63INT2 63636363Registrador responsvel pelo tipo de disparo de INT2: 63Vamos conhecer os registradores relacionados a INT2: 64Registradores responsveis pela habilitao da interrupo externa INT2 64Registrador responsvel pelo tipo de disparo de INT2: 64Interrupo por mudana de estado 64646464Vamos conhecer os registradores relacionados a interrupo RB: 65Registradores responsveis pelas configuraes gerais das interrupes: 65Registradores responsveis pela habilitao da interrupo externa RB 65UNIDADE 7 EXEMPLOS DE PERIFRICOS 6Controle de display LCD 6Projetos com displays LCD: 6Varredura de displays de 7 segmentos 67676767Projetos com displays de 7 segmentos: 67Varredura de Teclado matricial 67676767Projetos com teclados matriciais: 68 Acionamento de Leds 68686868Projetos com com Leds 68Conversor Analgico digital (A/D) 68686868Projetos com os conversores A/D do PIC 69Controle PWM 69696969Projetos com os PWM 69UNIDADE 8 ANEXOS 70

  • 8/10/2019 INTERRUPES.docx

    3/38

    Descrio das Pinagens(LCD) 70707070Lista de cdigos dos Caracteres 70Tabela com o conjunto completo de instrues: 71Tabela com as instrues mais comuns: 72Resumo com as instrues mais teis: 72Comandos LCD do mikroC PRO (LCD) 73UNIDADE 9 FIGURAS 73UNIDADE 10 TABELAS 74

    w.mecatronicadegaragem.blogspot.com

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 6 de 74Unidade 1Unidade1Unidade 1Unidade1

    ---- O MicrocontroladorMicrocontroladorMicrocontroladorMicrocontroladorPICPICPICPIC

    Os microcontroladores PIC so fabricados pela empresa Microchip. Existem basicamentequatro famlias de PICs diferenciadas pelo tamanho da palavra de memria de programa: 12,14 , 16 e 32 bits. Atualmente a Microchip lanou nesses ltimos anos uma nova famlia de

    microcontroladores chamada DsPIC que possui barramento interno de 16 bits e 24 bits,contrrio da tradicional famlia de 8 bits, e tambm a famlia PIC32, com barramento de dadosem 32 bits.O PIC possui uma arquitetura interna do tipo Harvard. A diferena entre essa arquitetura e astradicionais, do tipo Von-Neumann, que ela possui um barramento para o programa e outropara os dados, diferente da arquitetura tradicional em que um barramento tanto de dadoscomo de endereo.O aumento no tamanho da palavra de programa possibilita um aumento no nmero deinstrues: os PICs de 12 bits (12C508, 12C509, 12CE518, 16C54, 16C55) possuem apenas 3instrues, os de 14 bits (12C671, 12C672, 12CE673, 12C674, 14000, 16C55x) possuem 35

    instrues e os de 16 bits (17C4x, 17C75X, 17C76X, 18C2XX, 18C4XX) possuem 7 instrues.FiguraFiguraFiguraFigura

    1....1 EvoluoEvoluoEvoluoEvoluo dadadadaFamliaFamliaFamliaFamlia PICPICPICPIC

    Os PICs foram otimizados para trabalharem com execuo de pequeno conjunto de instruesa grandes velocidades de processamento.

    DesempenhoDesempenhoDesempenhoDesempenhodadadada famliafamliafamliafamliaPICPICPICPIC

    Capacidade de pipeline (enquanto executa uma instruo, o processador busca a prximainstruo na memria, de forma a acelerar a execuo do programa)Execuo de uma instruo por ciclo de mquina, com exceo das instrues de desvios que

    consomem dois ciclos de mquinas para serem executadas.Um ciclo de mquina no PIC equivale a 4 ciclos de clock, ou seja, o sinal de clock dividido por4 antes de executar a instruo (falaremos mais sobre esse tpico adiante).Cada Instruo ocupa uma posio de memria de programa (FLASH).

  • 8/10/2019 INTERRUPES.docx

    4/38

    Tempo de execuo das instrues fixa, com exceo das instrues de desvios queconsomem dois ciclos de mquina.Outra caracterstica importante da arquitetura PIC reside na semelhana e compatibilidadeentre os diversos microcontroladores membros de sua famlia. Isto facilita grandemente amigrao de microcontrolador para outro, bastando mudar, em alguns casos, apenas algunscomandos no programa, pois partes dos registradores internos no se diferem muito entre si.Nota:Nota:Nota:Nota: As famlias PIC14 e PIC17 esto obsoletas.

    w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 7 de 74

    TiposTiposTiposTiposdededede MemriaMemriaMemriaMemria dedededeProgramaProgramaProgramaPrograma

    Os PICs da srie 12 e 16 armazenam o programa em sua memria interna. Membros da famlia18 podem funcionar com memria de programa interna ou externa.

    TiposTiposTiposTipos

    dededede memriasmemriasmemriasmemrias dedededeprogramasprogramasprogramasprogramasdisponveisdisponveisdisponveisdisponveis nosnosnosnosPICs:PICs:PICs:PICs:

    ROMROMROMROM: Memria do tipo no voltil gravadas na fbrica pelo processo conhecidocomo mscara. Os chips com esse tipo de memria normalmente possuem custos menores,mas somente so viveis na fabricao de grandes quantidades.OTPOTPOTPOTP: Memria fabricadas do tipo PROM. Saem da fbrica "virgens" e permitemuma nica gravao. So inviveis nas fases de implantao e desenvolvimento deequipamentos. Esses chips so identificados pelo sufixo "C".EEPROMEEPROMEEPROMEEPROM: Podemos encontrar chips com memria do tipoEEPROM. Normalmente so mais caros que os dispositivos ROM e OTP e podem seridentificados atravs do seu sufixo "JW" para os dispositivos com encapsulamento DIP, ou "CL"para os dispositivos com encapsulamento do tipo PLCC.FLASHFLASHFLASHFLASH: Os microcontroladores PIC que utilizam este tipo de memriaso indicados para etapas de desenvolvimento e testes at mesmo para implantaes finais.Permitem no mximo 1000 ciclos de gravaes/apagamento, possuem um custo relativamentemediano com relao aos outros chips.OPIC18F4520PIC18F4520PIC18F4520PIC18F4520O PIC18F4520 um microcontrolador que possui memria do tipo FLASH, que nos representauma grande facilidade em desenvolvimentos de projetos e prottipos pois no requer apagloatravs de luz-ultravioleta como as verses antigas que utilizavam EEPROM, com tecnologiaCMOS (baixssimo consumo) fabricado pela empresa Microchip Technology.

    VejaVejaVejaVeja

    emememem seguidaseguidaseguidaseguida asasasasprincipaisprincipaisprincipaisprincipaiscaractersticascaractersticascaractersticascaractersticas dodododoPI18F4PI18F4PI18F4PI18F4520520520520

    Microcontrolador de 40 pinos; Memria de programa FLAS H de 32K ( 16384 bytes words) Memria de dados RAM de 1536 bytes; Memria EEPROM de 256 byte; Processamento de at 10MIPS (milhes de instrues por segundo) 2 canais capture/compare/PWM - mdulo CCP Master synchronous Serial Port (MSSP) module. Usart 13 canais A/D de 10 bits Permite at 100 0 ciclos de escrita e leitura na memria de programa Flash Permite 1.0.0 ciclos de leitura e escrita na E2PROM

  • 8/10/2019 INTERRUPES.docx

    5/38

  • 8/10/2019 INTERRUPES.docx

    6/38

    PORTAPORTAPORTAPORTA: encontramos 7 pinos fsicos intitulados de RA0 a RA7 quepodem ser utilizados como I/O de uso geral ou como conversor analgico/ digital A/D, alm depossuir tambm a funo de deteco de baixa tenso (LVD), referncia analgica do A/D econtador externo.PORTBPORTBPORTBPORTB: encontramos 8 pinos intitulados de RB0 a RB7 configurveiscomo I/O de uso geral. Nesse port podemos trabalhar com trs interrupes externas, mduloCCP e pinos de gravao e debugger.PORTCPORTCPORTCPORTC: encontramos 8 pinos intitulados de RC0 a RC7 configurveis

    como I/O de uso geral, sada do oscilador do timer, mdulo CCP, Clock e data para os modosSPI, I2C e UART.PORTDPORTDPORTDPORTD: encontramos 8 pinos intitulados de RC0 a RC7 que pode serconfigurado como I/O de uso geral ou ser configurado como PSP para ter sada TTL (porexemplo: interfaceamento com microprocessadores ).PORTEPORTEPORTEPORTE: podemos utiliz-lo como PORT de I/O de uso geral ou utilizaros pinos de WR e CS para acesso ao modo paralelo Slave Port (acesso a memria externa porexemplo). Abaixo segue com detalhes a funo de cada pino do microcontrolador PIC18F4520.

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP)FunoFunoFunoFuno TipoTipoTipoTipoDescrioDescrioDescrioDescrio

    2 RA0 AN0 I/O EntradaEntrada e sada de uso geral Entrada do conversor AD03 RA1 AN1 I/O EntradaEntrada e sada de uso geral Entrada do conversor AD14 RA2 AN2 Vref- CVrefI/O Entrada Entrada SadaEntrada e sada de uso geral Entrada do conversor AD2 Entrada de referncia baixa do A/DSada de tenso da referencia do comparador5 RA3 AN3 Vref+I/O Entrada EntradaEntrada e sada de uso geral Entrada do conversor AD3 Entrada de referncia alta do A/D6 RA4 T0CKI C1OUTI/O Entrada SadaEntrada e sada de uso geral Entrada de clock timer0 Sada do comparador 17 RA5 AN4 /S HLVDIN C2OUTI/O Entrada Entrada Entrada SaidaEntrada e sada de uso geral Entrada do conversor AD4 Entrada de seleo SPI Detector dealta/baixa voltagem. Sada do comparador 213 OSC1 CLKI RA7Entrada Entrada I/OEntrada do cristal oscilador Entrada do clock externo Entrada e sada de uso geral14 OSC2 CLKO RA6Sada Sada I/OSada do cristal oscilador Entrada do clock exteno Entrada e sada de uso geralI/O Entrada Entrada EntradaEntrada e sada de uso geral Interrupo externa 0 Entrada de erro PWM para CCP1 Entradaanalgica 12I/O Entrada EntradaEntrada e sada de uso geral Interrupo externa 1 Entrada analgica 10I/O Entrada EntradaEntrada e sada de uso geral Interrupo externa 2 Entrada analgica 8I/O Entrada I/O

  • 8/10/2019 INTERRUPES.docx

    7/38

    Entrada e sada de uso geral Entrada analgica 9 Entrada de captura 2, sada de comparao2 e sada PWM 2I/O Entrada I/OEntrada e sada de uso geral Pino de interrupo por mudana de nvel Entrada analgica 138 RB5 KBI1 PGMI/O Entrada I/OEntrada e sada de uso geral Interrupo por mudana de estado Pino de habilitao ICSPbaixa voltagem (In-Circuit Debugger)

    39 RB6 KBI2 PGCI/O Entrada I/OEntrada e sada de uso geral Interrupo por mudana de estado Pino de clock do ICSP40 RB7 I/O Entrada e sada de uso geral w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 1 de 74

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP)FunoFunoFunoFuno TipoTipoTipoTipoDescrioDescrioDescrioDescrio

    KBI3 PGDEntrada I/OInterrupo por mudana de estado Pino de dados do ICSPI/O Sada EntradaEntrada e sada de uso geral Sada do clock do Timer 1 Clock externo Timer1 / Timer3I/O Entrada SadaEntrada e sada de uso geral Entrada de clock do Timer1 Mdulo CCP2(multiplexado com RB3)I/O I/O SaidaEntrada e sada de uso geral Mdulo CCP1 Sada ECCP118 RC3 SCK SCLEntrada e sada de uso geral Entrada e sada do clock serial para o modo SPI Entrada e sadado clock serial para o modo I2C23 RC4 SDI SDAI/O Entrada I/OEntrada e sada de uso geral Entrada de dados SPI Entrada e sada de dados I2C24 RC5 SD0 I/O SadaEntrada e sada de uso geral Sada de dados SPI25 RC6 TX CKI/O Sada I/OEntrada e sada de uso geral Canal de transmisso UART Clock de sincronismo UART26 RC7 RX DTI/O Entrada I/OEntrada e sada de uso geral Canal de recepo UART Clock de sincronismo UART19 RD0 PSP0 I/O I/OEntrada e sada de uso geral Porta de comunicao paralela20 RD1 PSP1 I/O I/OEntrada e sada de uso geral Porta de comunicao paralela21 RD2 PSP2 I/O I/OEntrada e sada de uso geral Porta de comunicao paralela2 RD3 PSP3 I/O I/OEntrada e sada de uso geral Porta de comunicao paralela27 RD4 PSP4 I/O I/OEntrada e sada de uso geral Porta de comunicao paralelaI/O I/O SadaEntrada e sada de uso geral Porta de comunicao paralela Sada ECCP1

  • 8/10/2019 INTERRUPES.docx

    8/38

    I/O I/O SadaEntrada e sada de uso geral Porta de comunicao paralela Sada ECCP1I/O I/O SadaEntrada e sada de uso geral Porta de comunicao paralela Sada ECCP18 RE0 /RD AN5I/O Entrada EntradaEntrada e sada de uso geral Controle de leitura do port paralelo Entrada analgica AD59 RE1 /WR AN6

    I/O Entrada EntradaEntrada e sada de uso geral Controle de escrita do port paralelo Entrada analgica AD6I/O Entrada EntradaEntrada e sada de uso geral Controle de seleo do port paralelo Entrada analgica AD71 /MCLR VPP RE3Entrada Entrada EntradaEntrada do RESET externo. Este pino ativo em nvel baixo Pino de habilitao de altavoltagem ICSP Entrada Digital12, 31 GND Alimentao Negativo1, 32 VCC Alimentao positivo

    TabelaTabelaTabelaTabela

    1....1 DescrioDescrioDescrioDescrio dosdosdosdospinospinospinospinos dodododoMicrocontroladorMicrocontroladorMicrocontroladorMicrocontroladorPIC18F4520PIC18F4520PIC18F4520PIC18F4520

    TiposTiposTiposTipos dededede MemriasMemriasMemriasMemriasNo PIC18F4520 encontramos trs tipos de memrias: Memria de Programa - FLASH Memria de dados - RAM Memria de dados EEPROM w.mecatronicadegaragem.blogspot.com Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 12 de 74Como ns sabemos, memria de programa (ROM, EPROM, FLASH) do tipo no voltil, ouseja, podemos desenergizar nosso sistema microcontrolado e ele no perder o programagravado.Nosso microcontrolador estudado possui internamente 16Kbyte de memria de programa(words) e possui um barramento de programa de 16 bits. Alm disso, existem 21 bits paraendereamento da memria de programa, o que permite que at 2 Mbyte sejam endereadospelo microcontrolador da familia PIC18.MemriaMemriaMemriaMemriadededede ProgramaProgramaProgramaPrograma A memria de programa utilizada em nosso microcontrolador do tipo FLASH (sufixo "F") quepermite ser gravada/apagada no minimo 1000 vezes. Este tipo de memria utilizada idealpara ser utilizada em desenvolvimento de projetos e at mesmo em produtos finais.

    FiguraFiguraFiguraFigura1....4 MemrMemrMemrMemriaiaiaia dedededeProgramaProgramaProgramaPrograma FLASHFLASHFLASHFLASHdodododo PIC18FPIC18FPIC18FPIC18F4545454522220000

    Podemos perceber que a memria de programa do PIC18F4520 inicia-se no endereo 0000h eatinge o valor mximo de 7FFFH, ou seja , 32767K byte (32Kbyte).O endereo inicial 0000h chamado de vetor de reset. A instruo de programa que estivernesse endereo de memria ser a primeira a ser executada pelo processador do PIC. Sempreque energizarmos ou resetarmos o microcontrolador, o contador de programa PC apontarsempre para este primeiro endereo da memria.Nota:Nota:Nota:Nota:No podemos confundir de forma alguma memria de programa e memria de dados.Sabemos que memria de programa onde nosso programa estar gravado, enquantomemria de dados onde os valores de nossas variveis sero salvas temporariamente.

  • 8/10/2019 INTERRUPES.docx

    9/38

    w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 13 de 74Em seguida temos os endereos 0008h e 0018h. Estes endereos so chamados de vetoresde interrupo. (veremos mais adiante em nosso curso sobre esses vetores de interrupo).

    VamosVamosVamosVamos

    exemplificarexemplificarexemplificarexemplificar umumumumprocessoprocessoprocessoprocesso dedededegravaogravaogravaogravao nanananamemriamemriamemriamemria dededede

    programaprogramaprogramaprograma dodododo PIC.PIC.PIC.PIC. Acompanhe o programa exemplo de programa abaixo: Ao compilarmos o programa acima com o MikroC PRO teremos como resultado o seguintecdigo de mquina (descrito somente algumas linhas do cdigo gerado):

    FiguraFiguraFiguraFigura1....5 ---- OpcodeOpcodeOpcodeOpcode geradogeradogeradogeradoapsapsapsaps compilaocompilaocompilaocompilaododododo programaprogramaprogramaprograma

    A partir da imagem acima, podemos verificar os valores que sero gravados na memria deprograma aps gravao do programa exemplo acima. Esses valores so teis para oprogramador experiente, pois permite visualizar e acompanhar a execuo por completo dacompilao dos arquivos.'Microgenios | MicroControladores *'Site: w.Microgenios.com.br *'Autor: Fernando Simplicio de Sousa*'Programa exemplo: PISCA_PISCA.c'Cristal: 8MHz - modo HS *'Microcontrolador PIC18F4520 Microchip*'Tools: Kit PICgenios PIC18F Mdulo Profissional Microgenios'Configurao: DIP1 - Chave O9 -ON'Objetivo:'Este simples programa inverte todo os pinos do PORTD em intervalos'de 1 segundovoidvoidvoidvoid main(){//funo principal do programaTRISD = 0; //configura portd como saidaPORTD = 0; //zera todos os pinos do portdwhilwhilwhilwhileeee(1){Delay_ms(1000);//delay de 1 segundoPORTD = 0; //zera todo o portdDelay_ms(1000);//delay de 1 segundoPORTD = 0B11111111; //seta todos os pinos do PORTD }w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 14 de 74

    FiguraFiguraFiguraFigura1....6 CdigoCdigoCdigoCdigoHexadecimalHexadecimalHexadecimalHexadecimal

    MemriaMemriaMemriaMemriadededede dadosdadosdadosdados ----EEPROMEEPROMEEPROMEEPROM

    Como estudamos anteriormente, sabemos que as memrias do tipo EEPROM so muitoparecidos com a memria RAM, sua diferena que as distingue devido ao fato da memriaEEPROM reter as informaes salvas quando a desenergizarmos. Podemos salvar nestamemria dados no-volteis durante o decorrer da execuo de nosso programa.O PIC18F4520 possui internamente 256 bytes de memria de dados EEPROM. O endereoinicial da memria de dados EEPROM 00h seu ltimo endereo FFh.MemriaMemriaMemriaMemriadededede dadosdadosdadosdados ---- RAMRAMRAMRAM

  • 8/10/2019 INTERRUPES.docx

    10/38

    Chegamos a uma das partes mais importantes do estudo referente ao nosso microcontroladorPIC, neste tpico apresentaremos toda a estrutura de memria de dados RAM. Aprenderemos a trabalhar com ela e tambm onde esto localizados os bits queligam/desligam, configuram e controlam os perifricos internos do PIC, ou seja, os SFRs(Registradores de Funes Especiais).

    A memria de dados RAM dividida em dois grupos: os chamados GPRs (Registradores dePropsito Geral) e os SFRs ( Registradores de Funes Especiais). Os GFRs tem a funo de armazenar dados de uso geral que utiliza mos e criamos durante a

    execuo do nosso programa. Podemos guardar nesse regio da memria RAM dados volteisde variveis, tabelas, constantes, entre outras.Os SFR's so a parte principal do microcontrolador, nesta rea da memria RAM que estoarmazenados todos os setups de funcionamento do PIC. A partir desses registradorespodemos configurar o modo de trabalho dos timers/counters, USART, conversores analgicosdigitais, etc.O PIC18F4520 em estudo possui internamente 1536 bytes de memria de dados RAM.O banco de memria RAM da famlia PIC18F dividido em 16 bancos que contm 256 bytesde memria cada, pois a forma de implementao das instrues limita o endereamento a ummximo de 7 bits ou 128 registradores. Por esse motivo, a Microchip usa a filosofia depginao de memria, criando bancos de memria a cada 128 posies. Acompanhe a figuraabaixo:Nota:Nota:Nota:Nota:Os cdigos em assembly visualizado na figura acima foi gerado pelo compilador MikroC PROaps a compilao de um programa escrito em C.w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 15 de 74

    FiguraFiguraFiguraFigura1....7 DiagramaDiagramaDiagramaDiagrama dadadadamemriamemriamemriamemria RAMRAMRAMRAMinternainternainternainterna

    Vamos examinar o mapa de registradores dos SFR's. (endereo 0F80h FFFh): Registradoresde Funes Especiais SFRs w.mecatronicadegaragem.blogspot.com Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 16 de 74

    FiguraFiguraFiguraFigura1....8 RegistradoresRegistradoresRegistradoresRegistradoresdededede FunesFunesFunesFunesEspeciaisEspeciaisEspeciaisEspeciais SFRsSFRsSFRsSFRs

    Atravs da configurao desses registradores especiais, podemos monitorar o status domicrocontrolador em determinados momentos e situaes. Estudaremos a funo dessesregistradores quando estivermos trabalhando com projetos, pois dessa maneira ficar maisclaro seu funcionamento.

    IntrodIntrodIntrodIntroduouououoasasasas portasportasportasportas dedededeI/OI/OI/OI/O

    Os microcontroladores PIC possuem pinos fsicos destinados comunicao de dados com oscircuitos externos. Atravs desses pinos podemos enviar nveis lgicos (0 ou 1) para, porexemplo, acender ou apagar um LED, acionar displays LCD, ler botes e sensores, etc.O microcontrolador PIC18F45200 da Microchip possue 34 pinos de escrita e leitura (I/O), osquais esto divididos em quatro portas chamadas: PORTA, PORTB, PORTC, PORTD ePORTE.w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 17 de 74FiguraFiguraFiguraFigura1....9 PIC18F4520PIC18F4520PIC18F4520PIC18F4520Os registradores PORTB, PORTC e PORTD possuem 8 pinos de I/O cada, enquanto o PORTEpossue 4 pinos de I/O e PORTA 6 pinos de I/O.

  • 8/10/2019 INTERRUPES.docx

    11/38

    Cada porta de I/O possui trs registradores que controlam suas funes: um registrador PORT,LAT e um registrador TRIS.Os registradores PORT (PORTA, PORTB, PORTC, PORTD, PORTE) pertencem aos SFRs earmazema os dados das portas paralelas (I/O's) do microcontrolador. Qualquer escritarealizada em um desses registros automaticamente altera todo o contedo presente na sadado chip.O registrador TRIS utilizado para configurar cada pino da respectiva porta como entrada ousada. Assim, cada bit desse registrador corresponde a um pino da porta. Se o bit estiver em 1

    (um), o pino correspondente esta configurado como entrada de dados, e se estiver em 0 (zero)configuramos este pino como sada de dados. As portas de comunicao paralela do PIC so utilizadas para efetuar diversas tarefas:O O O O PORTPORTPORTPORTAAAA A primeira porta a ser estudada o PORTA. Alm das funes de entrada e sada de dadosencontramos tambm diversas outras funes multiplexadas aos seus pinos:

    TabelaTabelaTabelaTabela1....2 PinosPinosPinosPinosPORTAPORTAPORTAPORTA

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP)FunoFunoFunoFuno TipoTipoTipoTipoDescrioDescrioDescrioDescrio

    Vamos conhecer as funes de cada pino do PORTA:2 RA0 AN0 I/O EntradaEntrada e sada de uso geral Entrada do conversor AD03 RA1 AN1 I/O EntradaEntrada e sada de uso geral Entrada do conversor AD14 RA2 AN2 Vref- CVrefI/O Entrada Entrada SadaEntrada e sada de uso geral Entrada do conversor AD2 Entrada de referncia baixa do A/DSada de tenso da referencia do comparador5 RA3 AN3 Vref+I/O Entrada EntradaEntrada e sada de uso geral Entrada do conversor AD3 Entrada de referncia alta do A/D6 RA4 T0CKI C1OUTI/O Entrada SadaEntrada e sada de uso geral Entrada de clock timer0 Sada do comparador 17 RA5 AN4 /S HLVDIN C2OUTI/O Entrada Entrada Entrada SaidaEntrada e sada de uso geral Entrada do conversor AD4 Entrada de seleo SPI Detector dealta/baixa voltagem. Sada do comparador 213 OSC1 CLKI RA7Entrada Entrada I/OEntrada do cristal oscilador Entrada do clock externo Entrada e sada de uso geral14 OSC2 CLKO RA6Sada Sada I/OSada do cristal oscilador Entrada do clock exteno Entrada e sada de uso geralw.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 18 de 74RegistradorRegistradorRegistradorRegistradorPORTAPORTAPORTAPORTAFigFigFigFiguraurauraura 1....10101010 ---- PORTAPORTAPORTAPORTAO registrador PORTA esta localizado na memria RAM do PIC e possui o endereo (0XF80).Este registrador ir acessar os pinos da PORTA da seguinte maneira:PORTAPORTAPORTAPORTARA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

  • 8/10/2019 INTERRUPES.docx

    12/38

    Toda a porta de I/O possui internamente um latch de sada para cada pino. Dessa forma, umaescrita no registrador PORTA ir na realidade escrever em cada latch do PORTA. O lat daPORTA chamado de LATA.Para ler um dado um dado no PORTA, basta ler o contedo do registrador PORTA.RegistradorRegistradorRegistradorRegistradorTRISATRISATRISATRISAO registrador TRISA utilizado para o controle da direo de atuao de cada pino de I/O doPORTA. Atravs desse registradores definimos e configuramos o modo de trabalho do pino domicrocontrolador como entrada ou sada de dados.

    TRISATRISATRISATRISAEste registrador define os pinos do PORTA da seguinte maneira:RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0Se o bit do registrador TRISA estiver em nvel lgico 1, o pino correspondente a este bit doPORTA estar configurado como entrada.Se o bit do registrador TRISA estiver em nvel lgico 0, o pino correspondente a este bit doPORTA estar configurado como sada.

    LeituraLeituraLeituraLeituradodododo LATCHLATCHLATCHLATCH dededede umumumumpinopinopinopino dodododo PICPICPICPIC

    Para ler o LATCH de sada do microcontrolador ao invs dos pinos utilizamos o registradorLATA, referente ao PORTA, ou LATB, referente ao PORTB. O latch de sada encontra-se antesdo buffer de sada do pino, e por esse motivo podemos ler seu estado.Nota:Nota:Nota:Nota:O registrador PORTA o "espelho" dos pinos do PORTA do PIC, para lermos ou escrevermosnesse registrador estamos na verdade atuando sobre os pinos do port respectivamente. Nopodemos esquecer que o registrador TRISD tambm afeta a leitura e escrita no port.w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 19 de 74OPORTBPORTBPORTBPORTBO PORTB, tal qual o PORTA, implementa diversas outras funes multiplexadas aos seuspinos, acompanhe:

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP)FunoFunoFunoFuno TipoTipoTipoTipoDescrioDescrioDescrioDescrio

    I/O Entrada Entrada EntradaEntrada e sada de uso geral Interrupo externa 0 Entrada de erro PWM para CCP1 Entradaanalgica 12I/O Entrada EntradaEntrada e sada de uso geral Interrupo externa 1 Entrada analgica 10I/O Entrada EntradaEntrada e sada de uso geral Interrupo externa 2 Entrada analgica 8I/O Entrada I/OEntrada e sada de uso geral Entrada analgica 9 Entrada de captura 2, sada de comparao2 e sada PWM 2I/O Entrada I/OEntrada e sada de uso geral Pino de interrupo por mudana de nvel Entrada analgica 138 RB5 KBI1 PGMI/O Entrada I/OEntrada e sada de uso geral Interrupo por mudana de estado Pino de habilitao ICSPbaixa voltagem (In-Circuit Debugger)39 RB6 KBI2 PGCI/O Entrada I/OEntrada e sada de uso geral Interrupo por mudana de estado Pino de clock do ICSP40 RB7 KBI3 PGD

  • 8/10/2019 INTERRUPES.docx

    13/38

    I/O Entrada I/OEntrada e sada de uso geral Interrupo por mudana de estado Pino de dados do ICSP Assim como no PORTA, o PORTB possui dois registradores que definem o modo de trabalhodos seus pinos de I/O: so eles: PORTB e TRISB.Tanto o registrador PORTB quanto o registrador TRISB esto localizados na memria RAM doPIC e pertencem aos SFR'S (Registradores de Funes Especiais).O registrador TRISB tem as mesmas funes que o registrador TRISA estudado anteriormente,que programar os pinos do PIC para serem entradas ou sadas para uso geral.

    O registrador PORTB funciona da mesma maneira descrita no PORTA.OPORTCPORTCPORTCPORTCO PORTC, tal qual o PORTA, implementa diversas outras funes multiplexadas aos seuspinos, acompanhe:

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP)FunoFunoFunoFuno TipoTipoTipoTipoDescrioDescrioDescrioDescrio

    I/O Sada EntradaEntrada e sada de uso geral Sada do clock do Timer 1 Clock externo Timer1 / Timer3I/O Entrada SadaEntrada e sada de uso geral Entrada de clock do Timer1 Mdulo CCP2(multiplexado com RB3)I/O I/O SaidaEntrada e sada de uso geral Mdulo CCP1 Sada ECCP118 RC3 SCK SCLEntrada e sada de uso geral Entrada e sada do clock serial para o modo SPI Entrada e sadado clock serial para o modo I2C23 RC4 SDI SDAI/O Entrada I/OEntrada e sada de uso geral Entrada de dados SPI Entrada e sada de dados I2C24 RC5 SD0 I/O SadaEntrada e sada de uso geral Sada de dados SPI25 RC6 TX CKI/O Sada I/OEntrada e sada de uso geral Canal de transmisso UART Clock de sincronismo UART26 RC7 RX DTI/O Entrada I/OEntrada e sada de uso geral Canal de recepo UART Clock de sincronismo UART Assim como no PORTA, o PORTC possui dois registradores que definem o modo de trabalhodos seus pinos de I/O: so eles: PORTC e TRISC.Tanto o registrador PORTC quanto o registrador TRISC esto localizados na memria RAM doPIC e pertencem aos SFR'S (Registradores de Funes Especiais).w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 20 de 74O registrador TRISC tem as mesmas funes que o registrador TRISA estudado anteriormente,que programar os pinos do PIC para serem entradas ou sadas.O registrador PORTC funciona da mesma maneira descrita no PORTA. As funes especiais de cada pino sero vistas quando estudarmos suas aplicaes reaisatravs dos projetos que vamos desenvolver durante nosso curso.OPORTDPORTDPORTDPORTDO PORTD, tal qual o PORT A, PORTB e PORTC implementa diversas outras funesmultiplexadas aos seus pinos, acompanhe:

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP)FunoFunoFunoFuno TipoTipoTipoTipoDescrioDescrioDescrioDescrio

  • 8/10/2019 INTERRUPES.docx

    14/38

    19 RD0 PSP0 I/O I/OEntrada e sada de uso geral Porta de comunicao paralela20 RD1 PSP1 I/O I/OEntrada e sada de uso geral Porta de comunicao paralela21 RD2 PSP2 I/O I/OEntrada e sada de uso geral Porta de comunicao paralela2 RD3 PSP3 I/O I/OEntrada e sada de uso geral Porta de comunicao paralela

    27 RD4 PSP4 I/O I/OEntrada e sada de uso geral Porta de comunicao paralelaI/O I/O SadaEntrada e sada de uso geral Porta de comunicao paralela Sada ECCP1I/O I/O SadaEntrada e sada de uso geral Porta de comunicao paralela Sada ECCP1I/O I/O SadaEntrada e sada de uso geral Porta de comunicao paralela Sada ECCP1 Assim como nas outras portas, o PORT D possui dois registradores que definem o modo detrabalho dos seus pinos de I/O: so eles: PORTD e TRISD.Tanto o registrador PORT D quanto o registrador TRISD esto localizados na memria RAM doPIC e pertencem aos SFR'S (Registradores de Funes Especiais).O registrador TRISD tem a funo de programar os pinos do PIC para serem entradas ousadas.O registrador PORTD o "espelho" dos pinos do PORTD do PIC, para lermos ou escrevermosnesse registrador estamos na verdade atuando sobre os pinos do port respectivamente. Nopodemos esquecer que o registrador TRISD tambm afeta a leitura e escrita no port. As funes especiais de cada pino sero vistas quando estudarmos suas aplicaes reaisatravs dos projetos que vamos desenvolver durante nosso curso.OPORTEPORTEPORTEPORTEO PORTE, tal qual as outras portas, implementa diversas outras funes multiplexadas aosseus pinos, acompanhe:

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP)FunoFunoFunoFuno TipoTipoTipoTipoDescrioDescrioDescrioDescrio

    8 RE0 /RD AN5I/O Entrada EntradaEntrada e sada de uso geral Controle de leitura do port paralelo Entrada analgica AD59 RE1 /WR AN6I/O Entrada EntradaEntrada e sada de uso geral Controle de escrita do port paralelo Entrada analgica AD6I/O Entrada EntradaEntrada e sada de uso geral Controle de seleo do port paralelo Entrada analgica AD71 /MCLR VPP RE3Entrada Entrada EntradaEntrada do RESET externo. Este pino ativo em nvel baixo Pino de habilitao de altavoltagem ICSP Entrada Digital Assim como nas outras portas, o PORTE possui dois registradores que definem o modo detrabalho dos seus pinos de I/O: so eles: PORTE e TRISE.Tanto o registrador PORTE quanto o registrador TRISE esto localizados na memria RAM doPIC e pertencem aos SFR'S (Registradores de Funes Especiais).O registrador TRISE tem a funo de programar os pinos do PIC para serem entradas ousadas.w.mecatronicadegaragem.blogspot.com

  • 8/10/2019 INTERRUPES.docx

    15/38

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 21 de 74O registrador PORTE o "espelho" dos pinos do PORTE do PIC, para lermos ou escrevermosnesse registrador estamos na verdade atuando sobre os pinos do port respectivamente. Nopodemos esquecer que o registrador TRISE tambm afeta a leitura e escrita no port. As funes especiais de cada pino sero vistas quando estudarmos suas aplicaes reaisatravs dos projetos que vamos desenvolver durante nosso curso.ResetResetResetResetcapaz de realizar esse procedimento que costumamos

    chamar de POWERPOWERPOWERPOWER

    ONONONON

    RESETRESETRESETRESET.Sempre que energizamos nosso circuito microcontrolado interessante que o PIC sejaresetado, para isso necessrio a insero de um circuito eletrnico bem simples, mas Alm disso interessante que exista um boto para que o usurio possa reiniciar o sistemasempre que for necessrio (reset manual), a seguir indicamos um exemplo de circuito para oreset.

    FiguraFiguraFiguraFigura1....11 CircuitoCircuitoCircuitoCircuito dedededeResetResetResetReset

    OsOsOsOsPICsPICsPICsPICs possuempossuempossuempossuemdiversosdiversosdiversosdiversos tipostipostipostipos dedededereset:reset:reset:reset:

    POR - Power On Reset - o reset que ocorre quando o chip ligado. Reset do MCLRdurante a operao normal Reset do MCLR durante o modo SLEEP Reset do watchdog durante operao normal Reset do detector de Brown -out (BOR) Instruo de Reset Reset do Stack Pointer CiclosCiclosCiclosCiclosdededede mquinamquinamquinamquina A contagem de tempo no medida diretamente pela freqncia de oscilao do cristal e simatravs do que chamamos de CICLO DE MQUINA.Internamente no microcontroladores PIC a freqncia do cristal dividida por 4, o que nosresulta que a freqncia real de trabalho :Conclumos ento que: a cada 1 ciclo de mquina corresponde a 4 pulsos do oscilador.quartzo de 8 MHz

    QualQualQualQual

    a freqnciafreqnciafreqnciafreqncia realrealrealreal dedededeexecuoexecuoexecuoexecuo dasdasdasdasinstruesinstruesinstruesinstrues dodododo nossonossonossonossomicrocontrolador?microcontrolador?microcontrolador?microcontrolador?

    Para exemplificar vamos supor que temos conectado ao microcontrolador um cristal de muito simples, acompanhe:Sabemos que a freqncia do cristal utilizado de 8 MHz, e que cada instruo levaexatamente 1 ciclo de mquina para ser executada; Basta dividir o valor do cristal por 4 parasabermos o valor real de trabalho do PIC.Conclumos ento que nosso microcontrolador PIC com cristal de 8 MHz esta trabalhandoefetivamente a 2 MHz, ou seja , cada instruo de programa leva 0.5 us para ser executada.Pois: Frequencia = 1 / periodo Logo: Periodo = 1/ 2MHz -> 0.5us freqncia de trabalho real =freqncia oscilador / 4 freqncia de trabalho real = 8 MHz / 4 => 2 MHzw.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 2 de 74

    OsOsOsOsbitsbitsbitsbits dededede configuraoconfiguraoconfiguraoconfigurao(fusveis)(fusveis)(fusveis)(fusveis)

  • 8/10/2019 INTERRUPES.docx

    16/38

    Os microcontroladores PIC possui internamente regies de memrias no volteis (Flash) queso resposveis por determinar o modo de trabalho do chip. So chamados de bits deconfigurao ou fusveis. de grande importncia que venhamos entender o funcionamentodesses bits, caso contrrio teremos srios problemas no funcionamento do nosso projeto.Os bits de configurao do PIC esto armazenados em uma rea reservada do PIC. Podemosconfigurar diversas funes atravs desses bits: OSC Selection (seleo do oscilador) RESET (tipos de a cionamento de reset) POWER -on Reset (POR) Power -up Timer (PWRT) Oscillator Start -up Timer (OSC) Brown -out Reset (BOR) (verificador de tenso de alimentao) Interrupts Watchdog Timer (WDT) Code Protection ID Locations In-Circuit Serial ProgrammingNota:Nota:Nota:Nota:Temos que lembrar que nosso microcontrolador em estudo pode operar em 10MHz (ciclo demquina) w.mecatronicadegaragem.blogspot.com

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 23 de 74

    MapaMapaMapaMapa

    dosdosdosdos bitsbitsbitsbits dedededeconfiguraoconfiguraoconfiguraoconfigurao dodododoPIC18F4520PIC18F4520PIC18F4520PIC18F4520

    TabelaTabelaTabelaTabela

    1....3 BitsBitsBitsBits dedededeconfiguraoconfiguraoconfiguraoconfigurao dodododoPIC18F4520PIC18F4520PIC18F4520PIC18F4520

    TabelaTabelaTabelaTabela

    1....4 BitsBitsBitsBits dedededeconfiguraoconfiguraoconfiguraoconfigurao dodododoPIC18F4520(Detalhado)PIC18F4520(Detalhado)PIC18F4520(Detalhado)PIC18F4520(Detalhado)

    Apresentamos a seguir uma tabela com a descrio de todos os bits de configurao doPIC18F4520:Oscilador RC, EC, LP, XT, HS, HS-PLL, RC-SOC2 com RA6,EC-OSC2 com RA6Fail-Safe Clock Monitor Enable Habilitado ou Desabilitado Internal External Switch Over ModeHabilitado ou DesabilitadoPower Up Timer Habilitado ou Desabilitado Brown Out Detect Habilitado ou Desabilitado BrownOut Voltage 2.5V, 2.7V, 4.5V ou 4.7V Watchdog Timer Habilitado ou DesabilitadoCCP2MX Pino RC1 ou RB3PortB A/D Enable PortB configurado como I/O Digital no reset ou configurado como A/D noreset

  • 8/10/2019 INTERRUPES.docx

    17/38

    Low Power Timer1 Osc Enable Habilitado ou Desabilitado Mster Clear Enable MCLRHabilitado ou RE3 Habilitado Stack Overflow Reset Habilitado ou Desabilitado Low VoltageProgram Habilitado ou Desabilitado Extended Instruction Enable Bit Habilitado ou DesabilitadoBackground Debug Habilitado ou Desabilitado Code Protect 0x0800 A 0x1fff Habilitado ouDesabilitado Code Protect 0X2000 A 0X3FFF Habilitado ou Desabilitado Code Protect 0X4000 A 0X5FFF Habilitado ou Desabilitado Code Protect 0X6000 A 0X7FFF Habilitado ouDesabilitado Code Protect Boot Habilitado ou Desabilitado Data EEPROM Code ProtectHabilitado ou Desabilitado Table Write Protect 0x2000 A 0x1fff Habilitado ou Desabilitado Table

    Write Protect 0x2000 A 0x3fff Habilitado ou Desabilitado Table Write Protect 0x4000 A 0x5fffHabilitado ou Desabilitado Table Write Protect 0x6000 A 0x7fff Habilitado ou DesabilitadoConfig Write Protect Habilitado ou Desabilitado Table Write Protect Boot Habilitado ouDesabilitado Data Ee Write Protect Habilitado ou Desabilitado Table Read Protect 0x0800 A0x1fff Habilitado ou Desabilitado Table Read Protect 0x2000 A 0x3fff Habilitado ou DesabilitadoTable Read Protect 0x4000 A 0x5fff Habilitado ou Desabilitado Table Read Protect 0x6000 A0x7fff Habilitado ou Desabilitado Table Read Protect Boot Habilitado ou Desabilitado Acompanhe:w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 24 de 74No painel de configurao do MikroC PRO, podemos visualizar e configurar os bits deconfigurao referente ao nosso microcontrolador PIC18F4520.

    FiguraFiguraFiguraFigura

    1....12121212 ConfiguraoConfiguraoConfiguraoConfigurao dosdosdosdosfusiveisfusiveisfusiveisfusiveis nononono MikroCMikroCMikroCMikroCPRO PRO PRO PRO

    Podemos configurar os bits de configurao de duas maneiras: Atravs do MikroC PRO, no momento da criao ou desenvolvimento do projeto ou atravs dosprogramas de gravao dos gravadores de PIC (WinPIC800, IC-Prog etc.)No primeiro campo de configurao dos fusiveis do MikroC PRO encontramos o campo deseleo de clock. Atravs desses campos podemos informar vrios tipos de osciladores ecircuitos de oscilao:ConfiguraoConfiguraoConfiguraoConfigurao dededede ClockClockClockClockTodo microcontrolador requer um circuito de oscilao pois quem d o sinal de "partida" e"sincronismo" para qualquer atividade interna da chip. A freqncia de operao de oscilao um dos agentes que determinam a velocidade de execuo das instrues domicrocontrolador.LP Low-power cristalXT Cristal ou ressonadorHS High-Speed cristal (cristal de alta velocidade) ou ressonadorHS + PLLHigh-Speed cristal ou ressonador com PLL habilitadaRC Resistor / Capacitor externoRCIO Resistor / Capacitor externo com pino de I/OEC Clock externoECIO Clock exteno com pino de I/OO PIC18F4520 pode funcionar com diversas fontes de osciladores:w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 25 de 74

    VamosVamosVamosVamos

    conhecerconhecerconhecerconhecer cadacadacadacadaumumumum dosdosdosdos tipostipostipostiposdedededeosciladores:osciladores:osciladores:osciladores:

    OsciladorOsciladorOsciladorOsciladorRCRCRCRC comcomcomcom pinopinopinopino

  • 8/10/2019 INTERRUPES.docx

    18/38

    RA6RA6RA6RA6 comocomocomocomosadasadasadasada dededede clockclockclockclock

    Este o tipo de oscilador mais simples que existe e tambm o mais barato, mas, por outrolado, o menos preciso, variando muito a tenso de trabalho, temperatura e tolerncias. Ocircuito RC deve ser ligado conforme a figura seguinte:

    OsciladorOsciladorOsciladorOsciladorRCRCRCRC comcomcomcom pinopinopinopinoRA6RA6RA6RA6 comocomocomocomo I/OI/OI/OI/Odededede usousousouso geralgeralgeralgeral

    Este o tipo de oscilador mais simples que existe e tambm o mais barato, mas, por outrolado, o menos preciso, variando muito a tenso de trabalho, temperatura e tolerncias. Ocircuito RC deve ser ligado conforme a figura seguinte:ModoModoModoModoHSPLLHSPLLHSPLLHSPLLNesta configurao o pino RA6 pode ser utilizado como I/O de uso geralHSPLL na verdade um modo em que podemos multiplicar o valor da freqncia de entradado cristal oscilador por 4. ideal para ambientes em que o dispositivo no pode gerar EMI(interferncia Eletromagntica). Este modo deve ser habilitado nos "fusveis de configuraes"no momento em que formos gravar o chip.FiguraFiguraFiguraFigura1....13131313 ---- ModoModoModoModo HSPLLHSPLLHSPLLHSPLLPor exemplo:Caso venhamos conectar ao PIC um cristal de 10 MHz entre os pinos OSC1 e OSC2 eativarmos o modo HSPLL no momento em que gravarmos o chip, executando seu ciclo demquina a 10MHz (10 MIPS - milhes de instrues por segundo).Exemplo: Frmula do ciclo de mquina com HSPLL ativado cristal de 8MHz Ciclo de mquina= (Fosc / 4 ) * 4 w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 26 de 74Ciclo de mquina = 8 MHz ou 0.125us Circuito de Oscilao EC com pino RA6 como I/O deuso geraleletrnicoEste modo de configurao utilizado quando temos uma fonte de clock em nosso circuitoObs: A fonte de clock dever estar livre de ruidos e deformaes.

    FiguraFiguraFiguraFigura

    1....14141414 ModoModoModoModo ECECECEC comcomcomcom pinopinopinopino RA6RA6RA6RA6comocomocomocomo I/OI/OI/OI/O dededede usousousousogeralgeralgeralgeral

    CircuitoCircuitoCircuitoCircuito

    dededede OscilaoOscilaoOscilaoOscilao EC comcomcomcom pinopinopinopino RA6RA6RA6RA6comocomocomocomo sadasadasadasada dedededecloclocloclockckckck

    eletrnicoEste modo de configurao utilizado quando temos uma fonte de clock em nosso circuitoPercebam que a sada de clock Fosc/4, ou seja, o prprio ciclo de mquina domicrocontrolador, a partir desse clock de sada, poderemos sincronizar outrosmicrocontroladores no circuito.

    Obs:Obs:Obs:Obs:

    A fontefontefontefonte dedededeclockclockclockclock deverdeverdeverdeverestarestarestarestar livrelivrelivrelivre dededederuidosruidosruidosruidos edeformaes.deformaes.deformaes.deformaes.

    FiguraFiguraFiguraFigura1....15151515 ModoModoModoModoECECECEC comcomcomcom

  • 8/10/2019 INTERRUPES.docx

    19/38

  • 8/10/2019 INTERRUPES.docx

    20/38

    OSCSENOSCSENOSCSENOSCSEN(SYSTEM(SYSTEM(SYSTEM(SYSTEMCLOCKCLOCKCLOCKCLOCKSWITCHSWITCHSWITCHSWITCH BIT)BIT)BIT)BIT)

    Atravs desse bit de configurao, podemos selecionar o modo de acionamento do segundooscilador de baixa frequncia do PIC, mas para isso faz necessrio habilitarmos o T1OSCENno TIMER1.Obs: Caso desejemos utilizar o segundo oscilador (T1OSO e T1OSI), e no venhamos aprogramar o TIMER1 corretamente, automaticamente o bit de configurao do OSCSEN ser

    desabilitado.

    ConfiguraoConfiguraoConfiguraoConfiguraodosdosdosdosFusveisFusveisFusveisFusveisdededede EnergiaEnergiaEnergiaEnergia

    PWPWPWPWRTENRTENRTENRTEN

    (SYSTEM(SYSTEM(SYSTEM(SYSTEMCLOCKCLOCKCLOCKCLOCKSWITCHSWITCHSWITCHSWITCHBIT)BIT)BIT)BIT)

    Atravs desse bit, podemos configurar o modo POWER para o acionamento do PIC, quandoeste bit estiver acionado o modo POWER-UP TIMER estar habilitado. O temporizador depower-up pode ser utilizado para fazer com que o chip permanea em reset poraproximadamente 72ms aps o chip ter sido ligado. E deve ser utilizado nos casos em que ochip no inicializa corretamente devido a um tempo muito elevado para a estabilizao da fontede alimentao ou do circuito de reset externo.BROWNBROWNBROWNBROWN----OutOutOutOutO detector de brown-out utilizado para provocar o reset da CPU no caso de a tenso dealimentao cair abaixo de um determinado limite. Uma vez que a tenso retorne ao seu valornominal, o circuito de reset liberado e o programa reiniciado.No PIC18F4520 podemos selecionar 4 tipos de tenses para o BROWN-OUT: 2.0V, 2.7V, 4.2Vou 4.5V.Nota:Nota:Nota:Nota: Antes de gravarmos um programa no microcontrolador PIC devemos "queimar" os fusivel deconfigurao informando qual o tipo de oscilador estamos utilizando em nosso hardware.w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 28 de 74Podemos habilitar ou desabilitar o detector de brown-out, basta selecionar o bit de configuraocaso desejemos habilitar o brown-out.

    WDTWDTWDTWDT---- WatchdogWatchdogWatchdogWatchdog TimerTimerTimerTimerEnEnEnEnableableableable (co(co(co(co dedededeguarda)guarda)guarda)guarda)

    O watchdog timer ou co de guarda um sistema interno ao microcontrolador que evita que oprograma pare em um determinado ponto. Imagine que voc desenvolveu uma aplicao e quepor um erro de software em certo momento o seu programa pra (entra em loop infinito). Casoo watchdog dog no seja resetado de tempos em tempos ele ir "estourar", ou seja, chegar aofinal da sua contagem fazendo com que o microcontrolador resete e reinicie todo o processo.O tempo mnimo para estouro do watchdog de 18 ms, porm podemos estender esse tempoatravs do postscale. Com essa funo podemos multiplicar o tempo mnimo de 18 ms com osseguintes multiplicadores do prescaler: 1:1; 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, 1:128.CCP2MXCCP2MXCCP2MXCCP2MXPodemos atravs desse bit definir se queremos multiplexar o mdulo CCP2 com o pino RC1(CCP2MX = 0) ou com o pino RB3 (CCP2MX = 1)DebugDebugDebugDebug

  • 8/10/2019 INTERRUPES.docx

    21/38

    Atravs desse bit , podemos habilitar o modo DEBUGGER no PIC. Nesse modo possvelemular um programa na prpria placa de testes. Emular consiste no processo de, junto com ocomputador, testar passo a passo o funcionamento do programa que est rodando nomicrocontrolador. Se esta opo estiver ativa, os pinos de gravao RB6 e RB7 deixam defuncionar como I/O's; caso contrrio, o funcionamento desses pinos fica normal.

    LVPLVPLVPLVP(Low(Low(Low(Low VoltagemVoltagemVoltagemVoltagemProgramming)Programming)Programming)Programming)

    Normalmente quando o PIC gravado, acionado uma tenso de 13Vcc no pino MCLR. Se a

    opo LVP estiver ativa, para gravar o PIC basta ter nivel lgico 1 no pino MCLR, mas nestemodo, aps a gravao o pino RA5 do PIC no poder ser utilizado como I/O.

    STVRENSTVRENSTVRENSTVREN

    (Stack(Stack(Stack(StackFull/UnderflowFull/UnderflowFull/UnderflowFull/UnderflowResetResetResetReset EnableEnableEnableEnableBit)Bit)Bit)Bit)

    O PIC18F4520 possui internamente 31 endereos de pilha. Quando habilitamos esse bitSTVREN, toda vez que ultrapassarmos o limite da pilha o microcontrolador ser resetado.

    reareareareadededede ProteesProteesProteesProteescontracontracontracontra leituraleituraleituraleitura eescritaescritaescritaescrita

    Code Protect 0x0800 a 0x1FFFCaso este bit esteja habilitado, protege contra leitura a memria de programa de 0x0800 a0x1FFF.Code Protect 0x2000 a 0x3FFFCaso este bit esteja habilitado, protege contra leitura a memria de programa de 0x2000 a0x3FFF.Code Protect 0x4000 a 0x5FFFCaso este bit esteja habilitado, protege contra leitura a memria de programa de 0x4000 a0x5FFF.Code Protect 0x6000 a 0x7FFFCaso este bit esteja habilitado, protege contra leitura a memria de programa de 0x6000 a0x7FFF.Data E Read ProtectCaso este bit esteja habilitado, protege contra leitura os 256 bytes da memria EEPROM(memria no voltil).Code Protect BootCaso este bit esteja habilitado, protege contra leitura a regio de memria Boot (rea damemria de programa) 0x0000 at 0x0FF0.Table Write Protect 0x0200 a 0x1FFFCaso este bit esteja habilitado, protege a memria de programa contra escrita por tabela noendereo especificado.Table Write Protect 0x2000 a 0x3FFFCaso este bit esteja habilitado, protege a memria de programa contra escrtita por tabela noendereo especificado.Table Write Protect 0x4000 a 0x5FFFCaso este bit esteja habilitado, protege a memria de programa contra escrtita por tabela noendereo especificado.Table Write Protect 0x6000 a 0x7FFF w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 29 de 74Caso este bit esteja habilitado, protege a memria de programa contra escrtita por tabela noendereo especificado.Data Write Protect

  • 8/10/2019 INTERRUPES.docx

    22/38

    Caso este bit esteja habilitado, protege contra escrita os 256 bytes da memria EEPROM(memria no voltil).Table Write Protect BootCaso este bit esteja habilitado, protege contra escrtita por tabela a rea de boot.Config Write ProtectCaso este bit esteja habilitado, protege contra escrita a rea de configurao domicrocontrolador.Table Read Protect 0x0800 a 0x1FFF

    Caso este bit esteja habilitado, protege a memria de programa contra leitura por tabela noendereo especificado.Table Read Protect 0x2000 a 0x3FFFCaso este bit esteja habilitado, protege a memria de programa contra leitura por tabela noendereo especificado.Table Read Protect 0x4000 a 0x5FFFCaso este bit esteja habilitado, protege a memria de programa contra leitura por tabela noendereo especificado.Table Read Protect 0x6000 a 0x7FFFCaso este bit esteja habilitado, protege a memria de programa contra leitura por tabela noendereo especificado.w.mecatronicadegaragem.blogspot.com

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 30 de 74

    Unidade 2Unidade 2Unidade 2Unidade 2---- Canais A/D Canais A/DCanais A/D Canais A/D

    Conversor A/D do PICConversor A/D do PICConversor A/Ddo PICConversor A/D do PICum valor de 4,8876.. mV, pois 5V/ (2E10 - 1) = 4,8876mV.O PIC18F4520 possui internamente 12 canais de A/D com resoluo de 10 bits cada. Atravsde um conversor A/D com resoluo de 10 bits e tenso de referncia de 5V, podemos obter

  • 8/10/2019 INTERRUPES.docx

    23/38

    Os conversores A/D dos PICs utilizam uma tcnica de aproximao sucessivas, normalmentecom resoluo de 10 bits, com clock selecionvel pelo usurio e mltiplas entradasmultiplexadas.Figura Figura FiguraFigura 2

    1---- Canais AD multiplexados Canais AD multiplexados Canais ADmultiplexados Canais AD multiplexados

    Os registradores que participam da configurao do conversor A/D so: ADCON0, ADCON1 e ADCON2.Nosso A/D possui resoluo de 10 bits (8 + 2 bits), onde os valores das converses so

    armazenados nos registradores ADRESH e ADRESL.Registrador ADCON0:Registrador ADCON0:Registrador ADCON0:Registrador ADCON0: ADCON0: ADCON0: ADCON0: ADCON0:Vejamos o funcionamento de cada bit desse registrador:w.mecatronicadegaragem.blogspot.com

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 31 de 74TabelaTabelaTabelaTabela 2

    1 ADCON0 ADCON0 ADCON0 ADCON0

    -------- CHS3CHS3CHS3CHS3 CHS2CHS2CHS2CHS2 CHS1CHS1CHS1CHS1CHS0CHS0CHS0CHS0 GO_DONEGO_DONEGO_DONEGO_DONE ADONADONADONADON

    CCCCHSHSHSHS3 ..3 ..3 ..3CHS0 CHS0 CHS0 CHS0: Bit de seleo de canal A/DFigura Figura Figura Figura 2 2 Seleo A/D Seleo A/D Seleo A/D Seleo A/DBit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0GO/DONEGO/DONEGO/DONEGO/DONE: Bit de status da converso A/D 0 - Converso A/Dno est sendo realizada 1 - Converso A/D est sendo realizada ADONADONADONADON: Liga ou desliga o A/D 0 - Conversor A/D desligado 1 - Conversor A/D ligado

    Registrador ADCON1:Registrador ADCON1:Registrador ADCON1:Registrador ADCON1: ADCON1: ADCON1: ADCON1: ADCON1:

    VVVVCFG1CFG1CFG1CFG1VCFG0VCFG0VCFG0VCFG0 PCFG3PCFG3PCFG3PCFG3PCFG2PCFG2PCFG2PCFG2 PCFG1PCFG1PCFG1PCFG1PCFG0PCFG0PCFG0PCFG0

    Vejamos o funcionamento de cada bit desse registrador: Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0VCFG1VCFG1VCFG1VCFG1: Bit de configurao de tenso de referencia (VREF-) 0 VREF-(AN2) 1 - VSSTabela Tabela Tabela

    Tabela 2

    2 Configurao Pinos A/D Configurao Pinos A/D Configurao

    Pinos A/D Configurao Pinos A/DVCFGVCFGVCFGVCFG0000: Bit de configurao de tenso de referencia (VREF+) 0 VREF+(AN3) 1 - VDD PCFG3, PCFG2, PCFG1, PCFG0: bits configurao do A/Dw.mecatronicadegaragem.blogspot.com

  • 8/10/2019 INTERRUPES.docx

    24/38

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 32 de 74Registrador ADCONRegistrador ADCONRegistrador ADCONRegistrador ADCON2222:::: ADCONADCONADCONADCON2222:

    : : :

    ADFMADFMADFMADFM

    ACQT2ACQT2ACQT2ACQT2 ACQT1ACQT1ACQT1ACQT1 ACQT0ACQT0ACQT0ACQT0 ADCS2ADCS2ADCS2ADCS2 ADCS1ADCS1ADCS1ADCS1 ADCS0ADCS0ADCS0ADCS0

    Vejamos o funcionamento de cada bit desse registrador: Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

    ACQT2 ACQT0ACQT2 .. ACQT0ACQT2 .. ACQT0ACQT2 .. ACQT0:Seleo de tempo deaquisio

    ADCS2 ADCS0ADCS2 .. ADCS0ADCS2 .. ADCS0ADCS2 .. ADCS0:Seleo do Clock doConversor A/D

    ADFM ADFM ADFM ADFM : Ajusta o formato do resultado da converso A/D 1 - Justifica adireita 0 - Justifica a esquerda w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 3 de 74O bit de ADFM tem a funo de organizar o resultado da converso A/D, de forma que o osvalores convertidos sejam justificados a direita ou a esquerda nos registradores ADRESH e ADRESL. Caso venhamos configurar ADFM = 1, organizamos o valor da converso a direita,ou seja, os oitos bits menos significativo ser armazendo em ADRESL, e os 2 bits maissignificativo sero armazenados em ADRESH.

    Caso ADFM = 0, justificaremos a esquerda os valores de converso, desta forma os oitos bitsmais significativos ficaro em ADRESH e os 2 menos significativo ficar em ADRESL.Frmula de converso analgico para digital:Frmula de converso analgico paradigital:Frmula de converso analgico para digital:Frmula de converso analgico para

  • 8/10/2019 INTERRUPES.docx

    25/38

    digital:Rad = ( Vin - Vref-) * 1023 / (Vref+ - Vref-) onde: Rad = Resultado da converso Vref+ e Vref- =valor de tenso de referncia mxima e mnima Vin = Tenso de entrada no pino A/D obs:1023 o valor mximo de converso do A/D, lembrando que o valor de 0 a 1023.Trabalhando com AD no MikroCTrabalhando com AD no MikroCTrabalhando com AD noMikroCTrabalhando com AD no MikroCNo MikroC utilizamos os seguinte funo para leitura do conversor A/D do PIC: Sintaxe:Na qual 'canal_AD' o canal do conversor AD do PIC que desejamos ler. O nmero do canal

    AD depende do tipo de PIC usado.Exemplo:Exemplo:Exemplo:Exemplo: A funo Adc_read salva o valor da converso AD (canal 0 - pino RA0) na varivel leitura_ad.Lembre-se que o valor da resoluo do AD do PIC18F45200 de 10 bits, e por esse motivodevemos utilizar uma varivel do tipo inteiro para armazenar o valor do A/D.uuuunsigned int nsigned int nsigned int nsigned intleitura_ad;

    //'cria varivel leitura_ad com ranger 0 a65535

    leitura_ad = Adc_Read(0);//'l canal ad0 do PIC e salva na varivelleitura_ad

    Adc_Read (canal_ AD) w.mecatronicadegaragem.blogspot.com

  • 8/10/2019 INTERRUPES.docx

    26/38

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 34 de 74Unidade 3Unidade 3Unidade 3Unidade 3

    Canal PWM do PICCanal PWM do PICCanalPWM do PICCanal PWM do PIC

    IntroduoIntroduoIntroduoIntroduoOs controles de potncia, inversores de freqncia, conversores para servomotor, fontechaveadas e muitos outros circuitos utilizam a tecnologia do PWM (Pulse Width Modulation) ou

    Modulao de Largura de Pulso como base de seu funcionamento.Fonte ChaveadaFonte ChaveadaFonte ChaveadaFonte ChaveadaServoMotoresServoMotoresServoMotoresServoMotoresInversores de FreqnciaInversores de FreqnciaInversores de FreqnciaInversores deFreqnciaPWM a abreviao de Pulse Width Modulation ou Modulao de Largura de Pulso. Para quese entenda como funciona esta tecnologia no controle de potncia, partimos de um circuitoimaginrio formado por um interruptor de ao muito rpida e uma carga que deve sercontrolada, conforme a figura abaixo:Quando o interruptor est aberto no h corrente na lmpada e a potncia aplicada nula. No

    instante em que o interruptor fechado, a carga recebe a tenso total da fonte e a potnciaaplicada mxima.Como fazer para obter uma potncia intermediria, digamos 50%, aplicada carga? Uma idia fazermos com que a chave seja aberta e fechada rapidamente de modo a ficar 50% dow.mecatronicadegaragem.blogspot.com

  • 8/10/2019 INTERRUPES.docx

    27/38

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 35 de 74 tempoaberta e 50% fechada. Isso significa que, em mdia, teremos metade do tempo com corrente emetade do tempo sem corrente. A potncia mdia e, portanto, a prpria tenso mdia aplicada carga neste caso 50% datenso de entrada.Figura Figura FiguraFigura 3

    1 Largura de Pulsos Largura de Pulsos Largura de PulsosLargura de Pulsos

    Veja que o interruptor fechado pode definir uma largura de pulso pelo tempo em que ele fica

    nesta condio, e um intervalo entre pulsos pelo tempo em que ele fica aberto. Os dois tempos juntos definem o perodo e, portanto, uma freqncia de controle. A relao entre o tempo emque temos o pulso e a durao de um ciclo completo de operao do interruptor nos defineainda o ciclo ativo.Variando-se a largura do pulso e tambm o intervalo de modo a termos ciclos ativos diferentes,podemos controlar a potncia mdia aplicada a uma carga. Assim, quando a largura do pulsovaria de zero at o mximo, a potncia tambm varia na mesma proporo (duty cycle),conforme est indicado na figura abaixo:Figura FiguraFigura Figura3

    2 Variao mnima ao mximo do duty Cicle do PWM. Variao mnima aomximo do duty Cicle do PWM. Variao mnima ao mximo do duty Cicle doPWM. Variao mnima ao mximo do duty Cicle do PWM.

    Este princpio usado justamente no controle PWM: modulamos (variamos) a largura do pulsode modo a controlar o ciclo ativo do sinal aplicado a uma carga e, com isso, a potncia aplicadaa ela.w.mecatronicadegaragem.blogspot.com

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 36 de 74

    Figura Figura Figura Figura 3

    3 Variao do duty cicle do sinalPWM Variao do duty cicle do sinalPWM Variao do duty cicle do sinalPWM Variao do duty cicle do sinalPWM

    TrabalTrabalTrabalTrabalhando com PWM noPIChando com PWM no PIChando com PWM noPIChando com PWM no PICO microcontrolador PIC18F45200 possui internamente 2 mdulos CCP(Capture/Compare/PWM Module), CCP1 e CCP2. Podemos manipular com grande facilidadeas instrues para gerao de sinal PWM no MikroC. Acompanhe:Os comandos para manipular o mdulo CCP1 so os seguintes: PWM1_Init PWM1_Set_Duty PWM1_Start

    PWM1_StopFuno de Inicializao da gerao do sinal PWM: No MikroC utilizamos a funo Pwm1_Init()para informar a freqncia do sinal PWM: SintaxeExemplo:Exemplo:Exemplo:Exemplo:

  • 8/10/2019 INTERRUPES.docx

    28/38

    onde: valor_da freqncia: fator da freqncia em Hz do sinal PWM. PS.: Consultar datasheetdo PIC utilizado para saber a freqncia de oscilao. PWM1_Init (4000) //inicia pwm comfreqncia de 4khzFuno de duty Cycle:Funo de duty Cycle:Funo de duty Cycle:Funo de duty Cycle: Atravs da funo PWM1_Set_Duty () podemos controlar o duty cycle do sinal PWM. O valordo duty cycle varia de 0 a 255, onde "0" igual a 0%, "127" igual a 50% e "255" igual a 100%.Sintaxe:onde:

    valor_duty_cycle: valor do tipo char (0 255) que determina a porcentagem do duty cyclePWM.Exemplo:Exemplo:Exemplo:Exemplo:PWM1_Set_Duty (192); // carrega duty cycle para 75%PWM1_Init (valor_da_freqncia em Hz) PWM1_Set_Duty (valor_duty_cycle)w.mecatronicadegaragem.blogspot.com

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 37 de 74Figura Figura FiguraFigura 3

    4 Variao do duty Cicle Variao do duty Cicle Variao do dutyCicle Variao do duty Cicle

    Para outros valores de duty cycle calculamos atravs da formula: (Percentual * 255) /100No caso de configurarmos o duty conforme a figura acima, devemos carregar o seguinte valor

    para:PWM1_Set_Duty(25);// carrega valor 26 pois : (10% * 255) / 100 = 25,5 , como somenteDuty de 10% podemos colocar valores inteiros entre 0 a 255, o valor ser arrendondado para25PWM1_Set_Duty(127);// carrega valor 127 pois : (50% * 255) / 100 = 127,50 , comoDuty de 50% somente podemos colocar valores inteiros entre 0 a 255, o valor serarrendondado para 127PWM1_Set_Duty(229);// carrega valor 229 pois : (90% * 255) / 100 = 229,50 , comoDuty de 90% somente podemos colocar valores inteiros entre 0 a 255, o valor serarrendondado para 229

    Funo de Start e Stop:Funo de Start e Stop:Funo de Start e Stop:Funo de Start e Stop: Atravs da funo Pwm_Start, damos incio a gerao do sinal PWM no PIC, e atravs dafuno Pwm_Stop finalizamos a gerao do sinal Pwm.Pwm_Start inicial a gerao do sinal PWM no mdulo CCP1 do PIC Pwm_Stopinterrompe a gerao do sinal PWM no mdulo CCP1 do PIC Sintaxe: w.mecatronicadegaragem.blogspot.com

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 38 de 74Unidade4Unidade

    TIMERS/COUNTERSTIMERS/COUNTERSTIMERS/COUNTERSTIMERS/COUNTERS

  • 8/10/2019 INTERRUPES.docx

    29/38

    4Unidade4Unidade4 ----OsOsOsOs

    Timers/Timers/Timers/Timers/CountersCountersCountersCounters

    Os timers so ferramentas internas dos microcontroladores em geral que servem paracontagem de tempo, eventos, temporizao entre outras funes.O PIC18F4520 possui internamente 4 TIMERS: TIMER0 TIMER1 TIMER2 TIMER3 Vamos conhecer cada um desses temporizadores:TIMER0TIMER0TIMER0TIMER0O TIMER0 um temporizador/contador de 8 ou 16 bits que possuem duas funes bsicas:Contagem de eventos externos (quando a entrada de clock feita por meio do pinoRA4/T0CKI;Temporizao (contagem de tempo) quando os pulsos de contagem proveniente do clockinterno do PIC (temporizao baseado no ciclo de mquina).O TIMER0 pode ser configurado para trabalhar com prescaler dedicado. O prescaler nada mais do que um contador/divisor programvel que utilizado para reduzir a freqncia do sinal declock aplicado ao TIMER0 por um fator conhecido.Figura Figura FiguraFigura 4

    1 DivisoDivisoDivisoDiviso dodododoPrescalerPrescalerPrescalerPrescaler

    O valor do prescaler pode ser configurado a partir dos bits T0PS2, T0PS1 e T0PS0 doregistrador T0CON (TIMER0 CONTROL REGISTER);conseguimos gerar tempos muito maioresO prescaler passa a ser uma importantssima ferramentas do timer, pois atravs deleQuando o TIMER0 configurado para operar no modo de 8 bits, podemos efetuar contagensde 0 a 255 (limite da capacidade para 8 bits). Quando a contagem chega at seu valor mximode 255, o prximo pulso acarretaria o que chamamos de "estouro de contagem", fazendo comque o valor de contagem de incio novamente a partir do 0 (zero).No caso anterior, caso tenhamos a interrupo do TIMER0 habilitada, no momento que ocorreo "estouro de contagem", seria gerado um pedido de interrupo do TIMER0.No modo 16 bits do TIMER0, seu funcionamento igual ao modo de 8 bits, porm neste cado afaixa de contagem de 0 a 65535.Os valores de iniciais de temporizao/contagem devem ser carregados nos registradoresespeciais intitulado de TMR0L (TIMER0 Module Low Byte Register) e TMR0H (TIMER0 ModuleHight Byte Register);Quando programamos os timers para atuarem como temporizadores, estamos considerandoque os pulsos que incrementam os registradores de contagem so proveniente do valor dooscilador / 4, ou seja, caso estivermos utilizando um cristal de 4MHz, iremos incrementar emuma unidade os registradores de contagem a cada 1 us, pois 4Mhz/4 = 1MHz = 1us(microsegundos).Dica:Dica:Dica:Dica:Repare que a unidade resultante da diviso da Frequencia do oscilador / 4 (ciclo de mquina)esta em MHz ( unidade de frequncia), neste caso para sabermos o tempo (periodo), bastadividir 1 / seu valor.w.mecatronicadegaragem.blogspot.com

  • 8/10/2019 INTERRUPES.docx

    30/38

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 39 de 74Para um cristal de 8 MHz teremos o seguinte tempo de ciclo de mquina: 1 / (8 / 4) = 0,5 us(microsegundos).

    OsOsOsOsRegistradoresRegistradoresRegistradoresRegistradoresrelacionadosrelacionadosrelacionadosrelacionados aoaoaoaoTIMER0TIMER0TIMER0TIMER0 so:so:so:so:

    Tabela TabelaTabela Tabela4

    1---- RegistradorRegistradorRegistradorRegistradorrelacionadosrelacionadosrelacionadosrelacionados comcomcomcom oTIMER0TIMER0TIMER0TIMER0

    TMR0LTMR0LTMR0LTMR0L um registrador de contagem de 8 bits que possui a funo dearmazenar a parte baixa do valor de contagem programada do TIMER0.TMR0HTMR0HTMR0HTMR0H um registrador de contagem de 8 bits que possui a funo de

    armazenar a parte alta do valor de contagem programada do TIMER0.Os registradores TMR0L e TMR0H juntos formam um nico registrador de 16 bits, que nospermite uma contagem mxima de 0 a 65535.INTCONINTCONINTCONINTCON um registrador de 8 bits responsvel pela configurao domodo de operao do TIMER0. Podemos definir atravs desse registrador o valor do prescalerque desejamos acionar, o modo de operao de contagem de 8 ou 16 bits, seleo da fonte declock (interna ou externa) para o timer, seleo de disparo do timer atravs de borda de subidaou borda de descida do clock externo no pino RA4/T0CK1. Abaixo segue o diagrama esquemtico do Timer0.w.mecatronicadegaragem.blogspot.com

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 40 de 74

    FiguraFiguraFiguraFigura4....2 DiagramaDiagramaDiagramaDiagramainternointernointernointerno dodododoTIMER0TIMER0TIMER0TIMER0

    O registrador T0CON responsvel pela configurao pelo modo de operao do Timer0, devital importncia conhecer todas as funes de seus bits.

    T0CON:T0CON:T0CON:T0CON:(TIMER0(TIMER0(TIMER0(TIMER0CounterCounterCounterCounterRegister)Register)Register)Register)

    TabelaTabelaTabelaTabela 4....2 T0CONT0CONT0CONT0CON

    TMR0ONTMR0ONTMR0ONTMR0ONT08BITT08BITT08BITT08BIT T0CST0CST0CST0CST0SET0SET0SET0SE PSAPSAPSAPSAT0PS2T0PS2T0PS2T0PS2 T0PS1T0PS1T0PS1T0PS1T0PS0T0PS0T0PS0T0PS0

    Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0TMR0ON: Bit de controle para ligar e desligar a contagem do TIMER0; 0 desabilita acontagem do TIMER0 1 - Habilita a contagem do TIMER0 T08BIT: Bit de seleo defuncionamento do TIMER0 em 8 ou 16 bits; 0 - TIMER0 configurado para funcionar comocontador/temporizador em 16 bits; 1 - TIMER0 esta configurado para funcionar como contador/temporizador de 8 bits; T0CS: Bit de seleo de fonte de clock para o TIMER0; 0 - A fonte de

    clock proveniente do meio interno do chip 1 - A fonte de clock proveniente do pino T0CKI(meio externo)T0SE: Bit de seleo de borda (vlido somente caso a fonte de clock seja pelo meio externo aochip)

  • 8/10/2019 INTERRUPES.docx

    31/38

    0 - Contagem do timer ocorre por borda de subida no Pino T0CKI 1 - O incremento do timerocorre na borda de descida no pino T0CKI /PSA: Bit de seleo da utilizao do prescaler;1 - TIMER0 no utiliza prescaler. A cada alterao do pulso de clock, corre incremento de umaunidade nos registradores de contagem.w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 41 de 74

    TabelaTabelaTabelaTabela

    4....3 ---- BitsBitsBitsBits dededede seleoseleoseleoseleodededede fontefontefontefonte dededede

    prescaler(Timerprescaler(Timerprescaler(Timerprescaler(Timer0)0)0)0)

    T0PS2T0PS2T0PS2T0PS2T0PS1T0PS1T0PS1T0PS1 T0PS0T0PS0T0PS0T0PS0PrescalerPrescalerPrescalerPrescaler

    Configurao do Prescaler:Como sabemos, atravs do prescaler conseguimos tempos maiores com os timers, paraentendermos melhor sua utilizao acompanhe o exemplo abaixo:Digamos que o ciclo de mquina no PIC sej de 1us e o TIMER0 esteja configurado no modo 8bits (contagem de 0 a 255) e sem o presacaler. O TIMER0 ira "estourar" sua contagem em256us. Agora digamos que para o mesmo anunciado anterior, configuramos e acionamos o prescalerpara 1:2. Nosso intervalo de "estouro" do TIMER0 no mais ser 256us mas sim 512us.Se ao invs de prescaler de 1:2 utilizarmos prescaler 1:32, o tempo agora ser de 256us x 32 =8192us.Como calcular o tempo de estouro do TIMER0? Para calcular o tempo de "estouro" do TIMERcom prescaler, utilizamos a seguinte frmula: Tempo de estouro: ciclo de mquina x prescaler x(modo 8 /16bits valor de Contagem ). Em que:Ciclo de mquina: o valor da relao entre: 1 / (Fosc / 4 ), onde Fosc justamente afrequencia do cristal.Obs: manter modo PLL desabilitado, iremos estudar esta funo mais adiante. Prescaler : ofator de diviso programado no prescaler.Modo 8/16bits: o modo de contagem programado no TIMER0, para 8 bits o valor 256, epara 16 bits, o valor ser deValor de contagem: o valor de carregagem no registrador de contagem TMR0H eTMRL.Exemplo:Precisamos ligar e desligar um rel a cada 1 segundo ( um segundo ligado e um segundodesligado), estamos utilizamdo um cristal de 8Mhz, utilizaremos para isso os recursos doTemporizador Timer0, acompanhe:Calculo do tempo de estouro do Timer0:Oregistradorregistradorregistradorregistrador INTCONINTCONINTCONINTCONO registrador INTCON possui diversar funes, entre elas a de habilitar algumas interrupesdo PIC (veremos mais adiante no nosso curso) e de armazenar os bits de estatus de estourodo TIMER0:

    INTCONINTCONINTCONINTCON(Interrupt(Interrupt(Interrupt(InterruptControl)Control)Control)Control)

    TMR0L = 0xF7;//carrega valores de contagem C2F7 equivale aT0CON = 0b10000110; //modo 16 bits, com prescaler 1:128, fonte de clock interno TMR0H =0xC2;Formula:Formula:Formula:Formula:Ciclo de Mquina x prescaler x (modo 8 /16 bits valor de carregem nos registradores decontagem) w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 42 de 74TabelaTabelaTabelaTabela 4....4 INTCONINTCONINTCONINTCON

  • 8/10/2019 INTERRUPES.docx

    32/38

    GIE/GIEHGIE/GIEHGIE/GIEHGIE/GIEH

    PEIE/GIELPEIE/GIELPEIE/GIELPEIE/GIELTMR0IETMR0IETMR0IETMR0IEINT0IEINT0IEINT0IEINT0IE RBIERBIERBIERBIETMR0IFTMR0IFTMR0IFTMR0IFINT0IFINT0IFINT0IFINT0IF RBIFRBIFRBIFRBIF

    Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0Iremos estudar todos esses bits mais adiante em nosso curso, pois eles tratam dasconfiguraes das interrupes, e neste momento no importante conhecer alguns deles.

    Vamos apresentar somente os bits que so utilizados nos TIMERS.INTCON. GIEH = bit de acionamento da "chave geral das interrupes" e habilitao dasinterrupes de alta prioridade0 - liga a chave geral das interrupes 1 - desliga a chave geral das interrupes INTCON.GIEL = bit de habilitao das interrupes de baixa prioridade 0 - TIMER0 no ocorreu estourode contagem (overflow)1 - TIMER0 ocorreu estouro de contagem (overflow). Este bit deve ser apagado por software.INTCON.TMR0IE = bit que habilita interrupo do TIMER0 na ocorrncia do estouro decontagem.0 - Desabilita interrupo do TIMER0 por ocorrencia de estouro de contagem (overflow) 1 -Habilita interrupo do TIMER0 por ocorrncia de estouro de contagem (overflow). INTCON.TMR0IF = bit sinalizador de estouro do TIMER0 0 - TIMER0 no ocorreu estouro de contagem(overflow)1 - TIMER0 ocorreu estouro de contagem (overflow). Este bit deve ser apagado por software. Aprendendo a programar os TIMER0:Conhecemos os registradores responsveis pela configurao do TIMER0 do PIC, agoravamos configur-los:Vamos nos recordar da frmula do TIMER0: Tempo de estouro: ciclo de mquina x prescaler x(modo 8 /16bits valor de contagem). Exemplo 1 :Se tivermos conectado ao nosso PIC um cristal de 8 MHz e o TIMER0 seja programado comotemporizador, com prescaler de 1:4, modo 8 bits e contagem inicial em TMR0L = 0, teremosento:Tempo de estouro: ciclo de mquina x prescaler x (modo 8 /16bits valor de contagem).Tempo de estouro: 0,5us * 4 *(255 - 0) Tempo de estouro: 510us Exemplo 2 :Se tivermos conectado ao nosso PIC um cristal de 8 MHz e o TIMER0 seja programado comotemporizador, com prescaler de 1:256, modo 16 bits e contagem inicial em TMR0L = 0 eTMR0H = 0, teremos ento:Tempo de estouro: ciclo de mquina x prescaler x (modo 8 /16bits valor de contagem).Tempo de estouro: 0,5us * 256 * (65536 - 0) Tempo de estouro: 8.388.608us, ou seja, 8, 388segundosModo contador do TIMER0 do PIC:Neste novo exemplo de programa, vamos programar o TIMER0 do PIC para trabalhar comocontador de pulsos externos. Neste modo, os pulsos externos, so aplicados no pinoRA0/T0CK1 do PIC. Devemos contar apenas 10 pulsos externos, que neste caso,configuraremos o TIMER0 do PIC no modo 8 bits com prescaler 1 : 1, e os pulsos sero lidospor borda de descida. Ao completar a contagem de 10 pulsos, o led conectado ao pino RB1 doPIC dever acender para sinalizar o fim da contagem.Esquema eltrico:Obs:Obs:Obs:Obs:Repare que este o tempo mximo de estouro do TIMER0w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 43 de 74FigFigFigFiguraurauraura4....3 AplicaoAplicaoAplicaoAplicao comcomcomcom o

  • 8/10/2019 INTERRUPES.docx

    33/38

    modomodomodomodo contadorcontadorcontadorcontador dodododoTIMER0TIMER0TIMER0TIMER0

    Para realizar o seguinte desafio necessrio configurar os seguintes registradores do TIMER0:INTCON.TMR0IF (Bit de estouro do TIMER0) TMR0L (registrador de contagem do TIMER0)T0CON (registrador de configurao do modo de operao do TIMER0)w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 4 de 74Programa:

    Estudo detalhado do programa:Repare que o nos comandos abaixo que o registrador T0CON foi configurado como contadorde pulsos externos, modo de operao do TIMER0 de 8 bits, com prescaler 1:1.O registrador de contagem TMR0L o registrador onde ser armazenado os valores decontagem dos pulsos externos, e neste caso ele foi pr configurado com o valor 246, devido anecessidade de contarmos apenas 10 pulsos. Devemos lembrar que os registradores decontagem do TIMER0 so incrementados em 1 unidade e contam para cima, neste caso, comodesejamos programar o TIMER0 para que a cada 10 pulsos no pino RA0/T0CK1 seja geradoum estouro, devemos carregar em TMR0L o valor da diferena entre o valor mximo decontagem para o modo 8 bits, que 256, pelo valor da quantidade de pulsos a ser contado,que neste cado 10. Ento teremos:Utilizaremos modo contador no Kit PICgenios quando utilizarmos o TIMER1 nos projetos. Maisadiante Iremos utilizar interrupes com nossos TIMERS/COUNTERS.TIMER1TIMER1TIMER1TIMER1O TIMER1:TIMER1:TIMER1:TIMER1:Realizamos nas unidades passadas um estudo no muito aprofundado sobre as funes ecaractersticas dos TIMERS do PIC. Agora chegou o momento de estudarmos mais'Microgenios | MicroControladores *'Site: w.Microgenios.com.br *'Autor: Fernando Simplicio de Sousa*'Programa exemplo: TIMER0_Contador.c'Cristal: 8MHz - modo HS *'Microcontrolador PIC18F45200 Microchip*'Tools: Kit PICgenios PIC18F Mdulo Profissional Microgenios'Configurao: DIP1 - Chave 09 -ON'Objetivo:'Este programa tem por objetivo ativar o modo contador do Timer0'NO PINO T1CKI, AO INVS DE T0CKI voidvoidvoidvoid main(){TRISD = 0; // 'define portd como sadaPORTD = 0;// 'zera portdTRISA.RA4 = 1; //'pino contador T0CKI configurado como entrada/*'obs: este pino naturalmente dreno aberto, neste caso necessrio pull-up 'ou pull-downexterno'calculo de temporizao de 1 segundo:'tempo = ciclo_maquina * prescaler * (modo 8/16 - valor inicial)'logo'valor inicial = 49911 ou C2F7h*/T0CON = 0B11101000;//'modo contador, prescaler off, borda descida, modo 8bits TMR0L =246; //'contar 10 pulsos | 256 - 10 = 246 carrega valores de contagem INTCON.TMR0IF = 0;//'apaga flag de estou do timer0 whilewhilewhilewhile (1){ ifififif (INTCON.TMR0IF==1){PORTD.RD0 = ~ PORTD.RD0; // 'inverte o valor do led1 TMR0L = 246; //'recarga do timer0INTCON.TMR0IF = 0; //'apaga flag de estou do timer0 }w.mecatronicadegaragem.blogspot.com

  • 8/10/2019 INTERRUPES.docx

    34/38

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 45 de 74profundamente os recursos e a programao dos registradores e modos de trabalho dessestemporizadores e contadores.O TIMER1 pode operar como temporizador ou como contador de 16 bits, suas caractersticasso muito parecida com a do TIMER0.Dizemos que o timer est operando como temporizador quando a referncia do clock deincremento da contagem realizada pelo clock interno do PIC, e dizemos que o timer estaoperando como contador quando a referncia do clock de incremento da contagem proveniente de um clock externo ao PIC. (pulso aplicado no pino RB6/T1OSO/T1CK1).

    TabelaTabelaTabelaTabela

    4....5 RegistradorRegistradorRegistradorRegistradorrelacionadosrelacionadosrelacionadosrelacionados

    comcomcomcom o TIMER1TIMER1TIMER1TIMER1 (as(as(as(as clulasclulasclulasclulas emememembranco)branco)branco)branco)

    Registradores de configurao do TIMER1:P1R1: um registrador onde armazenado os bits de status das interrupes e estouro dostimers.P1E1: um registrador de 8 bits onde habilitado as interrupes do PIC.TMR1L um registrador de contagem de 8 bits que possui a funo de armazenar a partebaixa do valor de contagem programada do TIMER0.TMR1H um registrador de contagem de 8 bits que possui a funo de armazenar a parte alta

    do valor de contagem programada do TIMER0.Os registradores TMROL e TMR0H juntos formam um nico registrador de 16 bits, que nospermite uma contagem mxima de 0 a 65535.T1CON um registrador de 8 bits responsvel pela configurao do modo de operao doTIMER1. Podemos definir atravs desse registrador o valor do prescaler que desejamosacionar, o modo de operao de contagem de 8 ou 16 bits, seleo da fonte de clock (internaou externa) para o timer, seleo de disparo do timer atravs de borda de subida ou borda dedescida do clock externo no pino RB6/T10S0/T1CK1.

    T1CON:T1CON:T1CON:T1CON:(TIMER1(TIMER1(TIMER1(TIMER1CONTROLCONTROLCONTROLCONTROL

    REGISTER):REGISTER):REGISTER):REGISTER):TabelaTabelaTabelaTabela 4....6 T1CONT1CONT1CONT1CON

    RD16RD16RD16RD16

    ------------ T1CKPS1T1CKPS1T1CKPS1T1CKPS1T1CKPS0T1CKPS0T1CKPS0T1CKPS0T10SCENT10SCENT10SCENT10SCENT1SYNCT1SYNCT1SYNCT1SYNCTMR1CSTMR1CSTMR1CSTMR1CSTMR1ONTMR1ONTMR1ONTMR1ON

    Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

    TabelaTabelaTabelaTabela

    4....7 BitsBitsBitsBits dededede

    seleoseleoseleoseleo dedededefontefontefontefonte dedededeprescalerprescalerprescalerprescaler

    T1CKPS1T1CKPS1T1CKPS1T1CKPS1T1CKPS0T1CKPS0T1CKPS0T1CKPS0

  • 8/10/2019 INTERRUPES.docx

    35/38

    PrescalerPrescalerPrescalerPrescalerRD16: bit de leitura e escrita em 16bits (utilizado para o modo comparador do canal CCP) 1 leitura e escrita em 16 bits habilitada 0 leitura e escrita em 16 bits desabilitada T1CKPS1;T1CKPS0: Bits de seleo de fonte de prescaler 1 1 1:8 1 0 1:4 0 1 1:2 0 0 1:1T1OSCEN: Habilitao do oscilador externo de baixa frequencia nos pinos T1OSO e T1OSI 0- Oscilador desligado 1 - Oscilador Ligado T1SYNC: Controle do sincronismo interno. CasoTMR1CS = 0, esse bit descartado 0 - Sincronismo ligadow.mecatronicadegaragem.blogspot.com

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 46 de 741 - Sincronismo desligado TMR1CS: Bit de seleo de clock; 0 - A base de clock para oTIMER1 interna (Fosc/4); 1 - Clock externo no pino RC0/T1CK1; TMR1ON: Habilita TIMER1;0 - TIMER1 desligado 1 - TIMER1 ligado Obs: Bit6 no implementado, lido como "0" Abaixo odiagrama simplificado do Timer1:

    FiguraFiguraFiguraFigura4....4 DiagramaDiagramaDiagramaDiagramainternointernointernointerno dodododoTIMER1TIMER1TIMER1TIMER1

    O TIMER1 opera de maneira idntica a do timer anterior, suas diferenas bsicas que estenovo timer pode operar como temporizador para o modo Capture/Compare para o modo CCP.Foi implementado neste novo Timer a possibilidade de ligarmos um outro cristal oscilador, deforma que nos permite ligar cristais de baixa freqncia, tais como 32,768 KHz, para maiorespreciso na temporizao. A figura apresenta o diagrama de funcionamento do TIMER1 operando com o oscilador debaixa freqncia.Nota:Nota:Nota:Nota:Obs:Obs:Obs:Obs: Este segundo cristal dever ser ligado entre os pinos RC0 e RC1. Emhiptese alguma poderemos dispensar o uso do cristal oscilador principal Fosc.w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 47 de 74

    FiguraFiguraFiguraFigura4....5 CircuitoCircuitoCircuitoCircuito internointernointernointerno

    dodododo modomodomodomodo RTCRTCRTCRTC A figura seguinte mostra para ns claramente uma aplicao em hardware do segundooscilador conectado ao nosso microcontrolador.

    FiguraFiguraFiguraFigura

    4....6 LigaoLigaoLigaoLigaododododo segundosegundosegundosegundoosciladorosciladorosciladoroscilador aoaoaoaomicrocontroladormicrocontroladormicrocontroladormicrocontrolador PICPICPICPIC

    ProgramandoProgramandoProgramandoProgramando

    o TIMER1TIMER1TIMER1TIMER1 dodododoPIC.PIC.PIC.PIC.

    Para exemplificar a utilizao do TIMER1 do PIC vamos analizar um exemplo de programa: OHardware:w.mecatronicadegaragem.blogspot.com

  • 8/10/2019 INTERRUPES.docx

    36/38

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 48 de 74

    FiguraFiguraFiguraFigura4....7 EsquemaEsquemaEsquemaEsquemaEletrnicaEletrnicaEletrnicaEletrnica

    Programa:w.mecatronicadegaragem.blogspot.comMicrogenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 49 de 74O programa acima configura o TIMER1 para operar em 16bits com prescaler 1:8, clock interno. A cada estouro do TIMER1, o led conectado o portd.rd0 invertido. Anlise detalhado do programa:Sabendo que nosso microcontrolador esta trabalhando com um cristal externo de 8MHz, vamoscalcular o tempo de estouro do TIMER1:

    ConfiguraoConfiguraoConfiguraoConfiguraododododoTIMER1:TIMER1:TIMER1:TIMER1:

    Modo de Operao: 16 bits (timer1 somente opera no modo 16 bits) Fonte de oscilao: Ciclointerno. Prescaler: 1:8

    CalculoCalculoCalculoCalculodededede EstouroEstouroEstouroEstouro dodododoTIMER1:TIMER1:TIMER1:TIMER1:

    Frmula: Tempo: ciclo de mquina * prescaler * (modo 16bits valor de carga) PortantoTempo: 0.5 * 8 * (65536 0) = 262.144us ou 262msTIMER2TIMER2TIMER2TIMER2::::O TIMER2 um timer de 8 bits com recarga automtica. Esse TIMER tem um registrador deconfigurao, um de contagem e outro de comparao. Ele possui um registrador de contagemde 8 bits ( 0 a 255) chamado TMR2. Diferentemente dos outros timers, o TIMER2 possui umprescale e um postscaler. Os registradores especiais responsvel pela configurao detemporizao do TIMER2 so:'Microgenios | MicroControladores *'Site: w.Microgenios.com.br *'Autor: Fernando Simplicio de Sousa*'Programa exemplo: TIMER1.c'Cristal: 8MHz - modo HS *'Microcontrolador PIC18F45200 Microchip*'Tools: Kit PICgenios PIC18F Mdulo Profissional Microgenios'Configurao: DIP1 - Chave 09 -ON'Objetivo:

  • 8/10/2019 INTERRUPES.docx

    37/38

    'Este programa tem por objetivo ativar a temporizao mxima do TIMER1'utilizando cristal de 8Mhz voidvoidvoidvoid main(){'tempo = ciclo_maquina * prescaler * (modo 16 - valor inicial)'logoTRISD = 0; //'define portb como saidaPORTD = 0;//'apaga todos os leds conectados ao portdTMR1L = 0; //'carrega valor de contagem baixa do TIMER1TMR1H = 0; //'carrega valor de contagem alta do TIMER1

    PIR1.TMR1IF = 0;//'apaga flag de estouro do TIMER1ifififif (PIR1.TMR1IF == 1) {TMR1L = 0; //'carrega valor de contagem baixa do TIMER1TMR1H = 0; //'carrega valor de contagem alta do TIMER1PIR1.TMR1IF = 0;//'apaga flag de estouro do TIMER1PORTD.RD0 = ~PORTD.RD0; //'inverte o valor do led1 }w.mecatronicadegaragem.blogspot.com

    Microgenios Treinamentos, Kits de desenvolvimento e muito mais... Pgina 50 de 74

    T2CONT2CONT2CONT2CON

    (TIMER2(TIMER2(TIMER2(TIMER2CONTROLCONTROLCONTROLCONTROLREGISTER):REGISTER):REGISTER):REGISTER):ConfigurConfigurConfigurConfiguraaaa o setupsetupsetupsetupdodododo TIMER2;TIMER2;TIMER2;TIMER2;

    TMR2: Registrador de contagem do TIMER2 (8 bits); PR2: Registrador de comparao doTIMER2Dizemos que o TIMER2 um timer com recarga automtica pois quando o valor carregado emPR2 igual ao de contagem TMR2, o valor de TMR2 zerado e inicia-se uma nova contagem,ou melhor dizendo, temporizao.

    TabelaTabelaTabelaTabela

    4....8 RegistradoresRegistradoresRegistradoresRegistradoresresponsveisresponsveisresponsveisresponsveispelapelapelapelaconfiguraoconfiguraoconfiguraoconfigurao dodododoTIMER2TIMER2TIMER2TIMER2

    Os registradores relacionados com o TIMER2 so: Atravs do registrador T2CON, podemos configurar o modo de operao do TIMER2, taiscomo: valor do prescale e postcale e ligar ou desligar o timer2.Veja o diagrama esquemtico de construlo do TIMER2: (procure sempre comparar umTIMER com o outro, pois dessa forma voc saber qual mais adequado para sua aplicao).

    FiguraFiguraFiguraFigura

    4....8 DiagramaDiagramaDiagramaDiagramadedededeconstruoconstruoconstruoconstruointernainternainternainterna dodododo

    TIMER2TIMER2TIMER2TIMER2RegistradoresRegistradoresRegistradoresRegistr adores

    dedededeconfiguraoconfiguraoconfiguraoconfigurao dodododo

  • 8/10/2019 INTERRUPES.docx

    38/38

    TIMER2:TIMER2:TIMER2:TIMER2:

    T2CON:T2CON:T2CON:T2CON:

    (TIMER2(TIMER2(TIMER2(TIMER2CONTROLCONTROLCONTROLCONTROLREGISTER):REGISTER):REGISTER):REGISTER):