Érica Ltda. Microcontroladores PIC18 com Linguagem C. Wagner da Silva Zanco. Uma Abordagem Prática e Objetiva. Com Base no PIC18F4520.



Documentos relacionados
Programação C para microcontroladores PIC

Primeiro Curso de Programação em C 3 a Edição

Hardware Parte I. Fábio Rodrigues de la Rocha

PIC18F4550. Curso Engenharia de Controle e Automação. Alex Vidigal Bastos alexvbh@gmail.com

CAPÍTULO 1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO C

Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza

MICROCONTROLADORES PIC 16F E 18F TEORIA E PRÁTICA. Instituto NCB contato@newtoncbraga.com.br

PROGRAMA DE DISCIPLINA

Conhecendo o PIC16F877 Microcontrolador de 8 bits da Microchip Co.

PIC16F628a. Pinagem do PIC16F628a:

Desenvolvendo Projetos em BASIC para o Microcontrolador AT89S8252. Com base no BASCOM - Teoria e Prática. Autor: Vitor Amadeu Souza

Sistemas Microcontrolados

Introdução à Programação

Faculdade de Engenharia de Ilha Solteira- Departamento de Engenharia Elétrica

Copyright 2011 VW Soluções

Multimedidores Inteligentes MGE G3 Modo de uso do software IBIS_BE_cnf. ABB Automação. Hartmann & Braun

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

Sumário Capítulo I Introdução aos Comandos Elétricos Capítulo II Chaves com e sem retenção Capítulo III Atuadores...

Programação Básica em Arduino Aula 2

5 Entrada e Saída de Dados:

MANUAL DO USUÁRIO. Software de Gerenciamento. Controlador de Fator de Potência. Self Control

Application Note FBEE Comunicação Serial Wireless REV Rev01

Introdução ao Arduino. Pessanha Santos ASPOF EN-AEL

Multimedidores Inteligentes IDM96 Modo de uso do software IBIS_BE_cnf. ABB Automação. Hartmann & Braun

Microcontroladores e FPGAs

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br

Guia do Usuário Placa de Desenvolvimento McLab1

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

INF 1005 Programação I

Curso de Linguagem C

PROGRAMA DE DISCIPLINA

Curso microcontroladores PIC

Sistemas Embarcados. Introdução aos sistemas embarcados

Arquitetura CAN. José Sérgio da Rocha Neto

Arquitetura de Computadores - Revisão -

Plataforma de desenvolvimento dspic - SIGMA128 -

Estrutura de um Computador

RCO2. Introdução à camada física

Sistemas Microcontrolados

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de

Sistemas Tolerantes a Falhas. Aulas Práticas

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Exemplos. char c; int i=67;... c= A ; c=c+1; if (c== B )... c=i; i=c; i++; if (i>= C )...

Programação em BASIC para o PIC Projetos com Display Gráfico Vitor Amadeu Souza

Capítulo I : Noções Gerais

AULA2 Introdução a Microcontrolador

Visão Geral de Sistemas Operacionais

O COMPUTADOR. Introdução à Computação

Controle e monitoramento da fonte de alta-tensão: proposta, desenvolvimento e estágio atual.

Microcontroladores ARM Cortex-M3 - XM 700 -

Comunicação de dados. Introdução

Arquitetura e Organização de Computadores I

ABB Automação kV 119.4kA kV 121.3kA kV 120.2kA IDR 144 INDICADOR DIGITAL REMOTO MODO DE USO

Capítulo 2: Introdução à Linguagem C

1. Introdução. 2. Compiladores 3. A Linguagem C do CCS Bibliografia. Teresina C vs Assembly

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

1. CAPÍTULO COMPUTADORES

100% electricidade. Relés de controle automático para grupo gerador

Resumo da Introdução de Prática de Programação com C. A Linguagem C

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

AUTOMAÇÃO INDUSTRIAL INTRODUÇÃO A ROBÓTICA

Estrutura de Dados Básica

Introdução aos Computadores

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada.

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Figura 01 Visão Geral da Placa

Edeyson Andrade Gomes

Estrutura interna de um microcontrolador

Prática 8: Comunicação SPI. 8.1 Introdução e objetivos. 8.2 Princípios básicos do protocolo SPI

Componentes da linguagem C++

Sistemas Operacionais

Nota de Aplicação. Exemplo de comunicação Modbus entre o M218 e Multimedidor DM6200 utilizando a função IOScanner. Suporte Técnico Brasil. Versão: 1.

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

