Você está na página 1de 30

Centro de Tecnologia Microgenios - Todos os direitos reservados

Clique aqui para Imprimir o doc

umento

Conhecendo o Hardware do PIC18F452

1.0 O PIC18F452
1.1 Tipos de Capsulamentos
1.2 Estrutura Interna do PIC18F452
1.3 Descrio das funes dos pinos do PIC18F452

Memria do PIC18F452

1.0 Tipos de Memrias


1.1 Memria de Programa
1.2 Memria de dados - EEPROM
1.3 Memria de dados - RAM

Osciladores
o
o
o
o
o
o

1.0 O clock
1.1 Osciladores: Cristal e Ressonador
1.2 Cristal de Oscilao RC
1.3 Modo HSPLL
1.4 Ciclos de Mquina
1.5 Reset

Bits configurations

1.0 Os bits de configurao


1.1 FOSC (frequncy Oscilator)
1.2 OSCSEN (SYSTEM CLOCK SWITCH BIT)
1.3 PWRTEN (SYSTEM CLOCK SWITCH BIT)
1.4 BROWN-Out
1.5 BOREN
1.7 WDTEN - Watchdog Timer Enable (co de guarda)
1.8 Watchdog Postscale Select Bit

1.9 CCP2MX
2.0 BKBUG (debug)
2.1 LVP (Low Voltagem Programming)
2.2 STVREN (Stack Full/Underflow Reset Enable Bit)

O PIC18F452
O PIC18F452 um microcontrolador que possui memria do tipo
FLASH, que nos representa uma grande facilidade em
desenvolvimentos de projetos e prottipos pois no requer apaglo atravs de luz-ultravioleta como as verses antigas que
utilizavam EEPROM.

O PIC18F452 um microcontrolador com tecnologia CMOS


(baixssimo consumo) fabricado pela empresa Microchip
Technology.
Veja em seguida as principais caractersticas do PIC18F452

microcontrolador de 40 pinos;
memria de programa FLASH de 32K ( 16384 bytes

words)

memria de dados RAM de 1536 bytes;

memria EEPROM de 256 byte;

Processamento de at 10MIPS (milhes de


instrues por sergundo)

quatro temporizadores internos (um de 8 bits e 3 de


16 bits) (TIMER0, TIMER1, TIMER2, TIMER3)

2 canais capture/compare/PWM - mdulo CCP

Master synchronous Serial Port (MSSP) module.

Unhaced Usart

8 canais A/D de 10 bits;

Detector de baixa voltagem programvel


Permite at 100 000 ciclos de escrita e leitura na
memria de programa Flash

permite 1 000 000 ciclos de leitura e escrita na


E2PROM

Reteno de dados na Flash de 40 anos

Watchdog timer com oscilador prprio e programvel

trs pinos de interrrupo externa. INT0, INT1, INT2

voltar para o topo da pgina

Tipos de encapsulamentos:
As primeiras verses do PIC eram baseadas em encapsulamentos do tipo
DIP40, hoje os dipositivos de 40 pinos ainda so muito comuns, porm de
acordo com a aplicao e os perifricos internos presentes no Chip eles podem
ser encontrados em diversos encapsulamentos como:
DIP Dual In-line Pin
PLCC Leadless Chip Carrier.
TQFP

Nosso estudo ser baseado em microcontroladores com o encapsulamento


DIP (Dual In-line Pin), devido a facilidade de utilizao e disponibilidade no
mercado, porm no h grandes dificuldades para se migrar para outros
encapsulamentos, basta analisar um pouco o datasheet do microcontrolador.

voltar para o topo da pgina

Estrutura interna do PIC18F452

voltar para o topo da pgina

Descrio das funes dos pinos do PIC18F452


O PIC18F452 possui no total de 33 pinos de I/O divididos entre as PORTA,
PORTB, PORTC, PORTD e PORTE.
PORTA: encontramos 7 pinos fsicos intitulados de RA0 a RA6 que podem ser
utilizados como I/O de uso geral ou como conversor analgico/ digital A/D,
(com excesso de RA4), alm de possuir tambm a funo de deteco de
baixa tenso (LVD), referncia analgica do A/D e contador externo.
PORTB: encontramos 8 pinos intitulado 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: encontramos 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 UART.
PORTD: encontramos 8 pinos intitulado de RC0 a RC7 que pode ser
configurado como I/O de uso geral ou ser configurado como PSP para ter
sada TTL (por exemplo: interfaciamento 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).
Abaixo segue com detalhes a funo de cada pino do microcontrolador
PIC18F452.

