• Nenhum resultado encontrado

5. Conjunto de Instruções do MCU PIC

N/A
N/A
Protected

Academic year: 2022

Share "5. Conjunto de Instruções do MCU PIC"

Copied!
24
0
0

Texto

(1)

5. Conjunto de Instruções do MCU PIC

MCU PIC

Professor: Vlademir de Oliveira

Disciplina: Microcontroladores e DSP

(2)

5.1 Arquitetura interna

Ciclo de Busca e Execução da Instrução

O clock externo é internamente dividido por 4, gerando Q1, Q2, Q3e Q4, cada instrução é dividida nesses 4 ciclos. A busca e execução são feitas em linha, de tal forma que a busca leva 1 ciclo de máquina e a execução outro ciclo. Usando o pipeline, cada instrução é realizada em um ciclo, pois na série 16 do PIC, cada instrução seria realizada em 2 ciclos sem o pipeline.

Existem MCUs PIC de 32-bits com clock de até 80MHz e pipeline de 5 estágios.

(3)

5.1 Arquitetura interna

Registradores internos

Registrador W / ou registrador

principal (Work): É utilizado na troca de dados entre registradores f.

Também é usado como destino nas operações realizadas pela ULA.

É importante destacar que não é É importante destacar que não é possível trocar informações entre os registradores f.

Pilha (Stack): A pilha é um local onde são armazenados os endereços de retorno nas instruções de salto ou desvio. A pilha dos PICs está

localizada em uma memória separada da RAM e sua estrutura só permite

(4)

5.1 Arquitetura interna

Registradores internos

PC (Program Counter): É o responsável pela sequência da

execução do programa. O registrador PC aponta para a próxima instrução a ser executada. Nas instruções de salto, por exemplo, o PC é alterado.

por exemplo, o PC é alterado.

Os 13 bits do PC são divididos em:

PCL → 8 bits menos significativos PCH → 5 bits mais significativos Somente o PCL é diretamente acessível , o PCH não pode ser alterado através do PCLATH.

(5)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Formato das instruções

Essa categoria possui 35 instruções com um formato em 14-bits. As instruções podem ser encontradas na tabela do datasheet. Será mostrado como utilizar a tabela para utilizar as instruções do microcontrolador.

(6)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Formato das instruções

Os itens mais importantes são mneumônico e parâmetros, mais a tabela também fornece outras informações:

Mneumônico: É a representação textual (opcode) Parâmetro: São as informações manipuladas

f → são os registradores SFR ou GPR; f significa f → são os registradores SFR ou GPR; f significa nome com registro.

d → identifica o destino, entre W e f. Se d=0 → W e se d=1 f, o padrão é d=1.

b → expressa um bit de 0 a 7.

k → indica um parâmetro constante na manipulação.

Ciclos: O número de ciclos gastos na instrução;

Importante para a temporização do programa.

Flags: Indica as flags aritméticas do registrador STATUS (C,DZ,Z).

(7)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Algumas definições

0xNN: Representação de um número em hexadecimal; Padrão da Microchip.

Nibbles : Metade de um byte (4 bits).

Z (Bit zero) : Resultado da última operação da ULA.

Z (Bit zero) : Resultado da última operação da ULA.

1 se o resultado foi 0

0 se o resultado foi diferente de 0

DC (Digit carry/borrow) : Resultado da operação ADD provocou um estouro dos 4 bits menos significativos.

1 houve estouro 0 não houve estouro

(8)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Algumas definições

C (Carry/borrow) : A última operação ADD provocou um estouro na palavra de 8 bits.

1 houve estouro 0 não houve estouro 0 não houve estouro

(9)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

ADDWF f, d Flags: C, DZ, Z 1 ciclo Operandos: 0 ≤ f ≤ 127 d = 0 ou 1

→ Adição do conteúdo do registrador W ao

→ Adição do conteúdo do registrador W ao conteúdo do registrador especificado por f.

Operação: (W) + (f) (d) Ex.: ADDWF INTCON, F

Antes → W = 0x20, INTCON = 0x07, C = x DC = x Z = x Depois → W = 0x20, INTCON = 0x27, C = 0 DC = 0 Z = 0

(10)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

ANDLW k Flags: Z 1 ciclo

Operandos: 0 ≤ k ≤ 255

→ Realiza o AND bit a bit entre o conteúdo de W e

→ Realiza o AND bit a bit entre o conteúdo de W e uma constante.

Operação: (W) AND (k) → (W) Ex.: ANDLW 0x0F

Antes → W = 0x95, k = B’00001111’ Z = x Depois → W = 0x05, k = B’00001111’ Z = 0

(11)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

MOVLW k Flags: Nenhuma 1 ciclo Operandos: 0 ≤ k ≤ 255

→ Copia o valor da constante no registrador W.

→ Copia o valor da constante no registrador W.

Operação: (k) → (W) Ex.: MOVLW 0x10

Antes → W = 0xNN, k = B’00010000’ Z = x Depois → W = 0x10, k = B’00010000’ Z = x

(12)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

MOVWF f Flags: Nenhuma 1 ciclo Operandos: 0 ≤ f ≤ 127

Copia o conteúdo de W no registrador f.

Copia o conteúdo de W no registrador f.

Operação: (W) → (f) Ex.: MOVWF PORTA

Antes → W = 0x50, PORTA = 0xNN Z = x Depois → W = 0x50, PORTA = 0x50 Z = x

(13)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

