Вы находитесь на странице: 1из 60

Danilo Morais Pagano

Mestrando em Mecnica Computacional - UNICAMP


Introduo
Microprocessadores: 4 bits, 8 bits, 16...
um chip:
com alta integrao de componentes
RAM externa
memria EEPROM externa
HD para armazenamento de programas
outros diversos perifricos.

Ou seja, voc usa um microprocessador
dentro de um microcomputador e ele, em
conjunto com um monte de outros CIs,
trabalham direitinho.
MICROPROCESSADORES E
MICROCONTROLADORES

Introduo
Microcontrolador um
componente completo por si
s.
Basta um programa e ele
executa uma funo
especfica.
Dentro do microcontrolador
temos memria RAM,
FLASH, EEPROM ou
E2PROM.
MICROPROCESSADORES E
MICROCONTROLADORES

Introduo
Vamos simplificar resumindo a
lgica em dois nmeros ou como
falamos muito, em dois dgitos: O
0 (zero) e o 1 (um).
Quando falamos em 0 (zero),
estamos nos referindo a zero Volt
DC e quando falamos em 1 (um)
estamos falando em + Vcc.
No caso dos microcontroladores
PIC, geralmente, estaremos
falando que:

0 = GND e 1 = 5Vcc
Lgica Digital

Introduo
Memria ROM
Memria RAM
Memria EPROM
Memria EEPROM ou
E2PROM
Memria FLASH
TIPOS DE MEMORIAS

Introduo
um endereo na memria
Formados por 8 nmeros, ou
melhor, 8 bits.
Estes bits podem ser 0 (zero)
ou 1 (um).
Muitas vezes chamamos
estes bits de Flags.
Flag ento um bit dentro de
um registrador.
REGISTRADORES
Introduo
Imaginemos 8 posies:
Cada posio pode ter um valor
de 0 (zero) ou 1 (um). Esta
posio com um valor um bit, ou
melhor, bit o valor que h dentro
da posio.

Quando juntamos 8 bits, como no
exemplo a seguir:

00110011 Chamamos isto de
byte. Um byte ento um conjunto
de 8 bits.
BITs e BYTES

Introduo
s vezes os bits podem ser agrupados em
nmeros de 4, veja:
0101 Damos a isto o nome de nibble.
Outras vezes os bits podem se agrupar com
nmeros maiores que 8, veja:
001100110011 Chamamos isto de Word:
16 bits ou 2 bytes
NIBBLES e WORDS

Introduo
Curiosidade importante

Nos PICS existem
registradores especiais
Podemos atravs dos bits
ou flags destes registradores
ajustar o funcionamento do PIC
ou saber como ele est operando,
para isto basta escrever ou ler os
flags destes registradores.

Introduo
Os primeiros microcontroladores
usavam uma estrutura interna que
tinha apenas um caminho para
trafegar os dados e endereos.
Lembre-se, dados so informaes e
endereos so os locais onde sero
armazenados os dados.
O nome mais correto para este
caminho Bus. Com apenas um
bus tnhamos que trafegar hora
endereos, hora dados.
Esta arquitetura de construo
recebe o nome de Von Neumann.
Arquitetura de construo Von Neumann

Introduo

Hoje em dia, os PICs
particularmente, trabalham
com dois bus. Um para dados
e outro para endereos.
Este tipo de arquitetura recebe
o nome de Harvard.
Os PICs possuem ainda um
outro recurso, chamado de
Pipeline.
Arquitetura de construo Harvard

Introduo
CISC : possua mais de 100
instrues, o que dificultava a
memorizao do programador.
RISC: Este set tem entre 33
a 35 instrues dependendo
do PIC. Isto ajuda na
memorizao, mas, exige mais
do programador. como falar
fluentemente um outro idioma,
conhecendo poucas palavras,
all right?
Arquitetura de construo CISC e RISC

Complex
Instruction
Set
Computer


