Sie sind auf Seite 1von 28

Sistemas a Microprocessadores

Programação Assembly no PIC

Roteiro

Conjunto de Instruções no PIC

Desenvolvimento de Aplicações no MPLAB

Exemplo

Criação de um Programa em Assembly

Técnicas de Programação

Introdução

Exercícios de Aplicação

Instruções no PIC

Operação:

Conjunto de bits armazenados na memória de programa do microcontrolador

Formato das Instruções

Código de Operação: campo que especifica a tarefa a ser executada pelo MCU. Identificado por um mnemônico

Operando: informação associada à operação, quando necessário. Tipos:

Registrador (F)

Bit de um registrador (B)

Dado (L)

Instruções - PIC

Instruções - PIC

Instruções - PIC

Instruções - PIC

Formato das Instruções

35 operações, divididas em 4 grupos

Registradores

Bits

Literais

Controle

Termos Utilizados

W: work ou acumulador. Pode ser representado no operando da instrução pelo número 0. Embora não tenha endereço real, é imprescindível, pois não é possível escrever um dado em um registrador sem que antes ele passe por W.

F: file. Representa uma posição de memória de dados (ou registrador). Pode ser representado no operando da instrução pelo número 1.

L: literal. Valor numérico que pode ser representado em base 2, 8, 10, 16 ou código ASCII

Termos Utilizados

D: destino. Local para onde será enviado o resultado de uma operação matemática, ou uma determinada informação. Os destinos são do tipo F ou W.

B: bit. Indica um bit dentro de um byte.

T: teste. Indica um teste para verificar se um bit é 0 ou 1.

S: skip. A próxima linha será pulada se determinada condição for satisfeita.

S: set. Determinado bit será forçado (setado) a assumir valor 1.

C: clear. Determinado bit será forçado (setado) a assumir valor 0.

Z: zero. O resultado da última operação matemática foi 0.

ADD

AND

CLR

COM

DEC

INC

Mnemômicos

IOR

MOV

RL

RR

SUB

SWAP XOR

Significado das Instruções

Páginas 139-144 no datasheet

Elementos Básicos do Assembly

1) LABEL – string para indicar o início de uma subrotina

2) MNEMÔNICO - texto especificador da tarefa a executar

3) OPERANDO – registrador, constante, valor numérico ou variável

4) COMENTÁRIO

5) DIRETIVAS – para controle do Assembly; não são convertidas em .hex

Criação de um Programa em Assembly Passos

Título, nome do projetista

Arquivos include (modelos do MCU ou personalizados)

Paginação de memória

Variáveis

Identificação de Flags

Constantes

Identificação de pinos de I/O

Vetor de reset

Vetor de interrupção

Configuração dos SFR

Inicialização das variáveis

Rotina principal

Sub-rotinas

Desenvolvimento de Aplicações Passos

Fluxograma

Programa .asm ou código fonte (editor)

Programa .hex ou código objeto (montador)

Programa em linguagem de máquina no PIC (programador)

fonte (editor) ● Programa .hex ou código objeto (montador) ● Programa em linguagem de máquina no

Demonstração no MPLAB

Distribuição gratuita pela Microchip Technology

Demonstração no MPLAB ● Distribuição gratuita pela Microchip Technology

Técnicas de Programação

Inicialização de Variáveis

CLRF, MOVLW, MOVWF

Técnicas de Programação ● Inicialização de Variáveis ● CLRF, MOVLW, MOVWF
Técnicas de Programação ● Inicialização de Variáveis ● CLRF, MOVLW, MOVWF

Técnicas de Programação

Desvio no Programa

GOTO, PCL, PCLATH, CALL, desvio condicional, interrupção

Técnicas de Programação ● Desvio no Programa ● GOTO, PCL, PCLATH, CALL, desvio condicional, interrupção

Técnicas de Programação

Desvio no Programa

GOTO, PCL, PCLATH, CALL, desvio condicional, interrupção

Técnicas de Programação ● Desvio no Programa ● GOTO, PCL, PCLATH, CALL, desvio condicional, interrupção

Técnicas de Programação

Desvio no Programa

GOTO, PCL, PCLATH, CALL, desvio condicional, interrupção

Técnicas de Programação ● Desvio no Programa ● GOTO, PCL, PCLATH, CALL, desvio condicional, interrupção
Técnicas de Programação ● Desvio no Programa ● GOTO, PCL, PCLATH, CALL, desvio condicional, interrupção

Técnicas de Programação

Cálculos Matemáticos

Soma, Comparação e Subtração

Técnicas de Programação ● Cálculos Matemáticos ● Soma, Comparação e Subtração

Técnicas de Programação

Cálculos Matemáticos

Soma, Comparação e Subtração

Técnicas de Programação ● Cálculos Matemáticos ● Soma, Comparação e Subtração

Técnicas de Programação

Cálculos Matemáticos

Soma, Comparação e Subtração

Técnicas de Programação ● Cálculos Matemáticos ● Soma, Comparação e Subtração

Técnicas de Programação

Cálculos Matemáticos

Soma, Comparação e Subtração

Técnicas de Programação ● Cálculos Matemáticos ● Soma, Comparação e Subtração

Técnicas de Programação

Cálculos Matemáticos

Soma, Comparação e Subtração

Técnicas de Programação ● Cálculos Matemáticos ● Soma, Comparação e Subtração

Técnicas de Programação

Funções Lógicas

IOR, AND

Técnicas de Programação ● Funções Lógicas ● ● IOR, AND

Técnicas de Programação

Funções Lógicas

IOR, AND

Técnicas de Programação ● Funções Lógicas ● ● IOR, AND

Técnicas de Programação

Operações com bytes

COMF, SWAPF, RRF, RLF

Técnicas de Programação ● Operações com bytes ● COMF, SWAPF, RRF, RLF

Técnicas de Programação

Operações com bytes

COMF, SWAPF, RRF, RLF

Técnicas de Programação ● Operações com bytes ● COMF, SWAPF, RRF, RLF

Exercícios

Soma

Subtração

Ordenação

Instrução for

Instrução switch