Você está na página 1de 7

MICROCONTROLADORES PIC18 COM LINGUAGEM C - UMA ABORDAGEM PRATICA E OBJETIVA

WAGNER DA SILVA ZANCO


1A. EDICAO - 2010

Parte 1 - Microcontrolador PIC18F4520


Capítulo 1 - PIC18F4520 - Uma Visão Geral
1.1. Pinagem do PIC18F4520
1.2. Configuração do oscilador
1.2.1. Oscilador cristal/ressonador
1.2.2. Oscilador RC
1.2.3. Oscilador interno
1.2.3.1. OSCTUNE
1.2.4. Oscilador externo
1.2.5. HSPLL
1.2.6. Chaveamento do oscilador
1.2.6.1. OSCCON
1.3. Modos de energia gerenciada (power-managed)
Exercícios
Capítulo 2 - Memórias do PIC18F4520
2.1. Memória de programa
2.2. Memória de dados (RAM)
2.2.1. Access Bank
2.3. Memória EEPROM
Exercícios
Capítulo 3 - RESET
3.1. Power-on Reset (POR)
3.1.1. Power-up Timer (PWRT)
3.1.2. Oscillator Start-up Timer (OST)
3.1.3. PLL Lock Timer-out
3.2. Função /MCLR
3.3. Brown-out Reset (BOR)
3.4. Watchdog Timer (WDT)
3.5. Instrução RESET
3.6. Stack Full RESET e Stack Underflow RESET
Exercícios
Capítulo 4 - Ports de I/O
4.1. Port A
4.2. Port B
4.3. Port C
4.4. Port D
4.5. Port E
Exercícios
Parte 2 - Linguagem C
Capítulo 5 - Compilador MPLAB®C18
5.1. Assembly versus C
5.2. Configuração do compilador MPLAB® C18 na instalação
5.3. Instalação do MPLAB® C18
5.4. Criação de projeto no MPLAB® IDE para o MPLAB® C18
5.4.1. Criação de um arquivo-e em C
5.4.2. Criação de um projeto com o Project Wizard
5.4.3. Adicionar o arquivo-e ao projeto
5.4.4. Configurar a localização da ferramenta de compilação
5.4.5. Configurar os diretórios de procura da ferramenta de compilação
5.4.6. Compilar o projeto
5.4.7. Remover um arquivo do projeto
5.5. Ativar o MPASM SIM para simular uma aplicação
Exercícios
Capítulo 6 - Introdução à Linguagem C
6.1. Função main( )
6.1.1 Outras funções
6.2. Bloco de código
6.3. Tipos de dados
6.4. Identificador
6.5. Variáveis
6.5.1 Variáveis locais
6.5.2. Parâmetros formais
6.5.3. Variáveis globais
6.5.4. Qualificadores rom e ram
6.5.5. Qualificadores far e near
6.5.6. Modificador de tipo de acesso const
6.5.7. Modificador de tipo de acesso volatile
6.5.8. Especificadores de tipos de classes de armazenamento
6.5.9. Atribuição de endereço a uma variável
6.6. Inicialização de variáveis e constantes
Exercícios
Capítulo 7 - Operadores
7.1. Operador de atribuição
7.1.1. Representação de valores em ponto flutuante
7.1.2. Atribuições múltiplas
7.2. Operadores aritméticos
7.2.1. Operadores de incremento e decremento
7.3. Operadores relacionais
7.4. Operadores lógicos
7.5. Operadores bit a bit
7.6. Operador ?
7.7. Operadores de ponteiros & e *
7.8. Operador cast
7.9. Operador sizeof
7.10. Operador vírgula
7.11. Abreviação de expressões
Exercícios
Capítulo 8 - Comandos de Controle
8.1. Comandos de seleção
8.1.1. Comando if
8.1.2. Os ifs aninhados
8.1.3. Comando switch
8.2. Comandos de iteração
8.2.1. Laço for
8.2.2. Laço while
8.2.3. Laço do-while
8.3. Comandos de desvio
8.4. Protótipos de funções
8.5. Comando return
8.6. Comando goto
8.7. Comando break
8.8. Comando continue
Exercícios
Capítulo 9 - Vetores e Matrizes
9.1. Inicialização de vetores
9.1.1. Vetor inicializado por uma string
9.2. Ponteiros para vetores
9.2.1. Passagem de vetores como parâmetro a uma função
9.3. Vetor bidimensional (matriz)
9.4. Vetores e matrizes adimensionais
9.4.1. Passagem de matriz como parâmetro a uma função
Exercícios
Capítulo 10 - Strings
10.1. Manipulação de strings
10.1.1. Função strcat()
10.1.2. Função strcpy()
10.1.3. Função strlen()
10.1.4. Função strncmp()
10.1.5. Função strchr()
10.1.6. Função strstr()
10.1.7. Função strlwr()
10.1.8. Função strupr()
10.1.9. Outras funções que manipulam strings
10.1.10. Funções que manipulam conteúdo de memória
Exercícios
Capítulo 11 - Estruturas de Dados
11.1. Estrutura
11.1.1. Vetor de estruturas
11.2. Passagem de estrutura como parâmetro para funções
11.2.1. Passagem de uma estrutura como parâmetro para uma função
11.2.2. Operador seta (->)
11.2.3. Estruturas aninhadas
11.3. Campos de bits
11.4. Uniões
11.5. Enumerações
11.6. Typedef
Exercícios
Capítulo 12 - Funções de Saída de Caracteres
12.1. Streams
12.1.1. Variáveis globais stdout e stderr
12.2. Função fprintf()
12.2.1. Caractere flag
12.2.2. Comprimento do campo
12.2.3. Precisão do campo
12.2.4. Especificador de tamanho
12.2.5. Operadores de conversão
12.2.6. Caracteres de barra invertida
12.3. Função fputs()
12.4. Função printf()
12.5. Função putc()
12.6. Função puts()
12.7. Função sprintf()
12.8. Função vfprintf()
12.9. Função vprintf()
12.10. Função vsprintf()
12.11. Função _usart_putc
12.12. Função _user_putc
12.13. Conversão de um float em string
Exercícios
Parte 3 - Explorando o PIC18F4520
Capítulo 13 - Teclado e LED
13.1. Efetuar a leitura de um botão
13.2. Acionar LEDs
13.3. Teclado matriz
Exercícios
Capítulo 14 - Displays Multiplexados
14.1. Display de sete segmentos
14.2. Displays multiplexados
14.2.1. Temporização dos displays
Exercícios
Capítulo 15 - LCD Caractere 16 x 2
15.1. LCD caractere 16 x 2 (16 caracteres x 2 linhas)
15.2. Arquitetura interna de um LCD caractere
15.3. Interfacear um microcontrolador com um LCD caractere
15.4. Inicialização de um LCD caractere
15.5. Como escrever dados no LCD caractere 16 x 2
15.6. Como acessar um LCD caractere
15.6.1. Função IniciaLCD()
15.6.2. Função TestPixelsLCD()
15.6.3. Função EscInstLCD()
15.6.4. Função EscDataLCD()
15.6.5. Função EscStringLCD()
15.6.6. Função EscStringLCD_ROM()
15.6.7. Função TesteBusyFlag()
15.6.8. Função Pulse()
15.6.9. Funções de delay
Exercícios
Capítulo 16 - Interrupção
16.1. Diretiva #pragma
16.1.1. #pragma tmpdata
16.1.2. #pragma varlocate
16.2. Interrupção
16.2.1. INTCON
16.2.2. INTCON2
16.2.3. INTCON3
16.2.4. PIR1
16.2.5. PIR2
16.2.6. PIE1
16.2.7. PIE2
16.2.8. IPR1
16.2.9. IPR2
16.2.10. RCON
16.2.11. Função de tratamento de interrupção
16.2.12. Como salvar o contexto
16.3. Interrupção externa
Exercícios
Capítulo 17 - Medição de Tempo
17.1. Funções de delay
17.1.1. Função Delay1TCYx()
17.1.2. Função Delay10TCYx()
17.1.3. Função Delay100TCYx()
17.1.4. Função Delay1kTCYx()
17.1.5. Função Delay10kTCYx()
17.2. Módulo Timer0
17.2.1. Módulo Timer0 configurado como temporizador
17.2.2. T0CON
17.2.3. Módulo Timer0 configurado como temporizador/contador de 16 bits
17.3. Módulo Timer1
17.3.1. T1CON
17.3.2. Módulo Timer1 configurado como temporizador/contador de 16 bits
17.4. Módulo Timer2
17.4.1. T2CON
17.5. Módulo Timer3
17.5.1. T3CON
Exercícios
Capítulo 18 - Conversão A/D
18.1. PCM (Pulse Code Modulation)
18.2. Teorema de Nyquist
18.3. Frequência de corte do FPB
18.4. Tensão de referência
18.5. Conversor A/D do PIC18F4520
18.5.1. ADCON0
18.5.2. ADCON1
18.5.3. ADCON2
18.6. Obter o resultado de uma conversão
18.7. Requisitos para a aquisição da amostra
18.8. Clock utilizado na conversão
18.9. Ciclo de conversão
18.9.1. Conversão manual
18.9.2. Conversão automática
18.10. Interrupção do conversor A/D
18.11. Conversor A/D no modo Sleep
18.12. Configuração do conversor A/D do PIC18F4520
Exercícios
Capítulo 19 - Modulação PWM
19.1. PWM (Pulse Width Modulation)
19.1.1. Duty cycle
19.1.2. Recuperação do nível DC de um sinal PWM
19.1.3. Geração do sinal PWM no módulo CCP1
19.1.4. Período do sinal PWM
19.1.5. Ciclo ativo do sinal PWM
19.1.6. Definição do número de passos de controle
19.1.7. Definição do tempo correspondente a cada passo (Tp)
Exercícios
Parte 4 - Comunicação de Dados
Capítulo 20 - Protocolo I2CTM
20.1. Iniciar e finalizar uma transmissão
20.2. Condição Re-START (Repeated START Condition)
20.3. Endereçamento de 10 bits
20.4. Endereço de chamada geral
20.5. Operação Mult-Master (múltiplos mestres)
20.6. Módulo MSSP implementando o barramento I2C
20.6.1. SSPSTAT (registrador de status)
20.6.2. SSPCON1 (registrador de controle)
20.6.3. SSPCON2 (registrador de controle)
20.7. Configurar o PIC18F4520 como dispositivo mestre
20.8. Verificar se o barramento está livre
20.9. Dispositivo mestre transmite com 7 bits de endereço
20.10. Dispositivo mestre recebe com 7 bits de endereço
20.11. Resistores de pull-up
20.12. Memória EEPROM 24C08
20.12.1. Proteção contra escrita por hardware
20.12.2. Endereçar o 24C08
20.12.3. Operação de escrita
20.12.4. Operação de leitura
20.13. Cálculo dos resistores de pull-up
Exercícios
Capítulo 21 - Protocolo SPITM
21.1. Introdução ao protocolo SPI
21.1.1. SSPSTAT (registrador de status)
21.1.2. SSPCON1 (registrador de controle)
21.2. Operação do modo SPI
21.2.1. Modo mestre
21.2.2. Modo escravo
21.3. Potenciômetro digital MCP41010
21.3.1. Modo reostato
21.3.2. Modo potenciômetro
21.3.3. Interface SPI
Exercícios
Capítulo 22 - Comunicação Serial UART via RS-232
22.1. Bit de paridade
22.2. Taxa de transferência ou baud rate
22.3. Controle de fluxo
22.4. EUSART
22.4.1. TXSTA
22.4.2. RCSTA
22.4.3. BAUDCON
22.5. Gerador de baud rate
22.6. EUSART em modo assíncrono
22.6.1. Transmissor assíncrono
22.6.2. Receptor assíncrono
22.7. Padrão RS-232
22.7.1. Especificação mecânica
22.7.2. Conexão RS-232 Null modem
22.7.3. Conexão RS-232 entre o microcontrolador e o PC
22.7.4. Especificação elétrica
22.7.5. RS-232 driver/receiver (MAX232)
Exercícios
Capítulo 23 - Pré-Processamento, Compilação e Linkedição
23.1. Compilação de uma aplicação
23.1.1. Criação de um arquivo biblioteca
23.2. Diretivas de compilação
23.2.1. #if, #else, #elif e #endif
23.2.2. #ifdef, #ifndef e #undef
23.2.3. #include
23.2.4. #define
23.2.5. #line
23.2.6. #error
23.2.7. #pragma
23.3. Macros
23.3.1. Macros predefinidas
23.4. Introdução de instruções em Assembly no C
23.5. Modelos de memória
23.5.1. Stack software
23.6. Set de instruções estendido
23.7. Start-up code
23.7.1. Ativar o modo estendido
23.8. Otimização de código
23.8.1. Duplicate-string merging
23.8.2. Branch optimizations
23.8.3. Banking optimizer
23.8.4. WREG tracking
23.8.5. Code straightening
23.8.6. Tail merging
23.8.7. Unreachable-code remove
23.8.8. Copy propagation
23.8.9. Redundant-store remove
23.8.10. Dead-code remove
23.8.11. Procedural abstration
23.8.12. Efeitos colaterais da otimização
Exercícios
Apêndice A - Bits de Configuração
Apêndice B - Funções Nativas do MPLAB® C18
Apêndice C - Sumário dos SFRs do PIC18F4520
Apêndice D - Set de Instruções do PIC18F4520
Apêndice E - Código ASCII
Apêndice F - Especificações Elétricas do PIC18F4520
Bibliografia
Índice Remissivo

Você também pode gostar