Você está na página 1de 108

MICROCONTROLADOR PIC

18F4520
Introduo a Circuitos
Microcontrolados
Prof. Srgio Eduardo Palmiere
Microcontrolador 18F4520
Conceitos Bsicos
Microcontroladores
Caractersticas
Programao Assembly
Programao C
Implementao
Simulao
Literaturas Recomendadas

HISTRICO
baco: Calculadora
3500 AC.
Autor: Desconhecido.
Pascalina: Calculadora
(Funcionamento Mecnico)
1642
Autor: Blaise Pascal
Mquina de Diferena
(Clculos Logartmicos)
1822
Autor: Charles Babbage

Mquina Analtica
(Funes Complexas e Logartmicas)
1933 Autor: Ada Lovelace
HISTRICO
1854 Teoria dos Circuitos Lgicos
(lgebra de Boole )
- Lgica binria
(Boole)
Computador Mecnico
1890(Censo Americano)
Utilizava cartes perfurados
Autor: Hermman Hollerith
Colossus:
Mquina de Criptografia
1939
Autor: Alan Turing
MARK I
Primeiro Computador
(Eletromecnico)
1944

ENIAC
ENIAC (Electrical Numerical Integrator and Calculator)
Computador Eletromecnico (Operaes aritmticas)
1946 - USA
Composto por:
18000 vlvulas
15000 rels
Produzia 200kW de calor
Realizava 5000 operaes de adio por minuto ou
357 multiplicaes por segundo
Programao atravs de cartes perfurados
Ocupava uma rea de 270 m
2

Transistor
Desenvolvido pelos pesquisadores da Bell Labs em dezembro de
1947.
Funcionamento semelhante s vlvulas.
No gera rudos, nem atrasos por aquecimento.
Pode funcionar como amplificador de corrente ou chave
liga/desliga.

Vlvula
Transistor
Circuitos Integrados (CIs)
Componente que apresenta em sua constituio milhares ou
milhes de transistores.
Possibilitou o avano tecnolgico.
CI em detalhes.
Tipos de Encapsulamento
ENIACII
Segunda verso do computador ENIAC
1960 - USA
Substituiu as vlvulas por um Chip
HISTRICO
1 Gerao
1940-1952
Operadoras de computadores, manipulando
linguagem de mquina.
2 Gerao
1952-1964
Os transistores substituem as vlvulas sendo mais
potentes, mais rpidos, gerando menos calor, menor
consumo e menor tamanho.
Linguagem de montagem (Assembly).
Linguagem de Alto Nvel (Cobol, Fortran, Algol).
Armazenamento de dados: Fitas e tambores
magnticos.
3 Gerao
1964-1971
Circuitos integrados substituem os transistores.
Multiprogramao em tempo real, modo
interativo.
Armazenamento de dados e, memrias
semicondutoras e discos magnticos.
1 Minicomputador (PDP 8 da DEC):
Custo: U$ 18.000,00
Peso: 300 kg.
4 Gerao
1971-1981
Criao dos :
Microprocessadores
Computadores Pessoais pela Apple (PCs)
Redes de computadores
Novas linguagens de programao
Floppy Disk (Disquete)

Apple II (1977)
IBM PC (1981)
5 Gerao
1981-2008
Popularizao dos microcomputadores.
Tecnologia VLSI (Alta Velocidade).
Inteligncia Artificial.
Maior Capacidade de processamento em menor
involucro.

6 Gerao
2008 -
Orion (Computador Quntico)
Desenvolvido pela empresa Canadense D-Wave
Capaz de processar 16kbit qunticos.

Sistemas Numricos
Decimal: Representa 10 caracteres de 0 a 9.

Binrio: Representa 2 caracteres 0 ou 1.
2
N
Onde : 2
0
=1, 2
1
=2, 2
2
=4, 2
3
=8, 2
4
=16 ...2
10
=1024.
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1

Octal: Representa 8 caracteres de 0 a 7. (No usado em sistemas
microcontrolados.)

Hexadecimal: Representa 16 caracteres de 0 a F.
Onde: A=10, B=11, C=12, D=13, E=14, F=15.
Bases Nmricas
Operaes Lgicas e Aritmticas
Operaes Aritmticas
Soma Subtrao
Operaes Lgicas