Pino
(DIP)

Funo

/MCLR/VPP

Tipo

entrada entrada

Descrio

Entrada do RESET externo. Pino de


habilitao de alta voltagem ICSP

entrada do cristal oscilador / entrada do


clock externo
sada do cristal oscilador / entrada do
sada 14 OSC2 / CLK1/ RA6
clock exteno / entrada e sada de uso
sada - I/O
geral
I/O entrada e sada de uso geral / entrada do
2
RA0 / AN0
entrada
conversor AD0
I/O entrada e sada de uso geral / entrada do
3
RA1 / AN1
entrada
conversor AD1
I/O entrada e sada de uso geral/ entrada do
4
RA2 / AN2 /Vrefentrada conversor AD2 / entrada de referncia
13 OSC1 /CLK1

entrada

entrada
I/O 5
RA3 / AN3 / Vref+ entrada entrada
I/O 6
RA4 / T0CKI
entrada entrada
I/O entrada 7
RA5/AN4/SS/LVDIN
entrada entrada
I/O 33 RB0 / INT0
entrada
I/O 34 RB1 / INT1
entrada
I/O 35 RB2 / INT2
entrada

baixa do A/D
entrada e sada de uso geral / entrada do
conversor AD3 / entrada de referncia
Alta do A/D
entrada e sada de uso geral / entrada de
clock timer0
entrada e sada de uso geral / entrada do
conversor AD4 / entrada de seleo SPI,
detector de baixa voltagem.

entrada e sada de uso geral / interrupo


externa 0
entrada e sada de uso geral / interrupo
externa 1
entrada e sada de uso geral / interrupo
externa 2
entrada e sada de uso geral / mdulo
36 RB3 / CCP2**
I/O - I/O
CCP2 (multiplexado com RB3 )
entrada e sada de uso geral / pino de
37 RB4
I/O
interrupo por mudana de nvel
entrada e sada de uso geral (interrupo
38 RB5/PGM
I/O - I/O
por mudana de estado) / pino de
habilitao ICSP baixa voltagem
entrada e sada de uso geral (interrupo
39 RB6 / PGC
I/O - I/O
por mudana de estado) / pino ICSP InCircuit Debugger
entrada e sada de uso geral (interrupo
40 RB7 / PGD
I/O - I/O
por mudana de estado) / pino ICSP InCircuit Debugger
I/O - sada - entrada e sada de uso geral / sada do 2
15 RC0/T10S0/T1CKI
entrada
oscilador /Contador externo Timer 1
I/O entrada e sada de uso geral / entrada 2
RC1 / T10SI /
16
entrada oscilador / mdulo CCP2 (multiplexado
CCP2**
sada
com RB3 )
entrada e sada de uso geral / mdulo
17 RC2/CCP1
I/O - I/O
CCP1
entrada e sada de uso geral / entrada e
I/O - I/O - sada do clock serial para o modo SPI /
18 RC3/SCK/SCL
I/O
entrada e sada do clock serial para o
modo I2C
I/O entrada e sada de uso geral / entrada de
23 RC4/SDI/SDA
entrada dados SPI / entrada e sada de dados I2C
I/O
entrada e sada de uso geral / sada de
24 RC5/SD0
I/O - sada
dados SPI
25 RC6/TX/CK
I/O - sada - entrada e sada de uso geral / canal de

I/O

26 RC7/RX/DT

I/O entrada I/O

19 RD0/PSP0

I/O - I/O

20 RD1/PSP1

I/O - I/O

21 RD2/PSP2

I/O - I/O

22 RD3/PSP3

I/O - I/O

27 RD4/PSP4

I/O - I/O

28 RD5/PSP5

I/O - I/O

29 RD6/PSP6

I/O - I/O

30 RD7/PSP7

I/O - I/O

RE0/RD/AN5

I/O

RE1/WR/AN6

