Você está na página 1de 41

Fundamentos e

Programação Básica de
Microcontroladores PIC

Prof. Eliel Silva


Conteúdo ■ Motivação
■ Fabricantes de Microcontroladores
■ MICROCHIP
■ Revisão
■ Arquitetura de Microcontroladores
■ Filosofia RISC
■ Estruturação Interna
■ Diagrama de Blocos do PIC16F877
■ Unidade Lógica Aritmética (ULA)
■ Ciclos de Máquina
■ Memória de Programa
■ Memória de Dados
■ Mapa das Memórias
■ Interrupção
■ Interrupções no PIC
■ O PIC16F877
■ Principais Características Elétricas
■ Pinagem do PIC16F877
■ Descrição dos pinos
■ Registradores Especiais (SFR)
■ Portas
■ Contadores
■ Parâmetros de Configuração
■ Linguagens de Programação
■ Ambiente de Desenvolvimento MPLAB
■ Compiladores CCS C
■ Criando um novo projeto
■ Definindo a Linguagem de Programação
■ Associando um arquivo fonte
■ Compilando o projeto
Motivação
■ Desenvolvimento de Sistemas Eletrônicos
Microprocessados – Embbeded Systems;
■ Mercado de microcontroladores em expansão –
Novos chips e famílias;
■ Estima-se que, em poucos anos, em média uma
pessoa interagirá com 300 dispositivos
microcontroladores diariamente;
■ Aplicação em diversas áreas: Automação,
Controle e Instrumentação de Processos, etc.
Fabricantes de Microcontroladores
■ INTEL (80C51) - www.intel.com/design/MCS51/
■ MOTOROLA (HC908) - www.mot-sps.com
■ MICROCHIP (PIC) - www.microchip.com
■ TEXAS INSTRUMENTS (MSPs) - www.ti.com
■ MITSUBISHI - www.mitsubishichips.com
■ ATMEL - www.atmel.com
■ PHILIPS - www.philips.com
■ NATIONAL - www.national.com
MICROCHIP
A Microchip é uma empresa norte americana, fundada em 1989,
com sede na cidade de Chandler, Arizona. Desenvolve, fabrica e
comercializa microcontroladores (PIC), memórias seriais (I2C e
SPI), produtos para segurança (Keeloq), identificadores por RF
(RFID), conversores A/D, circuitos integrados de supervisão (Bronw
out) e amplificadores operacionais.

Principais Endereços:

■Estados Unidos:
Corporate Headquarters Microchip Technology Inc
2355 West Chandler Blvd. Chandler, Arizona, USA 85224-6199
T.: (480) 786-7200 (480) FAX: 899-9210

■Brasil:
A Microchip é representada no Brasil pela empresa Artimar.
Distribuidores autorizados: Aut-Comp, Future e Hitech.
Revisão
Um microcontolador é um sistema computacional completo, no qual estão
incluídos uma CPU (Central Processor Unit), memória, um sistema de
clock, sinais de I/O (Input/Output), além de outros possíveis periféricos, tais
como, módulos de temporização e conversores A/D entre outros,
integrados em um mesmo componente (chip). As partes mais integrantes
de qualquer computador, e que também estão presentes, em menor
escala, nos microcontroladores são:
■ Unidade Central de Processamento (CPU);

■ Sistema de Clock para dar seqüência às atividades da CPU;

■ Memória para armazenamento de instruções e manipulação de dados;

■ Entradas para interiorizar na CPU informações do mundo externo;

■ Saídas para exteriorizar as informações processadas pela CPU para o

mundo externo;
■ Programa (Software) para que o sistema faça alguma coisa útil.
Arquiteturas de Microcontroladores
A arquitetura de um sistema digital define quem são e como as partes que
compõe o sistema estão interligadas. As duas arquiteturas mais comuns
para sistemas computacionais digitais são as seguintes:

■ Arquitetura de Von Neuman : A Unidade Central de Processamento é


interligada à memória por um único barramento (bus). O sistema é
composto por uma única memória onde são armazenados dados e
instruções;

■ Arquitetura de Harvard: A Unidade Central de Processamento é


interligada a memória de dados e a memória de programa por barramento
específico.

O PIC possui arquitetura Harvard. A memória de dados é do tipo RAM