Reduced
Instruction
Set
Computer
Introduo arquitetura interna e suas configuraes
Conhecendo o PIC
Fabricado pela Microchip
(www.microchip.com)
Possui 18 pinos
Possui 35 instrues
Clock at 20MHz
Memoria de programa tipo
Flash de 2k words
224 bytes de memoria RAM
de dados
Caractersticas do PIC 16F628A

Conhecendo o PIC
128 bytes de memoria
EEPROM para dados
Instrues de 14 bits com
200ns de execuo
Dados de 8 bits
15 registradores especiais
16 pinos de entrada/saida
(I/O)
ICPS, timer interno,
watchdog, CPP, USART,
etc...
Caractersticas do PIC 16F628A

Arquitetura interna
PINAGEM

Arquitetura interna
RETIRANDO OS PERIFRICOS

Conhecendo o PIC
PINAGEM

Conhecendo o PIC

PINAGEM: Funo dos pinos

Conhecendo o PIC
PINAGEM: Funo dos pinos

Conhecendo o PIC
Ports de Entrada e Sada

Conhecendo o PIC
Ports de Entrada e Sada

0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 1
Conhecendo o PIC
Com 8 nveis (imagine que
voc quer guardar 8 caixas
iguais uma sobre a outra, cada
caixa contm algumas coisas.
Pois bem, cada caixa um
nvel). H de se ter cuidado
para no derrubar esta pilha
ou como se diz em
programao, estourar a pilha
(vai que dentro de uma pilha
voc colocou dinamite.).
Outras caractersticas: Pilha ou Stack

Conhecendo o PIC
O Watch dog um contador
independente de tudo dentro do PIC,
que reseta o mesmo, aps um certo
perodo.
Para que serve isto?
Digamos que voc fez um projeto com
um PIC para controlar um elevador, de
repente um pico de tenso o PIC trava-
o fazendo com que o elevador pare.
Depois de um curto perodo o Watch
dog reseta o PIC, o programa volta a
funcionar e o elevador volta a
funcionar tambm.
H de saber como se travar bem este co, mas isto , literalmente,
outro captulo...
Outras caractersticas:
Watch Dog ( Co de Guarda)

Conhecendo o PIC
Uma USART serial, mas o que isto?

um recurso que permitir que voc
converse com outros equipamentos,
como uma porta serial de um
microcomputador.

USART significa Universal
Synchronous Asynchrous Receiver
transmiter ou Transmissor Universal
Sncrono ou Assncrono.
Outras caractersticas:
USART

Conhecendo o PIC
S para lembrar PWM quer dizer
modulao por largura de pulso, com
este recurso voc conseguir variar o
brilho de uma lmpada, a velocidade
de um motor DC ou at fazer uma
fonte chaveada.
Outras caractersticas:
PWM Pulse Wide Modulation

Conhecendo o PIC
2 comparadores analgicos com
referncia interna, programvel, de
tenso. Quem gosta de amplificadores
operacionais prepare-se para se
divertir, e quem no os conhece vamos
ler um livro sobre AOPs.
Outras caractersticas:
Comparadores

Conhecendo o PIC
um sinal de onda quadrada que serve para fazer um
circuito lgico funcionar ou para sincronizar diversos
dispositivos ou circuitos.
O nvel alto do clock =+Vcc
O nvel baixo = zero volt.
O perodo alto (+Vcc) chamado de Ton e o perodo baixo
de Toff.
Ton = Toff. melhor que sejam iguais

T = Ton + ToFF ( a soma resulta no periodo)

T = 1
F
Osciladores: O que Clock?

Conhecendo o PIC
Ao usarmos um cristal de 4MHz teremos uma freqncia de
4MHz e o perodo de:

T = 1 = 1 = 250ns ou 250 nano segundos
F 4.000,000

Ou 0,000. 000.25 segundos.
Osciladores: O que Clock?

Conhecendo
o PIC
Divide-se clock por quatro, formando as fases Q1,
Q2, Q3 e Q4
PIPELINE: Busca a informao em um ciclo e a
executa no prximo
Para um clock de 4MHz, cada instruo executada
1s, desde que no afete o Program Counter

