Introdu o ao PIC 2017 1 [Modo de...

52
Microcontroladores Microcontroladores Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage: www.joinville.ifsc.edu.br/~nivaldo Email: [email protected] - O aluno deverá ter média superior a 6,0, e frequência de no mínimo 75% das aulas programadas, para aprovação. aulas programadas, para aprovação. - As avaliações serão por meio de provas e por um projeto a ser entregue no final da disciplina; - Serão feitas duas avaliações para se obter os conceitos NP1 e NP2; - Avaliação de um projeto em equipe.

Transcript of Introdu o ao PIC 2017 1 [Modo de...

MicrocontroladoresMicrocontroladoresProf. Nivaldo T. Schiefler Jr. M.Eng

Homepage: www.joinville.ifsc.edu.br/~nivaldo

Email: [email protected]

- O aluno deverá ter média superior a 6,0, e frequência de no mínimo 75% das aulas programadas, para aprovação.aulas programadas, para aprovação.

- As avaliações serão por meio de provas e por um projeto a ser entregue no final da disciplina;

- Serão feitas duas avaliações para se obter os conceitos NP1 e NP2;

- Avaliação de um projeto em equipe.

MicrocontroladoresMicrocontroladoresProf. Nivaldo T. Schiefler Jr. M.Eng

Homepage: www.joinville.ifsc.edu.br/~nivaldo

Email: [email protected]

- A avaliação do projeto será dividida nas seguintes partes:

�Desenvolvimento do projeto;�Apresentação final do projeto.�No desenvolvimento do projeto será considerado e avaliado desde o protótipo e até a confecção do circuito final.�A nota do projeto considerando os itens acima será NP.

A média final será + +=

1 23

NP NP NPMF

MicrocontroladoresMicrocontroladoresProf. Nivaldo T. Schiefler Jr. M.Eng

Homepage: www.joinville.ifsc.edu.br/~nivaldo

Email: [email protected]

David José de Souza, Desbravando o PIC - Ampliado e Atualizado para PIC16F628A. Erica.16F628A. Erica.

David José de Souza e Nicolás César Lavinia, Conectando o PIC - RecursosAvançados. Erica

Fábio Pereira, Microcontroladores PIC - Técnicas Avançadas. Erica.Fábio Pereira, Microcontroladores PIC – Programação em C. Erica.Wagner da Silva Zanco, Microcontroladores PIC - Técnicas de Software e

Hardware para Projetos de Circuitos Eletrônicos. Erica.

MicrocontroladoresMicrocontroladores

MicrocontroladoresMicrocontroladoresPor que usar ????

Onde usar ????

Custo ????

Tipo de programação ????

Qual tipo de microcontrolador usar ????

Tem material de consulta ????

MicrocontroladoresMicrocontroladoresExemplo

Imagine� em um sistema de controle de acesso de pessoas a uma área

restrita. Para entrar no local a pessoa terá que digitar um senha.

Se for usado um computador como seria o sistema ????

Quais os problemas que poderiam acontecer ????

MicrocontroladoresMicrocontroladores

Um microcontrolador difere de um microprocessador em vários aspectos.

� Para que um microprocessador possa ser usado, outros componentesdevem ser adicionados, tais como memória, AD, componentes para

Microcontroladores X Microprocessadores

devem ser adicionados, tais como memória, AD, componentes parareceber e enviar dados, etc.

� Em resumo, isso significa que o microprocessador é o verdadeirocoração do computador gerenciando todos os periféricos. Por outro lado,o microcontrolador foi projetado para ter tudo num só.

� Nos microcontroladores, nenhum outro componente externo énecessário, porque os principais periféricos necessários já estão contidosnele. Assim, nós poupamos tempo e espaço na construção dosdispositivos.

MicrocontroladoresMicrocontroladoresIntrodução:Um microcontrolador (µC) é um componente eletrônico quepossui integrado na mesma pastilha um microprocessadormais uma série de periféricos que são úteis para o controlede um processo.

� Memória de programa� Memória de programa� Memória de dados� Portas de entrada e saída� Timers

� Conversor AD� etc...

Desta forma, conectando-se o mínimo de hardware aodispositivo obtém-se o sistema microprocessado desejado.

MicrocontroladoresMicrocontroladores

Arquitetura Harvard x Von Neumann

Os microcontroladores existentes no mercado usam em sua maioria o tipo de arquitetura de Von Neumann e os microcontroladores da microchip que será estudado, usam a arquitetura de Harvard.

MicrocontroladoresMicrocontroladoresArquitetura Harvard

Na arquitetura de Harvard, a memória de dados está separada damemória de programa. Assim, é possível uma maior fluência de dadosatravés da unidade central de processamento e claro, uma maiorvelocidade de funcionamento do dispositivo. São designados por"microcontroladores RISC". RISC provém de Computador com umConjunto Reduzido de Instruções (Reduced Instruction Set Computer)

MicrocontroladoresMicrocontroladores

Arquitetura Von Neumann

Na arquitetura de Von Neumann, há um único barramento onde osdados e endereços são usados. Os microcontroladores com umaarquitetura von-Neumann são designados por 'microcontroladoresCISC'. O nome CISC deriva de Computador com um ConjuntoComplexo de Instruções (Complex Instruction Set Computer)

Diagrama interno

MicrocontroladoresMicrocontroladores

MicrocontroladoresMicrocontroladoresUnidade de Memória

A memória é a parte domicrocontrolador cuja função éguardar dados.guardar dados.

Para um determinado endereço,há um conteúdo desse endereço.

MicrocontroladoresMicrocontroladoresUnidade Central de Processamento CPU

Bloco para executar operaçõesaritmética e lógica.

Desta maneira é possívelmultiplicar, dividir, subtrair e mover oseus conteúdos de um local deseus conteúdos de um local dememória para outro.

Os locais de memória da CPUchamam-se registros. Estes são,portanto, locais de memória cujopapel é ajudar a executar váriasoperações matemáticas ouquaisquer outras operações comdados, quaisquer que sejam oslocais em que estes se encontrem.

MicrocontroladoresMicrocontroladoresBarramento Bus

O barramento fisicamentefalando corresponde a umgrupo de 8, 16 ou mais fios.

Existem dois tipos deExistem dois tipos debarramento:

� Barramento de dados

�Barramento de endereço.

O número de linhas do barramento de dados depende da quantidade dememória que se deseja endereçar e o número de linhas do barramento deendereço depende da largura da palavra de dados.

MicrocontroladoresMicrocontroladoresUnidade de entrada/saída

As entradas e saídas sãochamadas de portas I/O, quepodem ser configuradas comoentrada e saídas.

I significa input ou seja entrada

O significa output ou seja saída

MicrocontroladoresMicrocontroladoresPorta de comunicação serial

MicrocontroladoresMicrocontroladoresUnidade de temporização

Bloco de temporização darinformação acerca da hora,duração, protocolo, etc.A unidade básica do temporizadoré um contador, que é narealidade um registro cujorealidade um registro cujoconteúdo aumenta de umaunidade num intervalo de tempofixo.Desta forma o seu valor duranteos instantes de tempo T1 e T2 sesabe a quantidade de tempodecorrida.Esta parte do microcontrolador,requer um domínio muito grande

MicrocontroladoresMicrocontroladoresWatchdog cão de guarda

Este bloco de um contadorcontinuo por um clock interno eque o programa põe a zero sempreque é executado corretamente.

No caso de o programa travar, oNo caso de o programa travar, ozero não vai será escrito e ocontador, por si só, se encarregarde fazer o reset domicrocontrolador, quando ocontador alcançar o seu valormáximo.

Isto vai fazer com que o programacorra de novo e desta vezcorretamente.

Não está acessível ao programador

MicrocontroladoresMicrocontroladoresConversor analógico - digital

Como os sinais dos periféricos sãosubstancialmente diferentes daquelesque o microcontrolador pode entender(zero e um), eles devem ser convertidosnum formato que possa sercompreendido pelo microcontrolador.

Esta tarefa é executada por intermédiode um bloco destinado à conversãoanalógica-digital (A/D). Este bloco vaiser responsável pela conversão de umainformação de valor analógico para umnúmero binário e pelo seu trajetoatravés do bloco da CPU, de modo aque este o possa processar de imediato.

MicrocontroladoresMicrocontroladoresDiagrama interno de um microcontrolador

MicrocontroladoresMicrocontroladoresMicrocontrolador PIC16F84

O PIC 16F84 pertence a uma classe de microcontroladores de 8 bits, com uma arquitetura RISC.

O PIC é um circuito integrado produzidopela Microchip Technology Inc.

O PIC esta disponível em uma amplagama de modelos para melhor adaptar-seas exigências de projetos específicos,diferenciando-se pelo numero de linha deI/O e pelo conteúdo do dispositivo.

MicrocontroladoresMicrocontroladoresCaracterísticas : 16F84

• 18 pinos;

• 13 pinos de I/O configuráveis;

• 1 K de memória de programa;

• 64 bytes de EEPROM para dados;

• 35 instruções;

• 4 interrupções • 4 interrupções

�Timer de 8 bits (TMR0)

�Externa

�Mudança de estado

�Finalização da EEPROM

• Stack com 8 níveis;

• Interrupções externas disponíveis;

• Memória de programa protegida contra cópias ....

MicrocontroladoresMicrocontroladoresDiagrama de blocos do microcontrolador PIC16F84

EEPROM – (Electrical ErasableProgrammable Read Only Memory)memória somente de leituraprogramável e apagável eletricamente.

Memória de programa

programável e apagável eletricamente.Esta é a memória de programa.

Capacidade de memorização é de 1024locações e que poderão contersomente um opcode de 14 bit.

É onde se coloca o programa.

MicrocontroladoresMicrocontroladoresDiagrama de blocos do microcontrolador PIC16F84

Mapa de Memória de programa

Tipo : 14 bits

Tamanho : 1024 palavras

1K x 14

Vetor de reset: 000h

Vetor de interrupção: 004h

MicrocontroladoresMicrocontroladoresDiagrama de blocos do microcontrolador PIC16F84

O REGISTER FILE é uma parte dalocação de memória RAMdenominada REGISTRO. Pode-seescrever, ler, ou modificartranqüilamente qualquer endereço doREGISTER FILE no programa aqualquer momento em que for

Memória de dados

qualquer momento em que fornecessário. Tamanho de 68 x 8.

EEPROM Memória de dados dosistema é uma RAM, ou seja a outraparte que juntamente com oREGISTER FILE completa umaRAM. É utilizada para guardar todasas variáveis e registradores utilizadospelo programa. É uma memória de64 x 8 bits.

MicrocontroladoresMicrocontroladoresDiagrama de blocos do microcontrolador PIC16F84

A memória EEPROM consiste em 64 posições para palavras deoito bits e cujos conteúdos não se perdem durante uma falha naalimentação.

A memória EEPROM não faz parte diretamente do espaço deA memória EEPROM não faz parte diretamente do espaço dememória mas é acessada indiretamente através dos registrosEEADR e EEDATA.

Como a memória EEPROM serve usualmente para guardarparâmetros importantes (por exemplo, de uma dada temperaturaem reguladores de temperatura), existe um procedimento estritopara escrever na EEPROM que tem que ser seguido de modo aevitar uma escrita acidental. Desta forma é possível gravar dadosna EEPROM durante o processo.

MicrocontroladoresMicrocontroladoresDiagrama de blocos do microcontrolador PIC16F84

Memória de Dados

Register FileTipo : 8 bits

Dividido em:

- register file (registradores especiais)

- região de dados de uso geral.

Memória

de dados

Tipo : 8 bits

Tamanho : 68 bytes

Início: 0Ch ou 8Ch

Fim: 4Fh ou CFh

Dividida em 2 bancos de memórias

Os endereços 50h a 7Fh eD0h a FFh são locais nãoimplementados, se foremlidos retornam valor “zero”

MicrocontroladoresMicrocontroladoresDiagrama de blocos do microcontrolador PIC16F84

Memória de Dados

MicrocontroladoresMicrocontroladoresDiagrama de blocos do microcontrolador PIC16F84

A ALU (Arithmetic and Logic Unit)

unidade aritmética e lógica) contémtodos os circuitos destinados adesenvolver as funções de calculo emanipulação de dados durante aexecução de um programa.

A ALU do PIC16F84 esta preparada para operar com 8 bits, até 255.

Registro W (Work) acumulador.Este registro consiste de umalocação de memória destinada aconter um só valor de 8 bits.

MicrocontroladoresMicrocontroladoresDiagrama de blocos do microcontrolador PIC16F84

PC – (Program Counter) contador deprograma. É o registrador especial queguarda o endereço da instrução namemória de programa, que seráexecutada.No reset o PC será sempre zerado,determinando o início da execução noendereço 0000h.endereço 0000h.

Stack (cascata) de 8 níveis usada nasinstruções de chamada de subrotinas(call). Esta subrotina desvia o programapara um local especificado e executaráa mesma, e só retornara a execução dainstrução imediatamente após achamada call, o valor será armazenadoem uma área particular da memóriadenominada Stack.

MicrocontroladoresMicrocontroladoresDiagrama de blocos do microcontrolador PIC16F84

O PIC16F84 dispões de um total de13 linhas de I/O digitaisorganizadas em duas portasdenominadas de PORTA A ePORTA B.

A PORTA A dispõe de 5 linhasA PORTA A dispõe de 5 linhasconfiguráveis tanto em entradacomo em saída identificadas pelassiglas RA0, RA1, RA2, RA3 e RA4.

A PORTA B dispõe de 8 linhastambém configuráveis seja ementrada ou em saída identificadaspelas siglas RB0, RB1, RB2, RB3,RB4, RB5, RB6 e RB7.

MicrocontroladoresMicrocontroladoresDiagrama de blocos do microcontrolador PIC16F84

O registro TMR0 é um contador, ouseja um registro particular, na qual,seu conteúdo é incrementado comcadencia regular e programadadiretamente pelo hardware do PIC.

Na pratica, a diferença de outroregistro, é que o TMR0 não mantéminalterado o valor que émemorizado, mas o incrementacontinuamenteO registrador irá contar até 255,quando irá recomeçar a contagemno valor zero, se não for programadooutro valor novamente

MicrocontroladoresMicrocontroladoresDiagrama de blocos geral do microcontrolador PIC16F84

MicrocontroladoresMicrocontroladoresCiclos de máquina

Clock interno é dividido por 4. Portanto, para um clock externo de 4MHz,temos um clock interno de 1MHz, logo um ciclo de maquina de 1us. Adivisão é feita pelas fases Q1, Q2, Q3 e Q4.

O contador de programa é incrementado automaticamente na fase Q1do ciclo de maquina e a instrução seguinte é buscada da memória deprograma e armazenada no registrador de instruções no ciclo Q4. ela édecodificada e executada no novo ciclo Q1 a Q4.

MicrocontroladoresMicrocontroladoresPipeline

Quando uma instrução está sendo executada em um ciclo demaquina, e uma outra instrução é buscada no mesmo ciclo demaquina e executa no próximo ciclo a chamamos de Pipeline. Destamaneira as instruções são executadas mais rapidamente e em maiorquantidade. Pipeline é implementado na arquitetura Harvard

MicrocontroladoresMicrocontroladoresPipeline

OBS: nem todas as instruções podem ser realizadas usando apipeline. As instruções de saltos no contador de programa,levam o contador de programa a ser zerado, pois estasinstruções levam 2 ciclos de maquinas.

MicrocontroladoresMicrocontroladoresCaracterísticas : 16F877A

• 40 pinos;

• 33 pinos de I/O configuráveis;

• 8 K de memória de programa;

• 256 bytes de EEPROM para dados;

• 368 bytes de Ram;

• 35 instruções;• 35 instruções;

• interrupções;

• Serial;

• 8 Canais analógicos de 10 bit;

• comparadores;

• Stack com 8 níveis;

• Interrupções externas disponíveis;

• Memória de programa protegida contra cópias ....

MicrocontroladoresMicrocontroladores• 40 pinos;

• 33 pinos de I/O configuráveis;

• 8 K de memória de programa;

• 256 bytes de EEPROM para dados;

• 368 bytes de Ram;

• 35 instruções;

Comparativo : 16F84 X 16F877A

• 18 pinos;

• 13 pinos de I/O configuráveis;

• 1 K de memória de programa;

• 64 bytes de EEPROM para dados;

• 35 instruções;

• 4 interrupções • 35 instruções;

• interrupções;

• Serial;

• 8 Canais analógicos de 10 bit;

• comparadores;

• Stack com 8 níveis;

• Interrupções externas disponíveis;

• Memória de programa protegida contra cópias ....

• 4 interrupções

�Timer de 8 bits (TMR0)

�Externa

�Mudança de estado

�Finalização da EEPROM

• Stack com 8 níveis;

• Interrupções externas disponíveis;

• Memória de programa protegida contra cópias ....

MicrocontroladoresMicrocontroladoresPinagem do 16F877

MicrocontroladoresMicrocontroladoresPinagem do 16F877

MicrocontroladoresMicrocontroladores16F877

RD0 a

RD7

RC0 a

RC7

Memória de

Programa

EEPROM

8k x 14 STACK

PCRegistros

Dec.Instrução TIMER 1 (16 bits)

USART

PORTAS DE E/S

BA C D

RB0 a

RB7

RA0 a

RA5

TIMER 0

SSP

E

RE0 a

RE3

P

S

P

OSC2 / CLKOUT

OSC1 / CLKIN MCLRVdd

Vss

W

Especiais e

memória de

dados RAM

368 x 8

ALU

Timing

Memória de

Dados

EEPROM

256 x 8

Watchdog

Power on reset

Start-up timer

Power-up timer

Unid. Programação

Dec.Instrução TIMER 1 (16 bits)

TIMER 2 (8 bits)Comparador

CCP1

Brown-out detect

CCP2

Conv.A/D 10bits

MicrocontroladoresMicrocontroladores16F877 – Mapeamento da memória

MicrocontroladoresMicrocontroladores

MicrocontroladoresMicrocontroladores

MicrocontroladoresMicrocontroladores

MicrocontroladoresMicrocontroladores

MicrocontroladoresMicrocontroladores

MicrocontroladoresMicrocontroladores

MicrocontroladoresMicrocontroladores

MicrocontroladoresMicrocontroladores

MicrocontroladoresMicrocontroladores