(volátil) e , no caso do 16F877, a memória de programa é do tipo Flash
(letra F no código). O barramento de dados é de 8 bits e o de instruções é
composto de 16 bits.
Este tipo de arquitetura permite que, enquanto uma instrução é executada,
outra seja “buscada” da memória, o que torna o processamento mais
rápido.
FILOSOFIA RISC
Como o barramento de instruções é maior do que 8 bits, o
OPCODE da instrução já inclui o dado e o local onde ela vai operar
(quando necessário), o que significa que apenas uma posição de
memória é utiizada por instrução, economizando assim muita
memória de programa. Dessa forma, podemos observar que dentro
da palavra do OPCODE, que pode ser de 12, 14 ou 16 bits, não
sobra muito espaço para o código da instrução propriamente dito.
Por isso, os PICs utilizam uma tecnologia chamada RISC, que
significa Reduced Instruction Set Computer (Computador com Set
de Instruções Reduzido).

PICs:
■ RISC

■ Cerca de 35 instruções

■ Aprendizado mais fácil e dinâmico

■ Desvantagem com a ausência de determinadas funções

(Ex: Funções de multiplicação e divisão devem ser implementadas)


Estruturação Interna
■ ULA (Unidade Lógica Aritmética);
■ Registrador W (work = trabalho);
■ Memória de Programa – Bus de 14 bits;
■ Memória de Dados RAM – Bus de 8 bits;
■ Portas: PORTA, B, C e D – Pinos de I/O;
■ EEPROM (Memória de Dados Não volátil);
■ Timers: TIMER0, TIMER1 e TIMER2
■ Comparador - Módulo CCP (Capture, Compare e PWM);
■ Porta Serial – USART;
■ Registrador STATUS;
■ Contador de Linha de Programa – PC (Program Counter);
■ Pilha de 8 Níveis – STACK;
■ Circuitos Internos: Reset, Osciladores, Watchdog Timer
(WDT), Power-up e Brown-out.
Diagrama de Blocos do PIC 16F877
Unidade Lógica Aritmética (ULA)
■ Unidade Lógica Aritmética (ULA): é onde todas as operações lógicas
(funções lógicas booleanas: e ou, exclusivo e complemento) e
aritméticas (soma e subtração) são efetuadas. O registrador W sempre
estará envolvido de alguma forma em toda operação lógica ou
aritmética. Existem dois destinos possíveis para estas operações: o W
(work) ou um registrador (posição da memória de dados) definido no
argumento da instrução.
■ Timer: O PIC possuí internamente um recurso de hardware
denominado Timer0. Trata-se de um contador de 8bits incrementado
internamente pelo ciclo de máquina ou por um sinal externo (borda de
subida ou descida), sendo esta opção feita por software durante a
programação (SFR). Como o contador possui 8 bits ele pode assumir
256 valores distintos (0 até 255). Caso o ciclo de máquina seja de 1us,
cada incremento do Timer corresponderá a um intervalo de 1us. Caso
sejam necessário intervalos de tempos maiores para o mesmo Ciclo de
Máquina, utilizamos o recurso de PRE-SCALE.
Ciclos de Máquina
■ Nos microcontroladores PIC, o sinal de clock é internamente
dividido por quatro. Portanto, para um clock externo de 4MHz,
temos um clock interno de 1 MHz e, conseqüentemente, cada
ciclo de máquina dura 1µs;
■ A divisão do clock por quatro forma as fases Q1, Q2, Q3 e Q4.
O program Counter é incrementado automaticamente na fase
Q1 do ciclo de máquina e a instrução seguinte é buscada da
memória de programa e armazenada no registrador de
instruções no ciclo Q4. Ela é decoficada e executada no próximo
ciclo, no intervalo de Q1 e Q4. Essa característica de buscar a
informação em um ciclo de máquina e executá-la no próximo é
chamada de PIPELINE. Ela permite que quase todas as
instruções sejam executadas em apenas um ciclo, gastando
assim 1 µs (para um clock de 4 MHz) e tornando o sistema
muito mais rápido. As únicas exeções referem-se às instruções
que geram “saltos” no program counter, como chamadas de
rotinas e retornos.
Ciclos de Máquina

Toda instrução do PIC demanda um Ciclo de Máquina para ser executada, exceto
aquelas que provocam desvio no programa (demandam dois Ciclos de Máquina).
Memória de Programa
■ A memória de programação é onde as instruções do programa são
armazenadas. No caso do 16F877 esta memória é de 8192 palavras
(words) (8Kb) de 14 bits cada uma. Parte destes 14 bits informam o
OPCODE (código da instrução) e o restante traz consigo o argumento
da instrução correspondente. Na familia PIC existem três tipos de
memória de programa: EPROM (O.T.P. – One Time Programable),
EEPROM (janelado) e FLASH.