ESCOLA SECUNDÁRIA MANUEL DA FONSECA - SANTIAGO DO CACÉM


REPÚBLICA FEDERATIVA DO BRASIL ESTADO DE SANTA CATARINA Universidade do Estado de Santa Catarina - UDESC CENTRO DE CIÊNCIAS TECNOLÓGICAS - CCT

Cerne Tecnologia e Treinamento

Vitor Amadeu Souza.

Introdução a Informática. Prof.: Roberto Franciscatto

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento. Apostila de BASIC para PIC16F628A

Comunicação Serial com o AVR ATMEGA8

LINGUAGEM DE PROGRAMAÇÃO C. Introdução a. Material cedido pela Profa. Judith Kelner do Centro de Informática da UFPE

Dispositivos de Entrada e Saída

Organização de Computadores

O protocolo I2C. Fig. 1 Diagrama em blocos e pinos do circuito integrado PT2313.

Industrial SOLUÇÕES EM AUTOMAÇÃO

Aperfeiçoamento Técnico com respeito ao Profissional.

Placa de desenvolvimento USB AFSmartBoard utiliza PIC18F4550 da Microchip, microcontrolador com o Flash 32kb, 2048 bytes de memória RAM

Arquitetura de Computadores. Tipos de Instruções

Matriz seletora VGA/WXGA & Controle RS x 8 TRANSCORTEC STATUS OUTPUT 2

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

ÍNDICE 1. INTRODUÇÃO DESCRIÇÃO DO PICKIT Ligação da porta USB LEDs de estado Botão... 5

UNIVERSIDADE PRESBITERIANA MACKENZIE

Arquiteturas RISC. (Reduced Instructions Set Computers)

Kit de desenvolvimento ACEPIC 40N

Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas NCET Engenharia da Computação

Microcontroladores PIC16 - XM 116 -

Cerne Tecnologia e Treinamento (21) (11) cerne@cerne-tec.com.br MSN: cerne-tec@hotmail.com Skipe: cerne-tec

Transcrição:

Wagner da Silva Zanco Microcontroladores PIC18 com Linguagem C Uma Abordagem Prática e Objetiva Com Base no PIC18F4520 1a Edição São Paulo 2010 Editora Érica Ltda. 131

Memórias Sumário Parte 1 Microcontrolador PIC18F4520 Capítulo 1 PIC18F4520 Uma Visão Geral 24 LlPinagem do PIC18F4520 27 1.2. Configuração do oscilador 31 1.2.1. Oscilador cristal/ressonador 31 1.2.2. Oscilador RC 32 1.2.3. Oscilador interno 33 1.2.3.1. OSCTUNE 33 1.2.4. Oscilador externo 34 1.2.5. HSPLL 34 1.2.6. Chaveamento do oscilador 34 1.2.6.1. OSCCON 35 1.3. Modos de energia gerenciada (powermanaged) 36 Exercícios 37 Capítulo 2 do PIC18F4520 38 2.1. Memória de programa 38 2.2. Memória de dados (RAM) 40 2.2.1. Access Bank 41 2.3. Memória EEPROM 42 Exercícios 42 Capítulo 3 RESET 43 3.1. Poweron Reset(POR) 44 3.1.1. PowerupTimer(PWRT) 45 3.1.2. Oscillator Startup Timer (OST) 45 3.1.3. PLL Lock Timerout 45 3.2. Função /MCLR 45 3.3. Brownout Reset(BOR) 45 3.4. Watchdog Timer (WDT) 46 3.5. Instrução RESET 46 3.6. Stack Full RESET e Stack Underflow RESET 46 Exercícios 47 Capítulo 4 Ports de l/o 48 4.1. PortA 48 4.2. Port B 50 4.3. Port C 51 4.4. Port D 52 4.5. Port E 53 Exercícios 54 Parte 2Linguagem C Capítulo 5 Compilador MPLAB C18 56 5.1. Assembly versus C 57 991

