Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação –...
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á
[email protected]/~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.