I/O

10 RE2/CS/AN7

I/O

12 ,
GND
31
11,
VCC
32

transmisso UART / clock de sincronismo


UART
entrada e sada de uso geral / canal de
recepo UART / clock de sincronismo
UART
entrada e sada de uso geral / porta de
comunicao paralela
entrada e sada de uso geral / porta de
comunicao paralela
entrada e sada de uso geral / porta de
comunicao paralela
entrada e sada de uso geral / porta de
comunicao paralela
entrada e sada de uso geral / porta de
comunicao paralela
entrada e sada de uso geral / porta de
comunicao paralela
entrada e sada de uso geral / porta de
comunicao paralela
entrada e sada de uso geral / porta de
comunicao paralela
entrada e sada de uso geral / controle de
leitura do port paralelo / entrada
analgica AD5
entrada e sada de uso geral / controle de
escrita do port paralelo / entrada
analgica AD6
entrada e sada de uso geral / controle de
seleo do port paralelo / entrada
analgica AD7

alimentao negativo
alimentao positivo

Tipos de Memrias
No PIC18F452 encontramos trs tipos de memrias:

Memria de Programa - FLASH


Memria de dados - RAM
Memria de dados EEPROM

Como ns sabemos, memria de programa (ROM, EPROM, FLASH) do


tipo no voltil, ou seja, podemos desenergizar nosso sistema
microcontrolado e ele no perder o programa gravado.
Nosso microcontrolador estudado possui internamente 32Kbyte de memria de
programa e possui um barramento de programa de 16 bits. Alm disso,
existem 21 bits para endereamento da memria de programa, o que permite
que at 2 Mbyte sejam endereados pelo microcontrolador da familia PIC18F.

voltar para o topo da pgina

Memria de Programa
A memria de programa utilizada em nosso microcontrolador do tipo FLASH
(sufixo "F") que permite ser gravada/apagada no minimo 1000 vezes. Este tipo
de memria utilizada ideal para ser utilizada em desenvolvimento de projetos
e at mesmo em produtos finais.

Memria de Programa FLASH do PIC18F442

Podemos perceber que a memria de programa do PIC18F452 iniciase no endereo 0000h e atinge o valor mximo de 7FFFH, ou seja , 32767K
byte (32Kbyte).