5.2. Configuração do compilador MPLAB C18 na instalação 58 5.3. Instalação do MPLAB C18 59 5.4. Criação de projeto no MPLAB IDE para o MPLAB C18 62 5.4.1. Criação de um arquivofonte em C 62 5.4.2. Criação de um projeto com o Project Wizard 63 5.4.3. Adicionar o arquivofonte ao projeto 66 5.4.4. Configurar a localização da ferramenta de compilação 67 5.4.5. Configurar os diretórios de procura da ferramenta de compilação 67 5.4.6. Compilar o projeto 68 5.4.7. Remover um arquivo do projeto 69 5.5. Ativar o MPASM SIM para simular uma aplicação 70 Exercícios 71 Capítulo 6 Introdução à Linguagem C 72 6.1. Função main() 73 6.1.1 Outras funções 74 6.2. Bloco de código 75 6.3. Tipos de dados 76 6.4. Identificador 77 6.5. Variáveis 78 6.5.1 Variáveis locais 78 6.5.2. Parâmetros formais 80 6.5.3. Variáveis globais 81 6.5.4. Qualificadores rom e ram 82 6.5.5. Qualificadores fare near 83 6.5.6. Modificador de tipo de acesso const 83 6.5.7. Modificador de tipo de acesso volatile 84 6.5.8. Especificadores de tipos de classes de armazenamento 85 6.5.9. Atribuição de endereço a uma variável 89 6.6. Inicialização de variáveis e constantes 89 Exercícios 91 Capítulo 7 Operadores 93 7.1. Operador de atribuição 93 7.1.1. Representação de valores em ponto flutuante 94 7.1.2. Atribuições múltiplas 97 7.2. Operadores aritméticos 97 7.2.1. Operadores de incremento e decremento 99 7.3. Operadores relacionais 100 7.4. Operadores lógicos 101 7.5. Operadores bit a bit 102 7.6. Operador? 106 7.7. Operadores de ponteiros & e * 106 7.8. Operador cast 107 7.9. Operador sizeof 108 7.10. Operador vírgula 109 7.11. Abreviação de expressões 109 Exercícios 110 110 Microcontroladores PIC18 com Linguagem C

Vetores Capítulo 8 Comandos de Controle 112 8.1. Comandos de seleção 112 8.1.1. Comando if 112 8.1.2. Os ifs aninhados 114 8.1.3. Comando switch 115 8.2. Comandos de iteração 118 8.2.1. Laço for 118 8.2.2. Laçowhile 121 8.2.3. Laço dowhile 123 8.3. Comandos de desvio 124 8.4. Protótipos de funções 125 8.5. Comando return 127 8.6. Comando goto 129 8.7. Comando break 130 8.8. Comando continue 130 Exercícios 131 Capítulo 9 e Matrizes 132 9.1. Inicialização de vetores 133 9.1.1. Vetor inicializado por uma string 134 9.2. Ponteiros para vetores 135 9.2.1. Passagem de vetores como parâmetro a uma função 136 9.3. Vetor bidimensional (matriz) 137 9.4. Vetores e matrizes adimensionais 139 9.4.1. Passagem de matriz como parâmetro a uma função 140 Exercícios 142 Capítulo 10Strings.143 10.1. Manipulação de strings 144 10.1.1. Função strcat() 144 10.1.2. Função strcpyo 146 10.1.3. Função strlen() 147 10.1.4. Função strncmp() 148 10.1.5. Função strchr() 149 10.1.6. Função strstr() 151 10.1.7. Função strlwr() 152 10.1.8. Função strupr() 152 10.1.9. Outras funções que manipulam strings 153 10.1.10. Funções que manipulam conteúdo de memória 154 Exercícios 154 Capítulo 11 Estruturas de Dados 155 11.1. Estrutura 155 11.1.1. Vetor de estruturas 158 11.2. Passagem de estrutura como parâmetro para funções 159 11.2.1. Passagem de uma estrutura como parâmetro para uma função 160 11.2.2. Operador seta (>) 162 11.2.3. Estruturas aninhadas 162 11.3. Campos de bits 164 11.4. Uniões 165 111

