• Nenhum resultado encontrado

Microcontrolador PIC – Descrição Geral

N/A
N/A
Protected

Academic year: 2018

Share "Microcontrolador PIC – Descrição Geral"

Copied!
85
0
0

Texto

(1)
(2)

Microcontrolador x Microprocessador

(3)

Microcontrolador PIC – Descrição Geral

¾Utiliza arquitetura Harvard (RISC);

¾P it i t õ d i i t t

¾Permite interrupções de origem interna e externa;

¾O pipeline permite execuções de instruções em ump p p ç ç

ciclo, exceto os desvios;

¾Possui 35 instruções;

¾Possui blocos periféricos internos.

(4)

Arquiteturas

¾ Os microcontroladores com arquitetura Havard sãoq

chamados de RISC (Reduced Instruction Set

Computer)

¾ Os microcontroladores com a arquitetura de Von Neumann são também chamados CISC (Complex Instruction Set Computer)

(5)

Arquitetura Havard

¾ Capacidade de processamento maior, sem

necessidade de elevar a freqüência de clock da CPU.q

¾ Separação das memórias de dados e programa:

Possibilidade de representar instruções por palavras Possibilidade de representar instruções por palavras de mais que 8 bits (Ex 14bits – PIC)

¾ Busca e execução simultânea de instruções

(6)

Relógio e Ciclo de Instrução

¾ O código da instrução é lido em Q1 e é escrito no RI em Q4.

¾ A decodificação e execução dessa mesma instrução,

f t f Q1 Q4 i t

(7)

Pipelining

Durante a execução da instrução é extraído da memória o código da instrução seguinte.

¾TCY0: é lido da memória o código da instrução MOVLW 55h;

(8)

¾TCY2: é executada a instrução MOVWF PORTB e lida a instrução CALL SUB_1;

¾TCY3: é executada a chamada (CALL) de uma subrotina CALL SUB_1 e é lida a instrução BSF PORTA,BIT3. _

¾TCY4: este ciclo de instrução é totalmente usado para ler a primeira instrução da subrotina no endereço SUB_1;

¾TCY5: é executada a primeira instrução da subrotina SUB 1 e lida a

(9)

Formato das Instruções do PIC

Instruções formadas por 14 bits Tipos de Instruções;

¾Instruções orientadas a byte;

¾Instruções orientadas a byte;

¾Ex: MOVWF TRISA ¾Instruções orientadas a bit;

¾Ex: BSF STATUS, RP0 ¾Ex: BSF STATUS, RP0 ¾Instruções Literais e de Controle;

¾Ex: MOVLW 0xFF

¾Instruções GOTO e CALL;st uções GO O e C ;

(10)

Descrição do Opcode

Código instruções

orientadas a Bit

(11)
(12)
(13)
(14)

Registrador de Status (Estado)

bit 0 C (Carry) Transporte

bit 1 DC (Digit Carry) Transporte de dígito

bit 2 Z (bit Zero) Indicação de resultado igual a zero

(15)

Registrador de Status (Estado)

bit 4 TO Time-out (transbordo do Watchdog)

