microcontroladoresmmicrocontroladoresmicrocontroladores ... pic18f... · microgenios –...

74
Microgenios – Treinamentos, Kits de desenvolvimento e muito mais... Página 1 de 74 Microcontroladores Microcontroladores Microcontroladores Microcontroladores PIC PIC PIC PIC Família Família Família Família PIC18F PIC18F PIC18F PIC18F Microchip Microchip Microchip Microchip Autor: Fernando Simplicio de Sousa Fabio Perkowitsch Mulero Equipe Microgenios Cursos e Treinamentos sobre Microcontroladores. www.microgenios.com.br www.portalwebaula.com.br Fone: 11 5084-4518 | 3384-5598 www.mecatronicadegaragem.blogspot.com

Upload: dangquynh

Post on 09-Nov-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

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

    MicrocontroladoresMicrocontroladoresMicrocontroladoresMicrocontroladores PICPICPICPIC FamliaFamliaFamliaFamlia PIC18FPIC18FPIC18FPIC18F MicrochipMicrochipMicrochipMicrochip

    Autor: Fernando Simplicio de Sousa Fabio Perkowitsch Mulero

    Equipe Microgenios

    Cursos e Treinamentos sobre Microcontroladores. www.microgenios.com.br

    www.portalwebaula.com.br

    Fone: 11 5084-4518 | 3384-5598

    www.mecatronicadegaragem.blogspot.com

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

    Livro:Livro:Livro:Livro: Microcontroladores PIC Famlia PIC18F Microchip

    Todos os direitos reservados. Proibida a reproduo total ou parcial, por qualquer meio ou processo, especialmente por sistemas grficos, microflmicos, fotogrficos, reprogrficos, fonogrficos, videogrficos, internet, e-books. Vedada a memorizao e/ou recuperao total ou parcial em qualquer sistema de processamento de dados e a incluso de qualquer parte da obra em qualquer programa jusciberntico. Essas proibies aplicam-se tambm as caractersticas grficas da obra e a sua editorao. A violao dos direitos autorais punvel como crime (art. 184 e pargrafos, do cdigo penal, cf. Lei n6. 895, de 17.12.80) com pena de priso e multa, conjuntamente com busca e apreenso e indenizaes diversas (artigos 102, 103 pargrafo nico, 104, 105, 106 e 107 itens 1, 2, 3 da lei n. 9.610, de 19/06/98, lei dos direitos autorais).

    Eventuais erratas estaro disponveis no site da Microgenios para download.

    Dedicatria:Dedicatria:Dedicatria:Dedicatria: Dedico esse livro a Minha famlia e a equipe Microgenios Advertncia:Advertncia:Advertncia:Advertncia:

    As informaes e o material contido neste livro so fornecidos sem nenhuma garantia quer explcita, ou implcita, de que o uso de tais informaes conduzir sempre ao resultado desejado. Tanto o editor quanto o autor no podem ser responsabilizados por qualquer tipo de reivindicao atribuda a erros, omisses ou qualquer outra impreciso na informao ou material fornecido neste livro, e em nenhuma hiptese podem ser incriminados direta ou indiretamente por qualquer dano, perda, lucros cessantes, etc., devido ao uso destas informaes.

    www.mecatronicadegaragem.blogspot.com

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

    PrefcioPrefcioPrefcioPrefcio Esta obra foi concebida com o intuito de preparar os estudantes, professores e profissionais da rea tcnica para a criao de projetos com os microcontroladores da famlia PIC, utilizando como ferramenta uma linguagem de programao de alto nvel, neste material escolhemos para abordar a linguagem C, que uma das linguagens mais poderosas e portveis, fato este que a tornou amplamente utilizada, primeiramente para a criao de programas aplicativos para PC e mais tarde em sistemas embarcados microcontrolados.

    Trabalhar com uma linguagem de alto nvel, como C, para criar programas para microcontroladores, exige do profissional alm de um bom conhecimento de lgica de programao e habilidade com a linguagem, um slido conhecimento da estrutura de hardware do microcontrolador utilizado, de forma a extrair deste o mximo de funcionalidade de seus perifricos internos.

    Esta obra estuda paralelamente hardware e software, propiciando um conhecimento completo ao profissional e tornando-o apto a desenvolver suas prprias aplicaes, alm disso, vale a pena ressaltar a preocupao, por parte do Centro de Tecnologia Microgenios, em priorizar um estudo gradual e prtico, para isso usamos os kits de desenvolvimento PICgenios PIC18F, como base para a realizao de diversas experincias que complementam e fixam o aprendizado.

    Um ponto de destaque da abordagem do treinamento o uso e detalhamento da IDE de desenvolvimento MikroC PRO (www.mikroe.com) a qual apesar das limitaes da verso de demonstrao gratuita mostra-se uma excelente ferramenta de desenvolvimento e simulao.

    De maneira alguma este material apresentado como nica fonte de estudo sobre o assunto, devendo aqueles que necessitarem se aprofundar nos tpicos aqui estudados buscar outras fontes de pesquisa.

    Por fim a equipe Microgenios agradece a ateno de todos e deseja bons estudos e projetos.

    Fernando Simplicio de Sousa Fabio Perkowitsch Mulero

    Equipe Microgenios

    Cursos e Treinamentos sobre Microcontroladores.

    www.microgenios.com.br

    www.portalwebaula.com.br

    Fone: 11 5084-4518 | 3384-5598

    Deus seja louvado!

    www.mecatronicadegaragem.blogspot.com

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

    UNIDADE 1 - O MICROCONTROLADOR PIC ......................................................6

    Desempenho da famlia PIC ....................................................................................................................................................................................................................................................6666 Tipos de Memria de Programa .........................................................7 Tipos de memrias de programas disponveis nos PICs: ................................7

    O PIC18F4520........................................................................................................................................................................................................................................................................................................7777 Veja em seguida as principais caractersticas do PI18F4520 ...........................7 Tipos de encapsulamentos: ...........................................................7

    Estrutura interna do PIC18F4520 ......................................................9 Descrio das funes dos pinos do PI18F4520 .......................................10 Tipos de Memrias ..................................................................11 Vamos exemplificar um processo de gravao na memria de programa do PIC. ..........13

    Introduo as portas de I/O ........................................................................................................................................................................................................................................16161616 O PORTA..............................................................................17 Registrador PORTA ..................................................................18 PORTA ..............................................................................18 Registrador TRISA ..................................................................18 Leitura do LATCH de um pino do PIC .................................................18

    O PORTB..............................................................................19 O PORTC..............................................................................19 O PORTD..............................................................................20 O PORTE..............................................................................20 Reset................................................................................21 Os PICs possuem diversos tipos de reset: ...........................................21

    Ciclos de mquina....................................................................21 Qual a freqncia real de execuo das instrues do nosso microcontrolador? .....21

    Os bits de configurao (fusveis) ..................................................22 Mapa dos bits de configurao do PIC18F4520 .........................................23 Configurao de Clock................................................................24 Vamos conhecer cada um dos tipos de osciladores: ...................................25 Configurao dos Fusveis de Energia ...............................................27

    UNIDADE 2 - CANAIS A/D .................................................................30

    Conversor A/D do PIC....................................................................................................................................................................................................................................................................30303030 Registrador ADCON0:........................................................................................................................................................................................................................................................................30303030 ADCON0:..............................................................................30

    Registrador ADCON1:........................................................................................................................................................................................................................................................................31313131 ADCON1:..............................................................................31

    Registrador ADCON2:........................................................................................................................................................................................................................................................................32323232 ADCON2:..............................................................................32 Trabalhando com AD no MikroC ........................................................33

    UNIDADE 3 CANAL PWM DO PIC ...........................................................34

    Introduo ........................................................................................................................................................................................................................................................................................................34343434 Trabalhando com PWM no PIC ..........................................................36

    UNIDADE 4 - TIMERS/COUNTERS ............................................................38

    Os Timers/Counters............................................................................................................................................................................................................................................................................38383838 TIMER0...............................................................................38 Os Registradores relacionados ao TIMER0 so: .......................................39 T0CON: (TIMER0 Counter Register) ...................................................40

    O registrador INTCON.................................................................41 INTCON (Interrupt Control) .........................................................41

    TIMER1...............................................................................44 O TIMER1: ..........................................................................44 T1CON: (TIMER1 CONTROL REGISTER): ..................................................45 Programando o TIMER1 do PIC. .......................................................47 Configurao do TIMER1: ............................................................49 Calculo de Estouro do TIMER1: ......................................................49

    TIMER2 :.............................................................................49 T2CON (TIMER2 CONTROL REGISTER): Configura o setup do TIMER2; ......................50 Registradores de configurao do TIMER2: ...........................................50

    TIMER3...............................................................................51 O TIMER3 : .........................................................................51 Registradores de configurao do TIMER3: ...........................................52

    www.mecatronicadegaragem.blogspot.com

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

    UNIDADE 5 PROGRAMANDO AS INTERRUPES DO PIC .........................................53

    As Interrupes do PIC18F4520 ................................................................................................................................................................................................................................53535353 Introduo...........................................................................54 Como funciona as interrupes? .....................................................55 Registradores que so usados para controlar as interrupes; .......................56

    UNIDADE 6 PROGRAMANDO A INTERRUPO EXTERNA ..........................................61

    INT0 ................................................................................................................................................................................................................................................................................................................................61616161 Vamos conhecer os registradores relacionados a INT0: ................................62 Registradores responsveis pelas configuraes gerais das interrupes: ............62 Registradores responsveis pela habilitao da interrupo externa INT0 ............62 Registrador responsvel pelo tipo de disparo de INT0: ..............................62

    INT1 ................................................................................................................................................................................................................................................................................................................................62626262 Programando a interrupo externa INT1 ..............................................62 Vamos conhecer os registradores relacionados a INT1: ...............................63 Registradores responsveis pelas configuraes gerais das interrupes: ............63 Registradores responsveis pela habilitao da interrupo externa INT1 ............63

    INT2 ................................................................................................................................................................................................................................................................................................................................63636363 Registrador responsvel pelo tipo de disparo de INT2: ..............................63

    Vamos conhecer os registradores relacionados a INT2: ................................64 Registradores responsveis pela habilitao da interrupo externa INT2 ............64 Registrador responsvel pelo tipo de disparo de INT2: ..............................64

    Interrupo por mudana de estado ................................................................................................................................................................................................................64646464 Vamos conhecer os registradores relacionados a interrupo RB: ......................65 Registradores responsveis pelas configuraes gerais das interrupes: ............65 Registradores responsveis pela habilitao da interrupo externa RB ..............65

    UNIDADE 7 EXEMPLOS DE PERIFRICOS ....................................................66

    Controle de display LCD........................................................................................................................................................................................................................................................66666666 Projetos com displays LCD: ..........................................................66

    Varredura de displays de 7 segmentos ....................................................................................................................................................................................................67676767 Projetos com displays de 7 segmentos: ...............................................67

    Varredura de Teclado matricial ............................................................................................................................................................................................................................67676767 Projetos com teclados matriciais: ...................................................68

    Acionamento de Leds........................................................................................................................................................................................................................................................................68686868 Projetos com com Leds................................................................68

    Conversor Analgico digital (A/D) ................................................................................................................................................................................................................68686868 Projetos com os conversores A/D do PIC ..............................................69

    Controle PWM....................................................................................................................................................................................................................................................................................................69696969 Projetos com os PWM..................................................................69

    UNIDADE 8 ANEXOS ....................................................................70

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

    UNIDADE 9 FIGURAS ....................................................................73

    UNIDADE 10 TABELAS ...................................................................74

    www.mecatronicadegaragem.blogspot.com

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

    Unidade 1Unidade 1Unidade 1Unidade 1 ---- OOOO MicrocontroladorMicrocontroladorMicrocontroladorMicrocontrolador PICPICPICPIC

    Os microcontroladores PIC so fabricados pela empresa Microchip. Existem basicamente quatro 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 dados em 32 bits.

    O PIC possui uma arquitetura interna do tipo Harvard. A diferena entre essa arquitetura e as tradicionais, do tipo Von-Neumann, que ela possui um barramento para o programa e outro para os dados, diferente da arquitetura tradicional em que um barramento tanto de dados como de endereo.

    O aumento no tamanho da palavra de programa possibilita um aumento no nmero de instrues: os PICs de 12 bits (12C508, 12C509, 12CE518, 16C54, 16C55) possuem apenas 33 instrues, os de 14 bits (12C671, 12C672, 12CE673, 12C674, 14000, 16C55x) possuem 35 instrues e os de 16 bits (17C4x, 17C75X, 17C76X, 18C2XX, 18C4XX) possuem 77 instrues.

    FiguraFiguraFiguraFigura 1111....1111 EvoluoEvoluoEvoluoEvoluo dadadada FamliaFamliaFamliaFamlia PICPICPICPIC

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

    DesempenhoDesempenhoDesempenhoDesempenho dadadada famliafamliafamliafamlia PICPICPICPIC

    Capacidade de pipeline (enquanto executa uma instruo, o processador busca a prxima instruo 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 por 4 antes de executar a instruo (falaremos mais sobre esse tpico adiante).

    Cada Instruo ocupa uma posio de memria de programa (FLASH).

    Tempo de execuo das instrues fixa, com exceo das instrues de desvios que consomem dois ciclos de mquina.

    Outra caracterstica importante da arquitetura PIC reside na semelhana e compatibilidade entre os diversos microcontroladores membros de sua famlia. Isto facilita grandemente a migrao de microcontrolador para outro, bastando mudar, em alguns casos, apenas alguns comandos no programa, pois partes dos registradores internos no se diferem muito entre si.

    Nota:Nota:Nota:Nota:

    As famlias PIC14 e PIC17 esto obsoletas.

    www.mecatronicadegaragem.blogspot.com

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

    TiposTiposTiposTipos dededede MemriaMemriaMemriaMemria dededede ProgramaProgramaProgramaPrograma

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

    TiposTiposTiposTipos dededede memriasmemriasmemriasmemrias dededede programasprogramasprogramasprogramas disponveisdisponveisdisponveisdisponveis nosnosnosnos PICs:PICs:PICs:PICs:

    ROMROMROMROM: Memria do tipo no voltil gravadas na fbrica pelo processo conhecido como 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 permitem uma nica gravao. So inviveis nas fases de implantao e desenvolvimento de equipamentos. Esses chips so identificados pelo sufixo "C".

    EEPROMEEPROMEEPROMEEPROM: Podemos encontrar chips com memria do tipo EEPROM. Normalmente so mais caros que os dispositivos ROM e OTP e podem ser identificados 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 memria so indicados para etapas de desenvolvimento e testes at mesmo para implantaes finais. Permitem no mximo 1000 ciclos de gravaes/apagamento, possuem um custo relativamente mediano com relao aos outros chips.

    OOOO PIC18F4520PIC18F4520PIC18F4520PIC18F4520

    O PIC18F4520 um microcontrolador que possui memria do tipo FLASH, que nos representa uma grande facilidade em desenvolvimentos de projetos e prottipos pois no requer apag-lo atravs de luz-ultravioleta como as verses antigas que utilizavam EEPROM, com tecnologia CMOS (baixssimo consumo) fabricado pela empresa Microchip Technology.

    VejaVejaVejaVeja emememem seguidaseguidaseguidaseguida asasasas principaisprincipaisprincipaisprincipais caractersticascaractersticascaractersticascaractersticas dodododo PI18F4PI18F4PI18F4PI18F4520520520520

    Microcontrolador de 40 pinos; Memria de programa FLASH 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 000 ciclos de escrita e leitura na memria de programa Flash Permite 1.000.000 ciclos de leitura e escrita na E2PROM Reteno de dados na Flash de 40 anos Detector de baixa voltagem programvel Watchdog timer com oscilador prprio e programvel Trs pinos de interrupo externa. 4 Temporizadores/contadores (TIMER0, TIMER1, TIMER2, TIMER3)

    TiposTiposTiposTipos dededede encapsulamentos:encapsulamentos:encapsulamentos:encapsulamentos:

    As primeiras verses do PIC eram baseadas em encapsulamentos do tipo DIP40, hoje os dispositivos de 40 pinos ainda so muito comuns, porm de acordo com a aplicao e os perifricos internos presentes no Chip eles podem ser encontrados em diversos encapsulamentos como:

    DIP Dual In-line Pin

    PLCC Leadless Chip Carrier.

    TQFP Thin Quad Flat Pack.

    www.mecatronicadegaragem.blogspot.com

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

    Figura Figura Figura Figura 1111....2222 ---- Encapsulamentos Encapsulamentos Encapsulamentos Encapsulamentos

    www.mecatronicadegaragem.blogspot.com

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

    Nosso estudo ser baseado em microcontroladores com o encapsulamento DIP (Dual In-line Pin), devido facilidade de utilizao e disponibilidade no mercado, porm no h grandes dificuldades para se migrar para outros encapsulamentos, basta analisar o datasheet do microcontrolador.

    EstruturaEstruturaEstruturaEstrutura internainternainternainterna dodododo PIC18F4520PIC18F4520PIC18F4520PIC18F4520

    FiguraFiguraFiguraFigura 1111....3333 DiagramaDiagramaDiagramaDiagrama internointernointernointerno dodododo PIC18F4520PIC18F4520PIC18F4520PIC18F4520

    www.mecatronicadegaragem.blogspot.com

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

    DescrioDescrioDescrioDescrio dasdasdasdas funesfunesfunesfunes dosdosdosdos pinospinospinospinos dodododo PI18F4520PI18F4520PI18F4520PI18F4520

    O PI18F4520 possui no total de 34 pinos de I/O divididos entre as PORTA, PORTB, PORTC, PORTD e PORTE.

    PORTAPORTAPORTAPORTA: encontramos 7 pinos fsicos intitulados de RA0 a RA7 que podem ser utilizados como I/O de uso geral ou como conversor analgico/ digital A/D, alm de possuir tambm a funo de deteco de baixa tenso (LVD), referncia analgica do A/D e contador externo.

    PORTBPORTBPORTBPORTB: encontramos 8 pinos intitulados de RB0 a RB7 configurveis como I/O de uso geral. Nesse port podemos trabalhar com trs interrupes externas, mdulo CCP 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 modos SPI, I2C e UART.

    PORTDPORTDPORTDPORTD: encontramos 8 pinos intitulados de RC0 a RC7 que pode ser configurado como I/O de uso geral ou ser configurado como PSP para ter sada TTL (por exemplo: interfaceamento com microprocessadores ).

    PORTEPORTEPORTEPORTE: podemos utiliz-lo como PORT de I/O de uso geral ou utilizar os pinos de WR e CS para acesso ao modo paralelo Slave Port (acesso a memria externa por exemplo).

    Abaixo segue com detalhes a funo de cada pino do microcontrolador PIC18F4520.

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP) FunoFunoFunoFuno TipoTipoTipoTipo DescrioDescrioDescrioDescrio

    2 RA0 AN0

    I/O Entrada

    Entrada e sada de uso geral Entrada do conversor AD0

    3 RA1 AN1

    I/O Entrada

    Entrada e sada de uso geral Entrada do conversor AD1

    4 RA2 AN2 Vref- CVref

    I/O Entrada Entrada Sada

    Entrada e sada de uso geral Entrada do conversor AD2 Entrada de referncia baixa do A/D Sada de tenso da referencia do comparador

    5 RA3 AN3 Vref+

    I/O Entrada Entrada

    Entrada e sada de uso geral Entrada do conversor AD3 Entrada de referncia alta do A/D

    6 RA4 T0CKI C1OUT

    I/O Entrada Sada

    Entrada e sada de uso geral Entrada de clock timer0 Sada do comparador 1

    7 RA5 AN4 /SS HLVDIN C2OUT

    I/O Entrada Entrada Entrada Saida

    Entrada e sada de uso geral Entrada do conversor AD4 Entrada de seleo SPI Detector de alta/baixa voltagem. Sada do comparador 2

    13 OSC1 CLKI RA7

    Entrada Entrada I/O

    Entrada do cristal oscilador Entrada do clock externo Entrada e sada de uso geral

    14 OSC2 CLKO RA6

    Sada Sada I/O

    Sada do cristal oscilador Entrada do clock exteno Entrada e sada de uso geral

    33 RB0 INT0 FLT0 AN12

    I/O Entrada Entrada Entrada

    Entrada e sada de uso geral Interrupo externa 0 Entrada de erro PWM para CCP1 Entrada analgica 12

    34 RB1 INT1 AN10

    I/O Entrada Entrada

    Entrada e sada de uso geral Interrupo externa 1 Entrada analgica 10

    35 RB2 INT2 AN8

    I/O Entrada Entrada

    Entrada e sada de uso geral Interrupo externa 2 Entrada analgica 8

    36 RB3 AN9 CCP2**

    I/O Entrada I/O

    Entrada e sada de uso geral Entrada analgica 9 Entrada de captura 2, sada de comparao 2 e sada PWM 2

    37 RB4 KBI0 AN11

    I/O Entrada I/O

    Entrada e sada de uso geral Pino de interrupo por mudana de nvel Entrada analgica 11

    38 RB5 KBI1 PGM

    I/O Entrada I/O

    Entrada e sada de uso geral Interrupo por mudana de estado Pino de habilitao ICSP baixa voltagem (In-Circuit Debugger)

    39 RB6 KBI2 PGC

    I/O Entrada I/O

    Entrada e sada de uso geral Interrupo por mudana de estado Pino de clock do ICSP

    40 RB7 I/O Entrada e sada de uso geral

    www.mecatronicadegaragem.blogspot.com

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

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP) FunoFunoFunoFuno TipoTipoTipoTipo DescrioDescrioDescrioDescrio

    KBI3 PGD

    Entrada I/O

    Interrupo por mudana de estado Pino de dados do ICSP

    15 RC0 T10S0 T1CKI

    I/O Sada Entrada

    Entrada e sada de uso geral Sada do clock do Timer 1 Clock externo Timer1 / Timer3

    16 RC1 T10S1 CCP2**

    I/O Entrada Sada

    Entrada e sada de uso geral Entrada de clock do Timer1 Mdulo CCP2(multiplexado com RB3 )

    17 RC2 CCP1 P1A

    I/O I/O Saida

    Entrada e sada de uso geral Mdulo CCP1 Sada ECCP1

    18 RC3 SCK SCL

    I/O I/O I/O

    Entrada e sada de uso geral Entrada e sada do clock serial para o modo SPI Entrada e sada do clock serial para o modo I2C

    23 RC4 SDI SDA

    I/O Entrada I/O

    Entrada e sada de uso geral Entrada de dados SPI Entrada e sada de dados I2C

    24 RC5 SD0

    I/O Sada

    Entrada e sada de uso geral Sada de dados SPI

    25 RC6 TX CK

    I/O Sada I/O

    Entrada e sada de uso geral Canal de transmisso UART Clock de sincronismo UART

    26 RC7 RX DT

    I/O Entrada I/O

    Entrada e sada de uso geral Canal de recepo UART Clock de sincronismo UART

    19 RD0 PSP0

    I/O I/O

    Entrada e sada de uso geral Porta de comunicao paralela

    20 RD1 PSP1

    I/O I/O

    Entrada e sada de uso geral Porta de comunicao paralela

    21 RD2 PSP2

    I/O I/O

    Entrada e sada de uso geral Porta de comunicao paralela

    22 RD3 PSP3

    I/O I/O

    Entrada e sada de uso geral Porta de comunicao paralela

    27 RD4 PSP4

    I/O I/O

    Entrada e sada de uso geral Porta de comunicao paralela

    28 RD5 PSP5 P1B

    I/O I/O Sada

    Entrada e sada de uso geral Porta de comunicao paralela Sada ECCP1

    29 RD6 PSP6 P1C

    I/O I/O Sada

    Entrada e sada de uso geral Porta de comunicao paralela Sada ECCP1

    30 RD7 PSP7 P1D

    I/O I/O Sada

    Entrada e sada de uso geral Porta de comunicao paralela Sada ECCP1

    8 RE0 /RD AN5

    I/O Entrada Entrada

    Entrada e sada de uso geral Controle de leitura do port paralelo Entrada analgica AD5

    9 RE1 /WR AN6

    I/O Entrada Entrada

    Entrada e sada de uso geral Controle de escrita do port paralelo Entrada analgica AD6

    10 RE2 /CS AN7

    I/O Entrada Entrada

    Entrada e sada de uso geral Controle de seleo do port paralelo Entrada analgica AD7

    1 /MCLR VPP RE3

    Entrada Entrada Entrada

    Entrada do RESET externo. Este pino ativo em nvel baixo Pino de habilitao de alta voltagem ICSP Entrada Digital

    12, 31 GND Alimentao Negativo

    11, 32 VCC Alimentao positivo

    TabelaTabelaTabelaTabela 1111....1111 DescrioDescrioDescrioDescrio dosdosdosdos pinospinospinospinos dodododo MicrocontroladorMicrocontroladorMicrocontroladorMicrocontrolador PIC18F4520PIC18F4520PIC18F4520PIC18F4520

    TiposTiposTiposTipos dededede MemriasMemriasMemriasMemrias

    No PIC18F4520 encontramos trs tipos de memrias:

    Memria de Programa - FLASH Memria de dados - RAM Memria de dados EEPROM

    www.mecatronicadegaragem.blogspot.com

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

    Como ns sabemos, memria de programa (ROM, EPROM, FLASH) do tipo no voltil, ou seja, podemos desenergizar nosso sistema microcontrolado e ele no perder o programa gravado.

    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 para endereamento da memria de programa, o que permite que at 2 Mbyte sejam endereados pelo microcontrolador da familia PIC18.

    MemriaMemriaMemriaMemria dededede ProgramaProgramaProgramaPrograma

    A memria de programa utilizada em nosso microcontrolador do tipo FLASH (sufixo "F") que permite ser gravada/apagada no minimo 1000 vezes. Este tipo de memria utilizada ideal para ser utilizada em desenvolvimento de projetos e at mesmo em produtos finais.

    FiguraFiguraFiguraFigura 1111....4444 MemrMemrMemrMemriaiaiaia dededede ProgramaProgramaProgramaPrograma FLASHFLASHFLASHFLASH dodododo PIC18FPIC18FPIC18FPIC18F4545454522220000

    Podemos perceber que a memria de programa do PIC18F4520 inicia-se no endereo 0000h e atinge o valor mximo de 7FFFH, ou seja , 32767K byte (32Kbyte).

    O endereo inicial 0000h chamado de vetor de reset. A instruo de programa que estiver nesse endereo de memria ser a primeira a ser executada pelo processador do PIC. Sempre que energizarmos ou resetarmos o microcontrolador, o contador de programa PC apontar sempre 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, enquanto memria de dados onde os valores de nossas variveis sero salvas temporariamente.

    www.mecatronicadegaragem.blogspot.com

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

    Em seguida temos os endereos 0008h e 0018h. Estes endereos so chamados de vetores de interrupo. (veremos mais adiante em nosso curso sobre esses vetores de interrupo).

    VamosVamosVamosVamos exemplificarexemplificarexemplificarexemplificar umumumum processoprocessoprocessoprocesso dededede gravaogravaogravaogravao nananana memriamemriamemriamemria 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 seguinte cdigo de mquina (descrito somente algumas linhas do cdigo gerado):

    FiguraFiguraFiguraFigura 1111....5555 ---- OpcodeOpcodeOpcodeOpcode geradogeradogeradogerado apsapsapsaps compilaocompilaocompilaocompilao dodododo programaprogramaprogramaprograma

    A partir da imagem acima, podemos verificar os valores que sero gravados na memria de programa aps gravao do programa exemplo acima. Esses valores so teis para o programador experiente, pois permite visualizar e acompanhar a execuo por completo da compilao dos arquivos.

    /*'****************************************//********************************** 'Microgenios | MicroControladores * 'Site: www.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 segundo '****************************************//**********************************/ voidvoidvoidvoid main(){ //funo principal do programa TRISD = 0; //configura portd como saida PORTD = 0; //zera todos os pinos do portd whilwhilwhilwhileeee(1){ PORTD = 0B11111111; //seta todos os pinos do PORTD Delay_ms(1000); //delay de 1 segundo PORTD = 0; //zera todo o portd Delay_ms(1000); //delay de 1 segundo } }

    www.mecatronicadegaragem.blogspot.com

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

    FiguraFiguraFiguraFigura 1111....6666 CdigoCdigoCdigoCdigo HexadecimalHexadecimalHexadecimalHexadecimal

    MemriaMemriaMemriaMemria dededede dadosdadosdadosdados ---- EEPROMEEPROMEEPROMEEPROM

    Como estudamos anteriormente, sabemos que as memrias do tipo EEPROM so muito parecidos com a memria RAM, sua diferena que as distingue devido ao fato da memria EEPROM reter as informaes salvas quando a desenergizarmos. Podemos salvar nesta memria dados no-volteis durante o decorrer da execuo de nosso programa.

    O PIC18F4520 possui internamente 256 bytes de memria de dados EEPROM. O endereo inicial da memria de dados EEPROM 00h seu ltimo endereo FFh.

    MemriaMemriaMemriaMemria dededede dadosdadosdadosdados ---- RAMRAMRAMRAM

    Chegamos a uma das partes mais importantes do estudo referente ao nosso microcontrolador PIC, neste tpico apresentaremos toda a estrutura de memria de dados RAM.

    Aprenderemos a trabalhar com ela e tambm onde esto localizados os bits que ligam/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 de Propsito Geral) e os SFRs ( Registradores de Funes Especiais).

    Os GFRs tem a funo de armazenar dados de uso geral que utilizamos e criamos durante a execuo do nosso programa. Podemos guardar nesse regio da memria RAM dados volteis de variveis, tabelas, constantes, entre outras.

    Os SFR's so a parte principal do microcontrolador, nesta rea da memria RAM que esto armazenados todos os setups de funcionamento do PIC. A partir desses registradores podemos configurar o modo de trabalho dos timers/counters, USART, conversores analgicos digitais, 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 bytes de memria cada, pois a forma de implementao das instrues limita o endereamento a um mximo de 7 bits ou 128 registradores. Por esse motivo, a Microchip usa a filosofia de pginao de memria, criando bancos de memria a cada 128 posies. Acompanhe a figura abaixo:

    Nota:Nota:Nota:Nota:

    Os cdigos em assembly visualizado na figura acima foi gerado pelo compilador MikroC PRO aps a compilao de um programa escrito em C.

    www.mecatronicadegaragem.blogspot.com

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

    FiguraFiguraFiguraFigura 1111....7777 DiagramaDiagramaDiagramaDiagrama dadadada memriamemriamemriamemria RAMRAMRAMRAM internainternainternainterna

    Vamos examinar o mapa de registradores dos SFR's. (endereo 0F80h FFFh):

    Registradores de Funes Especiais SFRs

    www.mecatronicadegaragem.blogspot.com

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

    FiguraFiguraFiguraFigura 1111....8888 RegistradoresRegistradoresRegistradoresRegistradores dededede FunesFunesFunesFunes EspeciaisEspeciaisEspeciaisEspeciais SFRsSFRsSFRsSFRs

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

    IntrodIntrodIntrodIntroduouououo asasasas portasportasportasportas dededede I/OI/OI/OI/O

    Os microcontroladores PIC possuem pinos fsicos destinados comunicao de dados com os circuitos externos. Atravs desses pinos podemos enviar nveis lgicos (0 ou 1) para, por exemplo, 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), os quais esto divididos em quatro portas chamadas: PORTA, PORTB, PORTC, PORTD e PORTE.

    www.mecatronicadegaragem.blogspot.com

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

    FiguraFiguraFiguraFigura 1111....9999 PIC18F4520PIC18F4520PIC18F4520PIC18F4520

    Os registradores PORTB, PORTC e PORTD possuem 8 pinos de I/O cada, enquanto o PORTE possue 4 pinos de I/O e PORTA 6 pinos de I/O.

    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 e armazema os dados das portas paralelas (I/O's) do microcontrolador. Qualquer escrita realizada em um desses registros automaticamente altera todo o contedo presente na sada do chip.

    O registrador TRIS utilizado para configurar cada pino da respectiva porta como entrada ou sada. 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 dados encontramos tambm diversas outras funes multiplexadas aos seus pinos:

    Vamos conhecer as funes de cada pino do PORTA:

    TabelaTabelaTabelaTabela 1111....2222 PinosPinosPinosPinos PORTAPORTAPORTAPORTA

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP) FunoFunoFunoFuno TipoTipoTipoTipo DescrioDescrioDescrioDescrio

    2 RA0 AN0

    I/O Entrada

    Entrada e sada de uso geral Entrada do conversor AD0

    3 RA1 AN1

    I/O Entrada

    Entrada e sada de uso geral Entrada do conversor AD1

    4 RA2 AN2 Vref- CVref

    I/O Entrada Entrada Sada

    Entrada e sada de uso geral Entrada do conversor AD2 Entrada de referncia baixa do A/D Sada de tenso da referencia do comparador

    5 RA3 AN3 Vref+

    I/O Entrada Entrada

    Entrada e sada de uso geral Entrada do conversor AD3 Entrada de referncia alta do A/D

    6 RA4 T0CKI C1OUT

    I/O Entrada Sada

    Entrada e sada de uso geral Entrada de clock timer0 Sada do comparador 1

    7 RA5 AN4 /SS HLVDIN C2OUT

    I/O Entrada Entrada Entrada Saida

    Entrada e sada de uso geral Entrada do conversor AD4 Entrada de seleo SPI Detector de alta/baixa voltagem. Sada do comparador 2

    13 OSC1 CLKI RA7

    Entrada Entrada I/O

    Entrada do cristal oscilador Entrada do clock externo Entrada e sada de uso geral

    14 OSC2 CLKO RA6

    Sada Sada I/O

    Sada do cristal oscilador Entrada do clock exteno Entrada e sada de uso geral

    www.mecatronicadegaragem.blogspot.com

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

    RegistradorRegistradorRegistradorRegistrador PORTAPORTAPORTAPORTA

    FigFigFigFiguraurauraura 1111....10101010 ---- PORTAPORTAPORTAPORTA

    O 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:

    PORTAPORTAPORTAPORTA

    RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

    Toda a porta de I/O possui internamente um latch de sada para cada pino. Dessa forma, uma escrita no registrador PORTA ir na realidade escrever em cada latch do PORTA. O lat da PORTA chamado de LATA.

    Para ler um dado um dado no PORTA, basta ler o contedo do registrador PORTA.

    RegistradorRegistradorRegistradorRegistrador TRISATRISATRISATRISA

    O registrador TRISA utilizado para o controle da direo de atuao de cada pino de I/O do PORTA. Atravs desse registradores definimos e configuramos o modo de trabalho do pino do microcontrolador como entrada ou sada de dados.

    Este registrador define os pinos do PORTA da seguinte maneira:

    TRISATRISATRISATRISA

    RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

    Se o bit do registrador TRISA estiver em nvel lgico 1, o pino correspondente a este bit do PORTA estar configurado como entrada.

    Se o bit do registrador TRISA estiver em nvel lgico 0, o pino correspondente a este bit do PORTA estar configurado como sada.

    LeituraLeituraLeituraLeitura dodododo LATCHLATCHLATCHLATCH dededede umumumum pinopinopinopino dodododo PICPICPICPIC

    Para ler o LATCH de sada do microcontrolador ao invs dos pinos utilizamos o registrador LATA, referente ao PORTA, ou LATB, referente ao PORTB. O latch de sada encontra-se antes do 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 escrevermos nesse registrador estamos na verdade atuando sobre os pinos do port respectivamente. No podemos esquecer que o registrador TRISD tambm afeta a leitura e escrita no port.

    www.mecatronicadegaragem.blogspot.com

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

    OOOO PORTBPORTBPORTBPORTB

    O PORTB, tal qual o PORTA, implementa diversas outras funes multiplexadas aos seus pinos, acompanhe:

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP) FunoFunoFunoFuno TipoTipoTipoTipo DescrioDescrioDescrioDescrio

    33 RB0 INT0 FLT0 AN12

    I/O Entrada Entrada Entrada

    Entrada e sada de uso geral Interrupo externa 0 Entrada de erro PWM para CCP1 Entrada analgica 12

    34 RB1 INT1 AN10

    I/O Entrada Entrada

    Entrada e sada de uso geral Interrupo externa 1 Entrada analgica 10

    35 RB2 INT2 AN8

    I/O Entrada Entrada

    Entrada e sada de uso geral Interrupo externa 2 Entrada analgica 8

    36 RB3 AN9 CCP2**

    I/O Entrada I/O

    Entrada e sada de uso geral Entrada analgica 9 Entrada de captura 2, sada de comparao 2 e sada PWM 2

    37 RB4 KBI0 AN11

    I/O Entrada I/O

    Entrada e sada de uso geral Pino de interrupo por mudana de nvel Entrada analgica 11

    38 RB5 KBI1 PGM

    I/O Entrada I/O

    Entrada e sada de uso geral Interrupo por mudana de estado Pino de habilitao ICSP baixa voltagem (In-Circuit Debugger)

    39 RB6 KBI2 PGC

    I/O Entrada I/O

    Entrada e sada de uso geral Interrupo por mudana de estado Pino de clock do ICSP

    40 RB7 KBI3 PGD

    I/O Entrada I/O

    Entrada 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 trabalho dos seus pinos de I/O: so eles: PORTB e TRISB.

    Tanto o registrador PORTB quanto o registrador TRISB esto localizados na memria RAM do PIC 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.

    OOOO PORTCPORTCPORTCPORTC

    O PORTC, tal qual o PORTA, implementa diversas outras funes multiplexadas aos seus pinos, acompanhe:

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP) FunoFunoFunoFuno TipoTipoTipoTipo DescrioDescrioDescrioDescrio

    15 RC0 T10S0 T1CKI

    I/O Sada Entrada

    Entrada e sada de uso geral Sada do clock do Timer 1 Clock externo Timer1 / Timer3

    16 RC1 T10S1 CCP2**

    I/O Entrada Sada

    Entrada e sada de uso geral Entrada de clock do Timer1 Mdulo CCP2(multiplexado com RB3 )

    17 RC2 CCP1 P1A

    I/O I/O Saida

    Entrada e sada de uso geral Mdulo CCP1 Sada ECCP1

    18 RC3 SCK SCL

    I/O I/O I/O

    Entrada e sada de uso geral Entrada e sada do clock serial para o modo SPI Entrada e sada do clock serial para o modo I2C

    23 RC4 SDI SDA

    I/O Entrada I/O

    Entrada e sada de uso geral Entrada de dados SPI Entrada e sada de dados I2C

    24 RC5 SD0

    I/O Sada

    Entrada e sada de uso geral Sada de dados SPI

    25 RC6 TX CK

    I/O Sada I/O

    Entrada e sada de uso geral Canal de transmisso UART Clock de sincronismo UART

    26 RC7 RX DT

    I/O Entrada I/O

    Entrada 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 trabalho dos seus pinos de I/O: so eles: PORTC e TRISC.

    Tanto o registrador PORTC quanto o registrador TRISC esto localizados na memria RAM do PIC e pertencem aos SFR'S (Registradores de Funes Especiais).

    www.mecatronicadegaragem.blogspot.com

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

    O 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 reais atravs dos projetos que vamos desenvolver durante nosso curso.

    OOOO PORTDPORTDPORTDPORTD

    O PORTD, tal qual o PORT A, PORTB e PORTC implementa diversas outras funes multiplexadas aos seus pinos, acompanhe:

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP) FunoFunoFunoFuno TipoTipoTipoTipo DescrioDescrioDescrioDescrio

    19 RD0 PSP0

    I/O I/O

    Entrada e sada de uso geral Porta de comunicao paralela

    20 RD1 PSP1

    I/O I/O

    Entrada e sada de uso geral Porta de comunicao paralela

    21 RD2 PSP2

    I/O I/O

    Entrada e sada de uso geral Porta de comunicao paralela

    22 RD3 PSP3

    I/O I/O

    Entrada e sada de uso geral Porta de comunicao paralela

    27 RD4 PSP4

    I/O I/O

    Entrada e sada de uso geral Porta de comunicao paralela

    28 RD5 PSP5 P1B

    I/O I/O Sada

    Entrada e sada de uso geral Porta de comunicao paralela Sada ECCP1

    29 RD6 PSP6 P1C

    I/O I/O Sada

    Entrada e sada de uso geral Porta de comunicao paralela Sada ECCP1

    30 RD7 PSP7 P1D

    I/O I/O Sada

    Entrada 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 de trabalho 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 do PIC e pertencem aos SFR'S (Registradores de Funes Especiais).

    O registrador TRISD tem a funo de programar os pinos do PIC para serem entradas ou sadas.

    O registrador PORTD o "espelho" dos pinos do PORTD do PIC, para lermos ou escrevermos nesse registrador estamos na verdade atuando sobre os pinos do port respectivamente. No podemos 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 reais atravs dos projetos que vamos desenvolver durante nosso curso.

    OOOO PORTEPORTEPORTEPORTE

    O PORTE, tal qual as outras portas, implementa diversas outras funes multiplexadas aos seus pinos, acompanhe:

    Pino(DIP)Pino(DIP)Pino(DIP)Pino(DIP) FunoFunoFunoFuno TipoTipoTipoTipo DescrioDescrioDescrioDescrio

    8 RE0 /RD AN5

    I/O Entrada Entrada

    Entrada e sada de uso geral Controle de leitura do port paralelo Entrada analgica AD5

    9 RE1 /WR AN6

    I/O Entrada Entrada

    Entrada e sada de uso geral Controle de escrita do port paralelo Entrada analgica AD6

    10 RE2 /CS AN7

    I/O Entrada Entrada

    Entrada e sada de uso geral Controle de seleo do port paralelo Entrada analgica AD7

    1 /MCLR VPP RE3

    Entrada Entrada Entrada

    Entrada do RESET externo. Este pino ativo em nvel baixo Pino de habilitao de alta voltagem ICSP Entrada Digital

    Assim como nas outras portas, o PORTE possui dois registradores que definem o modo de trabalho dos seus pinos de I/O: so eles: PORTE e TRISE.

    Tanto o registrador PORTE quanto o registrador TRISE esto localizados na memria RAM do PIC e pertencem aos SFR'S (Registradores de Funes Especiais).

    O registrador TRISE tem a funo de programar os pinos do PIC para serem entradas ou sadas.

    www.mecatronicadegaragem.blogspot.com

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

    O registrador PORTE o "espelho" dos pinos do PORTE do PIC, para lermos ou escrevermos nesse registrador estamos na verdade atuando sobre os pinos do port respectivamente. No podemos 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 reais atravs dos projetos que vamos desenvolver durante nosso curso.

    ResetResetResetReset

    Sempre que energizamos nosso circuito microcontrolado interessante que o PIC seja resetado, para isso necessrio a insero de um circuito eletrnico bem simples, mas capaz de realizar esse procedimento que costumamos chamar de POWERPOWERPOWERPOWER ONONONON RESETRESETRESETRESET.

    Alm disso interessante que exista um boto para que o usurio possa reiniciar o sistema sempre que for necessrio (reset manual), a seguir indicamos um exemplo de circuito para o reset.

    FiguraFiguraFiguraFigura 1111....11111111 CircuitoCircuitoCircuitoCircuito dededede ResetResetResetReset

    OsOsOsOs PICsPICsPICsPICs possuempossuempossuempossuem diversosdiversosdiversosdiversos tipostipostipostipos dededede reset:reset:reset:reset:

    POR - Power On Reset - o reset que ocorre quando o chip ligado. Reset do MCLR durante 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

    CiclosCiclosCiclosCiclos dededede mquinamquinamquinamquina

    A contagem de tempo no medida diretamente pela freqncia de oscilao do cristal e sim atravs do que chamamos de CICLO DE MQUINA.

    Internamente no microcontroladores PIC a freqncia do cristal dividida por 4, o que nos resulta que a freqncia real de trabalho :

    Conclumos ento que: a cada 1 ciclo de mquina corresponde a 4 pulsos do oscilador.

    Para exemplificar vamos supor que temos conectado ao microcontrolador um cristal de quartzo de 8 MHz.

    QualQualQualQual aaaa freqnciafreqnciafreqnciafreqncia realrealrealreal dededede execuoexecuoexecuoexecuo dasdasdasdas instruesinstruesinstruesinstrues dodododo nossonossonossonosso microcontrolador?microcontrolador?microcontrolador?microcontrolador?

    muito simples, acompanhe:

    Sabemos que a freqncia do cristal utilizado de 8 MHz, e que cada instruo leva exatamente 1 ciclo de mquina para ser executada; Basta dividir o valor do cristal por 4 para sabermos o valor real de trabalho do PIC.

    Conclumos ento que nosso microcontrolador PIC com cristal de 8 MHz esta trabalhando efetivamente 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 MHz

    www.mecatronicadegaragem.blogspot.com

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

    OsOsOsOs bitsbitsbitsbits dededede configuraoconfiguraoconfiguraoconfigurao (fusveis)(fusveis)(fusveis)(fusveis)

    Os microcontroladores PIC possui internamente regies de memrias no volteis (Flash) que so resposveis por determinar o modo de trabalho do chip. So chamados de bits de configurao ou fusveis. de grande importncia que venhamos entender o funcionamento desses 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. Podemos configurar diversas funes atravs desses bits:

    OSC Selection (seleo do oscilador) RESET (tipos de acionamento 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) SLEEP Code Protection ID Locations In-Circuit Serial Programming

    Nota:Nota:Nota:Nota:

    Temos que lembrar que nosso microcontrolador em estudo pode operar em 10MHz (ciclo de mquina)

    www.mecatronicadegaragem.blogspot.com

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

    MapaMapaMapaMapa dosdosdosdos bitsbitsbitsbits dededede configuraoconfiguraoconfiguraoconfigurao dodododo PIC18F4520PIC18F4520PIC18F4520PIC18F4520

    TabelaTabelaTabelaTabela 1111....3333 BitsBitsBitsBits dededede configuraoconfiguraoconfiguraoconfigurao dodododo PIC18F4520PIC18F4520PIC18F4520PIC18F4520

    TabelaTabelaTabelaTabela 1111....4444 BitsBitsBitsBits dededede configuraoconfiguraoconfiguraoconfigurao dodododo PIC18F4520(Detalhado)PIC18F4520(Detalhado)PIC18F4520(Detalhado)PIC18F4520(Detalhado)

    Apresentamos a seguir uma tabela com a descrio de todos os bits de configurao do PIC18F4520:

    Oscilador RC, EC, LP, XT, HS, HS-PLL, RC-SOC2 com RA6, EC-OSC2 com RA6

    Fail-Safe Clock Monitor Enable Habilitado ou Desabilitado Internal External Switch Over Mode Habilitado ou Desabilitado Power Up Timer Habilitado ou Desabilitado Brown Out Detect Habilitado ou Desabilitado Brown Out Voltage 2.5V, 2.7V, 4.5V ou 4.7V Watchdog Timer Habilitado ou Desabilitado

    Watchdog Postscaler 1:1 , 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, ou 1:128

    CCP2MX Pino RC1 ou RB3

    PortB A/D Enable PortB configurado como I/O Digital no reset ou configurado como A/D no reset

    Low Power Timer1 Osc Enable Habilitado ou Desabilitado Mster Clear Enable MCLR Habilitado ou RE3 Habilitado Stack Overflow Reset Habilitado ou Desabilitado Low Voltage Program Habilitado ou Desabilitado Extended Instruction Enable Bit Habilitado ou Desabilitado Background Debug Habilitado ou Desabilitado Code Protect 0x0800 A 0x1fff Habilitado ou Desabilitado Code Protect 0X2000 A 0X3FFF Habilitado ou Desabilitado Code Protect 0X4000 A 0X5FFF Habilitado ou Desabilitado Code Protect 0X6000 A 0X7FFF Habilitado ou Desabilitado Code Protect Boot Habilitado ou Desabilitado Data EEPROM Code Protect Habilitado 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 0x5fff Habilitado ou Desabilitado Table Write Protect 0x6000 A 0x7fff Habilitado ou Desabilitado Config Write Protect Habilitado ou Desabilitado Table Write Protect Boot Habilitado ou Desabilitado Data Ee Write Protect Habilitado ou Desabilitado Table Read Protect 0x0800 A 0x1fff Habilitado ou Desabilitado Table Read Protect 0x2000 A 0x3fff Habilitado ou Desabilitado Table Read Protect 0x4000 A 0x5fff Habilitado ou Desabilitado Table Read Protect 0x6000 A 0x7fff Habilitado ou Desabilitado Table Read Protect Boot Habilitado ou Desabilitado

    Acompanhe:

    www.mecatronicadegaragem.blogspot.com

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

    No painel de configurao do MikroC PRO, podemos visualizar e configurar os bits de configurao referente ao nosso microcontrolador PIC18F4520.

    FiguraFiguraFiguraFigura 1111....12121212 ConfiguraoConfiguraoConfiguraoConfigurao dosdosdosdos fusiveisfusiveisfusiveisfusiveis nononono MikroCMikroCMikroCMikroC PRO 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 dos programas de gravao dos gravadores de PIC (WinPIC800, IC-Prog etc.)

    No primeiro campo de configurao dos fusiveis do MikroC PRO encontramos o campo de seleo de clock. Atravs desses campos podemos informar vrios tipos de osciladores e circuitos de oscilao:

    ConfiguraoConfiguraoConfiguraoConfigurao dededede ClockClockClockClock

    Todo 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 do microcontrolador.

    O PIC18F4520 pode funcionar com diversas fontes de osciladores:

    LP Low-power cristal XT Cristal ou ressonador HS High-Speed cristal (cristal de alta velocidade) ou ressonador HS + PLL High-Speed cristal ou ressonador com PLL habilitada RC Resistor / Capacitor externo RCIO Resistor / Capacitor externo com pino de I/O EC Clock externo ECIO Clock exteno com pino de I/O

    www.mecatronicadegaragem.blogspot.com

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

    VamosVamosVamosVamos conhecerconhecerconhecerconhecer cadacadacadacada umumumum dosdosdosdos tipostipostipostipos dededede osciladores:osciladores:osciladores:osciladores:

    OsciladorOsciladorOsciladorOscilador RCRCRCRC comcomcomcom pinopinopinopino RA6RA6RA6RA6 comocomocomocomo sadasadasadasada dededede clockclockclockclock

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

    OsciladorOsciladorOsciladorOscilador RCRCRCRC comcomcomcom pinopinopinopino RA6RA6RA6RA6 comocomocomocomo I/OI/OI/OI/O dededede usousousouso geralgeralgeralgeral

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

    Nesta configurao o pino RA6 pode ser utilizado como I/O de uso geral

    ModoModoModoModo HSPLLHSPLLHSPLLHSPLL

    HSPLL na verdade um modo em que podemos multiplicar o valor da freqncia de entrada do 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.

    FiguraFiguraFiguraFigura 1111....13131313 ---- ModoModoModoModo HSPLLHSPLLHSPLLHSPLL

    Por exemplo:

    Caso venhamos conectar ao PIC um cristal de 10 MHz entre os pinos OSC1 e OSC2 e ativarmos o modo HSPLL no momento em que gravarmos o chip, executando seu ciclo de mquina 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

    www.mecatronicadegaragem.blogspot.com

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

    Ciclo de mquina = 8 MHz ou 0.125us

    Circuito de Oscilao EC com pino RA6 como I/O de uso geral

    Este modo de configurao utilizado quando temos uma fonte de clock em nosso circuito eletrnico.

    Obs: A fonte de clock dever estar livre de ruidos e deformaes.

    FiguraFiguraFiguraFigura 1111....14141414 ModoModoModoModo ECECECEC comcomcomcom pinopinopinopino RA6RA6RA6RA6 comocomocomocomo I/OI/OI/OI/O dededede usousousouso geralgeralgeralgeral

    CircuitoCircuitoCircuitoCircuito dededede OscilaoOscilaoOscilaoOscilao EEEECCCC comcomcomcom pinopinopinopino RA6RA6RA6RA6 comocomocomocomo sadasadasadasada dededede cloclocloclockckckck

    Este modo de configurao utilizado quando temos uma fonte de clock em nosso circuito eletrnico.

    Percebam que a sada de clock Fosc/4, ou seja, o prprio ciclo de mquina do microcontrolador, a partir desse clock de sada, poderemos sincronizar outros microcontroladores no circuito.

    Obs:Obs:Obs:Obs: AAAA fontefontefontefonte dededede clockclockclockclock deverdeverdeverdever estarestarestarestar livrelivrelivrelivre dededede ruidosruidosruidosruidos eeee deformaes.deformaes.deformaes.deformaes.

    FiguraFiguraFiguraFigura 1111....15151515 ModoModoModoModo ECECECEC comcomcomcom pinopinopinopino RA6RA6RA6RA6 comocomocomocomo sadasadasadasada dededede clockclockclockclock

    OsciladoresOsciladoresOsciladoresOsciladores LPLPLPLP ,,,, XTXTXTXT ouououou HSHSHSHS ---- CristalCristalCristalCristal dededede quartzquartzquartzquartzoooo ouououou RessonadorRessonadorRessonadorRessonador

    Para utilizarmos cristal ou ressonadores em nosso chip, devemos conect-lo da seguinte maneira:

    FiguraFiguraFiguraFigura 1111....16161616 CCCClocklocklocklock geradogeradogeradogerado aaaa partirpartirpartirpartir dededede umumumum cristalcristalcristalcristal dededede quartzoquartzoquartzoquartzo

    Note que existe dois capacitores ligados em paralelo com o cristal. O valor desses capacitores variam de acordo com a frquencia do cristal utilizado. Segue uma tabela apresentando os valores dos capacitores:

    ValoresValoresValoresValores tipicostipicostipicostipicos paraparaparapara oooocapacitorcapacitorcapacitorcapacitor TipoTipoTipoTipo dededede osciladorosciladorosciladoroscilador

    FreqnciaFreqnciaFreqnciaFreqncia dodododocristalcristalcristalcristal

    C1C1C1C1 C2C2C2C2

    32kHz 33pF 33pF LP (cristal de baixa freqncia) 200KHz 15pF 15pF

    Nota:Nota:Nota:Nota:

    Quando projetamos um circuito com microcontrolador, a regra colocar o oscilador to perto quanto possvel do microcontrolador, de modo a evitar qualquer interferncia nas linhas que ligam o oscilador ao chip.

    www.mecatronicadegaragem.blogspot.com

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

    200KHz 22-68pF 22-68pF 1.0MHz 15pF 15pF XT (cristal) 4.0MHz 15pF 15pF 4.0MHz 15pF 15pF 8.0 MHz 15-33pF 15-33pF 20.0MHz 15-33pF 15-33pF

    HS (cristal de alta freqncia)

    25MHz 15-33pF 15-33pF

    Para quem no se recorda de como um cristal de quartzo ou cermico, segue suas fotos:

    cristalcristalcristalcristal dededede quartzoquartzoquartzoquartzo

    RessonadorRessonadorRessonadorRessonador cermicocermicocermicocermico

    FiguraFiguraFiguraFigura 1111....17171717 OsciladoresOsciladoresOsciladoresOsciladores

    Os ressonadores cermicos so comercializados em dois tipos: com dois terminais e com trs terminais. Os mais utilizados so os ressonadores com trs terminais pois no precisam de capacitores externos. O ressonador com dois terminais obedecem a ligao da figura 5.4, enquanto no de trs o pino central deve ser aterrado. segue abaixo o esquema de ligao do ressonador com trs terminais:

    Os ressonadores cermicos uma segunda opo. No to barato quanto um RC mas bem mais estvel e preciso.

    Nos projetos do nosso curso iremos utilizar cristal de quartzo de 8 MHz pois garantimos maior preciso nas rotinas de tempo nas execues das instrues.

    OSCSENOSCSENOSCSENOSCSEN (SYSTEM(SYSTEM(SYSTEM(SYSTEM CLOCKCLOCKCLOCKCLOCK SWITCHSWITCHSWITCHSWITCH BIT)BIT)BIT)BIT)

    Atravs desse bit de configurao, podemos selecionar o modo de acionamento do segundo oscilador de baixa frequncia do PIC, mas para isso faz necessrio habilitarmos o T1OSCEN no TIMER1.

    Obs: Caso desejemos utilizar o segundo oscilador (T1OSO e T1OSI), e no venhamos a programar o TIMER1 corretamente, automaticamente o bit de configurao do OSCSEN ser desabilitado.

    ConfiguraoConfiguraoConfiguraoConfigurao dosdosdosdos FusveisFusveisFusveisFusveis dededede EnergiaEnergiaEnergiaEnergia

    PWPWPWPWRTENRTENRTENRTEN (SYSTEM(SYSTEM(SYSTEM(SYSTEM CLOCKCLOCKCLOCKCLOCK SWITCHSWITCHSWITCHSWITCH BIT)BIT)BIT)BIT)

    Atravs desse bit, podemos configurar o modo POWER para o acionamento do PIC, quando este bit estiver acionado o modo POWER-UP TIMER estar habilitado. O temporizador de power-up pode ser utilizado para fazer com que o chip permanea em reset por aproximadamente 72ms aps o chip ter sido ligado. E deve ser utilizado nos casos em que o chip no inicializa corretamente devido a um tempo muito elevado para a estabilizao da fonte de alimentao ou do circuito de reset externo.

    BROWNBROWNBROWNBROWN----OutOutOutOut

    O detector de brown-out utilizado para provocar o reset da CPU no caso de a tenso de alimentao cair abaixo de um determinado limite. Uma vez que a tenso retorne ao seu valor nominal, 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.2V ou 4.5V.

    Nota:Nota:Nota:Nota:

    Antes de gravarmos um programa no microcontrolador PIC devemos "queimar" os fusivel de configurao informando qual o tipo de oscilador estamos utilizando em nosso hardware.

    www.mecatronicadegaragem.blogspot.com

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

    Podemos habilitar ou desabilitar o detector de brown-out, basta selecionar o bit de configurao caso desejemos habilitar o brown-out.

    WDTWDTWDTWDT ---- WatchdogWatchdogWatchdogWatchdog TimerTimerTimerTimer EnEnEnEnableableableable (co(co(co(co dededede guarda)guarda)guarda)guarda)

    O watchdog timer ou co de guarda um sistema interno ao microcontrolador que evita que o programa pare em um determinado ponto. Imagine que voc desenvolveu uma aplicao e que por um erro de software em certo momento o seu programa pra (entra em loop infinito). Caso o watchdog dog no seja resetado de tempos em tempos ele ir "estourar", ou seja, chegar ao final 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 tempo atravs do postscale. Com essa funo podemos multiplicar o tempo mnimo de 18 ms com os seguintes multiplicadores do prescaler: 1:1; 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, 1:128.

    CCP2MXCCP2MXCCP2MXCCP2MX

    Podemos atravs desse bit definir se queremos multiplexar o mdulo CCP2 com o pino RC1 (CCP2MX = 0) ou com o pino RB3 (CCP2MX = 1)

    DebugDebugDebugDebug

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

    LVPLVPLVPLVP (Low(Low(Low(Low VoltagemVoltagemVoltagemVoltagem Programming)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 neste modo, aps a gravao o pino RA5 do PIC no poder ser utilizado como I/O.

    STVRENSTVRENSTVRENSTVREN (Stack(Stack(Stack(Stack Full/UnderflowFull/UnderflowFull/UnderflowFull/Underflow ResetResetResetReset EnableEnableEnableEnable Bit)Bit)Bit)Bit)

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

    rearearearea dededede ProteesProteesProteesProtees contracontracontracontra leituraleituraleituraleitura eeee escritaescritaescritaescrita

    Code Protect 0x0800 a 0x1FFF

    Caso este bit esteja habilitado, protege contra leitura a memria de programa de 0x0800 a 0x1FFF.

    Code Protect 0x2000 a 0x3FFF

    Caso este bit esteja habilitado, protege contra leitura a memria de programa de 0x2000 a 0x3FFF.

    Code Protect 0x4000 a 0x5FFF

    Caso este bit esteja habilitado, protege contra leitura a memria de programa de 0x4000 a 0x5FFF.

    Code Protect 0x6000 a 0x7FFF

    Caso este bit esteja habilitado, protege contra leitura a memria de programa de 0x6000 a 0x7FFF.

    Data EE Read Protect

    Caso este bit esteja habilitado, protege contra leitura os 256 bytes da memria EEPROM (memria no voltil).

    Code Protect Boot

    Caso este bit esteja habilitado, protege contra leitura a regio de memria Boot (rea da memria de programa) 0x0000 at 0x0FF0.

    Table Write Protect 0x0200 a 0x1FFF

    Caso este bit esteja habilitado, protege a memria de programa contra escrita por tabela no endereo especificado.

    Table Write Protect 0x2000 a 0x3FFF

    Caso este bit esteja habilitado, protege a memria de programa contra escrtita por tabela no endereo especificado.

    Table Write Protect 0x4000 a 0x5FFF

    Caso este bit esteja habilitado, protege a memria de programa contra escrtita por tabela no endereo especificado.

    Table Write Protect 0x6000 a 0x7FFF

    www.mecatronicadegaragem.blogspot.com

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

    Caso este bit esteja habilitado, protege a memria de programa contra escrtita por tabela no endereo especificado.

    Data Write Protect

    Caso este bit esteja habilitado, protege contra escrita os 256 bytes da memria EEPROM (memria no voltil).

    Table Write Protect Boot

    Caso este bit esteja habilitado, protege contra escrtita por tabela a rea de boot.

    Config Write Protect

    Caso este bit esteja habilitado, protege contra escrita a rea de configurao do microcontrolador.

    Table Read Protect 0x0800 a 0x1FFF

    Caso este bit esteja habilitado, protege a memria de programa contra leitura por tabela no endereo especificado.

    Table Read Protect 0x2000 a 0x3FFF

    Caso este bit esteja habilitado, protege a memria de programa contra leitura por tabela no endereo especificado.

    Table Read Protect 0x4000 a 0x5FFF

    Caso este bit esteja habilitado, protege a memria de programa contra leitura por tabela no endereo especificado.

    Table Read Protect 0x6000 a 0x7FFF

    Caso este bit esteja habilitado, protege a memria de programa contra leitura por tabela no endereo especificado.

    www.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/D Canais A/D Canais A/D

    Conversor A/D do PICConversor A/D do PICConversor A/D do PICConversor A/D do PIC

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

    Os conversores A/D dos PICs utilizam uma tcnica de aproximao sucessivas, normalmente com resoluo de 10 bits, com clock selecionvel pelo usurio e mltiplas entradas multiplexadas.

    Figura Figura Figura Figura 2222....1111---- Canais AD multiplexados Canais AD multiplexados Canais AD multiplexados 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:

    Vejamos o funcionamento de cada bit desse registrador:

    ADCON0: ADCON0: ADCON0: ADCON0:

    www.mecatronicadegaragem.blogspot.com

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

    Tabela Tabela Tabela Tabela 2222....1111 ADCON0 ADCON0 ADCON0 ADCON0 ---- ---- CHS3CHS3CHS3CHS3 CHS2CHS2CHS2CHS2 CHS1CHS1CHS1CHS1 CHS0CHS0CHS0CHS0 GO_DONEGO_DONEGO_DONEGO_DONE ADONADONADONADON

    Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

    CCCCHSHSHSHS3 ..3 ..3 ..3 .. CHS0 CHS0 CHS0 CHS0: Bit de seleo de canal A/D

    Figura Figura Figura Figura 2222....2222 Seleo A/D Seleo A/D Seleo A/D Seleo A/D

    GO/DONEGO/DONEGO/DONEGO/DONE: Bit de status da converso A/D

    0 - Converso A/D no 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:

    Vejamos o funcionamento de cada bit desse registrador:

    ADCON1: ADCON1: ADCON1: ADCON1:

    VVVVCFG1CFG1CFG1CFG1 VCFG0VCFG0VCFG0VCFG0 PCFG3PCFG3PCFG3PCFG3 PCFG2PCFG2PCFG2PCFG2 PCFG1PCFG1PCFG1PCFG1 PCFG0PCFG0PCFG0PCFG0

    Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

    VCFG1VCFG1VCFG1VCFG1: Bit de configurao de tenso de referencia (VREF-)

    0 VREF-(AN2)

    1 - VSS

    VCFGVCFGVCFGVCFG0000: Bit de configurao de tenso de referencia (VREF+)

    0 VREF+(AN3)

    1 - VDD

    PCFG3, PCFG2, PCFG1, PCFG0: bits configurao do A/D

    Tabela Tabela Tabela Tabela 2222....2222 Configurao Pinos A/D Configurao Pinos A/D Configurao Pinos A/D Configurao Pinos A/D

    www.mecatronicadegaragem.blogspot.com

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

    Registrador ADCONRegistrador ADCONRegistrador ADCONRegistrador ADCON2222::::

    Vejamos o funcionamento de cada bit desse registrador:

    ADCONADCONADCONADCON2222: : : :

    ADFMADFMADFMADFM ACQT2ACQT2ACQT2ACQT2 ACQT1ACQT1ACQT1ACQT1 ACQT0ACQT0ACQT0ACQT0 ADCS2ADCS2ADCS2ADCS2 ADCS1ADCS1ADCS1ADCS1 ADCS0ADCS0ADCS0ADCS0

    Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

    ADFM ADFM ADFM ADFM : Ajusta o formato do resultado da converso A/D

    1 - Justifica a direita

    0 - Justifica a esquerda

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

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

    www.mecatronicadegaragem.blogspot.com

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

    O bit de ADFM tem a funo de organizar o resultado da converso A/D, de forma que o os valores 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 mais significativo sero armazenados em ADRESH.

    Caso ADFM = 0, justificaremos a esquerda os valores de converso, desta forma os oitos bits mais significativos ficaro em ADRESH e os 2 menos significativo ficar em ADRESL.

    Frmula de converso analgico para digital:Frmula de converso analgico para digital:Frmula de converso analgico para digital:Frmula de converso analgico para 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 no MikroCTrabalhando com AD no MikroC

    No 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 motivo devemos utilizar uma varivel do tipo inteiro para armazenar o valor do A/D.

    Adc_Read (canal_ AD)

    uuuunsigned int nsigned int nsigned int nsigned int leitura_ad; //'cria varivel leitura_ad com ranger 0 a 65535 leitura_ad = Adc_Read(0); //'l canal ad0 do PIC e salva na varivel leitura_ad

    www.mecatronicadegaragem.blogspot.com

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

    Unidade 3Unidade 3Unidade 3Unidade 3 Canal PWM do PICCanal PWM do PICCanal PWM do PICCanal PWM do PIC

    IntroduoIntroduoIntroduoIntroduo

    Os controles de potncia, inversores de freqncia, conversores para servomotor, fonte chaveadas 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 Chaveada ServoMotoresServoMotoresServoMotoresServoMotores

    Inversores de FreqnciaInversores de FreqnciaInversores de FreqnciaInversores de Freqncia

    PWM a abreviao de Pulse Width Modulation ou Modulao de Largura de Pulso. Para que se entenda como funciona esta tecnologia no controle de potncia, partimos de um circuito imaginrio formado por um interruptor de ao muito rpida e uma carga que deve ser controlada, 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 potncia aplicada 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% do

    www.mecatronicadegaragem.blogspot.com

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

    tempo aberta e 50% fechada. Isso significa que, em mdia, teremos metade do tempo com corrente e metade do tempo sem corrente.

    A potncia mdia e, portanto, a prpria tenso mdia aplicada carga neste caso 50% da tenso de entrada.

    Figura Figura Figura Figura 3333....1111 Largura de Pulsos Largura de Pulsos Largura de Pulsos Largura 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 em que temos o pulso e a durao de um ciclo completo de operao do interruptor nos define ainda 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 pulso varia de zero at o mximo, a potncia tambm varia na mesma proporo (duty cycle), conforme est indicado na figura abaixo:

    Figura Figura Figura Figura 3333....2222 Variao mnima ao mximo do duty Cicle do PWM. Variao mnima ao mximo do duty Cicle do PWM. Variao mnima ao mximo do duty Cicle do PWM. Variao mnima ao mximo do duty Cicle do PWM.

    Este princpio usado justamente no controle PWM: modulamos (variamos) a largura do pulso de modo a controlar o ciclo ativo do sinal aplicado a uma carga e, com isso, a potncia aplicada a ela.

    www.mecatronicadegaragem.blogspot.com

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

    Figura Figura Figura Figura 3333....3333 Variao do duty cicle do sinal PWM Variao do duty cicle do sinal PWM Variao do duty cicle do sinal PWM Variao do duty cicle do sinal PWM

    TrabalTrabalTrabalTrabalhando com PWM no PIChando com PWM no PIChando com PWM no PIChando com PWM no PIC

    O microcontrolador PIC18F45200 possui internamente 2 mdulos CCP (Capture/Compare/PWM Module), CCP1 e CCP2. Podemos manipular com grande facilidade as 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_Stop

    Funo de Inicializao da gerao do sinal PWM:

    No MikroC utilizamos a funo Pwm1_Init() para informar a freqncia do sinal PWM:

    Sintaxe

    onde:

    valor_da freqncia: fator da freqncia em Hz do sinal PWM.

    PS.: Consultar datasheet do PIC utilizado para saber a freqncia de oscilao.

    Exemplo:Exemplo:Exemplo:Exemplo:

    PWM1_Init (4000) //inicia pwm com freqncia de 4khz

    Funo 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 valor do 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 cycle PWM.

    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)

    www.mecatronicadegaragem.blogspot.com

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

    Figura Figura Figura Figura 3333....4444 Variao do duty Cicle Variao do duty Cicle Variao do duty Cicle Variao do duty Cicle

    Para outros valores de duty cycle calculamos atravs da formula: (Percentual * 255) /100

    No caso de configurarmos o duty conforme a figura acima, devemos carregar o seguinte valor para:

    Duty de 10%

    PWM1_Set_Duty(25); // carrega valor 26 pois : (10% * 255) / 100 = 25,5 , como somente podemos colocar valores inteiros entre 0 a 255, o valor ser arrendondado para 25

    Duty de 50%

    PWM1_Set_Duty(127); // carrega valor 127 pois : (50% * 255) / 100 = 127,50 , como somente podemos colocar valores inteiros entre 0 a 255, o valor ser arrendondado para 127

    Duty de 90%

    PWM1_Set_Duty(229); // carrega valor 229 pois : (90% * 255) / 100 = 229,50 , como somente podemos colocar valores inteiros entre 0 a 255, o valor ser arrendondado 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 da funo Pwm_Stop finalizamos a gerao do sinal Pwm.

    Sintaxe:

    Pwm_Start inicial a gerao do sinal PWM no mdulo