11.5. Enumerações 11.6. Typedef Exercícios Capítulo 12 Funções de Saída de Caracteres 170 12.1. Streams 170 12.1.1. Variáveis globais stdout e stderr 171 12.2. Função fprintf() 173 12.2.1. Caractere fiag 173 12.2.2. Comprimento do campo 12.2.3. Precisão do campo 174 12.2.4. Especificador de tamanho 174 12.2.5. Operadores de conversão 176 12.2.6. Caracteres de barra invertida 177 12.3. Função fputs() 182 12.4. Função printf() 182 12.5. Função putc() 182 12.6. Função puts() 182 12.7. Função sprintfq 183 12.8. Função vfprintf() 183 12.9. Função vprintf() 185 12.10. Função vsprintf() 185 12.11. Função _usart_putc 186 12.12. Função _user_putc 186 12.13. Conversão de um float em string 186 Exercícios 188 174 Parte 3 Explorando o PIC18F4520 Capítulo 13 Teclado e LED 190 13.1. Efetuar a leitura de um botão 190 13.2. AcionarLEDs 194 13.3. Teclado matriz 197 Exercícios 213 Capítulo 14 Displays Multiplexados 214 14.1. Display de sete segmentos 214 14.2. Displays multiplexados 217 14.2.1. Temporização dos displays 219 Exercícios 226 227, Capítulo 15 LCD Caractere 16x2 15.1. LCD caractere 16 x 2 (16 caracteres x 2 linhas) 227 15.2. Arquitetura interna de um LCD caractere 229 15.3. Interfacear um microcontrolador com um LCD caractere 230 15.4. Inicialização de um LCD caractere 231 15.5. Como escrever dados no LCD caractere 16 x 2 235 15.6. Como acessar um LCD caractere 236 15.6.1. Função IniciaLCDQ 237 15.6.2. Função TestPixelsLCD() 237 112 1 Microcontroladores PIC18 com Linguagem C

15.6.3. Função EsclnstLCD() 238 15.6.4. Função EscDataLCD() 238 15.6.5. Função EscStringLCD() 238 15.6.6. Função EscStringLCD_ROM() 238 15.6.7. Função TesteBusyFlag() 239 15.6.8. Função Pulse() 239 15.6.9. Funções de delay 239 Exercícios 246 Capítulo 16 Interrupção 247 16.1. Diretiva #pragma 247 16.1.1. #pragma tmpdata 250 16.1.2. #pragma varlocate 250 16.2. Interrupção 251 16.2.1. INTCON 253 16.2.2. INTCON2 254 16.2.3. INTCON3 255 16.2.4. PIR1 256 16.2.5. PIR2 257 16.2.6. PIE1 258 16.2.7. PIE2 259 16.2.8. IPR1 260 16.2.9. IPR2 261 16.2.10. RCON 262 16.2.11. Função de tratamento de interrupção 263 16.2.12. Como salvar o contexto 265 16.3. Interrupção externa 265 Exercícios 269 Capítulo 17 Medição de Tempo 270 17.1. Funções de delay 270 17.1.1. Função Delay1TCYx() 271 17.1.2. Função Delay 10TCYx() 271 17.1.3. Função Delay 100TCYx() 271 17.1.4. Função Delay1kTCYx() 271 17.1.5. Função Delay 10kTCYx() 271 17.2. Módulo TimerO 272 17.2.1. Módulo TimerO configurado como temporizador 272 17.2.2. T0CON 273 17.2.3. Módulo TimerO configurado como temporizador/contador de 16 bits 277 17.3. Módulo TimeM 278 17.3.1. T1CON 279 17.3.2. Módulo TimeM configurado como temporizador/contador de 16 bits 281 17.4. Módulo Timer2 282 17.4.1. T2CON 283 17.5. Módulo Timer3 284 17.5.1. T3CON 285 Exercícios 288 H3

Capítulo 18 Conversão A/D 289 18.1. PCM (Pulse Code Modulation) 289 18.2. Teorema de Nyquist 292 18.3. Frequência de corte do FPB 292 18.4. Tensão de referência 294 18.5. Conversor A/D do PIC18F4520 295 18.5.1. ADCONO 295 18.5.2. ADCON1 296 18.5.3. ADCON2 296 18.6. Obter o resultado de uma conversão 297 18.7. Requisitos para a aquisição da amostra 298 18.8. Clock utilizado na conversão 299 18.9. Ciclo de conversão 300 18.9.1. Conversão manual 300 18.9.2. Conversão automática 301 18.10. Interrupção do conversor A/D 303 18.11. Conversor A/D no modo Sleep 304 18.12. Configuração do conversor A/D do PIC18F4520 304 Exercícios 309 Capítulo 19 Modulação PWM 310 19.1. PWM (Pulse Width Modulation) 310 19.1.1. Dutycycle 311 19.1.2. Recuperação do nível DC de um sinal PWM 312 19.1.3. Geração do sinal PWM no módulo CCP1 312 19.1.4. Período do sinal PWM 313 19.1.5. Ciclo ativo do sinal PWM 313 19.1.6. Definição do número de passos de controle 314 19.1.7. Definição do tempo correspondente a cada passo (Tp) 316 Exercícios 326 Parte 4 Comunicação de Dados Capítulo 20Protocolo l*c 328 20.1. Iniciar e finalizar uma transmissão 329 20.2. Condição ReSTART (Repeated START Condition) 332 20.3. Endereçamento de 10 bits 332 20.4. Endereço de chamada geral 334 20.5. Operação MultMaster (múltiplos mestres) 334 20.6. Módulo MSSP implementando o barramento PC 335 20.6.1. SSPSTAT (registrador de status) 335 20.6.2. SSPCON1 (registrador de controle) 336 20.6.3. SSPCON2 (registrador de controle) 337 20.7. Configurar o PIC18F4520 como dispositivo mestre 338 20.8. Verificar se o barramento está livre 339 20.9. Dispositivo mestre transmite com 7 bits de endereço 340 20.10. Dispositivo mestre recebe com 7 bits de endereço 346 20.11. Resistores de pullup 350 114 Microcontroladores PIC18 com Linguagem C

