Vous êtes sur la page 1sur 50

Prof.

Pedro Pedrosa
h"p://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4227622E1    
pedrosarf@ifce.edu.br
Prof. Pedro Pedrosa
Ø  Finalidade
• Microcontrolador (MCU): “pequeno” componente eletrônico
dotado de uma “inteligência” programável utilizado no controle de
processos lógicos;
• Controle lógico: ações a serem executadas de acordo com o estado
dos periféricos internos de E/S;
• Periféricos disponíveis: memória de dados, portas de E/S,
temporizadores, contadores, comunicação serial, conversores A/D,
etc.

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Prof. Pedro Pedrosa
• PIC: família de microcontroladores fabricados
pela Microchip Technology;
• O original foi desenvolvido pela General
Instruments
– acrônimo para Programmable Intelligent
Controller
– Usado inicialmente para auxiliar tarefas de
E/S de um processador da General
Instruments.

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


• Atrativos de mercado dos PICs:
– Grande variedade: de 6 a 100 pinos;
– Baixo custo: de R$ 3,00 a R$ 50,00;
– Alta portabilidade e robustez;
– Controle de periféricos de E/S;
– Etc.

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Arquitetura Interna
• Os microcontroladores PIC apresentam estrutura de máquina
interna do tipo Harvard;
HARVARD   VON-­‐NEUMANN  
• Vantagens:
Dois  barramentos  disDntos:  um  para   Apenas  um  barramento  (bus)  interno  
– Processamento
dados   (8,  16  ou  32  bits  nrápido:
o  caso  do  enquanto uma
para   instrução
o  trânsito   é executada
de  instruções   e  
PIC)  eé
outra  outro  
acessada para  instruções  
na memória; (de  12  a   Dados.  
32  bits).  
– Economia de memória de programa: barramento de
instruções com mais que 8 bits permite que o OPCODE (palavra de
programa) seja indexado já com o local da memória e o dado a ser
processado.

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Ciclos de Máquina
• Nos PICs o sinal do clock é internamente dividido por 4;
• PIPELINE: busca da informação em um ciclo e execução no próximo;
• Ciclos de máquina por instrução:
– Gerais: 1 ciclo;
– Instruções de chamada e retorno: 2 ciclos.
• Exemplo: clock externo de 4 MHz.
– Clock interno será de 1 MHz;
– Cada ciclo de máquina terá duração de 1 µs.

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Ciclos de Máquina

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Famílias PIC

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Famílias PIC
Ø  Existem 6 famílias, diferenciadas pelo tamanho da instrução (OPCODE):
Baseline Architecture (33 instruções com 12 bits);
Midrange Architecture (35 instruções com 14 bits);
Enhanced Midrange Architecture (49 instruções com 14 bits);
PIC18 Architecture (75 a 83 instruções com 16 bits);
PIC24 & DSC Architecture (~100 instruções com 16 ou 24bits);
PIC32 Architecture (~125 instruções com 32 bits).

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Famílias PIC - Baseline Architecture:
– Ideal em aplicações com limitação de espaço;
– Baixo custo;
– Memória de programa Flash com até 2K de instruções;
– Não há interrupções de hardware;
– Low power (100 nA);
– ICSPTM (In Circuit Serial ProgramingTM);
– Tempo de reset curto (1,125 ms);
– 1 timer com 8 bits (TMR0);
– Oscilador interno de 4 ou 8 MHz;
– Sub-grupos: PIC10, quase todos PIC12 e alguns PIC16.  
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø  Famílias PIC - Midrange Architecture:
– Ótima relação custo-benefício;
– Periféricos integrados (I2C, SPI, ADC, etc.);
– Memória de programa com até 8K de instruções;
– Interrupções de hardware;
– Low power (100 nA);
– ICSPTM (In Circuit Serial ProgramingTM);
– Tempo de reset curto (1,125 ms);
– 1 timer com 16 bits (TMR1) e 2 de 8 bits (TMR0 e TMR2);
– Oscilador interno de 4, 8, 10 ou 20 MHz;
– Sub-grupos: demais PIC12 e quase todos PIC16.
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø  Famílias PIC - Enhanced Midrange Architecture:
– Codificação C otimizada;
– Mapa de memória simplificado;
– Memória de programa com até 32K de instruções;
– Interrupções de hardware;
– Low power (100 nA);
– ICSPTM (In Circuit Serial ProgramingTM);
– Tempo de reset curto (1,125 ms);
– 1 timer com 16 bits (TMR1) e 2 de 8 bits (TMR0 e TMR2);
– Oscilador interno de 4, 8, 10 ou 20 MHz;
– Sub-grupos: PIC12F1xxx e PIC16F1xxx.
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø  Famílias PIC - PIC18 Architecture:
– Codificação C otimizada;
– Periféricos avançados (acréscimo: CAN, USB, Ethernet, touch sensing e drivers
para LCD);
– Memória de programa com até 128K de instruções;
– Interrupções de hardware;
– Low power (100 nA);
– ICSPTM (In Circuit Serial ProgramingTM);
– Tempo de reset curto (1,125 ms);
– 1 timer com 16 bits (TMR1) e 2 de 8 bits (TMR0 e TMR2);
– Oscilador munido com PLL (até 40 MHz);
– Sub-grupos: PIC18 J-series e PIC18 K-series.
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø  Famílias PIC - PIC24 & DSC Architecture :
– DSC: Digital Signal Controller;
– Periféricos otimizados (acréscimo: CAN 2.0B, USB On-
The-Go e codec interface);
– Memória de programa com até 256K de instruções;
– Conversão A/D a 10 ou 12 bits com até 1 Msps em até
2 canais;
– Interface de encoder em quadratura;
– Tecnologia nanoWatt (baixíssimo consumo);
– Sub-grupos: PIC24F, PIC24H, dsPIC30F e dsPIC33F.

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Famílias PIC - PIC32 Architecture:
– Velocidade otimizada para operações matemáticas complexas;
– ULA de 32 bits;
– Memória de programa com até 512K de instruções;
– Conversão A/D a 10 ou 12 bits com até 500 ksps em 16 canais;
– Mais de 85 pinos de E/S;
– 5 timers de 16 bits, podendo ser configurados com 2 de
32 bits e 1 de 16 bits;
– PIPELINE de 5 estágios;
– Sub-grupo: PIC32.

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Prof. Pedro Pedrosa
Ø  Memória de Programa:
• Exclusivamente interna nas famílias PIC10 até PIC18;
• Pode ser externa para família PIC18 em diante;
• Há 4 tecnologias típicas de implementação:
– ROM tipo máscara (CR): fabricados com memória programada na
fábrica. Menor custo para grandes quantidades.
– OTP (C): memória tipo PROM, saindo da fábrica “virgem”.
Programáveis apenas uma vez.
– EPROM (JW - DIP ou CL - PLCC): Memória apagável por UV.
Mais caros, indicados para etapas de desenvolvimento e teste.
– FLASH (F): mais versáteis, geralmente vêm com FLASH e
EEPROM. Melhor relação custo-benefício.
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø  Memória de Dados:
• Divide-se em RAM e/ou EEPROM (alguns dispositivos).
• Característica peculiar: memória RAM é volátil e abriga
essencialmente os registradores internos.
Divide-se em duas partes:
– Registradores de funções especiais (SFR – Special Function
Registers): usados para controle de periféricos e dispositivos
internos, flags de estado, etc.
– Registradores de propósito geral (GPR – General Purpose
Registers): armazenamento temporário de dados.

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Prof. Pedro Pedrosa
Ø  Hardware - Pinagem:
• Alimentação
•  Reset
•  Entradas Analógicas
•  Entradas e Saídas Digitais
•  Clock
•  Interrupções externas
•  Comunicação Serial (RS-232, SPI e I2C)
•  Módulos Comparadores

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Alimentação  
VDD    =    +  5V  
VSS      =      0V  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Reset  
0V            5V  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Porta  A  
E/S  Digital  (8  bits)  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Porta  B  
E/S  Digital  (8  bits)  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Porta  C  
E/S  Digital  (8  bits)  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