Multiplicao
Diviso
E Lgico Ou Lgico
Ou-Exclusivo
Cdigos
BCD: Cdigo usado para
representar nmeros decimais em
binrio. Usado na comunicao de
circuitos eletrnicos com perifricos.
Portas Lgicas
Porta E e No E Porta Ou e No Ou
Porta Ou Exclusivo Porta Inversora
Conceitos Bsicos
Bit: Menor unidade lgica.
Byte: Conjunto de 8 bits.
Word: Conjunto de 16 bits.
Nibble: Conjunto de 4 bits.
Clock: Sinal de onda quadrada que fornece a sensibilidade de tempo
do sistema lgico.
Barramento: Canal de comunicao do microcontrolador.
Barramento de Dados (Data Bus): Canal de comunicao de dados,
permite a entrada ou sada de dados .
Barramento de Endereo: Canal de comunicao interno no pic qe
permite que uma posio de memria seja acessada atravs da
combinao de 0s e 1s.
Barramento de Controle: conjunto de linha que permite controles do
tipo habilitao do C.I., habilitao de escrita/leitura, barramento de
dados, I/O, etc.

Conceitos Bsicos
Program Counter: o Contador de Instruo responsvel por
armazenar o endereo da prxima instruo a ser executada.
Pilha (Stack): o espao de Memria onde se localizam os
endereos de memria onde ocorreram desvios no programa.
Possui tamanho limitado de armazenamento.
CPU: Unidade Central de Processamento (cerebro), responsvel
por extrair, decodificar e executar as instrues.
ULA: A Unidade Lgica e Aritmtica tem a funo de realizar
operaes lgicas e aritmticas.
Registradores: So pequenas unidades de memria para alocao
temporria de dados.
Acumulador: Registrador temporrio onde so realizadas as
operaes lgicas e aritmticas.


Conceitos Bsicos
Registradores de Uso Geral: Regio da memria de dados onde
possvel armazenar variveis definidas pelo programador.
Registradores Especiais SFRs: regio da memria e dados onde
se encontram os registradores especiais utilizados para execuo
do programa e processamento da ULA.
Vetor de Reset: Posio de incio 0x0000h (PIC 18F) de endereo
da memria de programa.
Vetor de Interrupo: Posio 0x0004h (PIC 18F) de endereo da
memria de programa para onde so desviados todos os
processamentos de interrupo.
Instruo: Sequncia de bits associada a alguma funo
estabelecida no microcontrolador.
String: Conjunto de caracteres.

Microprocessador X Microcontrolador
Microprocessadores: Usados para processamentos complexos,
possuem maior custo, necessitam de dispositivos externos e
barramentos de comunicao externos.
Aplicaes: Microcomputadores, aparelhos eletrnicos de uso domstico e
equipamentos mdicos.

Microcontroladores: Menor custo, possuem todos os perifricos
necessrios em um nico chip, menor tamanho, utilizado em
aplicaes de menor desempenho que no exijam processamentos
complexos.
Aplicaes: Automao industrial, residencial e predial, eletrodomsticos e
brinquedos eletrnicos.
Arquiteturas
Arquiteturas:
Von Neumann: Utiliza apenas um barramento para trafegar dados da memria
de dados e de programa.
Harvard: Possui barramentos distintos para a memria de dados e a memria
de programa.

Filosofias de Instrues:
RISC: Reduced Instruction Set Computing.
conjunto reduzido de instrues,
formato fixo
consome apenas um ciclo de clock para sua execuo.

CISC: Complex Instruction Set Computing.
conjunto maior de instrues,
maior flexibilidade de programao
possui instrues pouco utilizadas ou no utilizadas,
consome mais de um ciclo de clock para sua execuo.
Von Neumann
Harvard
Esquemtico Microcomputador
Diagrama Microprocessador
Diagrama de um Microcontrolador
ULA detalhada.
Diagrama em blocos da CPU.
Memrias
Classificao:
-Acesso
-Volatilidade
-Escrita/leitura ou apenas leitura
-Tipo de Armazenamento
Caractersticas do Microcontrolador PIC
O PIC utiliza arquitetura Harvard com tecnologia RISC.
O barramento de dados de 8 bits e o de endereo pode variar de
13 a 21 bits dependendo do modelo.

Este tipo de arquitetura permite que, enquanto uma instruo
executada, outra instruo seja buscada na memria, ou seja, um
PIPELINE (sobreposio), o que torna o processamento mais
rpido, permitindo que todas as instrues sejam executadas em
um ciclo de mquina.