Comunicação Protocolo 20.12, Memória EEPROM 24C08 352 20.12.1. Proteção contra escrita por hardware 353 20.12.2. Endereçar o 24C08 353 20.12.3. Operação de escrita 354 20.12.4. Operação de leitura 355 20.13. Cálculo dos resistores de pullup 356 Exercícios 363 Capítulo 21 SPI 364 21.1. Introdução ao protocolo SPI 364 21.1.1. SSPSTAT (registrador de status) 365 21.1.2. SSPCON1 (registrador de controle) 366 21.2. Operação do modo SPI 367 21.2.1. Modo mestre 368 21.2.2. Modo escravo 370 21.3. Potenciômetro digital MCP41010 371 21.3.1. Modoreostato 371 21.3.2. Modo potenciômetro 372 21.3.3. Interface SPI 372 Exercícios 379 Capítulo 22 Serial UART via RS232 380 22.1. Bit de paridade 381 22.2. Taxa de transferência ou baud rate 381 22.3. Controle de fluxo 381 22.4. EUSART 382 22.4.1. TXSTA 382 22.4.2. RCSTA 383 22.4.3. BAUDCON 384 22.5. Gerador de baud rate 385 22.6. EUSART em modo assíncrono 388 22.6.1. Transmissor assíncrono 388 22.6.2. Receptor assíncrono 390 22.7. Padrão RS232 392 22.7.1. Especificação mecânica 392 22.7.2. Conexão RS232 Null modem 394 22.7.3. Conexão RS232 entre o microcontrolador e o PC 394 22.7.4. Especificação elétrica 395 22.7.5. RS232 driver/receiver (MAX232) 396 Exercícios 403 Capítulo 23 PréProcessamento, Compilação e Linkedição 404 23.1. Compilação de uma aplicação 404 23.1.1. Criação de um arquivo biblioteca 405 23.2. Diretivas de compilação 407 23.2.1. #if, #else,#elife#endif 407 23.2.2. #ifdef,#ifndefe#undef 408 23.2.3. ffinclude 409 23.2.4. #define 409 23.2.5. #line 409 1151

23.2.6. #error 409 23.2.7. #pragma 410 23.3. Macros 410 23.3.1. Macros predefinidas 411 23.4. Introdução de instruções em Assembly no C 412 23.5. Modelos de memória 413 23.5.1. Stack software 414 23.6. Set de instruções estendido 414 23.7. Startup code 415 23.7.1. Ativar o modo estendido 416 23.8. Otimização de código 416 23.8.1. Duplicatestring merging 417 23.8.2. Branch optimizations 417 23.8.3. Banking optimizer 417 23.8.4. WREG tracking 417 23.8.5. Code straightening 417 23.8.6. Tail merging 418 23.8.7. Unreachablecode remove 418 23.8.8. Copy propagation 418 23.8.9. Redundantstore remove 418 23.8.10. Deadcode remove 418 23.8.11. Procedural abstration 418 23.8.12. Efeitos colaterais da otimização 418 Exercícios 419 Apêndice A Bits de Configuração 420 Apêndice B Funções Nativas do MPLAB C18 428 Apêndice C Sumário dos SFRs do PIC18F4520 432 Apêndice D Set de Instruções do PIC18F4520 435 Apêndice E Código ASCII 438 Apêndice F Especificações Elétricas do PIC18F4520 439 Bibliografia 440 índice Remissivo 441 916 Mtaocontratadores PIC18 com Linguagem C