Osciladores: O que Ciclo de mquina?

Conhecendo o PIC
RC_CLKOUT = oscilador RC externo que deve
estar ligado no pino 16. No pino 15 teremos este
sinal dividido por 4.
RC_I/O = Oscilador externo mais que usa o pino 15
como I/O.
Osciladores: tipos aceitos pelo PIC16f628

Conhecendo o PIC
XT = cristal de 200kHz at 4MHz
HS = cristal acima de 4MHz
LS = cristal abaixo de 200kHz
INTOSC_I/O = oscilador interno com o pino 15
operando como I/O.
INTOSC_CLKOUT = o pino 15 teremos este sinal
dividido por 4

Osciladores: tipos aceitos pelo PIC16f628

Conhecendo o PIC
OS REGISTRADORES


Conhecendo o PIC
O REGISTRADOR W


Conhecendo o PIC
O nome registrador W vem de Registrador Work, que
traduzindo, quer dizer trabalho.
atravs dele que carregamos os outros registradores
com valores diversos e corretos para um perfeito
funcionamento de nosso projeto.
Caso desejamos colocar um determinado valor em um
registrador de uso geral (GPR), primeiro temos que
carregar o registrador W e depois passar para o outro
registrador.
O REGISTRADOR W

O incio de tudo...
Programando em
Assembly
Fique atento!
CONFIGURAES INICIAIS:
Desenhando o Circuito no Proteus
Programando em
Assembly
CONFIGURAES INICIAIS:
A lgica do nosso primeiro programa
Programando em
Assembly
LIST p=16f628a
#INCLUDE "P16F628.INC"
CONFIGURAES INICIAIS:
Incluso de cabealhos
Programando em
Assembly

Abrir arquivo do word.

Exemplo:
__CONFIG _CP_OFF &
_WDT_OFF &
_INTRC_OSC_NOCLKOUT
& _PWRTE_ON &
_LVP_OFF & _MCLRE_OFF
CONFIGURAES INICIAIS:
PALAVRA DE CONFIGURAO
Programando em
Assembly
#DEFINE BANK0 BCF STATUS, RP0

#DEFINE BANK1 BSF STATUS, RP0

#DEFINE BOTAO PORTB, 4

#DEFINE LED PORTB, 0
CONFIGURAES INICIAIS:
DEFINIES
Programando em
Assembly
ORG 0X00 ; inicio do programa
GOTO INICIO ; pula para o label INICIO

ORG 0X04 ; inicio da interrupo
RETFIE ; retorna da interrupo
CONFIGURAES INICIAIS:
VETORES DE INICIALIZAO
Programando em
Assembly
INICIO
CLRF PORTA
CLRF PORTB
BANK1
MOVLW B00000000'
MOVWF TRISA
MOVLW B'00110000'
MOVWF TRISB
CONFIGURAES INICIAIS:
INICIALIZAO DOS REGISTRADORES
Programando em
Assembly
MOVLW B'10000011'
MOVWF OPTION_REG
MOVLW B'00000000'
MOVWF INTCON
BANK0
MOVLW B'00000111'
MOVWF CMCON
CLRF PORTA
CLRF PORTB
CONFIGURAES INICIAIS:
INICIALIZAO DOS REGISTRADORES
Programando em
Assembly
MAIN
BTFSS BOTAO
GOTO BOTAO_LIB
GOTO BOTAO_PRES
BOTAO_LIB
BCF LED
GOTO MAIN
BOTAO_PRES
BSF LED
GOTO MAIN
END
AGORA SIM TEMOS O PROGRAMA EM
ASSEMBLY
Programando em
Assembly
1 passo: Abra o proteus Isis
2 passo: Monte o circuito (fique atento!)
3 passo: Adicione um source.
4 passo: Edite o source.asm que voc criou
com o cdigo apresentado
5 passo: Compile o programa pelo comando
BUILD
6 passo: Carregue o programa para a
memria do microcontrolador
7 passo: Execute o programa.
TEMOS O PROGRAMA, ENTO VAMOS
EXECUT-LO
Agora sim pra valer... Cuidado ao errar, pois pode ser que voc
erre somente uma vez, pois o PIC frgil...
Gravando no PIC
1 passo: Abra o IC-PROG
2 passo: Mude o idioma para portugues.
3 passo: Ative o driver para windows XP
4 passo: Utilize a API do Windows
5 passo: Selecione o PIC
6 passo: Carregue o programa em HEX
para a memria do IC-PROG
7 passo: Configure os Fuses, caso
necessrio
8 passo: Apague a memoria do PIC e faa a
gravao do novo programa.
MAIS UM PASSO A PASSO
Agora chega de baixaria... Somos de alto nvel...
Sero apresentados 3 programas:

Liga simples

Pisca Pisca

Sequencial de 4 LEDs

Temos tempo ainda?
SIM NO
Programando em C

#include "16f628a.h
#fuses INTRC_IO, NOMCLR,
NOWDT


CONFIGURAES INICIAIS:
Incluso de cabealhos e utilidades
Programando em C
Void main (){
SET_TRIS_A(255);
SET_TRIS_B(0);
while(true)
{
output_bit( PIN_B0, input(PIN_A0));
}
}
Programa por completo
Programando em C

#include "16f628a.h"
#use delay(clock=4000000)
#fuses INTRC_IO, NOMCLR,
NOWDT


CONFIGURAES INICIAIS:
Incluso de cabealhos e utilidades
Programando em C
void main() {
byte i=1;
SET_TRIS_A(255);
SET_TRIS_B(0);
while(true){
OUTPUT_LOW(PIN_B0);
delay_ms(1000);
OUTPUT_HIGH(PIN_B0);
delay_ms(1000); }
}


O PROGRAMA POR COMPLETO
Programando em C
#include "16f628a.h"
#fuses INTRC_IO, NOMCLR, NOWDT
void main()
{
static boolean led=0;
SET_TRIS_A(255);
SET_TRIS_B(0);
OUTPUT_B(0);
while(true)
{
if(input(PIN_A0))
{
output_bit(PIN_B0, led); //Quando pressiona A0, manda o bit da varivel led para o
B0
led=!led; //inverte o bit da varivel led
while(input(PIN_A0)) //Este lao deixa o microcontrolador sem fazer nada enquanto
{// o boto A0 ainda estiver pressionado, s voltando a rodar o programa quando
soltar
}// o boto A0. Isto evita totalmente que o programa pense que o boto foi
}// pressionado sem querer...
}
}


Outro exemplo
Programando em C
Com o cdigo compilado,
voc pode carreg-lo para
a memria do
microcontrolodor tanto do
Proteus quanto o real.

E agora?
Aumentando o nvel ainda mais...
Temos tempo ainda?
SIM NO
Programando em
Ladder

Abra o programa Ldmicro
Escolha no menu
configuraes o modelo do
microcontrolador



CONFIGURAES INICIAIS
Programando em
Ladder

Insira um contato em srie com uma sada.
Xbotao YLamp
|----] [---------------------------( )----|

D um nome ao contato e um nome sada.
Determine um pino (bit de um port) para
corresponder quela instruo
Compile e carregue para a memria do uC
(Proteus ou real).



PROGAMANDO
Onde pesquisar...
Site da Microchip www.microchip.com
Livros:
Desbravando o PIC (Davi Jos)
Microcontroladores PIC: Tcnicas
avanadas ( Fbio Pereira)
PIC: Programao em C (Fbio
Pereira)
Buscar no google...
Esta foi a ponta do Iceberg...
Agora cabe a cada um buscar/aprofundar
mais no assunto...





Danilo Pagano
Departamento de Mecanica Computacional
Faculdade de Engenharia Mecanica
Universidade Estadual de Campinas - UNICAMP

Вам также может понравиться