You are on page 1of 62

Danilo Morais Pagano Mestrando em Mecnica Computacional - UNICAMP

Introduo

MICROPROCESSADORES E MICROCONTROLADORES

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.

Introduo

MICROPROCESSADORES E MICROCONTROLADORES

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.

Introduo

Lgica Digital

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

Introduo

TIPOS DE MEMORIAS

Memria ROM Memria RAM Memria EPROM Memria EEPROM ou E2PROM Memria FLASH

Introduo

REGISTRADORES

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.

Introduo

BITs e BYTES

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.

Introduo

NIBBLES e WORDS

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

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

Arquitetura de construo Von Neumann

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.

Introduo

Arquitetura de construo Harvard

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.

Introduo

Arquitetura de construo CISC e RISC

Complex Instruction Set Computer

Reduced Instruction Set Computer

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?

Introduo arquitetura interna e suas configuraes

Conhecendo o PIC

Caractersticas do PIC 16F628A

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

Conhecendo o PIC

Caractersticas do PIC 16F628A

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,

PINAGEM
Arquitetura interna

RETIRANDO OS PERIFRICOS
Arquitetura interna

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

0 0

1 0

1 0

1 1

1 1

0 1

0 1

Conhecendo o PIC

Outras caractersticas: Pilha ou Stack

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.).

Conhecendo o PIC

Outras caractersticas: Watch Dog ( Co de Guarda)

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 travao 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.

Conhecendo o PIC

Outras caractersticas: USART

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.

Conhecendo o PIC

Outras caractersticas: PWM Pulse Wide Modulation

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.

Conhecendo o PIC

Outras caractersticas: Comparadores

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 OpAmp ou AmpOp.

Conhecendo o PIC

Osciladores: O que Clock?

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

Conhecendo o PIC

Osciladores: O que Clock?

Ao usarmos um cristal de 4MHz teremos uma freqncia de 4MHz e o perodo de: T = 1/F = 1/4.000.000 = 250ns ou 250 nano segundos Ou 0,00000025 segundos.

Conhecendo o PIC

Osciladores: O que Ciclo de mquina?

Divide-se o 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 em 1s, desde que no afete o Program Counter

Conhecendo o PIC

Osciladores: tipos aceitos pelo PIC16f628

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.

Conhecendo o PIC

Osciladores: tipos aceitos pelo PIC16f628

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

Conhecendo o PIC

OS REGISTRADORES

Conhecendo o PIC

O REGISTRADOR W

Conhecendo o PIC

O REGISTRADOR W

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.

Conhecento o PIC

Prxima aula iniciaremos com a programao Assembly...

BIBLIOGRAFIA
Conhecento o PIC

Onde pesquisar...

Site da Microchip
www.microchip.com

Livro
Desbravando o PIC, David Jos

Internet

O incio de tudo...

Programando em Assembly

CONFIGURAES INICIAIS: Desenhando o Circuito no Proteus

Fique atento!

Programando em Assembly

CONFIGURAES INICIAIS: A lgica do nosso primeiro programa

Programando em Assembly

CONFIGURAES INICIAIS: Incluso de cabealhos

LIST p=16f628a #INCLUDE "P16F628.INC"

Programando em Assembly

CONFIGURAES INICIAIS: PALAVRA DE CONFIGURAO

Exemplo: __CONFIG _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _PWRTE_ON & _LVP_OFF & _MCLRE_OFF

Programando em Assembly

CONFIGURAES INICIAIS: DEFINIES

#DEFINE BANK0 BCF STATUS, RP0 #DEFINE BANK1 BSF STATUS, RP0

#DEFINE BOTAO PORTB, 4


#DEFINE LED PORTB, 0

Programando em Assembly

CONFIGURAES INICIAIS: VETORES DE INICIALIZAO

ORG 0X00 ; inicio do programa GOTO INICIO ; pula para o label INICIO ORG 0X04 ; inicio da interrupo RETFIE ; retorna da interrupo

Programando em Assembly

CONFIGURAES INICIAIS: INICIALIZAO DOS REGISTRADORES

INICIO CLRF PORTA CLRF PORTB BANK1 MOVLW B00000000' MOVWF TRISA MOVLW B'00110000' MOVWF TRISB

Programando em Assembly

CONFIGURAES INICIAIS: INICIALIZAO DOS REGISTRADORES

MOVLW B'10000011' MOVWF OPTION_REG MOVLW B'00000000' MOVWF INTCON BANK0 MOVLW B'00000111' MOVWF CMCON CLRF PORTA CLRF PORTB

Programando em Assembly

AGORA SIM TEMOS O PROGRAMA EM ASSEMBLY

MAIN BTFSS GOTO GOTO BOTAO_LIB BCF GOTO BOTAO_PRES BSF GOTO END

BOTAO BOTAO_LIB BOTAO_PRES


LED MAIN LED MAIN

Programando em Assembly

TEMOS O PROGRAMA, ENTO VAMOS EXECUT-LO

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.

Agora sim pra valer... Cuidado ao errar, pois pode ser que voc erre somente uma vez, pois o PIC frgil...

Gravando no PIC

MAIS UM PASSO A PASSO

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.

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

CONFIGURAES INICIAIS: Incluso de cabealhos e utilidades

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

Programando em C

Programa por completo

Void main (){ SET_TRIS_A(255); SET_TRIS_B(0); while(true) { output_bit( PIN_B0, input(PIN_A0)); } }

Programando em C

CONFIGURAES INICIAIS: Incluso de cabealhos e utilidades

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

Programando em C

O PROGRAMA POR COMPLETO

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); } }

Programando em C

Outro exemplo

#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... } }

Programando em C

E agora?

Com

o cdigo compilado, voc pode carreg-lo para a memria do microcontrolodor tanto do Proteus quanto o real.

Aumentando o nvel ainda mais...

Temos tempo ainda?

SIM

NO

Programando em Ladder

CONFIGURAES INICIAIS

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

Programando em Ladder

PROGAMANDO

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).

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...

You might also like