•   Entradas  Digitais  (1  BIT)      


-­‐ Tensão  :      0  ou  5  V    
-­‐   Nível  lógico:    0  ou  1  
-­‐   Entrada  ou  saída  de  dados  
-­‐   Acionamento  de  Motor,  relé,  buzzer,  TRIAC,  DIAC,  etc.  
•   Entradas  Digitais  (8  BITS    -­‐    0  a  255)  
-­‐   8  pinos  de  1  bit    
-­‐   Portas  A,  B  e  C  
-­‐   Acesso  aos  8  pinos  em  uma  só  variável,  por  exemplo  escrever  na  
porta  B  o  valor  131,  faz  a  porta  B:    1      0      0      0      0      0      1      1  .      
                                                                                               RB7    RB6    RB5   RB4    RB3    RB2    RB1    RB0  
   

                                                                                               128    _64      32    16          8              4              2              1      .  


               

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Interrupções  
externas  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

10  entradas  
Analógicas  
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø  Hardware - Pinagem:

•   Entradas  Analógicas    -­‐    0  a  5  V  


•   MCU  armazena  este  valor  em  variáveis  digitais  ,  então  estes  pinos  
são  chamados  de  Conversores  Analógico-­‐Digital  (ADC)    
•   A  variável  armazenada  depende  da  resolução  do  ADC  (Nº  de  bits),  
os  PIC  18f  possuem  resolução  até  10  bits.  Por  exemplo  
ü   8  bits  (0-­‐255)  
-­‐   Uma  tensão  de  5V  (entrada  máxima),  assumirá  255  
-­‐   Uma  tensão  de  2,5V  assumirá  127  
ü   10  bits  
-­‐   Uma  tensão  de  5V  (entrada  máxima),  assumirá  1023  
 -­‐  Uma  tensão  de  2,5V  assumirá  512  
