Pré-visualização parcial do texto
Baixe microcontroladores pic18f e outras Notas de estudo em PDF para Mecatrônica, somente na Docsity!
Microcontroladores PIC18 Aprenda e Programe em Linguagem C A me ESA O pirerro EDITORA AFILIADA Microcontroladores PIC18 - Aprenda e Programe em Linguagem C Copyright O 2009 da Editora Érica Ltda. Todos os direitos reservados, Protida a reprodução total ou parcial, por qualquer meio ou processo, especialmente por sistemas gráficos, microfmicos, fotográficos, reprográlicos, foregráficos, videográficos, intemet, e-books. Vedada a memorização eiou recuperação lotal ou parcial em qualquer sistema de Processamento de dados e a inclusão de quelquer part da obra em qualquer programa juscibemético. Essas proibições aplicam-se também às caracteristicas gráficas da obra e à sua editoração. A violação dos direitos. autorais é punivel como crime (art 184 e parágrafos, do Código Penal, conforme Lei na 10.695, ce 07.01.2003) Som pena de reclusão, de dois - =; =::7 anos, e multa, conjuntamente com busca e apreensão e indenizações diversas (artigos 102, 103 paragrafo único, 104, 105, 106 e 107 itens 1, 2 e 3 da Lein? 9.610, de 19.06.1998 Lei dos Direitos Autorais) O Autor e a Editora asrediam que todas as informações aqui apresentadas estão coretas e podem ser ulizadas pêra qualquer fm legal, Entretanto, não exste garanta, explcta ou implcta, de que 0 uso de tas informações Conduzrá sempre ao resultado desejado. Os nomes ce sies e empresas, porventura mencionados, forem vê. izados apenas para iustar os exemplos, não tendo vinculo nenhum com o livro, não garantindo a sua existência nem divulgação. Eventuais eratas estarão disponiveis para download no sit da Editora Érica. Conteúdo adaplado 20 Novo Acordo Ortográfico da Lingua Portuguesa, em execução desde 1º de janeiro de 2009, “Algumas imagens utiizadas neste livro foram obtidas a partir do CorelDRAW 12, X3 e X4 e da Coleção do MesterClpsMasterPhotos” da IMSI, 100 Rowland Way, 3rd oor Novato, CA 94945, USA ” Dados Internacionais de Catalogação na Publicação (CIP) (Câmara Brasileira do Livro, SP, Brasil) Miyadaira, Alberto Noboru Microcontroladores PIC 18: aprenda e programe em linguagem G / Alberto Noboru Miyadaira. -- 1. ed. -- São Paulo: Érica, 2009. Bibliografia, ISBN 978-85-365-0244-1 4. € (Linguagem de programação para computadores) 2. Microcontroladores 1 Titulo. 09-06845 CDD-005.133 Índices para catálogo sistemático 1 O: Linguagem de programação: Aplicações com microcontroladores PIC 18: Computadores: Processamento de dados 005.133 Conselho Editorial: Revisão e Coordenação Editorial: Rosana Arruda da Silva Avaliador Técnico: Fábio Pereira Capa Mauricio S. de França Editoração: Adriana Aguiar Santoro Desenhos: Flávio Eugenio de Lima Revisão; Marlene Teresa S, Alves Carta de Oliveira Morais Editora Érica Ltda. Rua São Gil, 159 - Tatuapé CEP: 03401-030 - São Paulo - SP Fone: (11) 2295-3066 - Fax: (11) 2097-4060 www.editoraerica.com.br E Dedicatória Aos meus pais Nelson Toshikazu Miyadaira e Natsue Kyosen Miyadaira; o Aos meus irmãos Cristina Miyadaira e Fernando Yukio Miyadaira, que tanto me apoiaram na realização deste trabalho; . . ms À minha namorada Celenir Teló pelo apoio e compreensão quanto à importância deste livro como realização pessoal Agradecimentos À) iê impar devido ao alto grau de complexidade deste trabalho. Significa o esses for Ras e ng, com muita gene CeRtatao Isso prova que não há limites para o potencial humano desde que esteja melado e determinado. Gostaria de agradecer a Artimar, representante exclusivo da Microchip Technology no Brasil, pelas amostras de alguns modelos de microcontroladores PICº, À equi Éri licaçã ialmente à coordenadora Rosana Arruda da da Editora Érica por todo empenho e dedicação, especial muda d areia pela editoração do livro Adriana Aguiar Santoro e ao responsável pela capa isaurício Scervianinas de França; o o A todos os amigos que me ajudaram, pois sem seu apoio e o de minha familia teria sido muito difícil finalizar esta obra; Ao leitor pelo voto de confiança. "Bem sei eu que tudo podes e nenhum dos teus pensamentos pode ser impedido. Jó42:1 iicrocontroladores PIC 18 - Aprenda e Programe em Linguagem C oricant Microchip Technology Inc. “redutos: microcontroladores PIC? www.microchip.com =presentante oficial no Brasil: Artimar Ltda, Rua Bela Cintra 746 - 3º piso “=B: 01415-000 - São Paulo-SP =: (11) 3231-0277 a: (11) 3255-0511 www.artimar.com.br “mare Sistema operacional Windows 2000, XP ou superior: Ambiente de desenvolvimento MPLAB? IDE; Compilador MPLAB? C18. «cdware Processador com clock superior a 600 MHz; 128 MB de memória RAM; Disco rígido de 400 Mbytes (MS); Unidade de DVD-ROM; Acesso à Internet; Monitor de vídeo configurado com no minimo 800x600 pontos. T Capítulo 1 - Introdução . Exercícios... Capítulo 2 - MPLAB? IDE... 2.1 Criação de um Projeto .. 2.2 Adição de Arquivo ao Projeto 2.3 Configuração do Compilador MPLABº ciê 2.4 Configuração do Microcontrolador 24.1 Select Device... . 2.4.2 Configuration Bits. 2.5 Compilação do Projeto . 2.6 Verificação da Quantidade de Memória de Dados e de Programa Ublizada pelo Código .. 2.7 Visualização e Alteração do Conteúdo da Memória EEPROM Interna... 2.8 Verificação e Alteração do Conteúdo dos Registradores e Variáveis do Projeto .. 2.9 Visualização das Variáveis Locais ” areseiatiaipennas 2.10 Simulação e Depuração do Código-l 2.11 Simulação de UART pelo MPLAB? SIM ....... 2.12 Gravação do Programa no Microcontrolador Capítulo 3 - Compilador MPLABº C18 3.1 Considerações Iniciai: es 3.2 Linha de Comando 3.2.1 Opções de Otimização ... 3.2.1.1 Dead Code Removal. 3.2.1.2 Integer Promotion ... 3.2.1.3 Duplicate String Merging 3.2.1.4 Banking ... 5 Copy Propagation 6 Redundant Store Removal 7 Unreachable Code Removal . 3.2.1.10 Code Straightening 3.2.1.11 Wreg Content Tracking 3.2.1.12 Procedural Abstraction 3.3 Modo Estendido (Extended Mode) .. Capítulo 4 - Linguagem C MPLAB? C18. 41 Comentários . 4.2 Identificadores 4.3 Palavras-Chaves 4.4 Tipos de Dados ..... 4.5 Tipos de Qualificadores 4.5.1 Qualificadores de Armazenamento . 4.5.1.1 Memória de Dados ..... 4.5.1.2 Memória de Programa 4.5.1.3 Ponteiros ..... Microcontroladores PIC 18 - Aprenda e Programe em Linguagem C 4.19.4.11 Strlen e Strlenpgm 4.19.4,12 Strlyre Strlwrpgm .... E 4.19.4.13 Strncat, Strmcatpgm, Strncatpgmaram e Strncatram2pgm 4.19.4.14 Strnemp, Strncmppgm, Strncmppgm2ram e Strncmpram2pgm .. 4.19.4.15 Strncpy, Strmcpypgm. Stmcpypgm2ram e Strncpyram2pgm .. 4.19,4.16 Strpbrk, Strpbrkpsm, Strpbrkpgmram e Strpbrkrampgm 4, 19,4,17 Strrchr iss reesscaç 4.19.4.18 Strspn, Strspnpgm, Strspnpgmram e Strspnrampgm . 4.19.4.19 Strstr, Strstrpgm, Strstrpgmram e Strstrrampgm ... 4.19.4.20 Strtok, Strtokpgm, Strtokpgmram e Strtokrampgm . 4.19.4.21 Strupr e Struprpgm . 4.19.5 Funcões Matemáticas .... 4.19.5.1 Acos, Asin, Atan e Atan2 4.19.5.2 Ceile Floor . 4.19.5.3 Cos, Sine Tan . 4.19.5.4 Cosh, Sinh e Tanh 4.19.5.5 Exp ..... 4.19.5.6 Fabs...... 4.19.5.7 Fmod..... 4.19.5.8 Frexp 4.19.5.9 legetomchp e Mchptoiece 4.19.5.10 Ldexp ........ 4.19.5.11 Log e Log10 ...... 4.19.5.12 Modf .... 4.19.5.13 Pow 419,5.14 Sqrt .... “19.6 Números Pseucoaleatórios 4.19.6.1 Rand . 4.19.6.2 Srand . Código em Assembly . =nções de Controle do Processador . AA Cid iii. 421.2 Descrição dos Resets . 4.21.2.1isBOR() .. 42122isLVD () 421.23 isMCLR ( 4.21.24isPOR ()..... 4.21.2.5 iSWDTTO () 4.21.2.6iSWDTWU () + 420.27isWU() 421.3 Funções de Atraso 4.214 Nop .. +.21.5 Reset 421.6 Sleep “rquivos do Autor 4.221 Memória EEPROM Interna . 4.22.1.1 escreve mem EEPROM () 4.22.1.2le mem EEPROM () 4.22.2 Memória Flash Interna... 4.22.2.1 escreve. mem flash () n 4.222.216 mem flash ( no13a 4.23 Dicas ..... pespon 134 Exercicios Capítulo 5 - Microcontrolador PIC18F4550...................... 5.1 Introdução .. 5.1.1 Memórias 5.1.2 Ciclo de Máquina . 5.2 Pinagem ..... 5.3 Diagrama de Blocos do PIC18F4550 ... 5.4 Memória de Dados ........ 3 5.4.1 Registradores de Funções Especiais 5.5 Memória de Programa e a Stack . 5.5.1 Memória de Programa. 5.5.2 Vetores... 5.5.3 Stack (Pilha) sinceras sig 5.5.4 Verificação e Proteção do Código do Programa ...... 5.6 Oscilador ................... - E 5.6.1 Oscilador Interno .. ss 5.6.1.1 Modos do Oscilador Interno ......... 5.6.2 Oscilador Secundário 5.6.3 Oscilador Primário . É : 5.6.3.1 Configuração do Oscilador Externo 5.6.4 Funções do Oscilador para a USB ....... 5.7 Gerenciamento de Energia . 5.8 Reset .. EE 5.8.1 Fonte de Reset 5.8.1.1 Eventos Internos 5.8.1.2 Evento Externo .. ã 5.8.2 Contadores de Reset do Dispositivo 5.8.3 Two-Speed Start-Up...... 5.9 Características Elétricas do PIC18F4550 5.10 Fonte de Alimentação ............... 5.11 Frequência x Tensão de Alimentação 5.12 Funções Diversas do PIC18 .. 5.12.1 Registrador de Status 5.12.2 Fail-Safe Clock Monitor (FSCM) 5.12.3 Instruções Estendidas ........ 5.12.4 High/Low-Voltage Detect (HLVD) 5.13 Métodos de Programação 5.14 Tipos de Encapsulamento 5.15 Identificação do Microcontrolador PIC? . 5.16 Arquivo de Cabeçalho . Exercícios SFRS) Capítulo 6 - Configuração do PIC18... Capítulo 7 - Portas I/O Digitais........ 7.1 Sentido do Fluxo de Dados da Porta 744 TRISA, TRISB, TRISC, TRISD e TRISE 7.1.2 TRISAbits, TRISBbits, TRISCbits, TRISDbits e TRISEbi! 12 Microcontroladores PIC 18 - Aprenda e Programe em Linguagem C 7.2 Controle do Estado dos Pinos da Porta... 721 PORTA, PORTB, PORTC, PORTD e PORTE... 7.22 PORTAbits, PORTBbits, PORTCi!s, PORTDbits e PO; 7.3 Registro LAT... caps ã T3ALATA, LA , LATC, LATD e LATE E 7.3.2 LATAbits, LATBbits, LATCits, LATDbits é LATEbi 7.4 Hebilita/Desabilita Pull-Ups Internos . RTEbits Exercícios... 7.5 Projeto. Capítulo 8 - Display tn 2x16. ai 3.1 Pinagem LCD 2x18...... | 8.2 Instruções de Controle... " a 821 Configuração do Cursor edo Display .... 8.2.2 Controle do Display/Cursor .... ) 8.2.3 Controle da Mensagem ........... 8.2.4 Status e Posição do Contador de Endereço .... 8.2.5 Leitura e Escrita de Dados ......... E ] 8.2.6 Endereço da Linha x Coluna é 8.2.7 Caractere Especial ........... : 18.3 Inicialização do Display LCD 2x16 com Oito Vias... 84 Inicialização do Display LCD 2x16 com Quatro Vias '8.5 Conjuntos de Caracteres do Display... Ê 6 Biblioteca do Display LCD Alfanumérico ... 7 Projeto Ri teeaamrnecretramndantata Capítulo 9 - Interrupção... 7 21 Bits de Configuração da Interrupção ... 91.1 Interrupção com Nivel de Prioridade 9.1.2 Interrupção Sem Nivel de Prioridade + 91.3 Bits de Configuração do Evento de Interrupção 1.2 Comportamento da Interrupção 3 Diretiva de Interrupção . 4 Período de Latência .. 5 Projeto... âpitulo 10-USART.. “1 Protocolo R$.232 10.1.1 Funcionamento do Protocolo R$-232 10.1.2 Níveis Lógicos da Interface RS-232. ? Módulo EUSART do PIC18F4550 .... 10.2.1 Funções Adicionais da EUSART ; 10.2.1.1 Wake-Up Automático na Recepção de Dado . 10.212 Autodetecção e Calibração do Baud Rate E 10.2.1.3 Transmissão de Caractere Break de 12bits 10.2.1.4 Seleção da Polaridade do Clock 3 Funções de Configuração 10.3.1 Desabilta USART 10.3.2 Habilita USART 10.3. Bits de Configuração do Baud Rate da EU; 10.4 Funções de Controle ... sm 10.4.1 Status da Recepção . E 10.4.2 Status da Transmissão ......... 10.4.3 Transmissão de Caractere . 104. missão de String ..... rasa esstasiseconaão e oi Dados Localizados na Memória de Dados ..... 10.4.4.2 Dados Localizados na Memória de Programa 10.4.5 Recepção de Caractere 10.4.6 Recepção de String .. 10.5 Funções UART Implementadas em Software 10.5.1 Definição das Funções de Atraso 10.5.2 Configuração da UART em Software 10.5.3 Transmissão de Caractere 10.5.4 Transmissão de String . 10.5.5 Recepção de Caractere .... 10.5.6 Recepção de String : 106 Profa” ss ccasesrc socos Capítulo 11 - TIMERs e Watchdog Timer (WDT) JERS.. EEE E Camo cas dos TIMERS do PIC 184550 11,1.1.1 TIMER sé 11.112 TIMER 111.13 TIMER 2 11114 TIMER3. 11.1.2 Funções de TIMER : 11.1.2.1 Desabilita TIMER....... 11.1.2.2 Habilita TIMER 0. 11.1.2.3 Habilita TIMER 1. 11.1.24 Habilita TIMER 2. 11.1.2.5 Habilita TIMER 11.1.2.6 Habilita TIMER .2.7 Operação de Leitura. 8 Operação de Escrita. : 9 Seleção do TIMER para o Módulo -2 Watehdog Timer (WDT) ps “ 11.241 Função de Reinício do Contador de WD' 113 Projeto... Capitulo 12 - Módulo CCPIECCP..... 12.1 Módulo CCPIECCP do PIC18F455 12.1.1 Modo PWM.. ódulo ECCI gen res com Capacidade Aumentada 12.2 Funções para o Módulo CCPIECCP 12.2.1 Funções do Modo Capture 122.11 Desabilita o Capture 12.2.1.2 Habilita o Capture... . 12.2.1.3 Operação de Leitura do Capture 12.2.2 Funções do Modo Compare... 12.2.2.1 Desabilita o Compare... 12 Microcontroladores PIC18 - Aprenda e Programe em Linguagem C 7.2 Controle do Estado dos Pinos da Porta... ninmrasessenreesegçã 7.24 PORTA, PORTE, PORTC, PORTD e PORTE..... 7.2.2 PORTAIS, PORTBbits, PORTChits, PORTDbits e PORTEbits 7.3 Registro LAT. 7.31 LATA, LATE, LATC, LATD 6 LATE 7.3.2 LATAbits, LATBbitS, LATChits, LATOE TA Habilita/Desabilita Pull-Ups Internos . ts e LATEbits.. Exercicios... 7.5 Projeto... Capítulo 8 - Display t "0 2X46....... 3.1 Pinagem LCD 2xi6..... | 82 Instruções de Controle ......... 821 Configuração do Cursor e do Display 8.2.2 Controle do Display/Cursor .. ) 8.2.3 Controle da Mensagem ............ 8.2.4 Status e Posição do Contador de 8.2.5 Leitura e Escrita de Dados .... j 8.26 Endereço da Linha x Coluna 8.2.7 Caractere Especial ........ ja 18.3 Inicialização do Display LCD 2x16 com Oito Vias 8.4 Inicialização do Display LCD 2x16 com Quatro Vias '8.5 Conjuntos de Caracteres do Display .. ' Ee Biblioteca do Display LCD Alfanumérico . 7 Projeto e iobintrmeçe nisiortaaçã Endereço : Capítulo 9 - Interrupção... 241 Bits de Configuração da Interrupção ........ 91.1 Interrupção com Nível de Prioridade 9.1.2 Interrupção Sem Nivel de Prioridade » 9:13 Bits de Configuração do Evento de In terrupção 1.2 Comportamento da Interrupção 3 Diretiva de Interrupção . 4 Periodo de Latência 5 Projeto ....... dpítulo 10- USART 1 Protocolo R$-232 . 10.1.1 Funcionamento do Protocolo R$-232 10.1.2 Níveis Lógicos da Interface RS-232 ? Módulo EUSART do PIC18F4550 .... 10.2.1 Funções Adicionais da EUSART 10.211 Wake-Up Automático na Recepção de Dado . 10.2.1.2 Autodetecção e Calibração do Baud Rate. 2.1.3 Transmissão de Caractere Break de 12bits 10.2.1.4 Seleção da Polaridade do Clock ... 3 Funções de Configuração 10.3.1 Desabilita USART. 10.3.2 Habilita USART 10.3.3 Bits de Configuração do Baud Rate da EUSART 10.4 Funções de Controle . 10.4.1 Status da Recepção : 10.4.2 Status da Transmissão 10.4.3 Transmissão de Gerocaio at 0. nsmissão de String... essi º E Dados Localizados na Memória de Dados... 10.4.4.2 Dados Localizados na Memória de Programa . 10.4.5 Recepção de Caractere 10.4.6 Recepção de String .... 10.5 Funções UART Implementadas em Software . 10.5.1 Definição das Funções de Atraso . 10.5.2 Configuração da UART em Software 10.5.3 Transmissão de Caractere . 10.5.4 Transmissão de String ..... 10.5.5 Recepção de Caractere .. 10.5.6 Recepção de String .. 106 Prolelh:. a cosssairsesrato Capítulo 11 - TIMERs e Watchdog Timer (WDT)......... IMERS.. " SE mn a 1.1 Características dos TIMER d 11.111 TIMER 11.1 1.2TIMER 1 .. 1MAASTIMERZ.. 11.114 TIMER3. 11.1.2 Funções de TIMER 11.1.2.1 Desabilita TIMER... 11.1.2.2 Habilita TIMER O. 11.1.2.3 Habilita TIMER 1. 11.1.2.4 Habilita TIMER 2. 11.1.2.,5 Habilita TIMER 3. 11.1.2.6 Habilita TIMER 4 o PIC18F4550 .. 9 Seleção do TIMER para o Módulo 11.2 Watchdog Timer (WDT) no 11.2.1 Função de Reinício do Contador de WDT... 11.3 Projeto................ Capítulo 12 - Módulo CCP/ECCP. 2 Módulo CCPIECCP do PIC 18F4550 . 12.1.1 Modo PWM... ódulo ECC o Modo com Capacidade Aumentada 12.2 Funções para o Módulo CCP/ECCP.. 12.2.1 Funções do Modo Capture... 12.2.1.1 Desabilita o Capture 12.2.1.2 Habilita o Capture . 12.2.1.3 Operação de Leitura do Capture. 12.2.2 Funções do Modo Compare... 12.2.2.1 Desabilita o Compare... AE cem ooo o et ! Microcontroladores PIC18 - Aprenda e Programe em Linguagem C 254 255 255 255 ..256 ..257 12.2.2.2 Habilita o Compare. 12.23 Funções para o Modo PWM 12.2,3.1 Desabilita o PWM... 12.2.3.2 Habilita o PWM... 122.33 Seta o Duty Cycle do Sinal pm 12.2.3.4 Define a Saída de PWM do Módulo ECCP. 33 PWM... > 13- Conversor Analógico-Digital. wersor A/D do PIC 18F4550...... ».1,1 Tempo de Aquisição e Conversão do Sinal 2.1.2 Conversão do Sinal Analógico ............. -sões para o Módulo Conversor A/D. 2.1 Verifica o Estado do Módulo. ..270 *.2 Desabilita o Módulo... ..270 2iS Inlela a CONVBISÃO AD entar snensisranansascareetesteriaa crateras 270 - 4 Habilita o Módulo Conversor A/D.. 3.2.5 Operação de Leitura............... 5.2.6 Seleção do Canal Analógico ... “3,31 Leitura da Tensão Regulada por um Potencit jômetro « e Sensor de Temperatura . no - 23.2 Teclado Analógico ..........esesemmmasseesesraseeaaiereessesreemsmmerteeimaesererees sesemencaa ças PRA “2 14 - Módulo Comparador Analógico e de Tensão de Referência... aulo Comparador ..... ice aulo de Tensão de Referência ulo 15 - Comunicação IC. =uncionamento do Protocolo 2C. Zomunicação [2C do PIC18F455% 15.2.1 Registro de Endereço/Baud Rate (SSPADD).. “unções de Controle/Configuração do Periférico [2C.. 15.3,1 Condição de Acknowledge (ACK)....... 15.3.2 Condição de Not Acknowledge (Not ACK) 15.3.3 Condição de RESTART. 15.3.4 Condição de START. 15.3.5 Condição de STOP...... 15.3.6 Configura o Periférico 2C. 15.3.7 Desabilita o Periférico [?C. 15.3.8 Recepção de Caractere 15.3.9 Recepção de String... 15,3,10 Status do Barramento ?C.. 15.3.11 Status do Buffer de Recepção. 15,3.12 Transmissão de Caractere .. 15.3.13 Transmissão de String =unções PC Implementadas em Software... 15 15.4.1 Alongamento do Clock para o Modo Slave ...299 15.4.2 Condição de Acknowledge (ACK).. 300 15.4.3 Condição de Not Acknowledge (Not ACK)... 300 15.4.4 Condição de RESTART... 300 154.5 Condição de START... 300 15.46 Condição de STOP... 300 154.7 Recepção de Caractere «301 154.8 Recepção de String... 301 15.4.9 Transmissão de Caractere. 301 15.4.10 Transmissão de ss as 15.5 Projeto... 15.5.1 Memória 15.5.2 Modo de Funcionamento... 15.5.3 Circuito Eletrônico Proposto para o Projeto. Capitulo 16 - Comunicação SPI. 16.1 Funcionamento do Protocolo SPI 16.2 Comunicação SPI do PIC18F4550... 16.3 Funções de o pede do Periférico SPL... 16.3.1 Configura o Periférico SPI. . 16.3.2 Desabilita o Periférico SPI 16.3.3 Recepção de Caractere .... 16.3.4 Recepção de String..... 16.3.5 Status do Buffer de Recepção . 16.3.6 Transmissão de Caractere 16.3.7 Transmissão de String 16.4 Funções SPI Implementadas em Software 16.4.1 Configura os Pinos O 16.4.2 Transmissão de Caractere.... 16.4.3 Limpa o Pino Chip Select (CS ).. 16.4.4 Seta o Pino da Select (e Cs). 16.5 Exemplo... Capítulo 17 - SD Card... 17.1 Organização da Memór 17.2 Registradores do SD Car 17.2.1 Registrador de Condição de "Operação (OCR) 17.2.2 Registrador de Identificação do Cartão (CID) ....... 17.2.3 Registrador de Dado Específico do Cartão (CSD).. 17.24 Registrador das Configurações Espec (SCR) ...... 17.3 Pinagem da Memória SD Car 17.4 Modos de Instalação .. 17.5 Comandos Suportados pelo SD Card 17.5.1 Comandos Básicos 17.5.2 Comandos Específicos 17.6 Formato Padrão da Comunicação. 17.7 Respostas dos Comandos 17.71 Resposta R1... 17.7.2 Resposta Rib. 17.7.3 Resposta R2. ) Microcontroladores PIC18 - Aprenda e Programe em Linguagem C à material disponivel no site da Editora Érica contém as. respostas dos exercicios, alguns códigos-fonte e as »ibliotecas de manipulação das memórias EEPROM e FLASH interna do microcontrolador PIC18F4550, além do display LCD 2x16 e SD Card. Para abrir os arquivos disponíveis é necessário instalar na máquina Os softwares Adobe Acrobat Reader 5.0 ou superior, MPLABº C18 v3.32 e MPLABS IDE v8.36 ou superior, que são estudados nesta obra e podem ser baixados do site oficial da Microchip Technology tww.microchip.com). PIC18.exe - 479 KB tento para “cesse o site da Editora Érica Ltda.: www editoraerica com br. À transferência do arquivo disponivel pode ser feita de duas formas: Por meio do módulo pesquisa. Localize o livro desejado, digitando palavras-chave (nome do livro ou do autor). Aparecem os dados do livro e o arquivo para download. Com um clique o arquivo executável é transferido. Por meio do botão "Download", Na Página principal do site, clique no item "Download". É exibido um campo no qual devem ser digitadas palavras-chave (nome do livro ou do autor). Aparecem o nome do livro e o arquivo para download. Com um clique o arquivo executável é transferido. ocedimanto sco rigido do seu computador. “APICI8 agundo passo: prossiga a instalação, clicando no botão Unzip, o qual se encarrega de descompactar o «quivo. Logo abaixo dessa tela aparece a barra de status que monitora o processo para que você acompanhe. Após o término, outra teia de informação surge, indicando que o arquivo foi descompactado m sucesso e está no diretório criado. Para sair dessa tela, clique no botão OK. Para finalizar o programa WINZIP SELF-EXTRACTOR, clique no botão Close. 19 Prefácio il implé fatizando O rápido aprendizado e a auto- ite o conteúdo de forma simples e objetiva, enf ni tc a e Eq oferece capítulos sequencialmente organizados, o que garante melhor compreensão nomiia, dos recursos e das funcionalidades do PIC 18F4550. = Os capítulos abordam a arquitetura e os métodos de programação em linguagem C, destinados à familia PIC18, permitindo maior flexibilidade no desenvolvimento do programa . a ; ambient vimento MPLABº IDE v8.36, técnicas i senta um tutorial sobre o ambiente de desenvol Ú 6, té de pranaão a linguagem C com o compilador MPLAB? C18 v3.32, arquitetura e periféricos do PIC18F4550 e configurações. o A ordem dos capitulos foi estrategicamente organizada, de modo a Proiçer Hr nad pa éri Inicia com a manipuiação de portas de entrada/saida ais, / E cine dm fer ã o PC via R$-232, Timer e Watehdog Timer, Real LCD 2x16, eventos de interrupção, comunicação com | , Asfor o de sinal PWM, conversor A/D, teclado gico, Timer Clock, temporizador, contador de eventos, geração PEER E RD, dor analógico, acesso à içã temperatura com o auxilio do sensor LM35. compara: e E a iisdoro PG. aressa à memória SD Card via interface SPI e comunicação com uma porta COM virtual utilizando o módulo USB interno. ] Traz uma lista com diversos exemplos e exercícios de fixação. Ao final dos capitulos descreve projetos de forma detalhada para melhor assimilação do conteúdo proposto. n uitos eletrônicos proposta no livro ou ps je ticos podem ser realizados pela montagem dos circuit s Eos é prtteenláio didálicos comercializados para o modelo PIC18F4550, modificando alguns trechos dos códigos-fonte. Boa leitura! O autor 20 Microcontroladores PIC 18 - Aprenda e Programe em Linguagem C Sobre o Autor Alberto Noboru Miyadaira é formado em Matemática pelo método KUMON, Curso Técnico em Informát: pelo SENAI (Serviço Nacional de Aprendizagem Industrial) e Engenharia de Controle e Automação sa FAG (Faculdade Assis Gurgacz). Durante a graduação estudou um ano na França, na ENSICAER (Ecolo Nationale Supérieure d'Ingénieurs de Caen) e após finalizar o período de experiência no exterior, fez te pesquisa sobre "Teste Não Destrutivo por Correntes de Foucault" no laboratório de pesquisa GREVE (Groupe de Recherche en Informatique, Image, Automatique et Instrumentation de Caen), localizado n: França. Trabalha com microcontroladores PICÊ desde 2004 e a partir dessa época acom; anha as nm é tecnologias desenvolvidas pela Microchip Technology (fabricante de iniitcunialadores PIC), E um aficionado desses pequenos dispositivos "inteligentes", por permitirem o desenvolvimento da captado inventiva. Atualmente ci é js id ursa mestrado na UNICAMP em Engenharia Elétrica e realiza pesquisa na área de T Introdução Os microcontroladores (yC ou MCU) são pequenos dispositivos dotados de "inteligência", basicamente constituídos de CPU (Central Processing Unit em inglês, ou Unidade Central de Processamento em por- tuguês), memória (dados e programas) e periféricos (portas EIS, I2C, SPI, USART etc.). Suas dimensões reduzidas são resultantes da alta capacidade de integração, em que milhões de componentes são inseridos em uma única pastilha de silício pela técnica de circuitos integrados (C!'s). Eles estão presentes na maioria dos equipamentos digitais. como celulares, MP3 player, impressoras, robótica, instrumentação, entre outros. Memória de dados Periféricos Portas EIS TIMERS USART e é Kem) Conversor AD | Conversor D'A £ is Memória de programa p= Microcontrolador Figura 1.1: Diagrama resumido de um microcontrolador. | l As duas principais arquiteturas de microcontroladores são Harvard e Von-Neumann. A arquitetura Harvard é caracterizada pela existência de um barramento para o acesso à memória de dados e outro para a memória de programa, resultando em um aumento de fluxo de dados, enquanto na arquitetura Von-Neumann as memórias de dados e de programa compartilham o mesmo barramento, limitando a banda de operação. [ óris Memória de Memória Memória de | dedados |) CPU |42> rograma | cru [es programa é Figura 1.2: Diagrama da arquitetura Harvard (à esquerda) e arquitetura Von-Neumamn (à direita). Em geral, as memórias de programa presentes nos microcontroladores são do tipo FLASH (Electrically Erasable Programmabie Read Only Memon), ROM (Read Only Memory), EPROM (Erasable Programmable Read Only Memory) ou OTP (One Time Programmable). Elas são responsáveis pelo armazenamento do programa, o que significa que sua capacidade de armazenamento deve ser suficiente para reter todo o código desejado. Essas memórias são do tipo não volátil, portanto o código de programa armazenado não é perdido, caso o circuito não esteja sendo alimentado. MPLABº IDE PLAB? IDE é - ' MeLBSITO é um ambiente de desenvolvimento integrado, que permite fácil integração com o compilar penca dos ce sd a além de ser uma ferramenta extremamente poderosa, pois ela f , , Símula, debuga e le é it Oficial da Microchip Technology (oem micochigcom PEREDa dia pot a bao darisdoste Com a finalidade de facilitar i trações, que vão auxiliar o | (MPLABP IDE 33.36). Ela dessa ferramenta, segue um Pequeno tutorial repleto de ilus- eitor a familiarizar-se rapidamente com esse ambiente de desenvolvimento. 121 Ci Clique em Project > Project Wizard. ação de ur; Projeto Figura 24 Jma tela de boas-vindas é aberta (Welcome? Clique em Next, «elecione o modelo do microcontrolador na barra "Device" a à e clique em Next, Figura 2.2. £lecione o compilador na barra Active Toolsuite e clique em Next, Figura 2.3. MPLABE IDE Edi Figura 2.3 - Os códigos presentes neste livro são compilados com o MPLAB? C18. Selecione e verlique se a ME localização do compilador está correta. Clique em Browse para informar em qual pasta o projeto será armazenado, bem como o nome do projeto. Clique duas vezes em Next e finaiize clicando em Finish. Res Figura 2.4 2.2 Adição de Arquivo ao Projeto Para inserir um novo arquivo, clique em File > New. O arquivo Untitled é criado e o código-fonte do programa é escrito nesse arquivo. Clique em File > Save as, informe o nome do arquivo com extensão '.c' e salve na pasta do projeto (exemplo: dProjetoiMeu primeiro projeto.c). Para adicioná-lo ao programa, clique com o botão direito do mouse no campo Source Files e adicione o arquivo (Add Files...) recentemente salvo, ou outro se desejar. Para abri-lo, clique duas vezes nele. Após salvar O arquivo com o nome desejado, neste primeiro momento, copie e cole o código do 192 arquivo teste bt (pasta baixada do site da Editora Érica) no arquivo recém-criado. De acordo com o — recomendado, essa pasta deve estar localizada em cipict8. Também é necessário inserir os arquivos p1814550 lb, clib.lib e cO18io na pasta em que se encontra o projeto. Esses arquivos estão localizados em CAMCCABIib (Capítuo 3), 26 Microcontroladores PIC 18 - Aprenda e Programe em Linguagem C SER 12 FRURO C=sn) Figura 25 = Comnilador jIPL 3 opções de configuração do compilador MPLABS C18 (Capitulo 3) “roject > Build Options... > Zroject aba MPLAB C18. * configuração do compilador iiPLAS? C18 é realizada pela linha de comando, cujas opções estão organizadas em três categorias: General, Memory Model e Optimization. A categoria General contém as opções «ulras opções básicas, Figura 2.6 * categoria Memory Model contr: as opções de memória relacionadas ao modelo do código, dado e pilha tack), Figura 2.7. ) podem ser acessadas pelo caminho de níveis de diagnóstico, classes de armazenamento, macros, entre Etr De eo Op 6 my e der 0 Gp grs Ger Figura 2.6 Figura 27 2 MPLAB: IDE A última categoria é a Optimization, a qual compreen- de as opções de otimização do código. Dentro as categoria é possivel habiltaridesabilitar todas as fun- ções de otimização, habilitar somente as otimizações ; suportadas pelo modo de debugação, além de possibi- t litar que o usuário habilite/desabilite algumas opções de ; otimização de acordo com o seu interesse. Note que existe um campo chamado Use Alternate iilis e cuia soo Settings comum a todas as categorias, que, quando se lecionado, possibilita a iniredução manual das opções | da linha de comando, que serão explicadas detalhada- í mente no Capítulo 3. É Figura 2.8 DCOnir nuno ELE) Figura2 9 2.4.1 Select Davica... i 9, o qual será A opção Select Device permite que o usuário selecione o modelo do oro Nai qe utilizado no programa. Após selecionar o dispositivo, o programa informa quais Microchip que suportam o modelo selecionado. 30 Microcontroladores PIC18 - Aprenda e Programe em Linguagem C 2.7 Visualização e alteração do Conteúcio sa flamória ESPRO/A Interna Clique em View > EEPROM. Para modificar os valores contidos na conteúdo. EEPROM, clique duas vezes no campo desejado e adicione o = a | Figura 2.15 asc queira armazenar caracteres, utilize O campo ASCII. Note que os pontos correspondem às colunas da "ne em questão. Para acessar a coluna desejada, clique três ve ezes na coluna, então substitua o caractere. ração do Conteúdo dos Registr: El que em View -> Watch, Para adicionar registradores, selecione o registrador desejado pelo campo à direita do botão Add SFR e em seguida clique em Add SFR. Figura 2.16 2ara adicionar variáveis ou Constantes utilizadas no pro, grama, selecione pelo campo à direita do botão Add 2ymbol e em seguida clique em Add Symbol. = Note que os valores dos registadoresiaráveis estão representados em binário. Caso O progra- Ê E9º Mador queira ouro tipo de representação, clique com o botão direito do mouse sobre é registrador, variável ou constante desejada e selecione propertis.... ku MPLAB" IDE 2.9 Visualização das Variáveis Locais Um modo simples e eficiente de verificar o Sente das variáveis locais é selecionar a opção mar Ei cando em View — Locals. Quando a e es a o programa lista todas as variáveis locai ntes na função que está sendo compilada Figura 2.18 Exemplo = o pi desta seção utiliza o depurador MPLAB? SIM, pois ele não exige que o programador tenha em mãos um hardware dedicado. Las sm Primeiramente selecione o depurador desejado, clicando em Debugger > Select Tool > MP! Note que aparece uma nova barra referente aos comandos de depuração. DARE Figura 2.19 32 Microcontroladores PIC 18 - Aprenda e Programe em Linguagem C Sendo: - Dexecutao código continuamente até encontrar um ponto de parada = DO; interrompe a execução do código. - DD: executao código pausadamente até encontrar um ponto de parada - BO. executa o código passo a passo. - E. reinicia a depuração. - Ocria pontos de parada. 1 Em seguida clique em Debugger > Stimulus > New Workbook. N Para criar pontos de parada, Clique duas vezes na linha desejada. Após criar um Workbook, aparece a tela a seguir, Figura 2.20. Na aba ASYNCH o Programador pode si- mular valores nos pinos e registradores, além de definir o tipo de ação. Existem seis abas, e cada uma delas permite que O programador simule os valores dos pinos/registradores de maneiras diferentes, de acordo com a necessidade de cada processo. Figura 2.20 2.11 Simulação de UART pelo MPLABº SIM Um modo de testar as funções de envio de caracteres (putc, puts, printf etc.) é habilitar a UART do simulador MPLAB? SIM. Basta clicar em Debbugger > Setting e abrir a aba UARTI IO, selecionar a caixa Enable UARTT IO e no campo Output selecionar o modo Windows. Após realizar este proce- dimento, sempre que for chamada alguma função de envio de caracteres com saida na UART, os dados serão impressos na janela Output na aba SIM UARTT. Figura 2.21 33 LAB" IDE 2.12 Gravação do Programa no Microcontrolador á dor pode gravar 0 código no microcori- estiver rodando adequadamente, o programa: ! j o GS ola de diferentes modelos de gravadores de microcontroladores PIC9. Neste exemplo amos o modeio ICD 2. , eiramente conecte o gravador no computador e clique em Programmer > Select Programmer -> eiram MPLAB ICD 2 Figura 2.22 Clique em Programmer Connect. Se o gravador for reconhecido, surge a tela apresentada em seguida: Figura 2.23 Caso ocorra um erro, siga os passos: m Desconecte o gravador do computador. = Clique em Programmer > Select Programmer — NONE. = Conecte o gravador no computador. MPLABICD 2. = Clique em Programmer > Select Programmer > " Se o gravador for iniciado corretamente, surge uma nova barra referente aos comandos de programaçãt Rum se | Figura 2.24