Nota:
No podemos confundir de forma alguma memria de
programa e memria de dados. Sabemos que memria de
programa onde nosso programa estar gravado, enquanto
memria de dados onde os valores de nossas variveis sero
salvas temporariamente.
O endereo inicial 0000h chamado de vetor de reset. A instruo
de programa que estiver nesse endereo de memria ser a primeira a ser
executada pelo processador do PIC. Sempre que energizarmos ou resetarmos
o microcontrolador, o contador de programa PC apontar sempre para este
primeiro endereo da memria.
Em seguida temos os endereos 0008h e 0018h. Estes endereos
so chamados de vetores de interrupo. (veremos mais adiante em nosso
curso sobre esses vetores de interrupo).
Em seguida temos os endereos 0008h e 0018h. Estes endereos so
chamados de vetores de interrupo. (veremos mais adiante em nosso curso
sobre esses vetores de interrupo).
Vamos exemplificar um processo de gravao na memria de programa do
PIC.
Acompanhe o programa exemplo de programa abaixo:
/Este programa tem por funo alterar o estado dos 8 pinos do PORTB do PIC
em intervalos de 1 segundo.
void main() {
TRISB = 0;
// configura o portB como sada
PORTB = 0x00;
// coloca zero em todos os pinos do portB
do {
PORTB = 0xFF;
// coloca um em todos os pinos do portB
Delay_ms(1000); // delay de 1 segundo (1000 ms)
PORTB = 0x00;
// Coloca zero em todos os pinos do portB
Delay_ms(1000); // delay de 1 segundo
} while(1);
}
Ao compilarmos o programa acima com o mikroC teremos como resultado o
seguinte cdigo de mquina (descrito somente algumas linhas do cdigo
gerado;

A partir da imagem acima, podemos verificar os valores que sero gravados


na memria de programa aps gravao do programa exemplo acima. Esses
valores so teis para o programador experiente, pois permite visualizar e
acompanhar a execuo por completo da compilao dos arquivos.

Nota: Os cdigos em assembly visualizado na figura


acima foi gerado pelo compilador mikroC aps a compilao de
um programa escrito em C.

voltar para o topo da pgina

Memria de dados - EEPROM


Como estudamos anteriormente, sabemos que as memrias do tipo EEPROM
so muito parecidos com a memria RAM, sua diferena que as distingue
devido ao fato da memria EEPROM no "perder" as informaes salvas
quando a desenergizarmos. Podemos salvar nesta memria dados no
volteis durante o decorrer da execuo de nosso programa.
O PIC18F452 possui internamente 256 byte de memria de dados EEPROM.

O endereo inicial da memria de dados EEPROM 0 e seu


ltimo endereo FFh.
Estudaremos atravs de comandos como escrever e ler dados
nessa memria de programa nas unidades seguintes.
voltar para o topo da pgina

Memria de dados - RAM


Chegamos a um assunto de grande importncia no estudo referente ao nosso
microcontrolador PIC, neste tpico apresentaremos toda a estrutura de
memria de dados RAM. Aprenderemos a trabalhar com ela e tambm onde
esto localizados os botes que ligam/desligam, configuram e controlam os
perifricos internos do PIC, ou seja, os SFR (Registradores de Funes
Especiais).
A memria de dados RAM dividida em dois grupos: os chamados GPR
(Registradores de Propsito Geral) e os SFR ( Registradores de Funes
Especiais).
Os GFR tem a funo de armazenar dados de uso geral que utilizamos e
criamos durante a execuo do nosso programa. Podemos guardar nesse

regio da memria RAM dados volteis de variveis, tabelas, constantes, entre


outras.
Os SFR's a parte principal do microcontrolador, nesta rea da memria
RAM que esto armazenados todo o setup de funcionamento do PIC. Apartir
desses registradores podemos configurar o modo de trabalho dos
timers/counters, USART, conversores analgicos digitais, etc.
O PIC18F452 em estudo possui internamente 1536 bytes de memria de
dados RAM.
O banco de memria RAM da famlia 18F dividido em 16 bancos que contm
256 bytes de memria. Os 6 primeiros bancos so a regio dos GPR's, e o
ltimo banco so dos SFR's. Acompanhe a figura abaixo:

Vamos examinar o mapa de registradores dos SFR's. (endereo


F80h FFFh)

Os SFRs so registradores de funes especiais responsveis


pela configurao dos modos de trabalhos do PIC. Atravs da
configurao desses registradores especiais, podemos tambm
monitorar o status do microcontrolador em determinados
momentos e situaes. Estudaremos a funo desses
registradores quando estivermos trabalhando com projetos, pois
dessa maneira ficar mais claro seu funcionamento e aplicaes.

O Clock

Todo microcontrolador requer um circuito de oscilao pois quem d o sinal


de "partida" e "sincronismo" para qualquer atividade interna da chip. A
freqncia de operao de oscilao um dos agentes que determinam a
velocidade de execuo das instrues do microcontrolador.
O PIC18F452 pode funcionar com diversas fontes de osciladores:

1. LP
2. XT
3. HS
4.
5.
6.
7.
8.

ressonador
HS + PLL
RC
RCIO
EC
ECIO

low-power cristal
cristal ou ressonador
High-Speed cristal (cristal de alta velocidade) ou
High-Speed cristal ou ressonador com PLL habilitada
Resistor / Capacitor externo
Resistor / Capacitor externo com pino de I/O
Clock externo
Clock exteno com pino de I/O

voltar para o topo da pgina

Osciladores: Cristal e Ressonador


Para utilizarmos cristal ou ressonadores em nosso chip, devemos
conect-lo da seguinte maneira:

Figura 01 - clock gerado a partir de um cristal de quartzo

Nota: Quando projetamos um dispositivo, a regra colocar o


oscilador to perto quanto possvel do microcontrolador, de modo
a evitar qualquer interferncia nas linhas que ligam o oscilador ao
microcontrolador.

Note que existe dois capacitores ligados em paralelo com o