•   A  resolução  do  ADC  é  configurável  na  programação,  e  este  valor  que  
a  entrada  pode  assumir  é  acessível  sempre  que  desejável  
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Ø  Hardware - Pinagem:

22  pinos  E/S  
Digitais  (1  bit)  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Comunicação  Serial  
RS-­‐232  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Comunicação  Serial  
I2C  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Comunicação  Serial  
SPI  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Clock  

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Hardware - Pinagem:

Módulos  
Comparadores  
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Prof. Pedro Pedrosa
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Prof. Pedro Pedrosa
Ø  Montador
• Utiliza apenas a linguagem Assembly, usando apenas as instruções do
fabricante
• O PIC 18f2550 possui 77 instruções
• Apenas MONTA o código com as funções reconhecidas pelo hardware,
fazendo TUDO com elas.
Ø  Compilador
• Utiliza outra linguagem para programação que o hardware não reconhece
• Decodifica uma linguagem em funções que o hardware reconhece.
• A Linguagem C é muito utilizada para programar PIC

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Um exemplo de programa para gravar um dado na memória EEPROM:
Ø  Montador Ø  Compilador

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Assembly x Linguagem C
• A linguagem C torna a programação amigável, facilitando a
programação de aplicações mais complexas;
• A linguagem C aumenta a portabilidade, uma vez que as instruções
Assembly variam muito até mesmo entre os mesmos fabricantes;
• A linguagem C permite o aproveitamento de código com uso de
bibliotecas;
• É necessário controle do Hardware para programar em Assembly;
• O tamanho do código em Assembly será sempre menor;
• Os programas em Assembly tendem a ser mais rápidos.

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa


Ø  Próximo assunto:
•  Funções de entrada e saída digital

pedrosarf@ifce.edu.br Prof. Pedro Pedrosa