Você está na página 1de 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
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.
Mnemômicos
● ADD ● IOR
● AND ● MOV
● CLR ● RL
● COM ● RR
● DEC ● SUB
● INC ● 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 ● Identificação de pinos
projetista de I/O
● Arquivos include ● Vetor de reset
(modelos do MCU ou ● Vetor de interrupção
personalizados)
● Configuração dos
● Paginação de SFR
memória
● Inicialização das
● Variáveis variáveis
● Identificação de Flags ● Rotina principal
● Constantes ● 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)
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
● 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
● 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
Exercícios
● Soma
● Subtração
● Ordenação
● Instrução for
● Instrução switch

Você também pode gostar