Pipeline x Ciclos de Mquina
Caractersticas da Famlia PIC
As famlias de microcontroladores PIC so:
8 bits
Famlia PIC10
Famlia PIC12
Famlia PIC14 e PIC17
Famlia PIC16
Famlia PIC18

16 bits:
Famlias PIC24F e PIC24H
Famlias dsPIC30F e dsPIC33F

32 bits
PIC32

Os componentes diferem entre si basicamente em:

Quantidade de memria RAM
Quantidade de memria EEPROM de dados (alguns no tm nada)
Quantidade de memria Flash de programa
Nmero de pinos (8,14,18,28,40, ...)
Freqncia mxima de clock
Perifricos

Encapsulamento do PIC
Caractersticas Eltricas do PIC 18F4520
Temperatura de Trabalho: -40C at +125C
Temperatura de Armazenamento: -65C at 150C
Tenso de Trabalho: 4.2 V a 5.5V
Tenso mxima no pino V
DD
(em relao ao V
SS
): - 0.3 V at 7.5V
Tenso mxima no pino MCRL (em relao ao V
SS
): 0 at 13.25V
Tenso mxima nos demais pinos (em relao ao V
SS
): -0.3V at (V
DD
+ 0.3V)
Dissipao mxima de energia: 1.0W
Corrente mxima e sada no pino V
SS
: 300 mA
Corrente mxima de entrada no pino V
DD
: 250 mA
Corrente mxima de entrada de um pino (quando em V
SS
): 25 mA
Corrente mxima de sada de um pino (quando em V
DD
): 25 mA
Corrente mxima de entrada/sadas nos PORTS: 200 mA

PIC 18F4520
40 pinos
75 Instrues
36 portas configurveis
Memria de programa flash de 32k (16384 bytes words)
Memria de dados RAM de 1536 bytes
Memria EEPROM de 256 bytes.
Processamento de at 10 MIPS ( Milhes de instrues por
segundo)
Master synchronous serial PORT (MSSP) module.
20 Interrupes disponveis
Comunicao Usart, SPI e I
2
C
13 canais A/D de 10 bits
4 Timers (1x8 bits e 3x16 bits)
2 Mdulos CCP (Capture, Compare e PWM)
Permite at 100 000 ciclos de escrita e leitura na memria
de programa flash
Permite 1.000.000 de ciclos de leitura e escrita na EEPROM
Reteno de dados na memria flash de at 40 anos
Detector de Baixa Voltagem programvel
Trs pinos de interrupo externa
4 temporizadores/contadores (Timer0, Timer1, Timer2,
Timer3)

Pinagem
Pinagem
O PI18F4520 possui um total de 34 pinos de I/O divididos entre as PORTA, PORTB,
PORTC, PORTD e PORTE.

PORTA: 8 pinos fsicos intitulados de RA0 a RA7 que podem ser utilizados como I/O de
uso geral ou como conversor analgico/ digital A/D, alm de possuir tambm a
funo de deteco de baixa tenso (LVD), referncia analgica do A/D e contador
externo.
PORTB: 8 pinos intitulados de RB0 a RB7 configurveis como I/O de uso geral. Nesse
port podemos trabalhar com trs interrupes externas, mdulo CCP e pinos de
gravao e debugger.
PORTC: 8 pinos intitulados de RC0 a RC7 configurveis como I/O de uso geral, sada do
oscilador do timer, mdulo CCP, Clock e data para os modos SPI, I2C e USART.
PORTD: 8 pinos intitulados de RC0 a RC7 que podem ser configurados como I/O de uso
geral ou ser configurado como PSP para ter sada TTL (por exemplo: interfaceamento com
microprocessadores).
PORTE: podemos utiliz-lo como PORT de I/O de uso geral ou utilizar os pinos de WR e
CS para acesso ao modo paralelo Slave Port (acesso a memria externa por exemplo).

Nomenclatura dos Pinos
Nomenclatura dos Pinos
Nomenclatura dos Pinos
Diagrama de
Blocos
Ciclo de Mquina
CKint = CKext / 4 onde: CKint = Clock interno;
CKext = Clock externo;

TCM = 1 / Ckint onde: CM = Tempo de Ciclo de Mquina;

De maneira simplificada pode-se utilizar para clculo de ciclo de
mquina a seguinte equao:

TCM = 4 / Freq. Osc. onde: TCM = Tempo de Ciclo de Mquina;

Freq. Osc. = Freqncia do Oscilador;

Acelerador de Clock
Obs: O PLL trabalha
apenas com oscilador
de 4 MHz ou 8MHz
gerando velocidades de
clock de at 32MHz.
Acelerador de Clock
Detalhes do PIC
O PIC 18F4520 permite instrues com 2 ou 4 bytes, apresentando
32Kbytes totais de memria correspondendo a 16.384 instrues.
A pilha do PIC possui 31 nveis com 21 bits de tamanho, representando
uma capacidade de gerenciamento de at 2M de memria de programa.
Os registradores de uso geral permitem armazenar at 1.536 bytes de
variveis.
Possui 16 bancos de memria divididos em 256 bytes cada. Os endereos
dos bancos so vistos a seguir:
Banco 0: 000h at 0FFh
Banco 1: 100h at 1FFh
Banco 2: 200h at 2FFh
Banco 3: 300h at 3FFh
Banco 4: 400H at 4FFh
Banco 5: 500h at 5FFh
Banco 6: 600h at 6FFh
Banco 7: 700h at 7FFh

Banco 8: 800h at 8FFh
Banco 9: 900h at 9FFh
Banco 10: A00h at AFFh
Banco 11: B00h at BFFh
Banco 12: C00h at CFFh
Banco 13: D00h at DFFh
Banco 14: E00h at EFFh
Banco 15: F00h at FFFh

Buffers
Possibilitam o aumento da capacidade da corrente de sada.
Isolam circuitos lgicos.
Realizam converso de nveis lgicos.
Podem ser do tipo:
Inversor,
No Inversor,
Unidirecionais,
Bidirecionais,
Conversor de Nvel,
ULN2803
Transistor Darlington
Configuration Bits
1: Oscilador: Configura o tipo de oscilador utilizado na qual se
baseia a velocidade de operao do microcontrolador.

Configuration Bits
Chaveamento do Oscilador Interno/Externo:

IESO = OFF Chaveamento desligado
IESO = ON Chaveamento ligado

Power Up Timer: Um microcontrolador ao ser energizado demanda um
tempo at que esteja totalmente estabilizado. Esta configurao garante
que o microcontrolador aguardar um tempo de 72 ms para comear a
operar normalmente.


PWRT = OFF Power Up Timer Desligado
PWRT = ON Power Up Timer Ligado

Configuration Bits
Habilitao do Brown Out Reset: Detecta uma baixa tenso (4 volts ou
menos) que persistindo por mais de 100 s capaz de resetar o PIC.

BOREN = OFF Brown Out Reset desabilitado
BOREN = ON Brown Out Reset habilitado por hardware e controlado
por software.
BOREN = NOSLP Brown Out Reset habilitado por hardware e
desabilitado no modo SLEEP.
BOREN = SDORDIS Brown Out Reset habilitado por hardware.

Tenso do do Brown Out Reset: Esta opo serve para definir um valor de
tenso de referncia adequado para funcionamento do do Brown Out Reset.

BORV = 0 Valor Mximo
BORV = 1 Valor Intermedirio
BORV = 2 Valor Intermedirio
BORV = 3 Valor Mnimo

Configuration Bits
Master Clear Enable: Define o pino 1 como I/O digital somente
entrada ou Master Clear.
MCLR = OFF Master Clear desabilitado
MCLR = ON Master Clear habilitado

Watchdog Timer: O Watchdog Timer serve para evitar travamentos
por problemas de software. Ele um contador interno que deve ser
zerado pela instruo CLRWDT antes de seu estouro e
consequente reset do sistema. Isto garante que o sistema no fique
travado, contudo a limpeza do Watchdog Timer deve acontecer
numa frequncia mais rpida do que o seu estouro cuja velocidade
pode ser configurada.
Configuration Bits
Habilitao do Watchdog Timer:

WDT = OFF Watchdog Timer
desabilitado

WDT = ON Watchdog Timer
habilitado


Postscaler do Watchdog Timer:

WDTPS = 1 1:1
WDTPS = 2 1:2
WDTPS = 4 1:4
WDTPS = 8 1:8
WDTPS = 16 1:16
WDTPS = 32 1:32
WDTPS = 64 1:64
WDTPS = 128 1:128
WDTPS = 256 1:256
WDTPS = 512 1:512
WDTPS = 1024 1:1024
WDTPS = 2048 1:2048
WDTPS = 4096 1:4096
WDTPS = 8192 1:8192
WDTPS = 16384 1:16384
WDTPS = 32768 1:32768