■ Existem duas posições da memória do programa que recebem nomes


especiais: vetor de reset e vetor de interrupção.
O vetor de reset é para onde o programa vai quando ele é inicializado,
enquanto que o vetor de interrupção é a posição da memória de
programa para onde o processamento é desviado quando ocorre uma
interrupção.
Memória de Programa
■ Vetor de Reset: Trata-se do primeiro endereço de programa que
será executado quando o PIC começar a funcionar (após a
alimentação ou um reset).
Aponta para o endereço 0x00.
■ Vetor de Interrupção: As rotinas de interrupções serão
armazenadas na área de programação, juntamente com todo
resto do programa. No, entanto existe um endereço que é
reservado para o início do tratamento de todas as interrupções.
Vetor de Interrupção aponta para o endereço 0x04.
■ Pilha (STACK): A pilha é um local, totalmente separado da
memória de programação, em que serão armazenados os
endereços de retorno quando utilizarmos instruções de
chamadas de rotinas.
Memória de Dados
■ A memória de dados é uma memória volátil do tipo RAM
(Random Access Memory).
■ O mapa de memória é divido em duas partes:
Registadores especiais (Special Function Register - SFR)
e Registradores de uso geral (General Purpose Register -
GPR).
■ Como o ponteiro da memória de programa tem
capacidade de endereçar somente 128 posições de
memória de cada vez (7 bits), a memória de programa é
dividida em bancos (banco 0,1,2 e 3 no 16F877).
■ Esta divisão implica em termos posições de memória que
somente poderão ser acessadas caso o banco a que ela
pertença seja previamente selecionado através de um bit
específico do SFR STATUS.
Mapas das Memórias
Memória de Programa Memória de Dados
Interrupção
■ As Interrupções são causadas através de eventos assíncronos
(podem ocorrer a qualquer momento) que causam um desvio no
processamento. Este desvio tem como destino o vetor de
interrupção.
■ Uma boa analogia para melhor entendermos o conceito de
interrupção é a seguinte: você está trabalhando digitando uma
carta no computador quando o seu ramal toca. Neste momento
você, interrompe o que está fazendo, para atender ao telefone e
verificar o que a pessoa do outro lado da linha está precisando.
Terminada a conversa, você coloca o telefone no gancho
novamente e retoma o seu trabalho do ponto onde havia
parado. Observe que não precisamos verificar a todo instante,
se existe ou não alguém na linha, pois quando o ramal é
chamado, o telefone toca avisando que existe alguém querendo
falar com você.
Interrupções no PIC
■ Interrupções de TIMERS (3);
■ Interrupção de fim de escrita na EEPROM;
■ Interrupção de comparador;
■ Interrupções de USART (2);
■ Interrupção de CCP;
■ Interrupção externa: Essa interrupção é gerada por um sinal
externo ligado a uma porta específica que no caso é a porta
RB0. Ela é utilizada para diversas finalidades, como, por
exemplo o reconhecimento de um botão ou outro sinal do
sistema que necessite de uma ação imediata. Funciona
somente na borda de subida ou descida dependendo da
configuração.
■ Interrupção por mudança de estado: Ocorre tanto em borda
de subida quanto em borda de descida. Ligada às portas RB4,
RB5, RB6 e RB7 simultaneamente.
O PIC16F877
■ Microcontrolador RISC de 40 pinos;
■ Memória de Programa FLASH (8K de 14 bits);
■ Memória de dados 368 bytes;
■ Memória EEPROM 256 bytes;
■ Freqüência de operação até 20MHz;
■ 33 I/O (Entradas/Saídas) configuráveis:
PORT A: RA0 – RA5 (6 PINOS)
PORT B: RB0 – RB7 (8 PINOS)
PORT C: RC0 – RC7 (8 PINOS)
PORT D: RD0 – RD7 (8 PINOS)
PORT E: RE0 – RE2 (3 PINOS);
■ 14 Interrupções;
■ 3 Timers;
■ 2 Módulos CCP (Capture/Compare/PWM);
■ Comunicação Serial USART;
■ 8 canais de entrada de conversores A/D de 10 bits.
Principais Características Elétricas
■ Temperatura de trabalho: -40°C até +125°C;
■ Temperatura de Armazenamento: -65°C até 150°C;
■ Tensão de Trabalho: 3.0Va 5.5V;
■ Voltagem Máxima nos demais pinos (em relação ao
Vss): -0.3V até (VDD + 0.3V);
■ Dissipação máxima de potência: 1.0 W;
■ Corrente máxima de saída no pino Vss: 350 mA;
■ Corrente máxima de saída no pino VDD: 250 mA;
■ Corrente máxima de entrada de um pino: 25 mA;
■ Corrente máxima de saída de um pino: 25 mA.
Pinagem do PIC 16F877
Descrição dos Pinos
Nome PINO N° PINO TIPO Descrição
OSC1/CLKIN 13 I Entrada para ceristal externo (fonte de clock)
OSC2/CLKOU 14 O Saída para cristal exetrno
T
MCLR/VPP 1 1 I/P MAster Clear (reset) externo. Lógica baixa para reset
RA0/AN0 2 I/O I/O digital bidirecional ou entrada analógica 0
RA1/AN1 3 I/O I/O digital bidirecional ou entrada analógica 1
RA2/AN2/VREF- 4 I/O I/O digital bidirecional ou entrada analógica 2 ou tensão de referência
analógica negativa
RA3/AN3/VREF+ 5 I/O I/O digital bidirecional ou entrada analógica 3 ou tensão de referência
analógica positiva
RA4/T0CKI 6 I/O I/O digital bidirecional ou entrada de clock para contador TMR0
RA5/SS/AN4 7 I/O I/O digital bidirecional ou entrada analógica 4 ou slave select para a porta de
comunicação serial síncrona
RB0/INT 33 I/O I/O digital bidirecional ou entrada para interrupção externa
RB1 34 I/O I/O digital bidirecional
RB2 35 I/O I/O digital bidirecional
RB3/PGM 36 I/O I/O digital bidirecional ou entrada para programação em baixa tensão
RB4 37 I/O I/O digital bidirecional
RB5 38 I/O I/O digital bidirecional
RB6/PGC 39 I/O I/O digital bidirecional ou clock da programação serial (ICSP)
RB7/PGD 40 I/O I/O digital bidirecional ou dados da programação serial (ICSP)
Descrição dos Pinos
Nome PINO N° PINO TIPO Descrição
RC0/T1OSO/ 15 I/O I/O digital bidirecional ou saída para cristal esxterno para TMR1 ou entrada de
T1CK1 clock para contador TMR1
RC1/T1OSI/ 16 I/O I/O digital bidirecional ou entrada para cristal esxterno para TMR1 ou I/O para
CCP2 Capture, Compare, PWM 2
RC2/CCP1 17 I/O I/O digital bidirecional ou I/O para Capture, Compare, PWM 1
RC3/SCK/SCL 18 I/O I/O digital bidirecional ou entrada de clock serial síncrono ou saida para os modos
SPI e I2C
RC4/SDI/SDA 23 I/O I/O digital bidirecional ou entrada de dados SPI ou I/O de dados I2C
RC5/SDO 24 I/O I/O digital bidirecional ou saída de dados SPI
RC6/TX//CK 25 I/O I/O digital bidirecional ou Transmissão para comunicação USART assíncrona ou
via de clock para para comunicação USART síncrona
RC7/RX/DT 26 I/O I/O digital bidirecional ou Recepção para comunicação USART assíncrona ou via
de dados para para comunicação USART síncrona
RD0/PSP0 19 I/O I/O digital bidirecional ou Porta paralela escrava
RD1/PSP1 20 I/O I/O digital bidirecional ou Porta paralela escrava
RD2/PSP2 21 I/O I/O digital bidirecional ou Porta paralela escrava
RD3/PSP3 22 I/O I/O digital bidirecional ou Porta paralela escrava
RD4/PSP4 27 I/O I/O digital bidirecional ou Porta paralela escrava
RD5/PSP5 28 I/O I/O digital bidirecional ou Porta paralela escrava
RD6/PSP6 29 I/O I/O digital bidirecional ou Porta paralela escrava
RD7/PSP7 30 I/O I/O digital bidirecional ou Porta paralela escrava
Descrição dos Pinos
Nome PINO N° PINO TIPO Descrição
RE0/RD/AN5 8 I/O I/O digital bidirecional ou Controle de Leitura para a Porta paralela escrava ou
entrada analógica 5
RE1/WR/AN6 9 I/O I/O digital bidirecional ou Controle de Escrita para a Porta paralela escrava ou
entrada analógica 6
RE2/CS/AN7 10 I/O I/O digital bidirecional ou Select Control para a Porta paralela escrava ou entrada
analógica 7
VSS 12,31 P Referência TERRA
VDD 11,32 P Alimentação Positiva (+5V)