MOVF f, d Flags: Z 1 ciclo

Operandos: 0 ≤ f ≤ 127 d = 0 ou 1

Copia o conteúdo do registrador f no destino

Copia o conteúdo do registrador f no destino especificado.

Operação: (f) (d) Ex1.: MOVF TRISA, W

Antes → W = 0xNN, TRISA = 0x20 Z = x Depois → W = 0x20, TRISA = 0x20 Z = 0

(14)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

Ex2.: MOVF VAR1, d = 1 (default)

Antes → W = 0x31, VAR1 = 0x00 Z = x Depois → W = 0x31, VAR1 = 0x00 Z = 1

Obs.: Foi possível verificar se o conteúdo de VAR1 era zero.

Depois → W = 0x31, VAR1 = 0x00 Z = 1

(15)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

CLRF f Flags: Z 1 ciclo

Operandos: 0 ≤ f ≤ 127

Apaga o conteúdo de f.

Apaga o conteúdo de f.

Operação: 00h → (f) Z = 1 Ex1.: CLRF INTCON

Antes → W = 0xNN, INTCON = 0x11 Z = x Depois → W = 0xNN, INTCON = 0x00 Z = 1

(16)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

Ex2.: CLRF STATUS

Registrador STATUS

7 – R/W 6 – R/W 5 – R/W 4 – R 3 – R 2 – R/W 1 – R/W 0 – R/W 7 – R/W 6 – R/W 5 – R/W 4 – R 3 – R 2 – R/W 1 – R/W 0 – R/W

IRP RP1 RP0 TO PD Z DC C

Antes → 0 1 0 1 1 0 1 0

Depois → 0 0 0 1 1 1 1 0

(17)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

CLRW Flags: Z 1 ciclo

Operandos:

→ Apaga o conteúdo de W

→ Apaga o conteúdo de W

Operação: 00h → (W) Z = 1 Ex.: CLRW

Antes → W = 0xNN, Z = x

Depois → W = 0x00, Z = 1

(18)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

BCF f, b Flags: Nenhuma 1 ciclo Operandos: 0 ≤ f ≤ 127 0 ≤ b ≤ 7

Apaga o bit indicado por b do registrador f.

Apaga o bit indicado por b do registrador f.

Operação: 0 → (f <b>) Ex.: BCF TRISB, 1

Antes → TRISB = B’11111111’

Depois → TRISB = B’11111101’

(19)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

BSF f, b Flags: Nenhuma 1 ciclo Operandos: 0 ≤ f ≤ 127 0 ≤ b ≤ 7

Seta o bit indicado por b do registrador f.

Seta o bit indicado por b do registrador f.

Operação: 1 → (f <b>) Ex.: BSF STATUS, 6

Antes → STATUS = B’00111000’

Depois → STATUS = B’01111000’

(20)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

GOTO k Flags: Nenhuma 2 ciclo

Operandos: 0 ≤ k ≤ 2047

→ Desvia o programa para um ponto especificado

→ Desvia o programa para um ponto especificado por k (endereço).

Operação: k → PC <10:0>

PCLATCH <4:3> → PC <12:11>

(21)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

CALL k Flags: Nenhuma 2 ciclo

Operandos: 0 ≤ k ≤ 2047

→ Chama uma subrotina no endereço especificado

→ Chama uma subrotina no endereço especificado por k.

Operação: (PC) +1 → TOS k → PC <10:0>

PCLATCH <4:3> → PC <12:11>

(22)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

RETURN Flags: Nenhuma 2 ciclo

Operandos:

→ Retorna para o próximo endereço.

→ Retorna para o próximo endereço.

Operação: TOS → PC

(23)

5.2 Conjunto de Instruções do MCU PIC Mid-range (14-bits)

Exemplo de Instruções

RETLW k Flags: Nenhuma 2 ciclo Operandos: 0 ≤ k ≤ 255

→ Retorna de uma subrotina e move uma constante

→ Retorna de uma subrotina e move uma constante para W.

Operação: k → (W) TOS → PC

(24)

5.3

Tabela do

Datasheet

Referências

Documentos relacionados

Parágrafo quarto – Usuário internos Professores podem quitar multas através da doação de obras. relacionadas aos cursos que ministram na instituição e que não estejam na

1. Distribua uma folha de papel e uma caixa de giz de cera para cada participante. Peça que façam um desenho: escolha o tema e atribua o tempo de quinze minutos. Todos irão desenhar

Serão desconsiderados os recursos interpostos fora do prazo, enviados por via postal, fax ou meio eletrônico (e-mail) ou em desacordo com este Edital. Em caso de

ao final do processamento da mesma, a pilha estiver vazia, independentemente do estado em que o AP se encontra;. P

Pilha (tipo de botão, não-recarregável) Coleta no local pré-determinado Pilha (tipo de botão, recarregável) Lixo que a prefeitura não coleta. Pilha de botão Lixo que a

a) Pagar pontualmente os valores que sejam de sua responsabilidade, cabendo-lhe, também, o pagamento de tributos que recaiam sobre os serviços que prestar. b) Manter

“Os resultados do Plano BD em 2020, infelizmente, confirmaram o déficit que havia sido projetado pela CABEC e apresentado à dire- toria da AFABEC em reunião reali- zada

f) Use roupas adequadas. Não use roupas soltas ou joias. Mantenha o seu cabelo, roupas e luvas afastadas das partes móveis. Roupas, joias ou cabelos longos soltos podem ser