cristal. O valor desses capacitores variam de acordo com a
frquencia do cristal utilizado. Abaixo segue uma tabela
apresentando os valores dos capacitores:
Valores
Tipo de
Freqncia tipicos para
oscilador
do cristal o capacitor
C1
C2
LP (cristal de
32kHz
33pF 33pF
baixa
200KHz 15pF 15pF
freqncia)
2222200KHz
68pF 68pF
XT (cristal)
1.0MHz 15pF 15pF
4.0MHz 15pF 15pF
4.0MHz 15pF 15pF
15158.0 MHz
33pF 33pF
HS (cristal de
alta
151520.0MHz
freqncia)
33pF 33pF
151525MHz
33pF 33pF

cristal de quartzo

Ressonador
cermico

Os ressonadores cermicos so comercializados em dois tipos: com dois


terminais e com trs terminais. Os mais utilizados so os ressonadores com
trs terminais pois no precisam de capacitores externos. O ressonador com
dois terminais obedecem a ligao da figura 01, enquanto no de trs o pino
central deve ser aterrado. segue abaixo o esquema de ligao do ressonador
com trs terminais:

Os ressonadores cermicos uma segunda opo. No to


barato quanto um RC mas bem mais estvel e preciso.
Nota: Antes de gravarmos um programa no microcontrolador PIC
devemos "queimar" os fusivel de configurao informando qual o
tipo de oscilador estamos utilizando em nosso hardware.
Nos projetos do nosso curso iremos utilizar cristal de quartzo de 4MHz pois
garantimos maior preciso nas rotinas de tempo nas execues das
instrues.

voltar para o topo da pgina

Circuito de Oscilao RC
Este o tipo de oscilador mais simples que existe e tambm o mais barato,
mas, por outro lado, o menos preciso, variando muito a tenso de trabalho,
temperatura e tolerncias. O circuito RC deve ser ligado conforme a figura
abaixo:

voltar para o topo da pgina

Modo HSPLL
HSPLL na verdade um modo em que podemos multiplicar o valor da
freqncia de entrada do cristal oscilador por 4. ideal para ambientes em que
o dispositivo no pode gerar EMI (interferncia Eletromagntica). Este modo
deve ser habilitado nos "fusveis de configuraes" no momento em que
formos gravar o chip.

Por exemplo:
Caso venhamos conectar ao PIC um cristal de 10 MHz entre os pinos OSC1 e
OSC2 e ativarmos o modo HSPLL no momento em que gravarmos o chip, o
PIC passa a operar a 40 MHz, executando as instrues internas em 10MHz
(10 MIPS - milhes de instrues por segundo), pois a frequncia real de
operao do seu microcontrolador : Fosc / 4.
Para representar os bits de configurao de nosso microcontrolador, iremos
utilizar um software gratuito de gravao de microcontroladores PIC disponvel
na internet, chamado WinPIC800. (www.winpic800.com).
Nota: No programa Winpic800 podemos definir o tipo de oscilador utilizado no
PIC atravs do seguinte setup:

voltar para o topo da pgina

Os bits de configurao (fusveis)


Os microcontroladores PIC possui internamente regies de
memrias no volteis que so resposveis por determinar o
modo de trabalho do chip. So chamados de bits de configurao
ou fusveis. de grande importncia que venhamos entender
o funcionamento desses bits, caso contrrio teremos srios
problemas no funcionamento do nosso projeto.
Os bits de configurao do PIC esto armazenados em uma rea
reservada do PIC.
Mapa dos bits de configurao do PIC18F452
Internamente no microcontrolador, encontramos 8 registradores
de 16bits, divididos em duas partes: Byte alto e Byte Baixo, e so
responsveis pela configurao geral do PIC. Esta regio de

memria no acessivel durante a execuo do programa, mas


somente podemos configura-l no momento da gravao do chip.

Apresentamos a seguir uma tabela com a descrio de todos


os bits de configurao do PIC18F452:

Oscilador
oscilador switch
enable
power up timer
brown out detect
brown out voltage
watchdog timer

watchdog postscaler
ccp2mx
stack overflow enable
low voltage program

RC, EC, LP, XT, HS,


