Sumario Apostila de C Para PIC

  • Upload
    tobogam

  • View
    230

  • Download
    0

Embed Size (px)

Citation preview

  • 8/3/2019 Sumario Apostila de C Para PIC

    1/10

    _________________________________________

    MicroGenios Treinamentos, Kits de desenvolvimento e muito mais...www.microgenios.com.br| www.portalwebaula.com.br (11) 5084-4518 | 3384-5598

    1

    Microcontroladores PIC Programao Embarcado em C

    Famlia PIC18F Microchip

    Autor: Fernando Simplicio de SousaGabriel Rosa Paz

    Equipe MicroGenios

    Cursos e Treinamentos de Microcontroladores Presencial e Online.

    www.microgenios.com.brwww.portalwebaula.com.br

    Fone: 11 5084-4518 | 3384-5598

  • 8/3/2019 Sumario Apostila de C Para PIC

    2/10

    _________________________________________

    MicroGenios Treinamentos, Kits de desenvolvimento e muito mais...www.microgenios.com.br| www.portalwebaula.com.br (11) 5084-4518 | 3384-5598

    2

    Livro:

    Microcontroladores PIC Programao embarcado em C 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 qualquersistema de processamento de dados e a incluso de qualquer parte da obra em qualquer programa jusciberntico. Essas proibies aplicam-se tambm as caractersitcas grficas da obra e a suaeditorao. A violao dos direitos autorais punvel como crime (art. 184 e pargrafos, do cdigopenal, cf. Lei n6.895, de 17.12.80) com pena de priso e multa, conjuntamente com busca e apreenso eindenizaes 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:

    Dedico esse livro a Minha famlia e a equipe MicroGenios

    Advertncia:

    As informaes e o material contido neste livro so fornecidos sem nenhuma garantia quer explcita, ouimplcita, 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 nenhumahiptese podem ser incriminados direta ou indiretamente por qualquer dano, perda, lucros cessantes,etc., devido ao uso destas informaes.

  • 8/3/2019 Sumario Apostila de C Para PIC

    3/10

    _________________________________________

    MicroGenios Treinamentos, Kits de desenvolvimento e muito mais...www.microgenios.com.br| www.portalwebaula.com.br (11) 5084-4518 | 3384-5598

    3

    Prefcio

    Esta obra foi concebida com o intuito de preparar os estudantes, professores e profissionais da reatcnica para a criao de projetos com os microcontroladores da famlia PIC, utilizando comoferramenta uma linguagem de programao de alto nvel, neste material escolhemos para abordar alinguagem BASIC, que uma das linguagens mais poderosas e portveis, fato este que a tornouamplamente utilizada, pimeiramente para a criao de programas aplicativos para PC e mais tarde emsistemas embarcados microcontrolados.

    Trabalhar com uma linguagem de alto nvel, como BASIC, para criar programas paramicrocontroladores, exige do profissional alm de um bom conhecimento de lgica de programao ehabilidade com a linguagem, um slido conhecimento da estrutura de hardware do microcontroladorutilizado, de forma a extrair deste o mximo de funcionalidade de seus perifricos internos.

    Esta obra estuda paralelamente hardware e software, propiciando um conhecimento completo aoprofissional e tornando-o apto a desenvolver suas prprias aplicaes, alm disso vale a pena ressaltar apreocupao, 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 dediversas experincias que complementam e fixam o aprendizado.

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

    De maneira alguma este material apresentado como nica fonte de estudo sobre o assunto, devendoaqueles 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 SousaGabriel Rosa Paz

    Equipe MicroGenios

    Cursos e Treinamentos de Microcontroladores Presencial e Online.www.microgenios.com.br

    www.portalwebaula.com.br

    Fone: 11 5084-4518 | 3384-5598

    Deus seja louvado!

  • 8/3/2019 Sumario Apostila de C Para PIC

    4/10

    _________________________________________

    MicroGenios Treinamentos, Kits de desenvolvimento e muito mais...www.microgenios.com.br| www.portalwebaula.com.br (11) 5084-4518 | 3384-5598

    4

    PREFCIO ................................................................................................................................ 3

    UNIDADE 01 ........................................................................................................................... 11

    A EVOLUO DA TECNOLOGIA .......................................................................................... 12

    Os primeiros computadores: ................................................................................................................................. 12

    Evoluo dos sistemas eletrnicos: ....................................................................................................................... 13Onde possvel encontrar microcontroladores? ......................................................................................................................... 14Microprocessadores e Microcontroladores:................................................................................................................................. 14Microprocessador: ......................................................................................................................................................................... 14Microcontrolador:.......................................................................................................................................................................... 15

    Funcionamento bsico dos sistemas microcontrolados:.................................................................................... 16O que necessrio para trabalharmos com microcontroladores? .............................................................................................. 18

    Um pouco de Histria ............................................................................................................................................. 18

    Escrevendo programas em C para Microcontroladores ................................................................................... 18

    O papel do Compilador .......................................................................................................................................... 19

    Etapas de desenvolvimento e gravao de um programa em C no microcontrolador PIC ........................ 20

    Aulas de laboratrio e experincias prticas ...................................................................................................... 24

    Varredura de displays de 7 segmentos ......................................................................................................................................... 25Varredura de Teclado matriciais .................................................................................................................................................. 26Canal de comunicao serial RS232 ............................................................................................................................................ 27Conversor Analgico digital (A/D) .............................................................................................................................................. 28Controle PWM de dispositivos..................................................................................................................................................... 29

    UNIDADE 02 ........................................................................................................................... 30

    OS MICROCONTROLADORES PIC....................................................................................... 31

    Desempenho da famlia PIC .................................................................................................................................. 32

    Tipos de Memria de Programa ........................................................................................................................... 32

    O PIC18F4520 .......................................................................................................................................................... 32Tipos de encapsulamentos: ........................................................................................................................................................... 33Estrutura interna do PIC18F452 ................................................................................................................................................... 36Descrio das funes dos pinos do PI18F4520 ......................................................................................................................... 37Tipos de Memrias ........................................................................................................................................................................ 39Memria de Programa................................................................................................................................................................... 39Memria de dados - EEPROM ..................................................................................................................................................... 43

  • 8/3/2019 Sumario Apostila de C Para PIC

    5/10

    _________________________________________

    MicroGenios Treinamentos, Kits de desenvolvimento e muito mais...www.microgenios.com.br| www.portalwebaula.com.br (11) 5084-4518 | 3384-5598

    5

    Memria de dados - RAM ............................................................................................................................................................ 43Registradores de Funes Especiais SFRs .............................................................................................................................. 45

    Introduo as portas de I/O ................................................................................................................................... 46PORTA .......................................................................................................................................................................................... 47Registrador TRISA........................................................................................................................................................................ 48O PORTB....................................................................................................................................................................................... 52O PORTC....................................................................................................................................................................................... 55O PORTD ...................................................................................................................................................................................... 56O PORTE ....................................................................................................................................................................................... 57

    Reset .......................................................................................................................................................................... 58

    Ciclos de mquina ................................................................................................................................................... 58

    Os bits de configurao (fusveis).......................................................................................................................... 59Mapa dos bits de configurao do PIC18F452 ........................................................................................................................... 60

    Configurao de Clock .......................................................................................................................................... 62Oscilador RC com pino RA6 como sada de clock................................................................................................................. 62Oscilador RC com pino RA6 como I/O de uso geral ............................................................................................................. 63Modo HSPLL ................................................................................................................................................................................ 63Circuito de Oscilao EC com pino RA6 como I/O de uso geral ........................................................................................... 64 Circuito de Oscilao EC com pino RA6 como sada de clock .............................................................................................. 64Osciladores LP , XT ou HS - Cristal de quartzo ou Ressonador .............................................................................................. 65OSCSEN (SYSTEM CLOCK SWITCH BIT) ............................................................................................................................ 66

    Configurao dos Fusveis de Energia ................................................................................................................. 67PWRTEN (SYSTEM CLOCK SWITCH BIT) ........................................................................................................................... 67BROWN-Out ................................................................................................................................................................................. 67WDT - Watchdog Timer Enable (co de guarda) ....................................................................................................................... 67CCP2MX ....................................................................................................................................................................................... 68Debug ............................................................................................................................................................................................. 68LVP (Low Voltagem Programming) ........................................................................................................................................... 68STVREN (Stack Full/Underflow Reset Enable Bit) ................................................................................................................... 68rea de Protees contra leitura e escrita .................................................................................................................................... 69

    UNIDADE 03 ........................................................................................................................... 71

    O COMPILADOR MIKROC ..................................................................................................... 72

    Bibliotecas de Funes do mikroC ....................................................................................................................... 73Miscellaneous Libraries ................................................................................................................................................................ 73Standard ANSI C Libraries........................................................................................................................................................... 73

    Conhecendo as ferramentas do mikroC .............................................................................................................. 73

    Criao de um projeto no mikroC........................................................................................................................ 74

    Conhecendo o ambiente mikroC........................................................................................................................... 76Code Editor (editor de cdigo) ..................................................................................................................................................... 76Code Assistant (assistente de cdigo) .......................................................................................................................................... 76Parameter Assistant (assistente de parmetro) ............................................................................................................................ 77

  • 8/3/2019 Sumario Apostila de C Para PIC

    6/10

    _________________________________________

    MicroGenios Treinamentos, Kits de desenvolvimento e muito mais...www.microgenios.com.br| www.portalwebaula.com.br (11) 5084-4518 | 3384-5598

    6

    Auto Correct (correo automtica) ............................................................................................................................................. 77Comment / Uncomment (Comentar / no comentar) .................................................................................................................. 77Goto Line (v para linha) .............................................................................................................................................................. 78Messages Window (janela de mensagens) .................................................................................................................................. 78Procedures List (Lista de procedimentos) ................................................................................................................................... 78Project Setup .................................................................................................................................................................................. 78Ferramentas Integradas ................................................................................................................................................................. 78

    Criando nosso primeiro programa no mikroC................................................................................................... 84

    UNIDADE 04 ........................................................................................................................... 87

    INTRODUO A LINGUAGEM C .......................................................................................... 88

    Formas e representao numricas e de caracteres........................................................................................... 91

    mikroC : Case Insensitive ...................................................................................................................................... 93

    Manipulao de bit no mikroC ............................................................................................................................. 93

    Estrutura de um programa em C ......................................................................................................................... 94Porque devemos criar subrotinas ? ............................................................................................................................................... 99

    Prottipos de Funes ........................................................................................................................................... 100

    Os indetificadores .................................................................................................................................................. 100

    Tipos de dados ....................................................................................................................................................... 101

    Modificadores de Tipo .......................................................................................................................................... 102

    Declarao de variveis ........................................................................................................................................ 102Variveis globais: ........................................................................................................................................................................ 103Variveis locais: .......................................................................................................................................................................... 104

    Tipos de Operadores ............................................................................................................................................. 105Os operadores Aritmticos: ........................................................................................................................................................ 105Operadores Relacionais; ............................................................................................................................................................. 108Operadores lgicos ou Booleanos .............................................................................................................................................. 108Os operadores Bit a Bit ............................................................................................................................................................... 108Operador AND (E) ...................................................................................................................................................................... 109O Operador OR (|) ....................................................................................................................................................................... 109O Operador XOR (^) ................................................................................................................................................................... 110O Operador NOT (~)................................................................................................................................................................... 110Operador de deslocamento > .............................................................................................................................................. 111

    Estruturas de Controle ......................................................................................................................................... 112O comando if (SE) ...................................................................................................................................................................... 112O comando Switch ...................................................................................................................................................................... 115

    Estruturas de Repetio ....................................................................................................................................... 116O comando For ............................................................................................................................................................................ 117O lao While ................................................................................................................................................................................ 120

  • 8/3/2019 Sumario Apostila de C Para PIC

    7/10

    _________________________________________

    MicroGenios Treinamentos, Kits de desenvolvimento e muito mais...www.microgenios.com.br| www.portalwebaula.com.br (11) 5084-4518 | 3384-5598

    7

    O lao do - while ......................................................................................................................................................................... 121

    O comando break e continue ............................................................................................................................... 121Break ............................................................................................................................................................................................ 121Continue ....................................................................................................................................................................................... 122

    UNIDADE 05 ..........................................................................................................................123

    Manipulando Teclados com o mikroC ............................................................................................................... 124

    A Funo Button .................................................................................................................................................. 125

    UNIDADE 06 ..........................................................................................................................136

    OS DISPLAYS LCD ALFANUMRICOS ...............................................................................137

    Introduo .............................................................................................................................................................. 137Hardware e Pinagem ............................................................................................................................................ 137

    Endereos de cada caractere no LCD 16x2 ....................................................................................................... 139Lista de cdigos dos Caracteres ................................................................................................................................................. 139

    Endereos e Instrues ......................................................................................................................................... 143

    Inicializao do LCD ............................................................................................................................................ 144

    Definindo o modo de operao do LCD ............................................................................................................. 144LCD Modo 8 Bits ........................................................................................................................................................................ 145A funo lcd8_config () ............................................................................................................................................................. 147

    O comando Lcd8_cmd(comandos_LCD): ................................................................................................................................. 148No exemplo utilizamos o seguinte comando para apagar o display LCD: .............................................................................. 149

    LCD Modo 4 bits - Somente um port de controle/dados................................................................................. 152A funo Lcd_config ( ): ............................................................................................................................................................ 154

    LCD Modo 4 bits - Controlado por dois ports do PIC .................................................................................... 154A funo Lcd_init ( ): ................................................................................................................................................................. 156

    Criando Caracteres especiais: ............................................................................................................................. 157

    Trabalhando com display LCD e Teclados ....................................................................................................... 163

    UNIDADE 07 ..........................................................................................................................166Conversor A/D do PIC ......................................................................................................................................... 167

    Registrador ADCON0:................................................................................................................................................................ 167Registrador ADCON1:................................................................................................................................................................ 169

    Trabalhando com AD no MikroC ...................................................................................................................... 173Projeto: Leitura do sensor de Temperatura LM35 .................................................................................................................... 176

  • 8/3/2019 Sumario Apostila de C Para PIC

    8/10

    _________________________________________

    MicroGenios Treinamentos, Kits de desenvolvimento e muito mais...www.microgenios.com.br| www.portalwebaula.com.br (11) 5084-4518 | 3384-5598

    8

    UNIDADE 08 ..........................................................................................................................181

    Canal PWM do PIC .............................................................................................................................................. 182

    Introduo .............................................................................................................................................................. 182Trabalhando com PWM no PIC ......................................................................................................................... 185

    Funo de Inicializao da gerao do sinal PWM: ........................................................................................ 185Funo de duty Cycle: ................................................................................................................................................................ 186Funo de Start e Stop: ............................................................................................................................................................... 187Controlando a velocidade de uma ventoinha: ........................................................................................................................... 189

    UNIDADE 09 ..........................................................................................................................193

    OS TIMERS/COUNTERS .......................................................................................................194

    TIMER0 ..................................................................................................................................194

    Registradores de configurao do TIMER0: .................................................................................................... 198T0CON: (TIMER0 Counter Register) ....................................................................................................................................... 198O registrador INTCON ............................................................................................................................................................... 200Aprendendo a programar os TIMER0: ...................................................................................................................................... 201

    Modo contador do TIMER0 do PIC: ................................................................................................................. 209

    UNIDADE 10 ..........................................................................................................................212

    O TIMER1: ............................................................................................................................................................ 213

    Registradores de configurao do TIMER1: .................................................................................................... 213T1CON: (TIMER1 CONTROL REGISTER): .......................................................................................................................... 214

    Programando o TIMER1 do PIC. ...................................................................................................................... 217

    Relgio com o TIMER1 ........................................................................................................................................ 224

    Modo contador do TIMER1 ................................................................................................................................ 228

    UNIDADE 11 ..........................................................................................................................234

    O TIMER2 : ............................................................................................................................235

    Os registradores relacionados com o TIMER2 so: ........................................................................................ 235Registradores de configurao do TIMER2: ............................................................................................................................. 237T2CON: (TIMER2 CONTROL REGISTER): .......................................................................................................................... 237

    UNIDADE 12 ..........................................................................................................................242

  • 8/3/2019 Sumario Apostila de C Para PIC

    9/10

    _________________________________________

    MicroGenios Treinamentos, Kits de desenvolvimento e muito mais...www.microgenios.com.br| www.portalwebaula.com.br (11) 5084-4518 | 3384-5598

    9

    O TIMER3 : ............................................................................................................................242

    Registradores de configurao do TIMER3: .................................................................................................... 245T3CON: (TIMER3 CONTROL REGISTER); .......................................................................................................................... 245

    Modo contador de pulsos externo do TIMER3: ............................................................................................... 249

    UNIDADE 13 ..........................................................................................................................253

    As Interrupes do PIC18F4520 ......................................................................................................................... 254

    Estudo dos Registradores de Configurao das Interrupes do PIC.......................................................... 258RCON (CONTROL REGISTER) .............................................................................................................................................. 258INTCON (Interrupt Control) ...................................................................................................................................................... 259INTCON2 (Interrupt Control 2) ................................................................................................................................................. 259INTCON3 (Interrupt Control 3) ................................................................................................................................................. 260PIR1 (sinaliza Interrupo dos Perifricos 1) ............................................................................................................................ 260PIR2 (sinaliza Interrupo dos Perifricos 2) ............................................................................................................................ 261PIE1 (Habilitao das interrupo dos perifricos ) ................................................................................................................. 261PIE2 (Habilitao das Interrupo dos Perifricos) .................................................................................................................. 261IPR1 (registrador de prioridade de interrupes) ...................................................................................................................... 261IPR2 (registrador de prioridade de interrupes 2) ................................................................................................................... 262

    Programando as interrupes Externas no MikroC. ...................................................................................... 263Interrupo de Alta prioridade: .................................................................................................................................................. 264Interrupo de Baixa prioridade: ................................................................................................................................................ 264

    Como devemos programar as interrupes de alta e baixa prioridade? ..................................................... 265

    Programando as interrupes: ............................................................................................................................ 265Interrupo do TIMER0: ............................................................................................................................................................ 265Interrupo do TIMER1: ............................................................................................................................................................ 268Interrupo do TIMER2: ............................................................................................................................................................ 274Interrupo do TIMER3: ............................................................................................................................................................ 280

    As Interrupo externa INT0, INT1 e INT2 ..................................................................................................... 284Programando a Interrupo externa INT0: ................................................................................................................................ 284

    Programando a interrupo externa INT1 ....................................................................................................... 288

    Programando a interrupo externa INT2 ....................................................................................................... 292

    Interrupo por mudana de estado .................................................................................................................. 297

    Programao do mdulo LVD: Detector de Baixa Voltagem ...................................................................... 300

    Registrador relacionados ao controle do mdulo LVD: ................................................................................. 301LVDCON:.................................................................................................................................................................................... 301

    Obs: no se esquea de desativar o bit de configurao Brown-Out nos bits de configurao!! ............ 304

    UNIDADE 13 ..........................................................................................................................305

  • 8/3/2019 Sumario Apostila de C Para PIC

    10/10

    _________________________________________

    MicroGenios Treinamentos, Kits de desenvolvimento e muito mais...www.microgenios.com.br| www.portalwebaula.com.br (11) 5084-4518 | 3384-5598

    10

    COMUNICAO SERIAL ......................................................................................................306

    Programando o canal USART do PIC no mikroC: ......................................................................................... 306Leitura do canal serial ................................................................................................................................................................. 308

    Aprendendo praticando: .............................................................................................................................................................. 311