Sie sind auf Seite 1von 44

Microcontroladores PIC

 
(continuação)
Ricardo de Oliveira Duarte
                            

DECOM – UFOP
(baseado no curso de SE do prof. Manoel L. Anido NCE – UFRJ)

1
Sumário
 Introdução a Família PIC e fabricantes.
 Características Básicas
 Arquitetura do PIC
 Organização da Memória no PIC
 Registradores do PIC

 
 Assembly e Conjunto de Instruções do PIC.
 Endereçamento de Memória no PIC.
                            

 Estrutura das Portas de I/O


 Interrupções
 Ambientes de Desenvolvimento para o PIC.
 Contagem do Tempo no PIC.
 Lendo Chaves e Botões no PIC.
 Exercícios
2
Assembly dos PICs
 Formato Assembly PIC (mesmo de máquinas da DEC –
Digital Equipment Corporation)
• Operação fonte destino ;comentário
• Exemplo: SUB A, R1 => A - R1 = R1

 Valores em Hexadecimal são precedidos por 0x


• 0x55, 0x3C

Nenhuma operação: NOP


                              

3
Conjunto de Instruções do PIC 16F877A
 35 instruções diferentes.
 3 tipos de categorias:
• Para operações com BYTEs.
• Para operações com BITs.
• Para operações com Literais e Operações de Controle.
 Para operações com BYTEs (byte-oriented instructions),

 
‘f’ representa um registrador e ‘d’ representa o destino,
que será usado pela instrução. E se ´d´ for omitido? W
será o destino.
                            

 Para operações com BITs (bit-oriented instructions), ´b´


representa o bit do registrador ´f´ que será selecionado,
enquanto ´f´ é o endereço do registrador referido.
 Para operações Literais e de Controle, ‘k’ representa uma
constante de 8 ou 11 bits ou ainda um valor literal em
hexadecimal.
4
PIC 16F877A – Assembly – Tipo das Instruções

                              

5
Conjunto de Instruções do PIC 16F877A

                              

6
Conjunto de Instruções do PIC 16F877A

                              

7
Assembly do PIC
 Diretivas Assembly:
• ORG xxxxH ;origem, inicia montagem programa no end. xxxxH
• EQU ;define uma constante
• DB ;armazena bytes na mem. programa, define dados
• END ; termina arquivo assembly

                              

8
Sumário
 Introdução a Família PIC e fabricantes.
 Características Básicas
 Arquitetura do PIC
 Organização da Memória no PIC
 Registradores do PIC

  
Assembly e Conjunto de Instruções do PIC.
Endereçamento de Memória no PIC.
                            

 Estrutura das Portas de I/O


 Interrupções
 Ambientes de Desenvolvimento para o PIC.
 Contagem do Tempo no PIC.
 Lendo Chaves e Botões no PIC.
9
Modos de Endereçamento do PIC
 Os PICs das famílias Low-End and Middle-End
podem acessar dados de três formas:
• Direto
• Indireto
• Imediato (Ex.: CALL)

                              

10
Sumário
 Introdução a Família PIC e fabricantes.
 Ambientes de Desenvolvimento para o PIC.
 Características Básicas
 Arquitetura do PIC
 Organização da Memória no PIC


Registradores do PIC
 
Assembly e Conjunto de Instruções do PIC.
                            

 Endereçamento de Memória no PIC.


 Estrutura das Portas de I/O
 Interrupções
 Contagem do Tempo no PIC.
 Lendo Chaves e Botões no PIC.
11
Família PIC16Fxx.
Características Hardware: Porta A

                              

RA3:RA0 RA4
12
Entradas Digitais são do tipo TTL ou Schmitt Trigger
Família PIC16Fxx.
Características
Hardware: Porta A
(continuação)

                              

RA
5
13
Família PIC16Fxx.
Características Hardware: Porta B

Resistencia de pull-
up da porta B,
configurável por
software através do
bit RBPU, do

                              
registrador
OPTION_REG.

Cuidado! Verifique
a corrente máxima
que uma porta pode
entregar/absorver.

RB3:RB0
RB4:RB7 14
Características elétricas: Portas A e B

15
Exemplo de código de inicialização da porta A

                              

16
PIC 16F877A - Porta C

                              

17
PIC 16F877A - Porta D e E

                              

18
Características elétricas: Portas C e D

                              

19
Características elétricas: Porta E

                              

20
Sumário
 Introdução a Família PIC e fabricantes.
 Características Básicas
 Arquitetura do PIC
 Organização da Memória no PIC
 Registradores do PIC

  
Assembly e Conjunto de Instruções do PIC.
Endereçamento de Memória no PIC.
                            

 Estrutura das Portas de I/O


 Interrupções
 Ambientes de Desenvolvimento para o PIC.
 Contagem do Tempo no PIC.
 Lendo Chaves e Botões no PIC.
21
Interrupções no PIC 16F877A
 15 interrupções diferentes.
 Interrupção vetorada (endereço 0004h).
 Divididas em 2 grupos:
• Convencionais (comuns aos dispositivos Low-end)
Ex.: Estouro do Timer 0; Interrupção externa (pino RB0);
Interrupção por mudança de estado (borda de subida ou

 
descida – pinos RB4…RB7).
                            

• Periféricos (depende do dispositivo).


Exs.: Porta paralela; Conversores A/D; Recepção da USART;
Transmissão da USART; Comunicação Serial MSSP (Master
Syncronous Serial Port); CCP1 (Capture, Compare, PWM);
CCP2; Estouro do Timer1; Timer2; Fim de Escrita na
EEPROM/Flash; Colisão de Dados no Barramento;
Comparadores Internos do PIC.

22
Interrupções no PIC 16F877A: Funcionamento
 O que acontece na ocorrência de uma
interrupção?
1. O Flag da Interrupção correspondente é marcado.
2. Se as chaves de habilitação da interrupção (geral e individual)
estiverem ligadas, o sistema será paralisado e desviado para
0004h.

 
As chaves geral e individual para cada uma
                            

das 15 interrupções do PIC16F877A são bits


específicos dos SFRs:
 INTCON; PIE1; PIE2; PIR1; PIR2

23
Interrupções no PIC 16F877A: Funcionamento
 A chave geral (GIE) é desligada antes de desviar
para o endereço 0004h.
• Logo: 2 interrupções não podem ser tratadas ao mesmo tempo.
• Nada impede que o FLAG de uma segunda interrupção seja
ativado.
• Ao final do tratamento da interrupção, GIE deverá ser ligada


(instrução RETFIE).
 
É necessário testar os flags de todas as INTs,
                            

pois todas são desviadas para 0004h.


 A ordem dos testes determina a prioridade de
atendimento.
 As flags das INTs não são “resetados” pelo
sistema ao final do tratamento da INT, logo…
24
Sumário
 Introdução a Família PIC e fabricantes.
 Características Básicas
 Arquitetura do PIC
 Organização da Memória no PIC
 Registradores do PIC

 
 Assembly e Conjunto de Instruções do PIC.
 Endereçamento de Memória no PIC.
                            

 Estrutura das Portas de I/O


 Interrupções
 Ambientes de Desenvolvimento para o PIC.
 Contagem do Tempo no PIC.
 Lendo Chaves e Botões no PIC.
 Exercícios
25
Ambientes de Desenvolvimento para o PIC

 MPLAB IDE (Editor de código, Compilador, Depurador,


Simulador, Emulador)
 Free Development Tools (students and educational purposes):
• Programmer’s text editor
• MPLAB SIM, high speed software simulator for PICmicro and dsPIC MCUs with
peripheral simulation, complex stimulus injection and register logging.
• Full featured debugger

 
• Graphical project manager
• Visual Device Initializer (VDI)
• Version control support for MS Source Safe, CVS, PVCS, Subversion
                            
• MPASM™ macro assembler with MPLINK™ linker and MPLIB™ librarian
• MPLAB ASM30 assembler, MPLAB LINK30 and Utilities for PIC24 and dsPIC
devices
• PROCMD command line programmer for MPLAB PM3 and PRO MATE® II
• Visual PROCMD for simplified GUI control of MPLAB PM3 and PRO MATE® II
• CCS PCB C Compiler
• PICStart Plus programmer
• PICDEM-2 demo board
• PIC ICD in circuit debugger
• PIC-ICE In circuit emulator

26
Ambientes de Desenvolvimento para o PIC
 Compilador C para o PIC:
• Fabricante CCS
• Modelos:
 PCB para PICs de 12 bits (série PIC12)
 PCM para PICs de 14 bits (séries PIC14 e PIC16)
 PCH para PICs de 16 bits (série PIC18)
 PCWH (todos)
 MPLAB:




Grava o PIC e Depura.
 
Ambiente de Desenvolvimento Integrado (IDE)
Permite compilar de dentro do ambiente (Necessita compilador CCS).
                            

Download no site da Microchip.


 Gravadores:
• McFLASH
• McPLUS
• ICD
 Simuladores:
• ISIS - Proteus
• GPSIM (GNU PIC Simulator) – Open Source
• PIC IDE Simulator (Oshonsoft.com) 27
Ambientes de Desenvolvimento para o PIC

                              

28
Fluxo de Desenvolvimento

                              

29
Primeiro Exemplo de um Programa em C para o PIC
// Definições do Microcontrolador

#include <16F877A.H> // arquivo de definições do microcontrolador usado

#fuses HS,NOWDT,PUT,NOBROWNOUT,NOLVP // bits de configuração dos fusíveis do PIC

// Configurações do Projeto

#use delay(clock=4000000) // informa ao sistema o frequência de clock, para temporização

 
// Definição da Entradas

// Definição da Saídas
                            
#define LED0 PIN_B0

// Programa principal
void main ()
{
int tempo = 100;
while(true) {
output_high(LED0); // seta o pino B0
delay_ms(tempo); // aguarda 100 ms
output_low(LED0); // reseta o pino B0
delay_ms(tempo); // aguarda 100 ms
}
}
30
Segundo Exemplo de um Programa em C para o PIC

                              

