Você está na página 1de 30

PIC16F877A - Parte IV

Jadsonlee da Silva S
Jadsonlee.sa@univasf.edu.br
www.univasf.edu.br/~jadsonlee.sa

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Ambiente de Desenvolvimento
Integrado - IDE
Possibilitam:

Editar, compilar, simular e depurar programas.

IDEs PIC.

MPLAB v8.56.

Linguagem assembly e C.

CCS.

Linguagem C.

Disponveis em www.microchip.com
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

MPLAB
MPLAB_User_Guide_51519c.pdf.

Disponvel no site da disciplina.

Tutorial bsico na pg. 41.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

MPLAB
Desenvolvendo o primeiro projeto.

ProjectProject Wizard.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

MPLAB
Desenvolvendo o primeiro projeto.

Selecione um dispositivo.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

MPLAB
Desenvolvendo o primeiro projeto.

Selecione as ferramentas de linguagem.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

MPLAB
Desenvolvendo o primeiro projeto.

Crie um projeto.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

MPLAB
Desenvolvendo o primeiro projeto.

Adicione arquivos ao projeto.

Arquivo assembly (.asm) .

C:\Arquivos
de
programas\Microchip\MPASM
Suite\Template\Code\16F877ATEMP.asm

Clique trs
vezes: A, U e C.
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

MPLAB
Desenvolvendo o primeiro projeto.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

MPLAB
Desenvolvendo o primeiro projeto.

Construindo o projeto.

Project Build All.

Pode ser carregado em


qualquer parte da
memria disponvel.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

MPLAB
Adicione cdigo aps
main
; remaining code goes here

Monitorar o contedo dos registradores.

View Special Function Registers.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

MPLAB
Selecionar simulador.

Debugger MPLAB SIM

Executar.

Debugger Run.

Executar passo a passo.

Debugger Step over.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

MPLAB Assembly
Compilador MPASM

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - MPASM

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - MPASM

Comandos que controlam o compilador assembly.

Existem 6 tipos de diretivas no MPASM:

Controle Controlam como o cdigo montado.

Condicional assembly Permitem que sees de cdigos


sejam montados condicionalmente.

Ex.: define, end, equ, org, constant,...

Ifdef, ifndef, else, endif,...

Dados Controlam a alocao da memria e fornecem o


modo de se referir a itens de dados simbolicamente.

Ex.: __config, __maxram, data, res,...

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - MPASM

Listing Permite a especificao de ttulos e


paginao.

Macro Controlam a execuo e alocao de dados


dentro das definies do corpo de uma macro.

Ex.: macro, local, endm,...

Arquivo objeto Utilizadas para criao desses


arquivos.

Ex.: List, page, title,...

Ex.: code, udata, udata_shr, udata_acs,...

www.microchip.com DS33014K.
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A


Define o processador utilizado.

Inclui variveis especficas do processador Definio de


registradores.
Define uma constante.
Define
a
quantidade
mxima de RAM.

RAM no implementada.
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A


Define os valores dos bits do registrador configuration_word.
Definio de variveis.

Declara o incio de uma seo de


dados
no
inicializados
compartilhados O endereo da
RAM (GPR) pode ser especificado.

Reserva memria.

Semelhante a UDATA, mas pode


ser utilizada somente em partes
com memria acessvel em vrios
bancos.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A


Definio de variveis.
Declara o incio de uma seo de
dados no inicializados Cdigos
relocveis.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A


Definio de variveis.

Declara o incio de uma seo


de
dados
overlaid
no
inicializados Cdigo relocvel.

possvel declarar mltiplas variveis temporrias na


mesma locao de memria.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A


Cdigo reset e seleo da pgina da memria de programa.
Declara o incio de uma seo do
cdigo do programa.

Faz com que o linker gere o cdigo


de seleo da pgina, para setar os
bits da pgina (bits 3 e 4 de
PCLATH), para a pgina contendo o
rtulo designado.
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A


Programa principal e seleo do banco da RAM.
Declara o
principal.

incio

do

programa

Gera o cdigo para setar/zerar os bits


de
. seleo do banco RP0 e RP1 de
STATUS dependendo do valor de count.

V para linha atual.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A


Cdigo de Interrupo.

GIE = 0, PC salvo na pilha e PC = 0004.


Salva W em w_temp, STATUS em
status_temp e PCLATH em pclath_temp

Restaura contexto.

PC = TOS e GIE = 1.
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A

Memria de programa.

Qual pgina da memria de dados e qual


banco da RAM esto sendo utilizados?
Pgina 3 1800-1FFF

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A

Memria de dados - GPR.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A

Outro template.

PCLATH 3:4?

Pgina 0 CLRF PCLATH


entre NOP e GOTO.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A

Outro template.
Qual banco da RAM?
BCF STATUS, RP0
BCF STATUS, RP1

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A

Exemplos.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A

Exemplos.

View Special Function


Registers e File Registers

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Diretivas - Template 16F877A

Exerccios.
1.

Utilizando o cdigo do exemplo anterior, acrescente


um cdigo que zera as posies de memria 20h 2Fh.

2. Faa um programa que implemente uma progresso


aritmtica crescente com razo 2.
3. Faa um programa que implemente uma progresso
geomtrica crescente com razo 2.
4. Faa uma ULA que realiza todas as possveis
operaes disponveis no conjunto de instrues do
PIC (Soma, subtrao, and, xor, rotao,...)

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Você também pode gostar