Configuration Bits
Fail Safe Clock Monitor: Esta funo permite que o microcontrolador alterne para um clock
secundrio em caso de problemas no clock primrio. O clock primrio constantemente
monitorado.

FCMEN = OF FSCM desligado
FCMEN = ON FSCM ligado

Oscilador do Timer 1:
LPT1OSC = OFF Timer 1 configurado como oscilador de consumo normal.
LPT1OSC = ON Timer 1 configurado como oscilador de consumo baixo.

Habilitao dos Canais A/D do PORTB:

PBADEN = OFF Pinos RB0 ao RB4 como I/O aps reset.
PBADEN = ON Pinos RB0 ao RB4 como analgico aps reset.

MUX CCP2:
CCP2MX = PORTE Pino RB3 como CCP2
CCP2MX = PORTC Pino RC1 como CCP2

Configuration Bits
Reset por Stack Full/ Underflow: Permite que o micrtocontrolador seja resetado
quando a pilha tiver estourado.

STVREN = OFF Reset por Stack Full/ Underflow desabilitado
STVREN = ON Reset por Stack Full/ Underflow habilitado

Gravao em Baixa Tenso: Permite que o microcontrolador possa ser programado
por uma tenso baixa 5 volts sem necessitar que uma tenso alta (13 volts) seja
aplicada ao pino 1 MCLR, contudo o pino 38 estar dedicado ao modo de entrada do
controle do programa no podendo operar como I/O. Esta funo possibilita que um
pic possa gravar outro, ou mesmo efetuar um upgrade remotamente.

LVP = OFF Gravao em Baixa Tenso desabilitada
LVP = ON Gravao em Baixa Tenso habilitada

Configuration Bits
Habilitao do Set de Instruo no Modo Estendido: Habilita modo
extendido de instruo adicionando mais 8 instrues as operaes de
endereamento direto e indireto.
XINST = OFF Modo estendido desabilitado
XINST = ON Modo estendido habilitado

Modo de Depurao: Permite que o microcontrolador possa operar com
debugadores de baixo custo. A habilitao desta opo ocasiona a perda
de alguns recursos do microcontrolador, listados a seguir:
Pinos B6 e RB7 no operam como I/O convencionais.
Perde-se um nvel da pilha (20) para o sistema de emulao.
Os endereos 7DC0h a 7FFFh da memria de programa no podem mais
ser utilizados.
Os endereos 5F4h a 5FFh da memria de dados no podem mais ser
utilizados.

DEBUG = OFF Modo de Depurao desabilitado
DEBUG = ON Modo de Depurao habilitado


Configuration Bits
Protees: As protees servem para proteger a EEPROM interna
contra escrita e leitura indevidas.
Proteo de Cdigo no Bloco 0:
CP0 = ON Bloco 0(800h-1FFFh)
CP0 = OFF Bloco0(800h-1FFFh)

Proteo de Cdigo no Bloco 1:
CP1 = ON Bloco 0(2000h-3FFFh)
CP1 = OFF Bloco0(2000h-3FFFh)

Proteo de Cdigo no Bloco 2:
CP2 = ON Bloco 0(4000h-5FFFh)
CP2 = OFF Bloco0(4000h-5FFFh)

Proteo de Cdigo no Bloco 3:
CP3= ON Bloco 0(6000h-7FFFh)
CP3 = OFF Bloco0(6000h-7FFFh)


Proteo de Cdigo no Bloco Boot:
CPB = ON Bloco boot (0h-7FFh)
CPB = OFF Bloco boot (0h-7FFh)

Proteo de Dados na EEPROM:
CPD = ON Dados da EEPROM protegidos
CPD = OFF Dados da EEPROM no protegidos

Proteo de Escrita no Bloco 0:
WRT0 = ON Bloco 0 (800h-1FFFh)
WRT0 = OFF Bloco 0 (800h-1FFFh)

Proteo de Escrita no Bloco 1:
WRT1 = ON Bloco 1 (2000h-3FFFh)
WRT1 = OFF Bloco 1 (2000h-3FFFh)