HS-PLL, RC-SOC2
com RA6, EC-OSC2
com RA6
habilitado ou
desabilitado
habilitado ou
desabilitado
habilitado ou
desabilitado
2.5V, 2.7V, 4.5V ou
4.7V
habilitado ou
desabilitado
1:1 , 1:2, 1:4, 1:8,
1:16, 1:32, 1:64, ou
1:128
pino RC1 ou RB3
habilitado ou
desabilitado
habilitado ou
desabilitado

code protect 0x0200 a habilitado ou

0x1FFF

desabilitado

code protect 0X2000 a habilitado ou


0X3FFF
desabilitado
code protect 0X4000 a habilitado ou
0X5FFF
desabilitado
code protect 0X6000 a habilitado ou
0X7FFF
desabilitado
habilitado ou
data ee read protect
desabilitado
habilitado ou
code protect boot
desabilitado
Table write protect
habilitado ou
0x2000 a 0x1FFF
desabilitado
Table write protect
habilitado ou
0x2000 a 0x3FFF
desabilitado
Table write protect
habilitado ou
0x4000 a 0x5FFF
desabilitado
Table write protect
habilitado ou
0x6000 a 0x7FFF
desabilitado
habilitado ou
data ee write protect
desabilitado
table write protect
habilitado ou
boot
desabilitado
habilitado ou
config write protect
desabilitado
Table read protect
habilitado ou
0x0200 a 0x1FFF
desabilitado
Table read protect
habilitado ou
0x2000 a 0x3FFF
desabilitado
Table read protect
habilitado ou
0x4000 a 0x5FFF
desabilitado
Table read protect
habilitado ou
0x6000 a 0x7FFF
desabilitado
Table read protect
habilitado ou
boot
desabilitado

No WinPIC800, programa de gravao de microcontroladores PIC


utilizado no kit PICGenios da Microgenios, podemos visualizar e
configurar os bits de configurao antes de gravarmos o
programa no PIC.

Podemos configurar os bits de configurao de duas maneiras:

Atravs do mikroC, no momento ou no decorrer da


elaborao do projeto
Atravs do programa de gravao do PIC (WinPIC800, ICProg, etc)

A melhor maneira de configurar os bits de configurao no


momento de criao do programa no compilador, pois uma vez
configurado esses bits, no precisaremos reconfigura-los a cada
compilao de nos programa.

Configurando os bits de configurao


do PIC
FOSC (frequncy Oscilator)
Atravs dessa opo podemos configurar o tipo de clock com o
qual o microcontrolador ir operar. As fontes de clock que podem
ser selecionadas so:

Oscilador externo RC, com RA6 configurado como pino de saida


de clock;

Oscilador HS com PLL ativo - multiplica o valor da frequncia de


oscilao por 4;

Oscilador do tipo EC, utilizando o pino RA6 como saida de clock


(Fosc/4);

Oscilador EC Utilizando o pino RA6 como I/O

Oscilador HS, XT, LP

OSCSEN (SYSTEM CLOCK SWITCH BIT)


Atravs desse bit de configurao, podemos selecionar o modo
de acionamento do oscilador do PIC. Caso venhamos a
selecionar este bit, a frequncia de oscilao passa a ser gerada
internamente pelo TIMER1, caso contrrio, o oscilador
selecionado FOSC.
Obs: Caso desejemos utilizar o oscilador interno do PIC, devemos
selecionar este bit de configurao e configurar o TIMER1 para
trabalhar como oscilador para o clock (basta habilitar o
T1OSCSEN do TIMER1), caso no venhamos a programar o
TIMER1 corretamente, automaticamente o bit de configurao do
OSCSEN ser desabilitado.
voltar para o topo da pagina
PWRTEN (SYSTEM CLOCK SWITCH BIT)

A travs desse bit, podemos configurar o modo POWER para o acionamento


do PIC, quando este bit estiver acionado o modo POWER-UP TIMER estar
habilitado. O temporizadore de power-up pode seu utilizado para fazer com
que o chip permanea em reset por aproximadamente 72ms aps o chip ter
sido ligado. E deve ser utilizado para garantir a estabilizao da fonte de
energia no projeto.

voltar para o topo da pagina


BROWN-OUT voltage

O detector de brown-out utilizado para provocar o reset da CPU


