sumario apostila de c para pic
TRANSCRIPT
-
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