bits 5 e 6 RP1:RP0 (bits de seleção de banco de registros bits 5 e 6 RP1:RP0 (bits de seleção de banco de registros da RAM) – Endereçamento direto.

11 = banco de registros 3g 10 = banco de registros 2 01 = banco de registros 1

00 b d i 0

00 = banco de registros 0

bit 7 IRP (Bit de seleção de banco de registros) bit 7 IRP (Bit de seleção de banco de registros) -Endereçamento indireto.

(16)

Registrador Option

bits 0 a 2 PS0, PS1, PS2 (bits de seleção do divisor Prescaler) - Estes três bits definem o fator de divisão do

(17)

Registrador Option

bit 3 PSA (Bit de Atribuição do Prescaler) – Atribuição do prescaler

do prescaler.

1 = prescaler atribuído ao watchdog;

(18)
(19)

Registrador Option

bit 4 T0SE (bit de seleção de borda ativa em TMR0) – Sinal através do pino RA4/TOCK1.

1 b d d d id

1 = borda de descida; 0 = borda de subida.

bit 5 TOCS (bit de seleção da fonte de clock em TMR0)

(20)

Registrador Option

bit 6 INDEDG (bit de seleção da borda de interrupção)

– Interrupção através do pino RB0/INT.

1 b d d bid

1 = borda de subida; 0 = borda de descida.

bit 7 RBPU (Habilitação dos pull-up nos bits da porta B)

(21)

Organização da Memória

¾Memória de programa – Flash (14bits x 8K);

¾M ó i d d d

¾Memória de dados

EEPROM – 256 bytes (instruções especiais para acesso de escrita;

para acesso de escrita;

RAM (GPR – Registradores de propósito geral) - 368 bytes distribuídos através dos bancos 0, 1, 2 e 3 do PIC 16F877;

R i t d SFR (R i t d d f õ

Registradores SFR (Registradores de funções espe-ciais) – 32 posições iniciais dos bancos 0 e 1 e as 16 posições iniciais dos bancos 2 e 3

(22)

Organização da Memória

¾Contador de Programa – Possui 13 bits e capacidade

d d 8K 14bit

de endereçar 8K x 14bits posições de memória;

¾A posição 0000h é reser-vada para reset;

¾A posição 0004h é

reser-d t d i t

(23)

Organização da Memória

Pilha – 13 bits e 8 níveis de profundidade;

¾Programação do Sistema;

¾Modo de endereçamento

9Endereçamento direto

(24)

Memória de Dados

¾A memória de dados é particionada em 4 bancos

(25)

Endereçamento Direto

Endereço de 9 bits, formado a partir dos sete bits do endereço direto de

i t ã i d i bit (RP1

uma instrução, mais dois bits (RP1 e RP0) do registro de “Status”

bsf STATUS, RP0 ; Banco 1 movlw 0xFF ; w = 0xFF

movwf TRISA

(26)

Endereçamento Indireto

Endereço gerado a partir do bit IRP, do registrador de Status e valor no registrador FSR.

movlw 0x20 ;definição do movlw 0x20 ;definição do

endereço inicial

movwf FSR ;FSR aponta para o

para o endereço 0x20h loop:clrf INDF ;INDF = 0 incf FSR ; endereço = incf FSR ; endereço

endereço inicial + 1 btfss FSR,7 ;todos os locais de memória limpos?

(27)

Instruções Assembly dos Exemplos

BSF f b S t bit “b” d i t d “f” BSF f,b Seta bit “b” do registrador “f”;

MOVLW k Copia o literal de 8 bits “k” para o registrador “W”;

MOVWF f Copia o conteúdo do registrador “W” para o registrador “f”; MOVWF f Copia o conteúdo do registrador W para o registrador f ;

CLRF f Reseta o registrador “f”;

INCF f,d Incrementa o conteúdo do redistrador “f” e salva o resultado no i t d “W” “d 0” i t d “f” “(d 1)”

registrador “W”, se “d=0”, ou no registrador “f” se “(d=1)”;

BTFSS f,b Salta uma instrução se bit “b” do registrador “f” é 1;

(28)

BCF STATUS,IRP MOVLW 0X20

MOVWF FSR

LACO: MOVF INDF,0, (OU INDF,W)( , ) BSF FSR,7

(29)

nado/liberado

BSF STATUS,RP0 BCF STATUS, RP1 BCF TRISD 0

... while(1) ... {

... if(input(PIN_A0)) 0036: BSF 05.0

BCF TRISD,0 BSF TRISA,0

BCF STATUS,RP0

0037: BCF 03.5 0038: BTFSS 05.0 0039: GOTO 03F

... output_high(PIN_D0);

LACO: BTFSC PORTA,0 BSF PORTD,0 BTFSS PORTA,0

003A: BSF 03.5 003B: BCF 08.0 003C: BCF 03.5 003D: BSF 08.0

BCF PORTD,0 GOTO LACO

... else 003E: GOTO 043

... output_low(PIN_D0); 003F: BSF 03.5

(30)
(31)
(32)
(33)
(34)

Portas A, B, C, D e E

Bit do registrador TRISx = 1 → pino da porta x será uma Bit do registrador TRISx = 1 → pino da porta x será uma entrada;

(35)

Configuração da Porta A

Pinos 0 1 2 3 e 4 da porta A são declarados como entradas Pinos 0, 1, 2, 3 e 4 da porta A são declarados como entradas.

(36)
(37)

Timer 0

¾Contador/Timer de 8 bits;

¾Registrador de contagem de escrita e leitura;g g ;

¾Pré-escalonador (divisor de freqüência)

programável; programável;

¾Utiliza sinal de clock interno ou externo;

¾G i t ã d t d d FF

¾Gera interrupção quando a contagem muda de FF para 00;

(38)

Timer 0

# Modos de contagem # Modos de contagem

¾Modo timer - Incrementa a cada ciclo de instrução (sem pré-escalonador).

(sem pré escalonador).

¾Modo de contagem - Incrementará a cada subida ou descida do sinal no pino RA4/TOCKL (borda definida pelo bit T0SE - bit 4 do Reg. OPTION).

¾Registradores associados:

(39)
(40)
(41)

Timer 1

O modo de operação é determinado pelo bit de seleção de clock, TMR1CS (bit 1 do Reg. T1CON).

Bit 0 (bit TMR1ON – bit de ativação do Timer 1)

1 = Timer 1 ativado 1 Timer 1 ativado

(42)
(43)
(44)

Timer 1

(45)

Timer 2

# Timer de 8 bits com um pré escalonador e pós # Timer de 8 bits com um pré-escalonador e pós-escalonador.

# Pode ser usado como a base de tempo no modo PWM # Pode ser usado como a base de tempo no modo PWM dos módulos CCP.

# TMR2 é um registra-g dor de escrita e leitura e é apagado em

qual-t d t

(46)

Timer 2

Registrador de Controle do Timer 2 – T2CON (endereço 12h)

Bits 1-0 (bit T2CKPS1 e T2CKPS0 – bit de seleção do pré-escalonador) 00 = Escalonamento de 1

do pré-escalonador) 00 Escalonamento de 1 01 = Escalonamento de 4

(47)
(48)

Captura/Comparação/PWM

Os módulos CCP (Captura/Comparação/PWM) são Os módulos CCP (Captura/Comparação/PWM) são formados por um registrador de 16 bits que pode operar como:

como:

¾Registrador de captura de 16 bits;

¾Registrador de comparação de 16 bits

¾Registrador de comparação de 16 bits

¾Registrador de “duty-cycle” no modo PWM

M t /E

(49)

Captura/Comparação/PWM

Registradores de Controle CCP1CON e CCP2CON Registradores de Controle CCP1CON e CCP2CON (endereços 17h e 1Dh)

Bits 3-0 (bit CCPxM3: CCPxM0 – bits de seleção de modo de operação) – Estes bits selecionam o modo como operarão os blocos CCP1 e CCP2

como operarão os blocos CCP1 e CCP2.

EX: 0100 = Modo captura, a cada 1 transição negativa (1→0)

(50)

Captura/Comparação/PWM

Bits 5 4 (bits CCPxX:CCPxY bits menos Bits 5-4 (bits CCPxX:CCPxY bits menos significativos do PWM) – Estes bits representam os dois bits menos significativos do valor de duty-cycle do dois bits menos significativos do valor de duty cycle do sinal PWM.

(51)

Captura/Comparação/PWM

Modo Captura Modo Captura

Pré-escalonador do módulo CCP

(52)

Microcontrolador PIC

Modo CapturaCaptura

1

0

/

0

4

/

2

0

1

(53)

Captura/Comparação/PWM

(54)

Microcontrolador PIC

Modo ComparaçãoComparação

1

0

/

0

4

/

2

0

1

(55)

Captura/Comparação/PWM

Modo PWM Modo PWM

O bloco CCPx produz um sinal PWM com uma resolução de até 10 bits.

resolução de até 10 bits.

Um sinal PWM é caracterizado pelo seu período e o

“duty-cycle”, que corresponde ao tempo em que o sinal permanece em nível alto.

O período do sinal PWM é especificado pelo registrador PR2:

PR2:

(56)

Captura/Comparação/PWM

Modo PWM Modo PWM

Quando TMR2 é igual a PR2, os seguintes eventos ocorrem:

ocorrem:

¾O TMR2 é apagado;

¾O pino CCP1 é setado (exceto se o duty-cycle do PWM = 0%, quando o CCP1 não será setado);

¾O PWM duty-cycle é copiado de CCPR1L para

CCPR1H CCPR1H.

(57)

Captura/Comparação/PWM

Modo PWM Modo PWM

Determinação do duty-cycle em termos de tempo:

Duty Cycle do PWM = (CCPR1L:CCP1CON<5:4>) • Tosc

Duty Cycle do PWM (CCPR1L:CCP1CON 5:4 ) Tosc

• (TMR2 prescale value)

O novo valor de duty-cycle só é atualizado no CCPR1H, quando os valores dos registradores PR2 e TMR2 coincidirem (ao fim do período PWM)

coincidirem (ao fim do período PWM).

(58)

Captura/Comparação/PWM

(59)

Microcontrolador PIC

Modo PWMPWM

1

0

/

0

4

/

2

0

1

(60)

CONVERSOR A/D

O módulo do conversor A/D possui 8 entradas

O módulo do conversor A/D possui 8 entradas

analógicas.

Um sample-and-hold é conectada a entrada do

Um sample and hold é conectada a entrada do

conversor A/D a partir de um multiplex 8 x 1.

O conversor A/D gera uma palavra binária de 10 bits proporcional ao sinal na entrada analógica selecionada. O módulo A/D tem duas entradas de tensão de referência (alta e baixa) que são selecionadas por referência (alta e baixa), que são selecionadas por software.

(61)

CONVERSOR A/D

O conversor A/D necessita de no mínimo 12 TAD para O conversor A/D necessita de no mínimo 12 TAD para realizar uma conversão de 10 bits. A fonte do clock do conversor A/D é selecionada por software entre as conversor A/D é selecionada por software entre as possibilidades abaixo:

¾ 2Tosc;

¾ 8Tosc;

¾ 32Tosc;

¾ Oscilador RC interno

¾ Oscilador RC interno.

(62)

CONVERSOR A/D

(63)

CONVERSOR A/D

O par de registradores ADRESH:ADRESL comporta 16 O par de registradores ADRESH:ADRESL comporta 16 bits, assim, o valor convertido de 10 bits pode ser justificado a direita ou à esquerda (bit ADFM).

justificado a direita ou à esquerda (bit ADFM).

Os bits extras não utilizados são carregados com “0” (zeros).

(64)

CONVERSOR A/D

(65)

CONVERSOR A/D

(66)

CONVERSOR A/D

Registrador ADCON0 - Controla a operação do módulo Registrador ADCON0 - Controla a operação do módulo

A/D (endereço 1Fh).

Bit 0 (bit ADON bit que ativa o conversor A/D) Este

Bit 0 (bit ADON – bit que ativa o conversor A/D) – Este bit ativa a operação do conversor A/D.

1 = conversor A/D ativado 1 conversor A/D ativado 0 = conversor A/D desligado

(67)

CONVERSOR A/D

Bit 2 (bit GO/– bit de status de conversão) – Este bit

Bit 2 (bit GO/– bit de status de conversão) – Este bit indica se uma conversão iniciada já foi concluída.

Se ADON =1

1 = conversão A/D em andamento

0 = não há conversão A/D em andamento (esse bit é

t ti t t d d ã A/D é

automaticamente resetado quando a conversão A/D é concluída).

Bits 5-3 (bits CHS2:CHS0 – bits de seleção de canal) Bits 5-3 (bits CHS2:CHS0 – bits de seleção de canal)

– Estes bits selecionam a entrada analógica cujo sinal será convertido.

000 = canal 0, (RA0/AN0) 001 = canal 1, (RA1/AN1)

010 l 2 (RA2/AN2)

(68)

CONVERSOR A/D

011 = canal 3 (RA3/AN3) 011 = canal 3, (RA3/AN3) 100 = canal 4, (RA5/AN4) 101 = canal 5, (RE0/AN5)( ) 110 = canal 6, (RE1/AN6) 111 = canal 7, (RE2/AN7)

Bits 7-6 (bits ADCS1:ADCS0 – bits de seleção de clock) – Estes bits selecionam a fonte do sinal de

clock) Estes bits selecionam a fonte do sinal de clock para o conversor A/D.

00 = FOSC/2 01 = FOSC/8 10 = FOSC/32

11 FRC ( l k d i d d il d RC)

(69)

CONVERSOR A/D

Registrador ADCON1 – Configura a função dos pinos das Registrador ADCON1 – Configura a função dos pinos das

portas (A e E) (endereço 9Fh)

(70)
(71)

CONVERSOR A/D

Bits 6-4 (bits não usados – lido como 0) Bits 6-4 (bits não usados – lido como 0)

Bit 7 (bit ADFM – bit de seleção de formato do( ç resultado da conversão A/D) – Este bit seleciona o formato de justificação do resultado gerado pelo

A/D conversor A/D.

1 = Justificação à direita. Os 6 bits mais significativos de ADRESH serão iguais a 0

ADRESH serão iguais a 0.

0 = Justificação à esquerda. Os 6 bits menos

(72)

CONVERSOR A/D

(73)

CONVERSOR A/D

Registradores associados com o módulo do conversor Registradores associados com o módulo do conversor

(74)

Interrupções

¾Mecanismo que torna possível responder a “estímulos” externos ou internos.

¾Através do registrador INTCOM pode se habilitar as

¾Através do registrador INTCOM pode-se habilitar as interrupções de forma individual ou de forma global.

¾O PIC 16F87X tem as seguintes fontes de Interrupção:

9 Interrupção externa (RB0/INT);

9 I d R ló i (TM0)

9 Interrupção de Relógio (TM0);

9 Interrupção da porta B (B4-B7);

9 Interrupção por captura e comparação (CCP1 e 2);

9 Interrupção por captura e comparação (CCP1 e 2);

9 Interrupção da USART (buffer saída e entrada cheio);

(75)

Interrupções

¾O PIC 16F87X tem as seguintes fontes de Interrupção:

9 Estouro do relógio TMR1;

9 Estouro do relógio TMR2;

9 Estouro do relógio TMR2;

9 Fim de escrita EEPROM;

9 Fim de Conversão A/D;;

9 Atividade na SPI ou I2C;

9 Recebimento de dados na Porta Paralela Escrava;

9 C li b

9 Colisão no barramento.

(76)
(77)

Interrupções

¾Inicialmente deve-se estabelecer quais interrupções devem estar habilitadas bem como setar o bit GIE (reg INTCON<7>)

INTCON<7>)

¾Comandos de retorno da interrupção:

9RETURN;;

9RETLW;

9RETFIE (põe ‘1’ automaticamento no bit GIE,

i i d i )

(78)
(79)

Interrupções - Registradores

Registrador INTCON

Bit 0 – Flag interrupção de mudança nos bits B4 a B7 1 – Pelo menos um bit mudou de estado

0 Nenhum bit mudou de estado 0 – Nenhum bit mudou de estado

Bit 1 – Flag interrupção INT/RB0 Bit 1 Flag interrupção INT/RB0 1 – Interrupção externa ocorreu

(80)

Interrupções - Registradores

Registrador INTCON Registrador INTCON

Bit 2 – Flag Timer 0 overflow Bit 2 Flag Timer 0 overflow

1 – Contagem mudou de 00h para FFh 0 – Não ocorreu overflow na contagem

Bit 3 – Habilita interrupção na mudança nos pinos B4 a B7 1 Habilita a interrupção

1 – Habilita a interrupção 0 – Desabilita a interrupção

Bit 4 – Habilita interrupção no pino INT/RB0 1 – Habilita a interrupção

(81)

Interrupções - Registradores

Registrador INTCON Registrador INTCON

Bit 5 – Habilita interrupção de Overflow do Timer 0 1 – Habilita interrupção

1 Habilita interrupção 0 – Desabilita interrupção

Bit 6 – Habilita interrupção dos periféricos

1 – Habilita todas as interrupções não mascaradas de periféricos

periféricos

0 – Desabilita todas as interrupções de periféricos

Bit 7 – Habilita interrupção global

(82)

Interrupções - Registradores

Registrador PIE1 Registrador PIE1

Bit 0 – Habilita interrupção de Overflow do Timer1pç 1 – Habilita interrupção

0 – Desabilita interrupção

Bit 1 – Habilita interrupção por igualdade do TMR2 e PR2 1 – Habilita interrupção

(83)

Interrupções - Registradores

Registrador PIE1 Registrador PIE1

Bit 2 – Habilita interrupção do bloco CCP1 1 Habilita interrupção

1 - Habilita interrupção 0 – Desabilita interrupção

Bit 3 – Habilita interrupção da SPI 1 – Habilita interrupção

0 – Desabilita interrupção

Bit 4 Habilita interrupção de transmissão da USART Bit 4 – Habilita interrupção de transmissão da USART 1 – Habilita interrupção

(84)

Interrupções - Registradores

Registrador PIE1 Registrador PIE1

Bit 5 – Habilita interrupção de recepção da USART 1 Habilita interrupção

1 – Habilita interrupção 0 – Desabilita interrupção

Bit 6 – Habilita interrupção do conversor A/D 1 - Habilita interrupção

0 Desabilita interrupção 0 – Desabilita interrupção

Bit 7 – Habilita interrupção da porta paralela escrava Bit 7 Habilita interrupção da porta paralela escrava 1 – Habilita interrupção

(85)

Interrupções - Registradores

Registrador PIR1 Registrador PIR1

R i t d PIE2

Registrador PIE2

Referências

Documentos relacionados

Investir em sistemas fotovoltaicos em Cabo Verde mostra ter boa viabilidade económica, de acordo com o dimensionamento do caso prático feito, trazendo impactos positivos na vida

Neste cenário, este estudo procura aprofundar o conhecimento sobre as formas alternativas de consumo, investigando como, ao menos em seu discurso, os

Este projeto se insere no campo aplicado dos estudos linguísticos e busca contribuir para a reflexão sobre o ensino de Língua Portuguesa, bem como para otimizar modos de trabalho

O centro da cidade de Almada acolhe mais uma animada edição da Festa Verde, uma grande celebração feita por milhares de crianças de Escolas, Jardins de Infância e

Este sinal é utilizado pelo módulo para proteção do motor, verificando a degradação do óleo lubrificante...

Neste sentido, se ser jovem em Chapada do Norte, como me disse a moça, é “padecer num paraíso”, esta declaração reflete um universo de dúvidas quanto ao próprio futuro, pois

Based on this fact, we were able to fit the observed temperature dependence of the specific heat and the anisotropic features in the magnetic susceptibility using a spin model

Rode o comando de selecção de temperatura no sentido dos ponteiros do relógio para a posição ‘•••’ (3 pontos) (para uma qualidade de vapor óptima, não utilize as