no caso de a tenso de alimentao cair abaixo de um
determinado limite. Uma vez que a tenso retorne ao seu valor
nominal, o circuito de reset liberado e o programa reiniciado.
No PIC18F452 podemos selecionar 4 tipos de tenses para o
BROWN-OUT: 2.0V, 2.7V, 4.2V ou 4.5V.
voltar para o topo da pagina
BROWN-OUT detect
Podemos habilitar ou desabilitar o detector de brown-out, basta
selecionar o bit de configurao caso desejemos habilitar o
brown-out.
voltar para o topo da pagina
WDTEN - Watchdog Timer Enable (co de guarda)
O watchdog timer ou co de guarda um sistema interno ao
microcontrolador que evita que o programa pare em um
determinado ponto. Imagine que voc desenvolveu uma aplicao
e que por um erro de software em certo momento o seu programa
pra (entra em loop infinito). Caso o watchdog dog no seja
resetado em tempos em tempos ele ir "estourar", ou seja,
chegar ao final da sua contagem fazendo com que o
microcontrolador resete e reinicie todo o processo.
Para habilitar o Watchdog marque o bit WDTEN. (basta deixar em
ON).
voltar para o topo da pagina
Watchdog Postscale Select Bit
O tempo minimo para estouro do watchdog de 18 ms, porm
podemos estender esse tempo atravs do postscale. Com essa
funo podemos multiplicar o tempo mnimo de 18 ms com os
seguintes multiplicadores do prescaler: 1:1; 1:2, 1:4, 1:8, 1:16,
1:32, 1:64, 1:128.
voltar para o topo da pagina
CCP2 MX
Podemos atravs desse bit definir se queremos multiplexar o
mdulo CCP2 com o pino RC1 (CCP2MX = 0) com o pino RB3
(CCP2MX = 1)
voltar para o topo da pagina

BKBUG (debug)
Atravs desse bit , podemos habilitar o modo DEBUGGER no
PIC. Nesse modo possivel emular um programa no prprio
projeto eletrnico. Emular consiste no processo de junto com o
computador, testar passo a passo o funcionamento do programa
que est rodando no microcontrolador. Se esta opo estiver
ativa, os pinos de gravao RB6 e RB7 deixam de funcionar
como I/O's; caso contrrio, o funcionamento desses pinos fica
normal. Faz necessrios a utilizao de equipamentos de
debugao fornecidos pela Microchip, ou outras empresas para
realizar esta operao.
voltar para o topo da pagina
LVP (Low Voltagem Programming)
Quando o PIC gravado, acionado uma tenso de 12Vcc no
pino MCLR. Se a opo LVP estiver ativa, para gravar o PIC
basta ter nivel lgico 1 no pino RA5. Esta opo ideal para
aplicaes em campo onde dificil encontrar tenses de 12V
disponvel em determinados equipamentos.
voltar para o topo da pagina
STVREN (Stack Overflow Reset Enable Bit)
O PIC18F452 possui internamente 31 endereos de pilha.
Quando habilitamos esse bit STVREN, toda vez que
ultrapassarmos o limete da pilha (ocorrer overflow) o
microcontrolador ser resetado.
voltar para o topo da pagina
rea de Protees contra leitura e escrita

Code Protect 0x0200 a 0x1FFF


Caso este bit esteja habilitado, protege contra leitura a memria
de programa de 0x0200 a 0x1FFF.
Code Protect 0x2000 a 0x3FFF
Caso este bit esteja habilitado, protege contra leitura a memria
de programa de 0x2000 a 0x3FFF.
Code Protect 0x4000 a 0x5FFF

Caso este bit esteja habilitado, protege contra leitura a memria


