Apostila de PIC

9.685 visualizações

Publicada em

Publicada em: Educação
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
9.685
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1.683
Ações
Compartilhamentos
0
Downloads
651
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apostila de PIC

  1. 1. XM118 - Microcontroladores PIC18. .Revis˜o a Principais Autores Descri¸˜o da Vers˜o ca a T´rmino e A Jos´ Domingos Adriano e Vers˜o inicial. a 01/06/2009 B Raffael De Oliveira Mar¸ano c Altera¸˜o do esquema el´trico ca e 12/08/2009 C Victor Piva Renault Grossi Altera¸˜o no corpo do documento. ca 21/02/2011 c Copyright 2008 por Exsto Tecnologia Ltda. Todos os direitos reservados ”Desenvolvido e produzido com orgulho no Brasil”. Exsto Tecnologia Ltda Av. Cel. Francisco Palma, 95 - Sala 02 - Centro Santa Rita do Sapuca´ - MG ı CEP: 37540-000 +55 35 3471 6898 www.exsto.com.br. 2
  2. 2. Sum´rio aLista de Figuras 10Lista de Tabelas 13Apostila Te´rica o 221 Microcontroladores 25 1.1 Sistema computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.1.1 Mem´rias . . . . . . . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . 26 1.1.2 Dispositivos de entrada e sa´ ıda . . . . . . . . . . . . . . . . . . . . . . . . . 28 1.1.3 Perif´ricos . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . 30 1.1.4 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.2 Arquitetura Computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.2.1 Arquitetura von-Neumann . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 1.2.2 Arquitetura Harvard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 1.2.3 Microcontrolador, Microprocessador e DSP . . . . . . . . . . . . . . . . . . 372 PIC18, microcontroladores de alto desempenho 38 2.1 Microcontroladores PIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.1.1 A Microchip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.2 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.2.1 Pinagem e hardware b´sico . . . . . . . . . . a . . . . . . . . . . . . . . . . . 42 2.3 Mem´rias . . . . . . . . . . . . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . 43 2.3.1 Mem´ria de programa . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . 43 2.3.2 Mem´ria de dados . . . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . 46 2.4 Processador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.4.1 ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.5 Portais de I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.6 Conjunto de Instru¸˜es . . . . . . . . . . . . . . . . . co . . . . . . . . . . . . . . . . . 53 2.7 Oscilador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.7.1 Oscilador a cristal ( LP,XT e HS) . . . . . . . . . . . . . . . . . . . . . . . 55 2.7.2 PLL - Phase Locked Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.7.3 Oscilador RC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.7.4 Oscilador Externo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.7.5 Oscilador Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.7.6 Compara¸˜o entre os modos de oscilador . . . ca . . . . . . . . . . . . . . . . . 59 2.7.7 Sistema de clock do PIC18F4550 . . . . . . . . . . . . . . . . . . . . . . . . 59 2.7.8 Configura¸˜o de clock para operar com USB ca . . . . . . . . . . . . . . . . . 61 2.7.9 Escolha de modo e troca de oscilador . . . . . . . . . . . . . . . . . . . . . . 62 2.8 Caracter´ısticas Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.8.1 Modos de baixo consumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.8.2 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3
  3. 3. XM118 - Microcontroladores PIC18 2.8.3 POR - Power-On Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.8.4 PWRT - Power-up Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.8.5 OST - Oscillator Start-up Timer . . . . . . . . . . . . . . . . . . . . . . . . 67 2.8.6 BOR - Brown-out Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.8.7 Causas de reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.8.8 Sequˆncia de inicializa¸˜o . . . . . . e ca . . . . . . . . . . . . . . . . . . . . . . 68 2.8.9 Watch-Dog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 2.8.10 Prote¸˜o de C´digo (Code Protect) ca o . . . . . . . . . . . . . . . . . . . . . . 69 2.8.11 Grava¸˜o e depura¸˜o . . . . . . . . ca ca . . . . . . . . . . . . . . . . . . . . . . 693 Ferramentas para o PIC18F: MPLAB IDE e Compilador C18 71 3.1 O MPLAB IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.1.1 Criando um novo projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.1.2 Construindo um projeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.1.3 Gravando o microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.2 Simula¸˜o em C . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . . . . . 76 3.2.1 Simula¸˜o . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . . . . . 78 3.2.2 Outras funcionalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.2.3 Analisador l´gico . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . 79 3.2.4 Gera¸˜o de est´ ca ımulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.3 O compilador C18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.3.1 Outros Compiladores C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.4 Depura¸˜o em C . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . . . . . 824 Linguagem C para microcontroladores 84 4.1 Introdu¸˜o a linguagem C . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . 84 4.1.1 A fun¸˜o printf() . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . 86 4.1.2 ”C ou n˜o C, eis a quest˜o”. . . . . . . . . a a . . . . . . . . . . . . . . . . . . 86 4.1.3 Passado e Futuro da linguagem C . . . . . . . . . . . . . . . . . . . . . . . 89 4.2 Diretivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.2.1 #include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.2.2 #define . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.2.3 #pragma config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.2.4 #pragma interrupt e #pragma interruptlow . . . . . . . . . . . . . . . . . . 98 4.3 Tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.3.1 Declara¸˜o de vari´veis e constantes . . . . ca a . . . . . . . . . . . . . . . . . . 100 4.3.2 Vari´veis locais e globais . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . 101 4.3.3 Vetores e matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.3.4 Ponteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.3.5 Qualificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.4 Comandos B´sicos . . . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . 104 4.4.1 Atribui¸˜o . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . 104 4.4.2 Decis˜o . . . . . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . 110 4.4.3 Repeti¸˜o . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . 113 4.5 Fun¸˜es . . . . . . . . . . . . . . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . 115 4.5.1 Passagem de parˆmetros . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . 115 4.6 Interrup¸˜es . . . . . . . . . . . . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . 118 4.6.1 Utiliza¸˜o das Interrup¸˜es . . . . . . . . . ca co . . . . . . . . . . . . . . . . . . 121 4.6.2 Interrup¸˜es no C18 . . . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . 124 4.7 Fun¸˜es uteis . . . . . . . . . . . . . . . . . . . . . co ´ . . . . . . . . . . . . . . . . . . 126 4.7.1 Opera¸˜es matem´ticas . . . . . . . . . . . co a . . . . . . . . . . . . . . . . . . 128 4.8 T´cnicas de Otimiza¸˜o de C´digo . . . . . . . . . e ca o . . . . . . . . . . . . . . . . . . 128 4.8.1 Rotinas Matem´ticas . . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . 129 4
  4. 4. XM118 - Microcontroladores PIC18 4.8.2 Usando assembly no C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.8.3 Uso de vari´veis locais e globais . . . . . . . . . . . . . . . . . . . . . . . . . 131 a5 Aplica¸˜es co 132 5.1 Display de 7 segmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5.1.1 Displays multiplexados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 5.1.2 Apresentando valores em display . . . . . . . . . . . . . . . . . . . . . . . . 134 5.2 Buzzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 5.3 Teclado Matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 5.3.1 Interrup¸˜o por mudan¸a de estado na ca c porta B . . . . . . . . . . . . . . . . 137 5.4 Display de cristal l´ ıquido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 5.4.1 A biblioteca XLCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.5 Mem´rias EEPROM e FLASH . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . 141 5.5.1 Mem´ria EEPROM . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . 143 5.5.2 Mem´ria Flash . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . 1456 Perif´ricos e 148 6.1 Como usar a ajuda das bibliotecas do C18 . . . . . . . . . . . . . . . . . . . . . . . 148 6.2 Contadores e Temporizadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 6.2.1 Timer 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 6.2.2 Timer 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 6.2.3 Timer 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 6.2.4 Timer 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 6.2.5 Fun¸˜es . . . . . . . . . . . . . . . . . . . . . . co . . . . . . . . . . . . . . . . 158 6.3 Comparadores Anal´gicos . . . . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . 158 6.3.1 Funcionamento do Comparador . . . . . . . . . . . . . . . . . . . . . . . . . 161 6.4 Conversor Anal´gico-Digital . . . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . 163 6.4.1 Quantiza¸˜o . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . 163 6.4.2 Taxa de Amostragem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6.4.3 Linearidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.4.4 Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.4.5 Aplica¸˜o . . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . 167 6.4.6 Usando o conversor ADC no microcontrolador . . . . . . . . . . . . . . . . 167 6.5 CCP - Captura, Compara¸˜o e PWM . . . . . . . . . ca . . . . . . . . . . . . . . . . 170 6.5.1 Modo captura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 6.5.2 Modo compara¸˜o . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . 172 6.5.3 Modo PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 6.5.4 EPWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 6.6 EUSART - Porta Serial Ass´ ıncrona . . . . . . . . . . . . . . . . . . . . . . . . . . 176 6.6.1 Comunica¸˜o serial ass´ ca ıncrona . . . . . . . . . . . . . . . . . . . . . . . . . 176 6.6.2 Comunica¸˜o paralela . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . 176 6.6.3 Comunica¸˜o serial . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . 176 6.6.4 EUSART do PIC18F4550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 6.6.5 EIA-232C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 6.6.6 Protocolos de comunica¸˜o . . . . . . . . . . . ca . . . . . . . . . . . . . . . . 183 6.7 MSSP - Porta Serial S´ ıncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 6.7.1 SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 6.7.2 I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 6.8 USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 5
  5. 5. XM118 - Microcontroladores PIC187 Anexos 196 7.1 Anexo A - Distribui¸˜o de Pinos do 18F4550 . . . . . . ca . . . . . . . . . . . . . . . 196 7.2 Anexo B - Registros de fun¸˜o especial do PIC18F4550 ca . . . . . . . . . . . . . . . 197 7.3 Anexo C - Leituras Recomendadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 7.4 Anexo D - Bibliografia: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 7.5 Anexo E - Conjunto de instru¸˜es do PIC18 . . . . . . . co . . . . . . . . . . . . . . . 200Caderno de Experiˆncias e 2038 Aulas Pr´ticas a 204 8.1 Aula 1 - Introdu¸˜o aos microcontroladores . . . . . . . . . ca . . . . . . . . . . . . . 205 8.2 Aula 2 - O PIC18F4550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 8.3 Aula 3 - Assembly do PIC18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 8.4 Aula 4 - Ferramentas de desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . 210 8.5 Aula 5 - Caracter´ ısticas Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 8.6 Aula 6 - Iniciando com a linguagem C . . . . . . . . . . . . . . . . . . . . . . . . . 215 8.7 Aula 7 - Estruturas de Decis˜o . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . 217 8.8 Aula 8 - Estruturas de Repeti¸˜o . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . 221 8.9 Aula 9 - Fun¸˜es . . . . . . . . . . . . . . . . . . . . . . . . co . . . . . . . . . . . . . 224 8.10 Aula 10 - Interrup¸˜es . . . . . . . . . . . . . . . . . . . . . co . . . . . . . . . . . . . 225 8.11 Aula 11 - Display de 7 segmentos e buzzer . . . . . . . . . . . . . . . . . . . . . . . 227 8.12 Aula 12 - Teclado Matricial e LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 8.13 Aula 13 - Contadores e temporizadores . . . . . . . . . . . . . . . . . . . . . . . . . 230 8.14 Aula 14 - Conversor A/D‘ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 8.15 Aula 15 - M´dulo CCP . . . . . . . . . . . . . . . . . . . . . o . . . . . . . . . . . . . 233 8.16 Aula 16 - Comunica¸˜o serial ass´ ca ıncrona (RS232 e RS485) . . . . . . . . . . . . . 235 8.17 Aula 17 - SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 8.18 Aula 18 - I 2 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 8.19 Aula 19 - Interface industrial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242Manual de Opera¸˜o e Manuten¸˜o. ca ca 2449 Conte´ do do Kit: u 246 9.1 Conte´do do DVD . . . . . . . . . . . . . . . . . u . . . . . . . . . . . . . . . . . . . 247 9.2 Instala¸˜es . . . . . . . . . . . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . . 247 9.2.1 Instala¸˜o do Hardware . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . . 247 9.2.2 Instala¸˜o dos Softwares . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . . 248 9.2.3 Configura¸˜es ap´s a instala¸˜o . . . . . co o ca . . . . . . . . . . . . . . . . . . . 258 9.3 Hardware do kit XM118 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 9.3.1 Fonte de alimenta¸˜o . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . . 265 9.3.2 Microcontrolador PIC18F4550 . . . . . . . . . . . . . . . . . . . . . . . . . 265 9.3.3 Conectores para acesso de I/O (PORTS) . . . . . . . . . . . . . . . . . . . . 267 9.3.4 ICD e conector ICSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 9.3.5 Configura¸˜o . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . . 269 9.3.6 Dispositivos de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 9.3.7 Dispositivos de sa´ ıda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 9.3.8 Acionamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 9.3.9 Dispositivos anal´gicos . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . 275 9.3.10 Interfaces seriais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 9.3.11 Diversos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 9.4 Resolvendo Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 6
  6. 6. XM118 - Microcontroladores PIC189.4.1 Suporte T´cnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 e 7
  7. 7. Lista de Figuras 1 Caracter´ ısticas dos PIC18F4550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.1 Diagrama em blocos gen´rico de um sistema e computacional . . . . . . . . . . . . . 26 1.2 Portais de entrada e sa´ıda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.3 Esquema t´ ıpico de um pino de I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.4 Diagrama em blocos de uma CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.5 Arquitetura von-Neumann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 1.6 Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 1.7 Arquitetura Harvard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.1 Diagrama em blocos do PIC18F4550 . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.2 Pinagem do PIC18F4550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.3 Mapa e mem´ria de programa . . . . . . . . . . . . . . . . . o . . . . . . . . . . . . . 44 2.4 Estrutura do PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.5 Ponteiro da pilha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.6 Mapeamento de mem´ria de dados para PIC18F4550 . . . . o . . . . . . . . . . . . . 47 2.7 Registros de fun¸˜es especiais existentes no PIC18F4550 . . co . . . . . . . . . . . . . 48 2.8 Ciclos de instru¸˜o . . . . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . 50 2.9 ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.10 Registro STATUS / Bits de flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.11 Esquema gen´rico de um pino . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 52 2.12 Sistema de oscila¸˜o . . . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . 55 2.13 Circuito do Oscilador a Cristal/Ressonador . . . . . . . . . . . . . . . . . . . . . . 55 2.14 Partida do oscilador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.15 Esquema b´sico de um PLL . . . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . 56 2.16 Circuito do oscilador no modo RC. . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.17 Forma de onda do oscilador RC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.18 Circuitos osciladores: (a) cristal paralelo e (b) cristal s´rie. e . . . . . . . . . . . . . 58 2.19 Sistema de gera¸˜o e sele¸˜o de clock do PIC18F4550. . . . ca ca . . . . . . . . . . . . . 60 2.20 Controle do oscilador (OSCTUNE) . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.21 Controle do oscilador (OSCCON) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.22 Diagrama de reset do PIC18F4550. . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.23 Situa¸˜es de Brown-out . . . . . . . . . . . . . . . . . . . . co . . . . . . . . . . . . . 67 2.24 RCON e seus bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.1 Barra de ferramentas ICD2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.1 Diagrama de interrup¸˜es do PIC18F . co . . . . . . . . . . . . . . . . . . . . . . . . . 119 4.2 Registro INTCON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4.3 Registro INTCON 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4.4 Registro INTCON 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.1 - Displays de LED: (a) disposi¸˜o dos segmentos, (b) catodo comum e (c) anodo ca comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 8
  8. 8. XM118 - Microcontroladores PIC185.2 Esquema Simplificado do Teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1365.3 Fluxograma / Leitura do teclado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1375.4 Esquema B´sico do Display . . . . . . . . . a . . . . . . . . . . . . . . . . . . . . . . 1395.5 Caracteres do display. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1405.6 EECON1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1425.7 Processo de leitura e escrita da EEPROM . . . . . . . . . . . . . . . . . . . . . . . 1435.8 Processo de leitura da FLASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1465.9 Processo de escrita na FLASH(PIC18F452) . . . . . . . . . . . . . . . . . . . . . . 1466.1 Aspecto da pasta PERIPH-LIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1496.2 Conte´do da ajuda. . . . . . . . . . . . . . . . . . u . . . . . . . . . . . . . . . . . . 1496.3 Resumo das bibliotecas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1506.4 Vers˜o de AD do microcontrolador utilizado. . . . a . . . . . . . . . . . . . . . . . . 1506.5 Apresenta¸˜o da fun¸˜o ajuda. . . . . . . . . . . . ca ca . . . . . . . . . . . . . . . . . . 1516.6 Diagrama do Timer 0 no modo 8 bits . . . . . . . . . . . . . . . . . . . . . . . . . . 1556.7 Diagrama do Timer 0 no modo 16 bits . . . . . . . . . . . . . . . . . . . . . . . . . 1556.8 Diagrama do Timer 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1566.9 Diagrama em blocos do timer 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1576.10 Diagrama do timer 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1576.11 Registro de configura¸˜o do comparador . . . . . . ca . . . . . . . . . . . . . . . . . . 1596.12 Configura¸˜es poss´ co ıveis do comparador. . . . . . . . . . . . . . . . . . . . . . . . . 1606.13 Representa¸˜o do funcionamento do comparador . ca . . . . . . . . . . . . . . . . . . 1616.14 Descri¸˜o da sa´ do comparador . . . . . . . . . ca ıda . . . . . . . . . . . . . . . . . . 1626.15 Escala de convers˜o . . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . 1646.16 Grau de Linearidade de Convers˜o . . . . . . . . . a . . . . . . . . . . . . . . . . . . 1656.17 Diagrama em blocos do conversor A/D . . . . . . . . . . . . . . . . . . . . . . . . . 1666.18 Escala de convers˜o . . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . 1666.19 Diagrama em blocos do ADC do PIC18F4550 . . . . . . . . . . . . . . . . . . . . . 1686.20 Diagrama em blocos do ADC do PIC18F4550 . . . . . . . . . . . . . . . . . . . . . 1686.21 Diagrama do modo captura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1716.22 Diagrama do modo compara¸˜o . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . 1726.23 Diagrama em blocos no modo PWM . . . . . . . . . . . . . . . . . . . . . . . . . . 1736.24 Sinal PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1746.25 Comunica¸˜o Ass´ ca ıncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1786.26 M´dulo de Recep¸˜o . . . . . . . . . . . . . . . . . o ca . . . . . . . . . . . . . . . . . . 1786.27 M´dulo de Transmiss˜o . . . . . . . . . . . . . . . o a . . . . . . . . . . . . . . . . . . 1796.28 Especifica¸˜es el´tricas do EIA-232C . . . . . . . . co e . . . . . . . . . . . . . . . . . . 1816.29 Esquemas liga¸˜o de diversos transceptores a rede ca . . . . . . . . . . . . . . . . . . 1826.30 Pinos para opera¸˜o em SPI . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . 1866.31 Diagrama em blocos para o modo SPI . . . . . . . . . . . . . . . . . . . . . . . . . 1866.32 Diagrama em blocos para o modo I2C escravo. . . . . . . . . . . . . . . . . . . . . 1886.33 Protocolo I2C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1886.34 Condi¸˜es de Start e Stop. . . . . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . 1886.35 Sinal de no-acknowledge (NACK). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1896.36 Start e Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1896.37 Opera¸˜o de leitura. . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . 1906.38 Opera¸˜o de escrita . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . 1906.39 Diagrama em blocos para o modo I 2 C escravo . . . . . . . . . . . . . . . . . . . . 1906.40 Diagrama em blocos para o modo I 2 C mestre . . . . . . . . . . . . . . . . . . . . . 1916.41 Tipos de conectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1947.1 Conven¸˜es do PIC 18F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 co7.2 Conjunto de instru¸˜es do Pic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 co 9
  9. 9. XM118 - Microcontroladores PIC187.3 Conjunto de instru¸˜es do Pic(segunda parte) . . . . . . . . . . . . . . . . . . . . 201 co7.4 Conjunto de instru¸˜es do Pic(terceira parte) . . . . . . . . . . . . . . . . . . . . . 202 co9.1 Diagrama de instala¸˜o do kit . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . 2489.2 Tela inicial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2499.3 Contrato de licen¸a do MPLAB. . . . . . . . . . . . . . . . . c . . . . . . . . . . . . 2499.4 Sele¸˜o de vers˜o. . . . . . . . . . . . . . . . . . . . . . . . . . ca a . . . . . . . . . . . . 2509.5 Pasta de instala¸˜o do MPLAB. . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . 2509.6 Contrato de licen¸a do Application Maestro. . . . . . . . . . . c . . . . . . . . . . . . 2519.7 Contrato de licen¸a do compilador C32. . . . . . . . . . . . . c . . . . . . . . . . . . 2519.8 Resumo da instala¸˜o . . . . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . 2529.9 Andamento da instala¸˜o. . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . 2529.10 Instala¸˜o do compilador HI-TECH C. . . . . . . . . . . . . . ca . . . . . . . . . . . . 2539.11 Tela de conclus˜o da instala¸˜o. . . . . . . . . . . . . . . . . . a ca . . . . . . . . . . . . 2539.12 Tela inicial de instala¸˜o do C18. . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . 2549.13 Contrato de licen¸a. . . . . . . . . . . . . . . . . . . . . . . . c . . . . . . . . . . . . 2559.14 Diret´rio de instala¸˜o . . . . . . . . . . . . . . . . . . . . . . o ca . . . . . . . . . . . . 2559.15 Componentes do pacote do compilador. . . . . . . . . . . . . . . . . . . . . . . . . 2569.16 Campos a serem selecionados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2569.17 Campos a serem selecionados 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579.18 Tela inicio de instala¸˜o. . . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . 2579.19 Tela de conclus˜o. . . . . . . . . . . . . . . . . . . . . . . . . a . . . . . . . . . . . . 2589.20 Assistente para adicionar novo hardware. . . . . . . . . . . . . . . . . . . . . . . . 2589.21 Procura avan¸ada de drivers. . . . . . . . . . . . . . . . . . . c . . . . . . . . . . . . 2599.22 Localiza¸˜o do painel de configura¸˜o . . . . . . . . . . . . . ca ca . . . . . . . . . . . . 2609.23 Selecionando XICD como ferramenta de programa¸˜o . . . .ca . . . . . . . . . . . . 2609.24 Tela inicial do wizard para configura¸˜o do XICD . . . . . . . ca . . . . . . . . . . . . 2619.25 Op¸˜o de porta de comunica¸˜o do XICD . . . . . . . . . . . ca ca . . . . . . . . . . . . 2619.26 Fonte de alimenta¸˜o do target. . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . 2629.27 Configura¸˜o da conex˜o autom´tica . . . . . . . . . . . . . . ca a a . . . . . . . . . . . . 2639.28 Configura¸˜o do download autom´tico do sistema operacional ca a do XICD . . . . . . 2639.29 Resumo das configura¸˜es do XICD . . . . . . . . . . . . . . co . . . . . . . . . . . . 2649.30 Serigrafia do Kit XM118 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649.31 Pinagem do PIC18F4550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2669.32 Esquema de pinos do XICD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2689.33 Liga¸˜o do XICD . . . . . . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . 2689.34 Liga¸˜o do XICD . . . . . . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . 2699.35 Dom´ ınios de terra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2789.36 Liga¸˜o de entradas ao m´dulo XMM01 . . . . . . . . . . . . ca o . . . . . . . . . . . . 2799.37 Liga¸˜o de sa´ ca ıdas ao m´dulo XMM01 . . . . . . . . . . . . . o . . . . . . . . . . . . 279 10
  10. 10. Lista de Tabelas 2.1 Caracter´ısticas dos PIC18F4550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.2 Caracter´ısticas el´tricas de entrada e sa´ . . . . . e ıda . . . . . . . . . . . . . . . . . . 42 2.3 Ciclos ”Q”do microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.4 Sele¸˜o de capacitores para oscilador a cristal . . . ca . . . . . . . . . . . . . . . . . . 56 2.5 Compara¸˜o entre os modos de oscilador . . . . . . ca . . . . . . . . . . . . . . . . . . 59 2.6 Frequˆncia / fator de divis˜o do PLL prescaler . . e a . . . . . . . . . . . . . . . . . . 61 2.7 PLL postscaler / Frequˆncia do oscilador principal e . . . . . . . . . . . . . . . . . . 62 2.8 Combina¸˜es poss´ co ıveis de modos de baixo consumo e fontes de clock. . . . . . . . . 65 3.1 Comandos e suas descri¸˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . co 78 4.1 Palavras reservadas pelo padr˜o ANSI. . . a . . . . . . . . . . . . . . . . . . . . . . . 85 4.2 Compara¸˜o entre C e Assembly . . . . . ca . . . . . . . . . . . . . . . . . . . . . . . 88 4.3 PLL Prescaler Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.4 CPU System Clock Postscaler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.5 USB Clock Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.6 Oscillator Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.7 Oscillator Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.8 Internal/External Oscillator Switchover . . . . . . . . . . . . . . . . . . . . . . . . 92 4.9 Power-up Timer Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.10 Brown-out Reset Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.11 Brown-out Voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.12 USB Voltage Regulator Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.13 Watchdog Timer Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.14 Watchdog Timer Postscale Select bits . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.15 MCLR Pin Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.16 Low-Power Timer 1 Oscillator Enable . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.17 PORTB A/D Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.18 CCP2 MUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.19 Stack Full/Underflow Reset Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.20 Single-Supply ICSP Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.21 Dedicated In-Circuit Debug/Programming Port (ICPORT) Enable . . . . . . . . . 95 4.22 Extended Instruction Set Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.23 Background Debugger Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.24 Code Protection bit Block 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.25 Code Protection bit Block 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.26 Code Protection bit Block 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.27 Code Protection bit Block 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.28 Boot Block Code Protection bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.29 Data EEPROM Code Protection bit . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.30 Write Protection bit Block 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.31 Write Protection bit Block 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 11
  11. 11. XM118 - Microcontroladores PIC184.32 Write Protection bit Block 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.33 Write Protection bit Block 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.34 Boot Block Write Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.35 Configuration Register Write Protection . . . . . . . . . . . . . . . . . . . . . . . . 974.36 Data EEPROM Write Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.37 table EEPROM Write Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.38 Table Read Protection bit Block 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.39 Table Read Protection bit Block 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.40 Table Read Protection bit Block 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.41 Boot Block Table Read Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.42 Tipos da dados inteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.43 Tipos da dados inteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004.44 Representa¸˜o de valores . . . . . . . . . ca . . . . . . . . . . . . . . . . . . . . . . . . 1004.45 Operadores matem´ticos . . . . . . . . . a . . . . . . . . . . . . . . . . . . . . . . . . 1054.46 Operadores Comparativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064.47 Operadores Comparativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074.48 Operadores Comparativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074.49 operadores de manipula¸˜o de mem´ria ca o . . . . . . . . . . . . . . . . . . . . . . . . 1084.50 Operadores de manipula¸˜o de mem´ria ca o . . . . . . . . . . . . . . . . . . . . . . . . 1084.51 Controle das interrup¸˜es . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . 1244.52 Fun¸˜es de convers˜o de tipo . . . . . . co a . . . . . . . . . . . . . . . . . . . . . . . . 1264.53 Fun¸˜es de Reset . . . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . 1264.54 Fun¸˜es do portal B . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . 1274.55 Fun¸˜es do portal B . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . 1274.56 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274.57 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285.1 Acionamento de display de sete segmentos. . . . . . . . . . . . . . . . . . . . . . . 1335.2 D´ıgitos/Linhas/Colunas de um teclado matricial. . . . . . . . . . . . . . . . . . . . 1355.3 Liga¸˜o entre o PIC e o teclado matricial. . . . . ca . . . . . . . . . . . . . . . . . . . 1365.4 C´digos hexadecimais de comandos do LCD. . . o . . . . . . . . . . . . . . . . . . . 1385.5 Endere¸os de posi¸˜o no display . . . . . . . . . . c ca . . . . . . . . . . . . . . . . . . . 1385.6 Descri¸˜o dos pinos do display. . . . . . . . . . . ca . . . . . . . . . . . . . . . . . . . 1395.7 Comandos XLCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1416.1 Fun¸˜es da Biblioteca timers.h . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1586.2 Fun¸˜es da biblioteca ANCOMP.h co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1636.3 Fun¸˜es de uso do ADC . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1696.4 Fun¸˜es de Captura . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1716.5 Fun¸˜es de compara¸˜o . . . . . . co ca . . . . . . . . . . . . . . . . . . . . . . . . . . . 1726.6 Fun¸˜es para PWM . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1756.7 Fun¸˜es da USART . . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1806.8 Fun¸˜es da USART . . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1816.9 Fun¸˜es da USART . . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856.10 Fun¸˜es da SPI . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1876.11 Pinos para opera¸˜o em SPI . . . . ca . . . . . . . . . . . . . . . . . . . . . . . . . . . 1876.12 Fun¸˜es de I 2 C . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1926.13 Fun¸˜es da EEPROM I 2 C . . . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . 1939.1 Caracter´ ısticas dos PIC18F4550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2669.2 Esquema de pinos do XICD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2679.3 Configura¸˜o das chaves. . . . . ca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2709.4 Configura¸˜o do dip switch . . ca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 12
  12. 12. XM118 - Microcontroladores PIC189.5 Leitura do teclado matricial pelo microcontrolador . . . . . . . . . . . . . . . . . . 2729.6 Leitura do teclado matricial pelo microcontrolador . . . . . . . . . . . . . . . . . . 273 13
  13. 13. XM118 - Microcontroladores PIC18Introdu¸˜o ca Parab´ns! Vocˆ acaba de adquirir um produto de alta qualidade e tecnologia de ponta. O e eKit Educacional XM118 ser´ de grande aux´ no aprendizado e desenvolvimento de sistemas a ıliodigitais, na elabora¸˜o de cursos e treinamentos que envolvam microcontroladores PIC18. ca A Exsto Tecnologia ´ uma empresa situada em Santa Rita do Sapuca´ Minas Gerais, cidade e ı,conhecida como ”Vale da Eletrˆnica”por seu destaque na ind´stria eletroeletrˆnica e pela ex- o u ocelˆncia de suas institui¸˜es de ensino. Nossa miss˜o ´ sempre fornecer as melhores ferramentas e co a epara o desenvolvimento e aprendizado em eletrˆnica e desenvolvimento de software. Visite nosso osite www.exsto.com.br para conhecer outras solu¸˜es e produtos oferecidos. co 14
  14. 14. XM118 - Microcontroladores PIC18Apresenta¸˜o do produto ca O Kit Educacional XM118 ´ um ambiente de desenvolvimento que visa facilitar o aprendizado ee o desenvolvimento de aplica¸˜es de microcontroladores PIC18. co Seu desenvolvimento foi baseado no PIC18F4550, que dentre outras caracter´ ısticas importantespossui um perif´rico USB Device, apesar de suportar outros componentes de 40 pinos (nestes ecasos nem todas as aplica¸˜es da placa s˜o suportadas). A tabela abaixo apresenta algumas das co aprincipais caracter´ ısticas do PIC18F4550. A tabela a seguir traz as principais caracter´ ısticas do PIC18F4550. Figura 1: Caracter´ ısticas dos PIC18F4550 15
  15. 15. XM118 - Microcontroladores PIC18 A escolha da fam´ PIC18 se justifica por ser uma fam´ de dispositivos de 8 bits de alto ılia ıliadesempenho, que possui recursos comuns a todos os microcontroladores modernos, permitindoum aprendizado que n˜o se limite apenas a essa fam´ mas que se estenda a outras fam´ a ılia ıliasPIC e mesmo a outros fabricantes. Outra vantagem dessa linha ´ poder usar um compilador C eprofissional como o C18. Na atualidade o desenvolvimento em sistema embarcados ´ praticamente etodo feito em C, sendo usado o Assembly apenas em situa¸˜es espec´ co ıficas. O kit foi concebido para poder explorar ao m´ximo os recursos oferecidos pelo microcontro- alador. As diversas aplica¸˜es est˜o dispostas de forma did´tica, com indica¸˜o na serigrafia da co a a caplaca. Est˜o dispon´ a ıveis diversos pontos de medida (teste points) que permitem a visualiza¸˜o cados sinais de maior relevˆncia. O gravador/depurador XICD-2 embutido no kit permite, al´m a eda grava¸˜o a depura¸˜o (esse processo ser´ mais explorado ao longo do curso); esse dispositivo ca ca a´ totalmente compat´ com o ICD-2 Microchip e conecta-se diretamente ao MPLAB IDE. Ase ıvelprincipais caracter´ ısticas do kit XM118 s˜o: a • Baseado no PIC18F4550; • Fontes de alimenta¸˜o; ca – +5 e +12V; – Fontes chaveadas com sele¸˜o autom´tica de tens˜o e prote¸˜es; ca a a co • Bastidor robusto em a¸o; c • Gravador/depurador XICD-2 (compat´ com MPLAB) embutido; ıvel • Acesso a todos os pinos do microcontrolador; • Configura¸˜es de hardware atrav´s de dip switch; co e • 8 chaves dip switch ligadas ao PORTb; • Teclado matricial de 16 teclas; • 6 push-buttons em pinos de fun¸˜o especial(reset interrup¸˜es,timers); ca co • 8 LEDs convencionais ligados ao PORTD; • 2 LEDs bicolores; • 4 displays de 7 segmentos multiplexados; • Display LCD Alfanum´rico; e • Conector para LCD Gr´fico 128x64 (Opcional); a • Buzzer; • Lˆmpada DC acionada por PWM; a • 4 rel´s; e • Gerador de sinal ajust´vel; a 16
  16. 16. XM118 - Microcontroladores PIC18• Sistema de controle; – Resistˆncia para aquecimento; e – Ventoinha; – Sensor de temperatura ; – Tac´grafo para medida de velocidade da ventoinha; o• Dispositivos de comunica¸˜o serial; ca – Mem´ria EEPROM I2C o – Potenciˆmetro digital SPI o – RTC com bateria pr´pria o• Portas de comunica¸˜o serial; ca – RS232; – RS485; – USB 2.0 Full Speed (Device);• Perif´ricos anal´gicos; e o – DAC a partir do PWM; – ADC com canais especiais: ∗ Potenciˆmetro; o ∗ Sensor de temperatura; ∗ Duas entradas com ganho ajust´vel de 1 a 10; a ∗ Entrada 0 a 10VDC; ∗ Entrada 4 a 20mA Como v´rias aplica¸˜es utilizam os mesmos pinos do microcontrolador o kit possui um s´rie a co e de dip switchs para configura¸˜o de hardware. Consulte o manual e o esquema el´trico . ca e 17
  17. 17. XM118 - Microcontroladores PIC18Objetivo deste documento Este documento ´ divido em trˆs unidades, com os seguintes conte´dos: e e u • Apostila: apresenta a conceitua¸˜o te´rica sobre o assunto do kit ca o • Caderno de Experiˆncias: traz a orienta¸˜o para a realiza¸˜o das experiˆncias pr´ticas. e ca ca e a • Manual de Opera¸˜o e Manuten¸˜o: re´ne as informa¸˜es necess´rias para instala¸˜o e ca ca u co a ca configura¸˜o do kit, al´m de trazer esquemas el´tricos e outras informa¸˜es importantes ca e e co para manuten¸˜o. ca Documentos adicionais como guias de software e manuais de componentes est˜o tamb´m a econtidos no CD ou DVD que acompanha o kit. Esse conte´do ser´ discutido oportunamente u ana se¸˜o Manual. ca 18
  18. 18. XM118 - Microcontroladores PIC18Orienta¸˜o Pedag´gica ca o O material did´tico (apostila e caderno de experiˆncias) tem como fun¸˜o guiar o aluno durante a e catodo o seu aprendizado em Microcontroladores PIC18 utilizando o kit XM118. A apostila trazos conte´dos te´ricos sobre microcontroladores e linguagem C. Ela ´ organiza em cap´ u o e ıtulos, deforma que possa ser dividida conforme o plano de aula e carga hor´ria do curso. a Temos o prop´sito de explorar os conceitos abordados e imediatamente prover a integra¸˜o o cado aluno com o prazer da pr´tica, tornado seu aprendizado mais interessante e consistente. Todo ao conte´do aqui ´ abordado de forma a fomentar a vontade do aluno e aplicar o conhecimento de u eforma imediata, permitindo que ele possa criar seus pr´prios circuitos a partir dos conhecimentos oadquiridos. O curso e, em especial as experiˆncias pr´ticas, foram pensados com o objetivo de levar o e aaluno a adquirir competˆncias para o trabalho com microcontroladores, a saber: e • Compreender, analisar e comparar microcontroladores; • Compreender e utilizar circuitos com microcontroladores; • Ser capaz de entender e desenvolver programas em linguagem C para microcontroladores; • Conhecer os perif´ricos mais comuns em microcontroladores; e • Desenvolver projetos usando microcontroladores; O assunto microcontroladores ´ bastante extenso e n˜o se pode fazer um curso com a pre- e atens˜o de abord´-lo todo. No caso deste curso foi enfocado o microcontrolador PIC18F4550, um a adispositivo de uma fam´ avan¸ada com uma s´rie de recursos. Buscamos explorar a maioria ılia c edesses recursos, apesar de alguns n˜o terem sido inclusos e outros serem tratados apenas de forma aintrodut´ria. Foi dada especial aten¸˜o ao estudo da linguagem C para microcontroladores. o ca A divis˜o das aulas do curso prevˆ um esquema de 2 horas de teoria e 1 hora de pr´tica a e apara cada ”aula”. Abaixo ´ apresentada uma proposi¸˜o de divis˜o de aulas te´ricas. Para cada e ca a oaula destas existe uma aula pr´tica na se¸˜o ”Caderno de Experiˆncias”(para alguns conte´dos a ca e uconceituais a aula pr´tica ´ na verdade um question´rio sobre o assunto abordado). Tendo em a e aconta a extens˜o do assunto e a variedade de cargas hor´rias das disciplinas, propomos dois a a”n´ ıveis”em que o curso pode ser ministrado: b´sico e avan¸ado. O n´ b´sico aborda o conte´do a c ıvel a um´ ınimo que entendemos como necess´rio a um curso de microcontroladores, com uma carga ahor´ria limitada em 30 horas (10 aulas). O n´ a ıvel avan¸ado foi previsto para uma carga de 60 choras (19 aulas + 1 de projeto) e permite explorar alguns perif´ricos a mais, al´m de aumentar a e eoportunidade de exercitar a linguagem C com mais experiˆncias. Recomendamos que na ultima e ´ 19
  19. 19. XM118 - Microcontroladores PIC18aula do m´dulo avan¸ado seja proposto um projeto envolvendo diversos conceitos estudados ao o clongo do curso. 20
  20. 20. XM118 - Microcontroladores PIC18Algumas observa¸˜es: co1. Para institui¸˜es que possuem cursos de linguagem C - ANSI anterior ao de microcontro- co ladores as aulas 6, 7, 8 e 9 podem ser resumidas em 1 ou 2 aulas, enfocando apenas a parte pr´tica. a2. A aula 1 tem o objetivo de introduzir ou revisar os conceitos fundamentais sobre microcon- troladores e processadores. Se houve um estudo pr´vio de arquitetura de computadores ou e outros modelos de microcontroladores, essa aula se torna dispens´vel. a3. Na apresenta¸˜o das aulas alguns assuntos foram apresentados em seus sub-itens (como os ca t´picos 6.4 e 6.5) por uma quest˜o de divis˜o de aulas. Entenda-se que todo o t´pico deve o a a o ser estudado para um correto entendimento. 21
  21. 21. XM118 - Microcontroladores PIC18 A Um Poeta Olavo Bilac Longe do est´ril turbilh˜o da rua, e a Beneditino, escreve! No aconchego Do claustro, na paciˆncia e no sossego, e Trabalha, e teima, e lima, e sofre, e sua! Mas que na forma se disfarce o emprego Do esfor¸o; e a trama viva se construa c De tal modo, que a imagem fique nua, Rica mas s´bria, como um templo grego. o N˜o se mostre na f´brica o supl´ a a ıcio Do mestre. E, natural, o efeito agrade, Sem lembrar os andaimes do edif´ ıcio: Porque a Beleza, gˆmea da Verdade, e Arte pura, inimiga do artif´ ıcio, ´ E a for¸a e a gra¸a na simplicidade. c c O mundo da tecnologia est´ em constate e r´pida evolu¸˜o. Acompanhar essa evolu¸˜o exige a a ca cadedica¸˜o e investimento da parte dos que aceitam o desafio de n˜o s´ consumir tecnologia, mas ca a otamb´m de cri´-la. e a A linha de microcontroladores PIC18 foi lan¸ada com uma arquitetura renovada e otimizada cem rela¸˜o ` linha PIC16, trazendo tamb´m v´rias inova¸˜es que permitem o desenvolvimento ca a e a code aplica¸˜es mais avan¸adas e eficientes. Faz-se necess´rio, ent˜o, uma atualiza¸˜o dos conheci- co c a a camentos para tirar o m´ximo proveito das novas caracter´ a ısticas da linha PIC18. Paralelamente a essa evolu¸˜o de hardware processa-se uma revolu¸˜o de software, onde a ca calinguagem C ´ apresentada como escolha mais adequada para o desenvolvimento de c´digo em e omicrocontroladores, em substitui¸˜o a linguagem Assembly. Essa revolu¸˜o ´ ocasionada n˜o s´ ca ca e a opelo desenvolvimento de compiladores mais confi´veis e eficientes como tamb´m pela otimiza¸˜o a e cado conjunto de instru¸˜es e arquitetura dos microcontroladores para a linguagem C. A linha coPIC18, objeto de nosso estudo, tem sua arquitetura otimizada para C e a Microchip oferece umeficiente compilador, o C18. Tendo isso em vista, foi desenvolvido um curso que permitisse abordar as duas inova¸˜es: a colinha PIC18 e programa¸˜o de microcontroladores em linguagem C. ca No cap´ ıtulo 1 ´ apresentado o conceito de microcontroladores. Esse cap´ e ıtulo serve n˜o s´ para a ointroduzir os que ainda n˜o est˜o familiarizados com microcontroladores como tamb´m como uma a a erevis˜o dos conceitos fundamentais. Permite, dessa forma, equaliza¸˜o dos conhecimentos para a camelhor aproveitamento do curso. O capitulo 2 s˜o apresentadas as caracter´ a ısticas da linha PIC18, tratando especificamentedo PIC18F4550. S˜o estudados detalhadamente as mem´rias de programa e dados, tipos de a oosciladores, caracter´ ısticas especiais, ALU. Esse cap´ ıtulo concentra o estudo do hardware domicrocontrolador, com exce¸˜o dos perif´ricos que s˜o tratados no cap´ ca e a ıtulo 6 e das interrup¸˜es, coabordadas juntamente com a linguagem C no cap´ ıtulo 4. No cap´ ıtulo 3 trata-se das ferramentas de software usadas, o MPLAB IDE e o compiladorC18. A instala¸˜o, configura¸˜o e uso dessas ferramentas s˜o apresentados de forma simples, com ca ca a 23
  22. 22. XM118 - Microcontroladores PIC18sequencias passo-a-passo de configura¸˜o e uso. Estudam-se tamb´m as ferramentas de simula¸˜o ca e cae depura¸˜o. ca O capitulo 4 trata da linguagem C e seu uso em microcontroladores. Buscou-se apresentar osconceitos de C conforme o padr˜o ANSI, fazendo coment´rios sobre detalhes de implementa¸˜o a a cado C18 quando oportuno. O compilador C18 ´ acompanhado de diversas bibliotecas de fun¸˜es, e cotanto as padronizadas para a linguagem C como as espec´ ıficas para microcontroladores PIC. Asfun¸˜es dessas bibliotecas s˜o apresentadas detalhadamente no documento ”MPLAB R C18 C co aCOMPILER LIBRARIES”(que se encontra no CD do curso) e aos arquivos de ajuda do compi-lador. Outros cap´ ıtulos do curso fazem referˆncia a estes documentos. e Diversas aplica¸˜es de microcontroladores s˜o apresentadas no cap´ co a ıtulo 6. O enfoque principal´ na interface homem-m´quina, que permite a intera¸˜o do microcontrolador com o usu´rio.e a ca a No capitulo 6 s˜o estudados v´rios dos perif´ricos do PIC18F4550. Cada t´pico ´ iniciado com a a e o eo funcionamento do perif´rico, seguindo do estudo das rotinas do compilador C18 que permitem esei uso. Nos anexos encontram-se diversas informa¸˜es uteis e para consulta no dia-a-dia. Aten¸˜o co ´ caespecial deve ser dada ao anexo D Bibliografia e leituras recomendadas, que comenta diversasfontes de informa¸˜o sobre PIC, PIC18 e linguagem C. ca 24
  23. 23. XM118 - Microcontroladores PIC18Cap´ ıtulo 1Microcontroladores O objetivo deste curso ´ tratar dos microcontroladores da linha PIC18Xxxx, mais especifi- ecamente do PIC18F4550. Existem diversos textos que tamb´m tratam desse assunto. Contudo, eexiste uma carˆncia de informa¸˜es sobre o que vem a ser um microcontrolador, seus princ´ e co ıpiosde funcionamento, as partes comuns a todos os microcontroladores, dentre outras coisas. Mesmosos manuais dos componentes admitem que o leitor j´ possua um conhecimento pr´vio do assunto. a ePara suprir essa carˆncia, a primeira unidade desse material tratar´ de sistemas computacionais e ae microcontroladores de forma gen´rica. E e ´ importante este embasamento te´rico n˜o somente o apara garantir um melhor aproveitamento no estudo do PIC 18F4550 como tamb´m para tornar o eleitor apto a entender o funcionamento de outros microcontroladores, tanto da linha PIC como deoutros fabricantes. Esses conhecimentos tamb´m s˜o importantes na escolha do microcontrolador e aa ser utilizado em um projeto, pois permite estabelecer as bases conceituais para a compara¸˜o cade suas caracter´ ısticas.1.1 Sistema computacional Inicialmente devemos conceituar o que vem a ser um sistema computacional. Como j´ sabe- amos, os sistemas digitais podem ser classificados em trˆs tipos: combinacionais, sequenciais e ecomputacionais. Os sistemas computacionais, sendo o tipo mais complexo, s˜o compostos por asistemas combinacionais e sequenciais. O que caracteriza um sistema computacional ´ a pos- esibilidade de ser programado. Esse conceito n˜o ´ recente, sendo que j´ no s´culo XIX foram a e a etentadas implementa¸˜es dele. Contudo, somente na segunda metade do s´culo passado ´ que co e eforam desenvolvidas tecnologias (transistor, circuitos integrados) que permitiram a constru¸˜o cados processadores e computadores como os que conhecemos hoje. Um sistema computacional ´ composto por hardware (parte f´ e ısica) e software (programa). Ohardware dos sistemas computacionais, ao contr´rio do que ocorre com sistema combinacionais ae sequenciais, n˜o possui uma aplica¸˜o espec´ a ca ıfica. N˜o basta aliment´-lo devidamente para que a aele funcione. E´ necess´rio que exista um software para ser executado. Em contrapartida, um amesmo hardware pode executar uma infinidade de fun¸˜es diferentes, simplesmente alterando o coseu software. Uma boa analogia ´ imaginar o hardware como um instrumento musical e o software ecomo uma partitura. Um piano por si s´ n˜o faz nada, ´ necess´ria uma m´sica que possa ser o a e a uexecutada a fim de se obter algum resultado. Da mesma forma que a m´sica contida na partitura, uum programa ser´ composto por um conjunto limitado de s´ a ımbolos (no caso da partitura s˜o as a 25

×