LEGENDA:

I = Input (Entrada) O = Output (Saída) I/O = Input/Output (Entrada/Saída) P = Power (Alimentação)


Registradores Especiais (SFR)
■ Status: As funções mais utilizadas desse registrador estão
relacionadas às operações matemáticas, pois ele indica
estouros de registradores (C-Carry) e resultados iguais a zero
(Z). É bom observar que, no caso da subtração, o Carry trabalha
com lógica invertida.
■ PCON: A principal função deste registrador diz respeito à
escolha da frequência do oscilador interno (OSCF): 37KHz ou
4MHZ.
■ OPTION
■ INTCON, PIR1 e PIE1
■ PCL
■ PCLATH
Portas
■ TRIS: Esses registradores servem para configurar os pinos das
portas como entrada ou saída. Quando é colocado “1” em um bit
do TRIS, o pino relacionado a ele é configurado como entrada.
Para configurar o pino como saída, você deve escrever
“0” no bit relacionado. Uma maneira prática para memorizar
essa regra é associar “1” ao “I” de Input (entrada) e o “0” ao “O”
de Output (saída). Para configurar o PORTA, deve ser utilizado
o registrador TRISA, o PORTB o TRISB, etc.
■ PORTS: PORTA, PORTB, PORTC, PORTD e PORTE
Quando um pino dessas portas é configurado como entrada, ao
lermos o seu bit relacionado, encontramos diretamente o nível
lógico aplicado a esse pino. Da mesma maneira, ao
configurarmos um pino como saída, podemos alterar o seu
estado, escrevendo diretamente no bit relacionado.
Contadores
■ Timer: O PIC possuí internamente um recurso de hardware
denominado Timer0. Trata-se de um contador de 8bits
incrementado internamente pelo ciclo de máquina ou por um
sinal externo (borda de subida ou descida), sendo esta opção
feita por software durante a programação (SFR). Como o
contador possui 8 bits ele pode assumir 256 valores distintos (0
até 255). Caso o ciclo de máquina seja de 1us, cada incremento
do Timer corresponderá a um intervalo de 1us. Caso sejam
necessário intervalos de tempos maiores para o mesmo Ciclo de
Máquina, utilizamos o recurso de PRE-SCALE.
■ PRE-SCALE: O Pre Scale é um divisor de frequência
programável do sinal que incrementa o Timer0. Quando temos
um pre scale de 1:1, cada ciclo de máquina corresponde a um
incremento do Timer0 (unidade de Timer0). Ao alterarmos o pre
scale para, por exemplo 1:4 (os valores possíveis são as
potencias de dois até 256), o Timer0 será incrementado uma
vez a cada quatro ciclos de máquina.
Parâmetros de Configuração
■ Tipo de Oscilador: 2 grupos: Internos e Externos
Oscilador Interno: 32 KHz ou 4 MHz (Seleção por software)
Osciladores Externos:
- RC_CLKOUT: Para oscilador externo tipo RC com o pino 15 operando como
CLKOUT, isto é, com uma onda quadrada de ¼ da freqüência;
- RC_I/O: Para oscilador externo tipo RC com o pino 15 operando como I/O
(RA6);
- INTOSC_CLKOUT: Para oscilador interno com o pino 15 operando como I/O
(RA6);
- EC_I/O: Para clock externo (circuito auto-oscilante) com o pino 15 operando
como I/O (RA6);
- XT: Para osciladores externos tipo cristal ou ressoadores;
- HS: Para cristais ou ressoadores externos com frequencias elevadas (acima de
4 MHz);
- LP: Para cristais ou ressoadores externos com baixas freqüências (abaixo de
200 KHz). Utilizado para minimizar consumo.
Parâmetros de Configuração
■ WATCHDOG (WDT) é um recurso disponível no PIC que
parte do princípio que todo sistema é passível de falha. Se
todo sistema pode falhar, cabe ao mesmo ter recursos para
que, em ocorrendo uma falha, algo seja feito de modo a
tornar o sistema novamente operacional. Dentro do PIC
existe um contador incrementado por um sinal de relógio
(clock) independente. Toda vez que este contador extrapola o
seu valor máximo retornando a zero, é provocado a
reinicialização do sistema (reset).
■ Clear Watchdog: Se o sistema estiver funcionado da
maneira correta, de tempos em tempos uma instrução
denominada clear watchdog timer (CLRWDT) zera o valor
deste contador, impedindo que o mesmo chegue ao valor
máximo. Desta maneira o Watchdog somente irá "estourar"
quando algo de errado ocorrer.
Parâmetros de Configuração
■ POWER UP TIMER: é um temporizador que faz com que o PIC,
durante a energização (power up), aguarde alguns ciclos de máquina
(72 ms) para garantir que todo o sistema periférico (display, teclado,
memórias, etc) estejam operantes quando o processamento estiver
sendo executado.
■ BROWN OUT DETECT: O Brown Out monitora a diferença de tensão
entre VDD e VSS, provocando a reinicialização do PIC (reset) quando
esta cai para um valor inferior ao mínimo definido em manual (4V tipíco
por mais de 100µs).
■ LOW VOLTAGE PROGRAM: Trata-se do sistema de programação do
PIC (gravação da memória de programa) em baixa tensão: 5V.
Normalmente essa programação é habilitada por uma alta (13 V) no
pino MCLR.
■ CÓDIGO DE PROTEÇÃO: Para gravação em série é muito importante
que esta opção esteja ativada, pois impedirá que qualquer pessoa
consiga ler o programa gravado dentro do PIC.
Configuração no Programa
■ DIRETRIZ: _CONFIG
_CP_ON: Para code protection ligado
_CP_OFF: Para code protection desligado
_DATA_CP_ON: Para acesso externo à EEPROM habilitado
_DATA_CP_OFF: Para acesso exerton à EEPROM desbilitado
_PWRTE_ON: Power Up ligado
_PWRTE_OFF: Power Up desligado
_WDT_ON: Para WatchDog ligado
_WDT_OFF: Para WatchDog desligado
_LVP_ON: Para sistema de programação em baixa tensão ativado
_LVP_OFF: Para sistema de programação em baixa tensão desativado
_MCLRE_ON: Para Master Clear externo ativado
_MCLRE_OFF: Para Master Clear externo desativado
_RC_OSC_CKOUT: Para RC externo com saída CKOUT
_RC_OSC_NOCKOUT: Para RC externo sem sída CKOU (com I/O)
_EXTCLK_OSC: Para clock externo sem saída CKOUT (com I/O)
_LP_OSC: Para oscilador tipo LP
_XT_OSC: Para oscilador tipo XT
_HS_OSC: Para oscilador tipo HS