31
Segundo Exemplo de um Programa em C para o PIC
// Definições do Microcontrolador

#include <16F877A.H> // arquivo de definições do microcontrolador usado

#fuses HS,NOWDT,PUT,NOBROWNOUT,NOLVP // bits de configuração dos fusíveis do PIC

#use fixed_io(b_outputs = PIN_B1) // saídas da porta B. Os demais serão entradas.

// Configurações do Projeto

 
#use delay(clock=4000000) // informa ao sistema o frequência de clock, para temporização.

// Definição da Entradas
                            
#define BOTAO PIN_B0

// Definição da Saídas
#define LED0 PIN_B1

// Programa principal
void main ()
{
for(;;) {
if(!input(BOTAO))
output_low(LED0);
else output_high(LED0);
}
} 32
Segundo Exemplo de um Programa em C para o PIC

                              

33
Tipos de Dados: Linguagem C do PIC

                              

34
Declaração e Tipos de Constantes
 Constantes:
• const valor1 = 10;
• const valor2 = -5;
• const valor3 = 55.12;
• const valor4 = ´a´;
• const valor5 = “teste”;


const valor6 = 0x50;
const valor7 = 050;  
                            

• const valor8 = 0b01001000;

35
Sumário
 Introdução a Família PIC e fabricantes.
 Características Básicas
 Arquitetura do PIC
 Organização da Memória no PIC
 Registradores do PIC


 
Assembly e Conjunto de Instruções do PIC.
                            

Endereçamento de Memória no PIC.


 Estrutura das Portas de I/O
 Interrupções
 Ambientes de Desenvolvimento para o PIC.
 Lendo Chaves e Botões no PIC.
36
Sumário
 Introdução a Família PIC e fabricantes.
 Características Básicas
 Arquitetura do PIC
 Organização da Memória no PIC
 Registradores do PIC

  
Assembly e Conjunto de Instruções do PIC.
Endereçamento de Memória no PIC.
                            

 Estrutura das Portas de I/O


 Interrupções
 Ambientes de Desenvolvimento para o PIC.
 Contagem do Tempo no PIC.
 Lendo Chaves e Botões no PIC.
37
Hardware mínimo para montagens com os PICs

 Circuito de alimentação
(capacitor de 0.1 µF).
 Circuito para programação em
serie.

 
 Circuito de reset.
 Circuito de clock (~10 MHz).                             
 Periféricos:
• Conexão com LEDs, displays de 7
segmentos.
• Conexão com botões e interruptores.

38
Hardware mínimo para montagens com os PICs
 Circuitos de CLOCK.
Diversas
configurações:
• Com circuito RC,
proporciona baixo custo,
mas estabilidade também
baixa. Permite obter uma

 
saida de frequencia F/4 no
Para XTAL 4 MHz: C1=C2=27 pF. RS só terminal OSC2/CLKOUT.
é necessário em algumas configurações
                            
• Para melhorar a
de HS. estabilidade se implementa
circuitos com cristal de
quarzo (3 configurações):
 LP (baixo consumo), de 0
a 200 kHz.
 XT, de 200 kHz a 4 MHz.
 HS (alta velocidade), de 4
MHz a 10 MHz (20 MHz
para PICs de média e alta
linha).
39
Hardware mínimo para montagens com os PICs
 Para a interconexão de
periféricos é necessário
consultar as características de
hardware das portas A e B.

 Resistencia de pull-up da porta


B, configurável por software
através do bit RBPU, do

 
registrador OPTION_REG.


                            
Cuidado! Verifique a corrente
máxima que uma porta pode
entregar/absorver.
Configuração mínima do
PIC16F84 sem periféricos,
com um clock de 4 MHz

40
Hardware mínimo para montagens com os PICs

 Periféricos básicos de
saída: LEDs e display de 7
segmentos.

 
• Como conectamos mais de um
display?
                            
• Quantos números de displays
podemos conectar?
• O que acontece com o consumo?

41
Hardware mínimo para montagens com os PICs

 Periféricos básicos de
entrada: botões e
interruptores.
• Eliminação de debounce por
software.
• Eliminação de debounce por hw  
                            
usando as carcaterísticas do PIC.
• Eliminação de debounce por hw
externo.
 Variantes: teclado matricial.

42
Relés e motores DC
 O par darlington não é
imprescindível.

 Aplicações com
pequenos relés um único
transistor bipolar é
suficiente.

                              

 A velocidade do motor DC é
controlada com PWM e pelo
circuito integrado 293D, na
figura ao lado.

 O sentido do giro determina a


polaridade.

43
Motores de passo e Áudio

Gerar um som:
 

• Para gerar um som é
                            
necessário gerar um sinal de
onda quadrada de período
apropriado.

• O capacitor filtra a parte


contínua e gera o tom Motor de passo com
desejado. CI de controle e
diodos.

44