Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Aula - 09, Notas de aula de Mecatrônica

Programação Assembly - Parte 2: Organização da rotina e criação de tabela de dados

Tipologia: Notas de aula

Antes de 2010

Compartilhado em 20/10/2010

alan-barbosa-9
alan-barbosa-9 🇧🇷

5

(2)

14 documentos

1 / 26

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Microprocessadores
Aula 09:
Programação Assembly
Parte 2: Organização
Programação Assembly
Parte 2: Organização
da rotina e criação de tabela de dados.
Referência para a aula:
1 Apostila: Instruções e Diretivas [Xerox].
Prof.: Edgar Campos Furtado
Sala: 217.2
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a

Pré-visualização parcial do texto

Baixe Aula - 09 e outras Notas de aula em PDF para Mecatrônica, somente na Docsity!

Microprocessadores Aula 09: Programação Assembly

Parte 2: Organização

Programação Assembly

Parte 2: Organização

da rotina e criação de tabela de dados.Referência para a aula: 1 – Apostila:

Instruções e Diretivas [Xerox].

Prof.: Edgar Campos Furtado

[email protected]

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.

; NOME

DO PROJETO

; CLIENTE; PROGRAMADORES; VERSÃO; DESCRIÇÃO DO ARQUIVO

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

.

__CONFIG <ATRIBUIÇÕES>

; PALAVRA DE CONFIGURAÇÃO

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

  • Time_

desligado,

oscilador

externo

via

cristal

ou

ressonador

com

ORGANIZAÇÃO DO CÓDIGO-FONTE

Watch UFSJ – CAP© Edgar C. Furtado

_- Dog

  • Time_

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:

__CONFIG

B'

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

INTCON,

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

O^

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.