


















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Programação Assembly - Parte 2: Organização da rotina e criação de tabela de dados
Tipologia: Notas de aula
1 / 26
Esta página não é visível na pré-visualização
Não perca as partes importantes!



















Instruções e Diretivas [Xerox].
Sala: 217.
ORGANIZAÇÃO DO CÓDIGO-FONTE
5V
Considere o circuito a seguir. Caso o botão seja pressionado o LEDdeve apagar. Do contrário, o LED deve permanecer ligado.
INÍCIO
UFSJ – CAP© Edgar C. Furtado
RD0 VSS^ 16F
VDD RB
BOTÃO
Botão Pressionado
RB0 = 0
LED APAGADO
Botão Livre
RB0 = 1
LED LIGADO
LIGA LED
DESLIGA LED
RB0 = 1?
NÃO
SIM
ORGANIZAÇÃO DO CÓDIGO-FONTE
UFSJ – CAP© Edgar C. Furtado
ORGANIZAÇÃO DO CÓDIGO-FONTE
01) Cabeçalho:
Dados relativos ao projeto do código-fonte.
Exemplo informações fornecidas no cabeçalho!
Indica início do comentário! UFSJ – CAP© Edgar C. Furtado
Indica início do comentário!
ORGANIZAÇÃO DO CÓDIGO-FONTE
02) Arquivo de Definições e configuração do microcontrolador:
Existem duas formas de se especificar as atribuições. A primeira consiste em utilizar
mnemônicos
, os quais representam o estado do
hardware
. A segunda forma consiste em se
escrever diretamente a
palavra de configuração binária
.
UFSJ – CAP© Edgar C. Furtado
palavra de configuração binária
.
A^
palavra
de
configuração
consiste
em
um
número
binário
de
14bits,
armazenado em um registrador que fica localizado após o final da memóriade programa. Esse registrador está acessível somente durante o processo degravação do PIC, e tem por finalidade armazenar a configuração interna do hardware
do mesmo.
ORGANIZAÇÃO DO CÓDIGO-FONTE
Escrevendo diretamente a palavra de configuração binária
.
UFSJ – CAP© Edgar C. Furtado
ORGANIZAÇÃO DO CÓDIGO-FONTE
O PWRTE é um contador digital que permite o início do processamento domicrocontrolador depois de transcorrido cerca de
72ms
após terminal de
reset
MCLR (terminal 1) se tornar nível lógico 1. UFSJ – CAP© Edgar C. Furtado
Nesse caso o microcontrolador foi configurado com:
reset
por baixa de tensão
ativado, proteção do código fonte desligada, contador de tempo após
reset
por
queda/baixa
de tensão
de alimentação
ativado,
contador de tempo
do
Watch
_- Dog
desligado,
oscilador
externo
via
cristal
ou
ressonador
com
ORGANIZAÇÃO DO CÓDIGO-FONTE
Watch UFSJ – CAP© Edgar C. Furtado
_- Dog
desligado,
oscilador
externo
via
cristal
ou
ressonador
com
frequência entre 200kHz e 4MHz.Os mnemônicos de configuração devem obrigatoriamente ser separados por & ; Em
termos
de
palavra
de
configuração
binário
a
configuração
acima
é
equivalente a:
ORGANIZAÇÃO DO CÓDIGO-FONTE
03) Definindo Variáveis e macros:
Como visto na AULA 08 a declaração das variáveis pode ser feita utilizando-se
EQU
e/ou
CBLOCK-ENDC
. Além disso, as diretivas
#DEFINE
e
MACRO-ENDM
podem ser utilizadas UFSJ – CAP© Edgar C. Furtado
Associa um conjunto de instruções a uma palavra!
Associa uma instrução a uma palavra!
ORGANIZAÇÃO DO CÓDIGO-FONTE
Exemplo com várias formas de declaração de variáveis e macros: UFSJ – CAP© Edgar C. Furtado
ORGANIZAÇÃO DO CÓDIGO-FONTE
05) Vetor de Interrupção:
É necessário definir um vetor que aponta
para
a^
parte
da
memória
de
programa
que
irá
armazenar
as
instruções relativas às interrupções. Esse endereço é padrão para omicrocontrolador PIC, sendo definido como ORG
0x004.
16
UFSJ – CAP© Edgar C. Furtado
Retorno da interrupção
06) Subrotinas:
Espaço para as subrotinas.
ORGANIZAÇÃO DO CÓDIGO-FONTE
07) Código Principal:
Espaço para o código principal, que pode ser
dividido em duas partes:•
Configuração dos registradores especiais: configuram-se osregistradores
especiais
de
interesse,
tais
como
OPTION_REG, TRISX, etc;
-^
Rotina principal. UFSJ – CAP© Edgar C. Furtado
Para configuração dos registradores é necessário conhecimento das
funções do microcontrolador:
-^
Temporizadores;
-^
Módulo de captura, comparação e geração PWM;
-^
Comparadores analógicos;
-^
Comunicação serial;
-^
Saída analógica;
; UFSJ/CAP; MICROPROCESSADORES; VERSAO 1.0; SISTEMA PARA ACIOINAMENTO DE UM LED; POR MEIO DO COMANDO DE UMA BOTOEIRA; -- ARQUIVO DE DEFINIÇÕES: #INCLUDE <P16F877.INC>__CONFIG _BODEN_ON & _CP_OFF & _PWRTE_ON& _WDT_OFF & _LVP_OFF & _XT_OSC ; -- PAGINAÇÃO DE MEMÓRIA: #DEFINE
BANK
BCF STATUS,RPO
; -- INÍCIO DO PROGRAMA: INICIO
CLRF
PORTB
CLRF
PORTD
BANK1MOVLW
B’00000100’
MOVWF
TRISB
MOVLW
B’00000001’
MOVWF
TRISD
MOVLW
B'00000111'
MOVWF
ADCON
CLRF
INTCON
BANK
; -- ROTINA PRINCIPAL: MAIN
#DEFINE
BANK
BCF STATUS,RPO
#DEFINE
BANK
BSF STATUS,RPO
; -- DEFINIÇÃO DE FLAGS: #DEFINE
BOTAO
PORTB,
#DEFINE
LED
PORTD,
; -- VETOR DE RESET: ORG
0X
GOTO
INICIO
; -- INÍCIO INTERRUPÇÃO: ORG
0X
RETFIE
MAIN
BTFSC
BOTAO
GOTO
BOTAO_LIB
GOTO
BOTAO_PRES
BOTAO_LIB
BCF
LED
GOTO
MAIN
BOTAO_PRES
BSF
LED
GOTO
MAIN
; -- FIM DO PROGRAMA:
END
Quando se necessita armazenar um conjunto de valores constantes,que
podem
ser
acessados
por
meio
de
um
índice,
utiliza-se
de
tabelas;A^
tabela
consiste
de
uma
subrotina,
que
é
chamada
por
meio
da
instrução CALL. Na subrotina utiliza-se os registradores PCL e PCLATH para
acessar
o
valor
de
interesse
da
tabela
CRIAÇÃO DE TABELA DE DADOS
para UFSJ – CAP© Edgar C. Furtado
acessar
o
valor
de
interesse
da
tabela
valor
de
interesse
é
extraído
da
tabela,
por
meio
da
instrução
RETLW;O registrador PCL está presente em todos os bancos de registradores,ou seja, não é necessário mudar de banco para alterar o conteúdo domesmo.