Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação –...

Post on 18-Apr-2015

105 views 1 download

Transcript of Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação –...

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

PIC16F877A - Parte IIIPIC16F877A - Parte III

Jadsonlee da Silva Sá

Jadsonlee.sa@univasf.edu.brwww.univasf.edu.br/~jadsonlee.sa

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

InterrupçãoInterrupção Existe 15 fontes de interrupção.

Comparador

Colisão Bus

CCP2

Timer 1

Timer 2

CCP1

SPI/I2C

USART-Tx

USART-Rx

Conversor A/D

Porta paralela

EEPROM

Timer 0

Externa

Porta B

Habilita Int. Periféricos

Habilita Int. Global

Registradores: INTCON, PIE1, PIR1, PIE2, PIR2

IE – Habilita interrupção.

IF – Flag da interrupção.

IF será setado se uma condição de interrupção ocorrer, independente de IE.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Registrador INTCONRegistrador INTCON

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Registrador PIE1 Registrador PIE1

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Registrador PIR1 Registrador PIR1

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Registrador PIR1 Registrador PIR1

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Registrador PIE2Registrador PIE2

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Registrador PIR2Registrador PIR2

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Registrador OPTION_REGRegistrador OPTION_REG

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

InterrupçãoInterrupção Quando uma interrupção ocorre, o bit GIE é zerado

para desabilitar futuras interrupções.

O endereço de retorno é armazenado na pilha.

PC é carregado com o endereço 0004h (ISR – Rotina de serviço de interrupção).

Na ISR, a fonte da interrupção pode ser detectada via os bits IF.

O bit IF deve ser zerado via software antes de reabilitar as interrupções.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

InterrupçãoInterrupção Contexto de chaveamento durante as

interrupções.

– Somente o valor de PC é salvo na pilha.

– O software do usuário deverá salvar o valor de algum registrador de interesse (e. g. W, STATUS, etc).

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Watchdog TimerWatchdog Timer Temporizador que marca o tempo livremente.

Possui um oscilador RC on-chip – Não precisa de componentes externos – É independente do oscilador externo (OSC1 - OSC2).

Durante a operação normal um time-out gera um reset do uC (Watchdog Timer Reset).

Se o uC estiver no modo sleep, um time-out acordará o dispositivo (Watchdog Timer Wake-up).

O bit /TO de STATUS é zerado no time-out do WDT.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Power-Down Mode (Sleep)Power-Down Mode (Sleep)

Entra nesse modo quando a instrução SLEEP for executada.

– Se habilitado, o WDT será zerado, mas continua em operação.

– O bit /PD de STATUS é zerado, e o driver do oscilador é desligado.

– Os pinos de E/S mantém os seus estados antes do SLEEP.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Power-Down Mode (Sleep)Power-Down Mode (Sleep) Eventos para ocorrência de um wake-up:

– Reset externo via o pino /MCLR;

– Watchdog timer wake-up (Se WDT estiver habilitado);

– Ocorrência de alguns tipos de interrupção.

Interrupções de periféricos que podem gerar um wake-up:

– Ler ou escrever na PSP;

– Interrupção timer 1 – Modo contador assíncrono;

– Interrupção no modo captura - CCP;

– Gatilho de um evento (Timer 1 no modo assíncrono usando um clock externo);

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Power-Down Mode (Sleep)Power-Down Mode (Sleep) Interrupções de periféricos que podem gerar

um wake-up:

– Detecção do bit START/STOP do SSP;

– Tx ou Rx no modo escravo (SPI/I2C);

– Tx ou Rx USART (Modo escravo síncrono);

– Conversão A/D (Quando a fonte do clock do A/D é RC);

– Finalização de operação de escrita na EEPROM;

– Mudança de estado na saída do comparador.

• Outros periféricos não podem gerar interrupções, pois não possuem clocks on-chip.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Power-Down Mode (Sleep)Power-Down Mode (Sleep) Quando a instrução SLEEP está sendo executada, a

próxima instrução (PC+1) é pre-fetched.

Para acordar via um evento de interrupção, o bit que habilita a interrupção deve estar setado.

O wake-up não leva em consideração o estado do bit GIE.

– GIE = 0 A execução é retomada na instrução após a instrução SLEEP.

– GIE = 1 Executa a próxima instrução após a instrução SLEEP e depois desvia para o endereço 0004h

• Se a instrução após a instrução SLEEP for indesejada, deve-se colocar um NOP após a instrução SLEEP.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Power-Down Mode (Sleep)Power-Down Mode (Sleep) Wake-up usando interrupções.

– Se GIE = 0, e os bits de habilitação e sinalização do periférico estiverem setados, um dos seguintes eventos ocorrerá:• Se a interrupção ocorre antes da execução da

instrução SLEEP, SLEEP finalizará com um NOP.

– O bit /TO não será setado e /PD não será zerado.

– WDT e o seu postscaler não serão zerados.

• Se a interrupção ocorre durante ou após a execução da instrução SLEEP, um wake-up ocorrerá imediatamente. A instrução SLEEP será completamente executada antes do wake-up.

– O bit /TO será setado e /PD será zerado.

– WDT e o seu postscaler serão zerados.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Existem 35 instruções.

O conjunto de instruções é dividida em três categorias básicas:

– Operações orientadas a byte;

– Operações orientadas a bit;

– Operações literal e controle.

Cada instrução é uma palavra de 14 bits.

– Dividida em opcode (tipo de instrução) e um ou mais operandos.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Formato das instruções.

– Operações orientadas a byte – 18 instruções.

• W Registrador acumulador de 8 bits.

• f Registrador de endereço da SRAM.

• d Indica o destino do resultado da operação.

00-7Fh

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Formato das instruções.

– Operações orientadas a byte – 18 instruções.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Formato das instruções.

– Operações orientadas a bit – 4 instruções.

• f Registrador de endereço da SRAM.

• b Indica o número do bit afetado pela operação.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Formato das instruções.

– Operações orientadas a bit – 4 instruções.

– Obs.: Nessas instruções, o registrador é lido, depois ocorre a operação no bit escolhido e por fim, o resultado é escrito no registrador.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Formato das instruções.

– Operações literal e controle – 13 instruções.

• k Dado constante ou um rótulo. Pode ter 8 ou 11 bits.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Formato das instruções.

– Operações literal e controle – 13 instruções.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Formato das instruções.

– Algumas observações.

• É possível ler e escrever em qualquer registrador da SRAM.

• Se uma instrução escreve no registrador STATUS, os bits Z, C, DC e OV poderão ser setados ou zerados de acordo com o resultado da instrução e sobrescrever os bits de dados escritos originalmente.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Ciclo de instrução.

– Cada ciclo Tcy é formado por quatro ciclos Q.

– Ciclo Q é igual ao ciclo do oscilador (Tosc).

• Q1 Decodificação ou NOP forçado.

• Q2 Leitura ou NOP.

• Q3 Processa os dados.

• Q4 Escreve ou NOP.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a byte.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a bit.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a bit.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a bit.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a bit.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a bit.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a bit.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a bit.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Orientadas a bit.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conjunto de InstruçõesConjunto de Instruções Literal e lógica.