Exemplo: _CONFIG _CP_ON&_PWRTE_ON&WDT_OFF&_INTOSC_OSC_NOCKOUT


Linguagens de Programação
■ Assembly (Baixo Nível):
 - Maior Eficiência;
 - Maior Velocidade de Execução;
 - Alta Complexidade;
 - Baixa Portabilidade.

■ Linguagem C (Alto Nível):


 - Programação Estruturada (funções);
 - Maior velocidade na criação de novos projetos;
 - Maior Portabilidade;
 - Eficiência Considerável.
Ambiente de Desenvolvimento MPLAB

■ Software Gratuito – www.microchip.com;


■ Versão Atual: 7.00;
■ Linguagem de programação: Assembly;
■ Gerenciamento de projetos;
■ Compilação;
■ Simulação;
■ Emulação;
■ Gravação do chip;
Compiladores CCS C
■ PCB: para dispositivos 12 bits (séries PIC12 e PIC16C5X);
■ PCM: para dispositivos de 14 bits (séries PIC14000 e
PIC16xXXX);
■ PCH: para dispositivos de 16 bits (série PIC18).

Características:
- Compatibilidade com a padronização ANSI e ISSO;
- Grande eficiência no código gerado;
- Grande diversidade de funções e bibliotecas da linguagem C
(padrão ANSI), tais como: entrada/saída serial, funções
matemáticas, etc,;
- Grande portabilidadade de código;
- Integração com o MPLAB.
Criando um novo projeto
Definindo a linguagem de programação

Linguagem Assembly
Definindo a linguagem de programação

Linguagem C
Associando um arquivo fonte
Compilando o projeto
Bibliografia
■ Desbravando o PIC – Ampliado e atualizado para
PIC16F628A
Autor: David José de Souza
Editora: Érica

■ Microcontroladores PIC – Programação em C


Autor: Fábio Pereira
Editora: Érica

Você também pode gostar