Configuration Bits
Proteo de Escrita no Bloco 2:
WRT2 = ON Bloco 2 (4000h-5FFFh)
WRT2 = OFF Bloco 2 (4000h-5FFFh)

Proteo de Escrita no Bloco 3:
WRT3= ON Bloco 3 (6000h-7FFFh)
WRT3 = OFF Bloco 3 (6000h-7FFFh)

Proteo de Escrita no Bloco Boot:
WRTB = ON Bloco boot (0h-7FFh)
WRTB = OFF Bloco boot (0h-7FFh)

Proteo de Escrita na EEPROM:
WRTD = ON Dados da EEPROM protegidos
contra escrita
WRTD = OFF Dados da EEPROM no protegidos
contra escrita

Proteo de Leitura de Tabela no Bloco 0:
EBTR0 = ON Bloco 0 (800h 1FFFh)
EBTR0 = OFF Bloco 0 (800h 1FFFh)

Proteo de Leitura de Tabela no Bloco 1:
EBTR1 = ON Bloco 1 (2000h-3FFFh)
EBTR1 = OFF Bloco 1 (2000h-3FFFh)

Proteo de Leitura de Tabela no Bloco 2:
EBTR2 = ON Bloco 2 (4000h-5FFFh)
EBTR2 = OFF Bloco 2 (4000h-5FFFh)

Proteo de Leitura de Tabela no Bloco 3:
EBTR3= ON Bloco 3 (6000h-7FFFh)
EBTR3 = OFF Bloco 3 (6000h-7FFFh)

Proteo de Leitura de Tabela no Bloco Boot:
EBTRB = ON Bloco boot (0h-7FFh)
EBTRB = OFFBloco boot (0h-7FFh)

Memria de Programa
Endereos de Memria Reservados as
FSRs.
Registradores Especiais
Registradores de funes especiais possuem seus nomes
e seus bits j definidos em arquivo, no sendo necessrio
se preocupar com o endereo que estes ocupam na
memria.
Registrador OSSCON
Usado para configurar as caractersticas
do Circuito Oscilador.
Bit 7: IDLEN (Idle Enable bit)
1 = Idle mode quando acionada
instruo SLEEP.
0= Entra na funo SLEEP.

Bit 6-4:IRCF2 IRCF0
(Internal Oscillator Frequency
Select bits)

111 = 8MHz
110 = 4MHz
101 = 2MHz
100 = 1MHz
011= 500KHz
010 = 250KHz
001 = 125KHz
000 = 31KHz