de programa de 0x4000 a 0x5FFF.
Code Protect 0x6000 a 0x7FFF
Caso este bit esteja habilitado, protege contra leitura a memria
de programa de 0x6000 a 0x7FFF.
Data EE Read Protect
Caso este bit esteja habilitado, protege contra leitura os 256 bytes
da memria EEPROM (memria no voltil).
Code Protect Boot
Caso este bit esteja habilitado, protege contra leitura a regio de
memria Boot (rea da memria de programa) 0x0000 at
0x0FF0.
Table Write Protect 0x0200 a 0x1FFF
Caso este bit esteja habilitado, protege a memria de programa
contra escrtita por tabela no endereo especificado.
Table Write Protect 0x2000 a 0x3FFF
Caso este bit esteja habilitado, protege a memria de programa
contra escrtita por tabela no endereo especificado.
Table Write Protect 0x4000 a 0x5FFF
Caso este bit esteja habilitado, protege a memria de programa
contra escrtita por tabela no endereo especificado.
Table Write Protect 0x6000 a 0x7FFF
Caso este bit esteja habilitado, protege a memria de programa
contra escrtita por tabela no endereo especificado.
Data Write Protect
Caso este bit esteja habilitado, protege contra escrita os 256
bytes da memria EEPROM (memria no voltil).
Table Write Protect Boot
Caso este bit esteja habilitado, protege contra escrtita por tabela a
rea de boot.
Config Write Protect

Caso este bit esteja habilitado, protege contra escrita a rea de


configurao do microcontrolador.
Table Read Protect 0x0200 a 0x1FFF
Caso este bit esteja habilitado, protege a memria de programa
contra leitura por tabela no endereo especificado.
Table Read Protect 0x2000 a 0x3FFF
Caso este bit esteja habilitado, protege a memria de programa
contra leitura por tabela no endereo especificado.
Table Read Protect 0x4000 a 0x5FFF
Caso este bit esteja habilitado, protege a memria de programa
contra leitura por tabela no endereo especificado.
Table Read Protect 0x6000 a 0x7FFF
Caso este bit esteja habilitado, protege a memria de programa
contra leitura por tabela no endereo especificado.

Ciclos de mquina
A contagem de tempo no medida diretamente pela freqncia de oscilao do cristal e
sim atravs do que chamamos de CICLO DE MQUINA.
Internamente no microcontroladores PIC a freqncia do cristal dividida por 4, o que nos
resulta que a freqncia real de trabalho :

freqncia de trabalho real = freqncia oscilador / 4


Concluimos ento que: a cada 1 cliclo de mquina corresponde a 4 pulsos do oscilador.
Para exemplificar vamos supor que temos conectado ao microcontrolador um cristal de
quartzo de 8MHz. Qual a freqncia real de execuo das instrues do nosso
microcontrolador?
muito simples, acompanhe:
Sabemos que a freqncia do cristal utilizado de 4 MHz, e que cada
instruo leva exatamente 1 ciclo de mquina para ser executada; Basta dividir
o valor do cristal por 4 para sabermos o valor real de trabalho do PIC.

freqncia de trabalho real = 8MHz / 4 => 2MHz

Concluimos ento que nosso microcontrolador PIC com cristal de 8MHz esta
trabalhando efetivamente a 2MHz, ou seja , cada instruo de programa leva
0,5 us para ser executada.
Nota: Temos que lembrar que nosso microcontrolador em
estudo pode operar com cristal oscilador de at 40MHz, disso
nos resulta em 10MHz a freqncia mxima de trabalho
permitida por esse chip.
Freqncia de trabalho real = 40MHz / 4 => 10MHz

voltar para o topo da pgina

Reset
Sempre que ligamos ou energizamos nosso circuito microcontrolado
interessante que o PIC seja resetado, para isso necessria a insero de um
circuito eletrnico bem simples, mas capaz de realizar esse procedimento que
costumamos chamar de POWER ON RESET.
Alm disso interessante que exista um boto para que o usurio possa
reiniciar o sistema sempre que for necessrio (reset manual), a seguir
indicamos um exemplo de circuito para o reset.

Os PICs possuem diversos tipos de reset:

POR - Power On Reset - o reset que ocorre quando o chip ligado.


Reset do MCLR durante a operao normal
Reset do MCLR durante o modo SLEEP
Reset do watchdog durante operao normal
Reset do detector de Brown-out (BOR)
Instruo de Reset
Reset por estouro de Pilha - Stack Overflow

voltar para o topo da pgina

Centro de Tecnologia Microgenios - Curso de Microcontroladores PIC Programao em C

Microgenios 1998 - 2007. Todos os direitos reservados. proibido cpia


parcial ou integral desse material sem prvio aviso. Maiores informaes:
suporte@microgenios.com.br