Bit 3: OSTS (Oscilator Start-Up
Time-Out Status bit
1 = OSTS expirado, acionado
oscilador primrio.
0 = OSTS acionado, Oscilador
primrio indisponvel.

Bit 2: IOFS INTOSC
(Frequency Stable bit )
1 = Frequncia INTOSC estvel
0 = Frequncia INTOSC no
estvel



Bit 1: SCS1:SCS0 (System Clock Select bits)
1x = Bloco oscilador externo
01 = Oscilador secundrio (Timer 1)
00 = Oscilador primrio
Estudo dos PORTs
PORTA
Estudo dos PORTs
PORTB
Estudo dos PORTs
PORTC
Estudo dos PORTs
PORTD
Estudo dos PORTs
PORTE
O PIC 18F4520
permite trabalhar
com at 20
interrupes
diferentes com dois
vetores de
interrupo, um de
alta prioridade e
outro de baixa. Isto
permite que
possamos
implementar uma
interrupo dentro
de outra.
Interrupes
Interrupes
Interrupo Externa: Gerada por um sinal externo aplicado aos pinos 33 (RB0),
34(RB1) ou 35 (RB2) quando configurados como entrada. Podem ser aplicadas para
o reconhecimento de botes como uma parada de emergncia. A interrupo pode
ser configurada para operar em borda de subida ou descida e gerar um flag de
indicao.

Interrupo do Timer 0: Ocorre toda vez que o contador TMR0 estoura. O Timer 0
um contador de que opera em 8 ou 16 bits utilizado para contagem de tempo.

Interrupo do Timer 1: Ocorre toda vez que o contador TMR1 estoura. O TMR1
um contador de 16 bits.

Interrupo do Timer 2:Ocorre toda vez que o contador TMR2 acrescido do
Postscaler estoura. O TMR2 um contador de 8 bits que possui Prescaler para
incrementar o registrador e Postscaler para gerar a interrupo.

Interrupo do Timer 3: Ocorre toda vez que o contador TMR3 estoura. O TMR3
um contador de 16 bits.

Interrupes
Interrupo de Transmisso e Recepo da USART: A interrupo da USART
pode ser gerada pelo trmino da recepo de um dado ou pelo esvaziamento do
buffer relacionado transmisso.

Interrupo da Comunicao Serial (SPI ou I
2
C): Os modos de transmisso SPI
ou I
2
C fazem parte do sistema Master Synchronous Serial Port (MSSP) que gera
uma interrupo toda vez que um dado transmitido ou recebido por esta porta
serial.

Interrupo da Porta Paralela (PSP): Ocorre toda vez que uma operao de leitura
ou escrita completada na porta paralela, Parallel Slave Port (PSP).

Interrupo dos Conversores AD: Acontece toda vez que uma converso do tipo
AD completada.

Interrupo do CCP1 e CCP2: Associada a qualquer dos recursos do Capture,
Compare e PWM 1 ou 2.

Interrupes
Interrupo do Fail Save Clock Monitor (FSCM): Vinculada falha do
oscilador principal.

Interrupo de Coliso de Dados: Utilizada para informar o sistema de
colises de dados na comunicao tipo I
2
C.

Interrupo dos Comparadores: Vinculada a mudana de estado dos
comparadores internos do PIC.

Interrupo do High/Low Voltage Detector (HLVD): Informa ao
programador se houve uma queda ou subida de tenso no pino de
alimentao do PIC.

Interrupo de Fim de Escrita na E2PROM/FLASH: Utilizada para
informar o fim de uma rotina de escrita na memria interna.

I/Os
Os pinos de I/O ou entrada e sada fazem a conexo com o mundo
fsico, atravs de seu uso podemos controlar diversos perifricos
como por exemplo um motor (desde que o projeto utilize as
interfaces necessrias).
O PIC 18F4520 dispe de 34 pinos de escrita e leitura divididos em
portas chamadas PORTA, PORTB, PORTC, PORTD e PORTE.
Com as seguintes caractersticas:

PORTB, PORTC e PORTD com 8 pinos de I/O.
PORTA com 6 pinos de I/O.
PORTE com 4 pinos de I/O.
Trs registradores para cada porta de I/O:
PORT
LAT
TRIS

I/Os
Importante:

Registradores PORT pertencem aos SFRs e armazenam os dados
das portas paralelas (I/Os) do microcontrolador. Qualquer escrita
realizada nestes registradores altera a sada do chip.

Registradores TRIS so utilizados na configurao de cada pino
como entrada ou sada, sendo que o nvel 1 equivale a entrada
(input) e 0 equivale a sada (output).

Registradores LAT so utilizados para leitura das sadas do LATCH
do microcontrolador. Este LATCH se encontra antes do buffer de
sada do pino.
I/Os
Acionamento genrico das portas de I/O.
I/Os tipo TTL ou Schmitt Trigger
Interfaces de Entrada
Boto Liga/Desliga
Interface usando acoplador
ptico 4N25.
Interfaces de Sada
Interfaces de Sada
TIMERS
Timer um contador/temporizador que pode operar com
8 ou 16 bits

O PIC 18F4520 possui 4 temporizadores/contadores:
Timer0, Timer1, Timer2, Timer3

Timer 0
TIMER 0
Modo 8 bits
Modo 16 bits
TIMER 0
TIMER 0
Configurao do Temporizador:

Frmula:

Tempo = Ciclo de Mquina x prescaler x [modo (8 ou 16 bits) valor de
ajuste de contagem]

Onde:
Ciclo de Mquina = FOSC /4
Prescaler = Valor do multiplicador de freqncia configurado nos bits TOPS0
TOPS2.
Modo:
8 bits = contagem de 0 a 255 (256)
16 bits = contagem de 0 a 65535 (65536)

Valor de Ajuste: Valor a ser subtrado para conseguir a contagem adequada.

TIMER 0
Configurao do Temporizador:

Exemplo: Deseja-se piscar um Led a cada 1 segundo. O PIC utiliza um cristal
de 4 MHz.

FOSC = 4/4 = 1 MHz.
Prescaler = 1:16.
Modo = 16 bits = 65536.
Valor de ajuste = Modo - (T / Ciclo de Mquina x Prescaler ) = 65536 -
(1000000 / 1us x 16) = 65536 62500 = 3036

Tempo = Ciclo de Mquina x prescaler x [modo (8 ou 16 bits) valor de
ajuste de contagem]

Tempo = 1 us x 16 x (65536 3036) = 1000000 us ou 1 segundo

CCP (CAPTURE, COMPARE AND PWM)
O PIC 18F4520 possui dois mdulos CCP (Capture,
Compare e PWM).
Cada mdulo possui um registrador de 16 bits que pode
operar como:
Registrador de Captura de 16 bits.
Registrador de Comparao de 16 bits.
Registrador PWM
Cada Mdulo CCP est associado com um registrador
de controle CCPxCON e um registrador de dados
CCPRx composto de dois registradores de 8 bits
CCPRxL e CCPRxH.
CCP
Os mdulos de CCP utilizam os Timers 1, 2 ou 3 dependendo do modo de
seleo desejado.
Os Timers 1 e 3 esto disponveis nos modos Captura e Comparao.
O Timer 2 est disponvel no modo PWM.
Interao entre os Mdulos CCP1 e CCP2.
CCP1
CAPTURA
COMPARAO
PWM
CONVERSOR A/D
O mdulo conversor A/D possui 13
entradas possibilitando uma converso
com 10 bits de preciso.
Este mdulo possui cinco registradores:
Registrador de resultado alto (ADRESH)
Registrador de resultado baixo (ADRESL)
Registrador de controle 0 (ADCON0)
Registrador de controle 1 (ADCON1)
Registrador de controle 2 (ADCON2)

ADCON0
ADCON1
Comunicao USART (Universal Synchronous
Asynchronous Receiver Transmitter)
Comunicao MSSP (Master Synchronous
Serial Port)
Assembly
Uma das primeiras linguagens de programao criadas.
Considerada uma linguagem de baixo nvel, a
linguagem mais prxima da linguagem de mquina.
O PIC 18F4520 dispes de 75 instrues.
Glossrio Assembly
WORK (Acumulador / W): Registrador temporrio para as operaes da ULA.
File (F/f) : Qualquer registrador ou posio de memria especfica. Utiliza-se F nos nomes
de instrues e f nos argumentos.
Literal: Um nmero qualquer escrito na forma decimal, hexadecimal ou binria. Utiliza-se
L para representar instrues e k nos argumentos.
Destino: Local de armazenamento do resultado da operao que pode ser um registrador F
ou o acumulador W.
Skip (S): Este comando significa pular, e usado para criar loops ou desvios.
Set: Este comando significar setar um bit, isto torn-lo equivalente a um.
Clear: Este comando significar resetar um bit, isto torn-lo equivalente a zero.
Overflow: Referncia ao bit Overflow do registrador STATUS.
Borrow: Referncia ao bit Borrow (ou vem 1 de uma operao de subtrao ) do
registrador STATUS.
Carry: Referncia ao bit Carry o(u vai um de uma operao de soma) do registrador
STATUS.
Toggle: Este comando significa inverter o estado de um bit.

Instruction Set
Instruction Set
Instruction Set
COMPILADORES
Compiladores: Tradutores do
software para linguagem de
mquina.
Passos para compilao
1 Gerao codigo de mquina
intermedirio.
2 Ligao do cdigo
intermedirio com as funes
das bibliotecas.
3 Montagem do cdigo efetivo
transformando para linguagem
de mquina.
4Carregamento na memria
do microcontrolador
5 Depurao do cdigo para
eliminar erros de cdigo como:
Sintaxe, Execuo e
Semntica.
Estrutura de Programa em Assembly
Estrutura de Programa em Assembly
Fluxograma
Fluxogramas so ferramentas que ajudam o programador a estruturar de
maneira grfica uma sequncia lgica de atividades a serem implementadas
no programa.

Condies
Se
Se-No
Condies
Se-No-Se
Condies
Caso
Faa-Enquanto
Condies
Enquanto
Para
PLACA DE TESTES MULTIPIC
MULTIPIC
O Kit de Desenvolvimento Multipic Advanced fornecido pela
empresa Smart Radio e possui como principais recursos:
Programador USB Externo
LCD 16x2
Teclado Matricial 4x3
Conversor AD
Serial RS 232
PWM
Conector de Expanso para ligao de placas externas
4 x Displays BCD
1 x Rel
1 x Buzzer
8 x leds para simulao

FIM