Beruflich Dokumente
Kultur Dokumente
1. VISÃO GERAL
2. MPASM
MPASM™™
MPLAB® IDE 3. MPLAB® SIM
4. MPLAB® ICD2
24/02/2015 1 24/02/2015 2
24/02/2015 3 24/02/2015 4
24/02/2015 5 24/02/2015 6
1
24/02/2015
24/02/2015 7 24/02/2015 8
24/02/2015 9 24/02/2015 10
24/02/2015 11 24/02/2015 12
2
24/02/2015
USAREMOS
USAREMOS
USAREMOS
24/02/2015 13 24/02/2015 14
24/02/2015 15 24/02/2015 16
24/02/2015 17 24/02/2015 18
3
24/02/2015
24/02/2015 19 24/02/2015 20
USAREMOS
• MPASM™ : Usado para montar um programa.
• MPLINK™ : Usado para juntar programas ou bibliotecas.
bibliotecas
• MPLIB™ : Usado para criar uma biblioteca de rotinas.
24/02/2015 21 24/02/2015 22
24/02/2015 23 24/02/2015 24
4
24/02/2015
24/02/2015 25 24/02/2015 26
USAREMOS
Os recursos em
verde são aceitos
Os recursos em pelo dispositivo,
dispositivo
vermelho não mesmo se não
estão disponíveis tiverem sido
para o dispositivo instalados.
selecionado.
24/02/2015 29 24/02/2015 30
5
24/02/2015
USAREMOS
MPASM™
MPASM™
USAREMOS USAREMOS
24/02/2015 31 24/02/2015 32
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Componentes Componentes
24/02/2015 33 24/02/2015 34
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Elementos de um projeto Elementos de um projeto
USAREMOS
• É necessário que exista um MCP.
• Um arquivo “.ASM” pode ser aberto
fora de um MCP, apenas para
edição, não pode ser montado.
• Um arquivo aberto fora do MCP não
é incluído na montagem.
• MCW: MicroChip Workspace.
• MCP: MicroChip Project.
24/02/2015 35 24/02/2015 36
6
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
MPASM™ Geração do código para a MCU
• Assembler para PIC1X.
Montagem Programação
• Pode ser usado de duas formas:
USAREMOS
24/02/2015 37 24/02/2015 38
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Geração do módulo para o MPLINK™ Geração do módulo para o MPLINK™
• Módulos podem ser juntados (linked) para formar um
programa maior.
• A união de módulos é feita no MPLINK™.
• Módulos podem ser reusados em outros programas.
24/02/2015 39 24/02/2015 40
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Arquivos de entrada do MPASM™ Arquivos de saída do MPASM™
• ASM – Arquivo de código (assembler).
• COF – Arquivo com código de objeto (linker).
• HEX – Arquivo exadecimal para 8 bits.
• ASM – Código fonte.
• LST – Arquivo de listagem (assembler/compiler).
• INC – Referência de inclusão,
inclusão
• MAP – Arquivo de mapa (linker).
usado no cabeçalho (header).
• O – Arquivo de objeto (assembler/compiler).
• ERR – Arquivo de erro.
• HXL – Arquivo exadecimal para 16 bits, low.
• HXH – Arquivo exadecimal para 16 bits, high.
• XRF – Arquivo de referência cruzada.
24/02/2015 41 24/02/2015 42
7
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Visualizações Conversão para disassembly
Disassembly
Opcodes Do arquivo .ASM
digitado pelo usuário.
24/02/2015 43 24/02/2015 44
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Conversão para disassembly - ferramentas EEPROM
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
EEPROM – ferramntas Registradores – SRAM
32 colunas.
16 linhas.
32 16 = 512.
368 gerais.
144 específicos.
24/02/2015 47 24/02/2015 48
8
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Registradores – SRAM Registradores – SRAM
Banco 0
Banco 1
Banco 2
Banco 3
24/02/2015 49 24/02/2015 50
As posições desabilitadas não permitem alteração.
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Registradores – SRAM – ferramentas Pilha
• Esta janela apresenta a pilha como ela realmente
funciona.
• É diferente da forma como é mostrada nos livros.
• Erradamente, os registrado- • Para iniciantes, isto pode gerar confusão.
res presentes em dois ou
quatro bancos, aparecem,
apenas, no banco 0.
• Seus endereços nos demais
bancos constam como Indicativo de pilha vazia
GPR’s, mas são SFR’s.
24/02/2015 51 24/02/2015 52
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Variáveis locais Program Memory (14 bits)
• Usado no compilador.
24/02/2015 53 24/02/2015 54
• Não usado no montador.
9
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Program Memory (14 bits) Program Memory (14 bits) – ferramentas
• É recomendada a remoção da
• São 8192 linhas. coluna “line”.
• Faixa: 0000h a 1FFFh (13 bits). • Essa coluna começa em “1”, o aluno
• São 14 bits para o opcode. pode assumir esse valor como
sendo o endereço, mas não é.
• Faixa: 0000h a 3FFFh (14 bits).
24/02/2015 55 24/02/2015 56
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Registradores específicos Registradores específicos
• WREG não possui endereço.
• WREG não é mnemônico válido no MPASM™.
• INDF não é um registrador, não há conteúdo.
• EECON2 não é um registrador, não há conteúdo.
24/02/2015 57 24/02/2015 58
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Registradores específicos Registradores específicos
WREG 01B CCPR2
000 INDF
01B CCPR2L
001 TMR0 01C CCPR2H
002 PCL 01D CCP2CON
003 STATUS 01E ADRESH
004
005
FSR
PORTA
01F ADCON0 • O SFR name pode ser
081 OPTION_REG
006
007
PORTB
PORTC
085 TRISA usado na programação.
086 TRISB
008 PORTD
009 PORTE
087
088
TRISC
TRISD
• O assembler puro não
00A PCLATH
00B INTCON
089
08C
TRISE
PIE1
permite o uso do SFR name.
00C PIR1
08D PIE2
00D
00E
PIR2
TMR1
08E PCON • O uso do SFR name é um
091 SSPCON2
00E
00F
TMR1L
TMR1H
092
093
PR2
SSPADD
recurso do MPASM™.
010 T1CON
094 SSPSTAT
011 TMR2
098 TXSTA
012 T2CON
099 SPBRG
013 SSPBUF
09E ADRESL
014 SSPCON
09F ADCON1
015 CCPR1
10C EEDATA
015 CCPR1L
10D EEADR
016 CCPR1H
10E EEDATH
017 CCP1CON
10F EEADRH
018 RCSTA
18C EECON1
24/02/2015 019 TXREG 59 24/02/2015 60
18D EECON2
01A RCREG
10
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Inspeção de registradores Registradores específicos
• Os SFR’s podem ser chamados, no programa, pelos
seus endereços reais ou pelo seus nomes.
• O nome é convertido para o endereço no disassembly.
24/02/2015 61 24/02/2015 62
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits dos SFR’s Mnemônicos
• Os bits dos SFR’s
podem ser chamados,
no programa, pelos
seus endereços reais Tipo Exemplos Disassembly
ou pelo seus nomes. De instrução NOP, ADDLW, CALL Sim
De SFR INDF, INTCON, STATUS Não
• O endereço do bit
De bits de SFR C, Z, DC, GIE, RP0 Não
varia de zero a sete.
De controle W, F Não
• O nome é convertido Rótulo Não
para o endereço no
disassembly.
• Ao falar em mnemônico, sem especificar
o tipo, considera-se o de instrução.
24/02/2015 63 24/02/2015 64
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Uso de memória Uso de memória
Flash SRAM
24/02/2015 213=8192 Registradores de uso geral 65 24/02/2015 66
11
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits de configuração Bits de configuração
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits de configuração Código fonte (.ASM)
• Qualquer editor de texto compatível com ASCII pode ser
usado para gerar o código fonte.
• O código é formado por linhas que contém as instruções.
• Cada linha contém apenas uma instrução.
• Cada linha p pode conter q quatro tipos
p de informação:
E d
Endereço d fi ti
do configuration V l d
Valor do
word na flash configuration word • Label – Rótulo
• Mnemonic, Directive, Macro
• Operands – Operador
• Comments – Comentário
• Para facilitar a leitura do código pelo usuário, recomenda-
se usar colunas separadas para cada tipo de informação.
24/02/2015 69 24/02/2015 70
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Colunas Exemplo
USAREMOS
• Coluna 1: Label Rótulo
• Coluna 2:
USAREMOS
• Mnemonic Mnemônico
USAREMOS
• Directive Diretiva
• Macro Macro
USAREMOS
24/02/2015 71 24/02/2015 72
12
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Colunas Rótulo (Label)
• Elementos:
• Rótulo
• Mnemônico • Coluna 1
• Diretiva • Pode conter qualquer texto, exceto:
• Macro • Começar com dois underscores consecutivos.
• Operandos • Começar com um underscore seguido por um número.
• Comentários. • Ser uma palavra reservada do assembler.
• Ser maior do que 32 letras.
• Somente os Mnemônicos e operandos fazem
parte do código assembly puro.
• Rótulos, diretivas, macro e comentários não são
essenciais, são acréscimos disponibilizados no
24/02/2015 MPLAB® e não são enviados ao chip. 73 24/02/2015 74
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Mnemônico Diretiva
• Coluna 2
• Coluna 2 • É um comando inserido no código.
• É um comando inserido no código. • Não está associado a uma instrução.
• Define a instrução a ser montada.
montada • Usado para controlar a montagem.
montagem
• São determinados pela linguagem assembly. • Não depende do tamanho da letra.
• Não depende do tamanho da letra, o padrão é maiúsculo. • Não gera linha no código disassembly.
• Não é gravado no chip.
24/02/2015 75 24/02/2015 76
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Tipos de diretivas Exemplos de diretivas
USAREMOS
1. De controle. De controle
Define como a montagem é feita. USAREMOS
4. De listagem.
Define o formato da listagem do montador. De dados
USAREMOS
13
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
#INCLUDE Include File (.INC)
24/02/2015 79 24/02/2015 80
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Include File (.INC) Include File (.INC)
#INCLUDE <P16F877.INC>
LIST
;==========================================================================
; MPASM PIC16F877 processor include
;
; (c) Copyright 1999-2012 Microchip Technology, All rights reserved
;==========================================================================
NOLIST
;==========================================================================
; This
Thi hheader
d fil
file ddefines
fi configurations,
fi ti registers,
i t and
d other
th useful
f l
; bits of information for the PIC16F877 microcontroller. These names
; are taken to match the data sheets as closely as possible.
;
; Note that the processor must be selected before this file is included.
; The processor may be selected the following ways:
;
; 1. Command line switch:
; C:\MPASM MYFILE.ASM /PIC16F877
; 2. LIST directive in the source file
; LIST P=PIC16F877
; 3. Processor Type entry in the MPASM full-screen interface
USAREMOS ; 4. Setting the processor in the MPLAB Project Dialog
;==========================================================================
;==========================================================================
;
; Verify Processor
;
;==========================================================================
IFNDEF __16F877
24/02/2015 81 24/02/2015 MESSG "Processor-header file mismatch. Verify selected processor." 82
ENDIF
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Sintaxe da inclusão de arquivo Include File (.INC)
#include include_file • A inclusão de arquivo de definição da
#include "include_file"
USAREMOS
PIC® (.INC) permite o uso de:
#include <include_file> • Mnemônicos de SFR’s.
• São permitidas até 5 hierarquias. • Mnemônicos de bits de SFR’s.
• Sã permitidas
São itid até
té 255 inclusões.
i l õ • Mnemônicos do configuration word.
• Para arquivos do usuário, pode-se colocar o caminho • Esses mnemônico e a atribuição do valor
completo. numérico está contida no próprio arquivo
• Exemplo: #include "c:\Program Files\mydefs.inc" (.INC) e podem ser consultados.
• A não inclusão do arquivo de definição
requer o uso dos endereços reais.
24/02/2015 83 24/02/2015 84
14
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Resultado de montagem sem #INCLUDE <P16F877.INC> #DEFINE e #UNDEFINE
----------------------------------------------------------------------
Debug build of project `E:\My Documents\2012_1\Disciplinas\Microprocessadores\Assembler\Marco.mcp' started.
Language tool versions: MPASMWIN.exe v5.45, mplink.exe v4.43, mplib.exe v4.43
Preprocessor symbol `__DEBUG' is defined.
Thu Jul 11 19:49:21 2013
----------------------------------------------------------------------
Make: The target "H:\2013_1\Microprocessadores\Assembler\pr.o" is out of date.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F877 "pr.asm" /l"pr.lst" /e"pr.err" /d__DEBUG=1
• Atribui um nome a um número.
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 6 : Symbol not previously defined (STATUS)
Error[113]
Error[113]
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 6 : Symbol not previously defined (RP1)
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 7 : Symbol not previously defined (STATUS)
• Este procedimento facilita a compreensão do código.
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 7 : Symbol not previously defined (RP0)
Error[113]
Error[113]
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 11 : Symbol not previously defined (STATUS)
H:\2013
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM
1\MICROPROCESSADORES\ASSEMBLER\PR ASM 11 : Symbol not previously defined (RP1)
• A atribuição pode ser desfeita.
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 12 : Symbol not previously defined (STATUS)
Error[113]
Error[113]
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 12 : Symbol not previously defined (RP0)
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 16 : Symbol not previously defined (STATUS)
• São diretivas de controle.
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 16 : Symbol not previously defined (RP1)
Error[113]
Error[113]
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 17 : Symbol not previously defined (STATUS)
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 17 : Symbol not previously defined (RP0)
• O tamanho do número deve ser coerente com a aplicação.
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 21 : Symbol not previously defined (STATUS)
Error[113]
Error[113]
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 21 : Symbol not previously defined (RP1)
H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 22 : Symbol not previously defined (STATUS)
• Se necessário, o MPASM™ corrige o erro removendo os
Error[113] H:\2013_1\MICROPROCESSADORES\ASSEMBLER\PR.ASM 22 : Symbol not previously defined (RP0)
Halting build on first failure as requested.
----------------------------------------------------------------------
bits mais significativos.
Debug build of project `E:\My Documents\2012_1\Disciplinas\Microprocessadores\Assembler\Marco.mcp' failed.
Language tool versions: MPASMWIN.exe v5.45, mplink.exe v4.43, mplib.exe v4.43
Preprocessor symbol `__DEBUG' is defined.
Thu Jul 11 19:49:22 2013
----------------------------------------------------------------------
BUILD FAILED
24/02/2015 85 24/02/2015 86
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
#DEFINE e #UNDEFINE ORG
24/02/2015 87 24/02/2015 88
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Program Memory END
24/02/2015 89 24/02/2015 90
15
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Macro Operando
• Coluna 3
• Gera linha no código disassembly.
• As instruções podem usar um, dois ou
• Coluna 2 nenhum operando.
• É uma sequência
q de instruções
ç ou de diretivas • p
Operandos fornecem informações
ç numéricas
que são executadas paralelamente à execução necessárias à execução da instrução.
do código assembly assim que forem invocadas. • Os números podem ser indicados por labels.
• O operando é colocado depois (à direita) do
mnemônico, separado por um ou mais
espaços ou tabulações.
• Múltiplos operandos são separados um do
outro por meio de vírgula.
24/02/2015 91 24/02/2015 92
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Operandos para a família mid-range Comentário
01 ANDWF f,d 15 BCF f,b 23 ANDLW k • Coluna 4
02 IORWF f,d 16 BSF f,b 24 IORLW k
03 XORWF f,d • São textos explicativos para a
17 BTFSC f,b 25 XORLW k
04 ADDWF f,d compreensão do código.
18 BTFSS f,b 26 ADDLW k
05 SUBWF f,d 27 SUBLW k • São precedidos por ponto-e-vírcula.
06 COMF f d
f,d 19 CLRF f 28 MOVLW k • T d conteúdo
Todo t úd à direita
di it dod ponto-e-vírcula
t í l
07 INCF f,d 20 MOVWF f 29 RETLW k é ignorado pelo montador.
08 DECF f,d • Ponto-e-vírgula contido em uma cadeia
09 INCFSZ f,d 21 GOTO k 30 CLRW
22 CALL k (string) não é considerado, pelo montador,
10 DECFSZ f,d 31 NOP
como o início de um comentário.
11 RLF f,d 32 CLRWDT
33 SLEEP • Quando o comentário diz respeito ao
12 RRF f,d
34 RETFIE programa todo ou a um bloco do
13 SWAPF f,d
35 RETURN programa, é melhor usar a coluna 1.
14
24/02/2015 MOVF f,d 93 24/02/2015 94
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Cores Tipos de números
Octal g
O'dígitos' O'777'
D'dígitos' D'100'
Decimal
.'dígitos' .100
• Azul: Header, diretivas e mnemônicos
H'dígitos' H'9f'
• Verde: Comentários Hexadecimal USAREMOS
0xhex_digits 0x9f
• Vermelho: Operandos ASCII
A'dígitos' A'C'
'dígitos' 'C'
• Preto: Constantes
Estas cores podem ser alteradas. • A base padrão é a decimal.
24/02/2015 95 • Se a base não for especificada, assume-se decimal.
24/02/2015 96
16
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Configuração da frequência de operação Usando “f” abaixo de 15kHz
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Operações do MPASM™ Operações em ordem de precedência
$ Current/Return program counter == Equal to
( Left Parenthesis != Not equal to
) Right Parenthesis & Bitwise AND
! Item NOT (logical complement) ^ Bitwise exclusive OR
• O MPASM™ permite o uso de operações - Negation (2's complement) | Bitwise inclusive OR
~ Complement && Logical AND
matemáticas em lugar dos operandos. low1 Return low byte of address || Logical OR
high1 Return high byte of address = Set equal to
• Essas operações são realizadas pelo upper1 Return upper byte of address += Add to, set equal
* Multiply -= Subtract, set equal
MPASM™ na geração do código / Divide *= Multiply, set equal
% Modulus /= Divide, set equal
disassembly antes da montagem. + Add %= Modulus, set equal
- Subtract <<= Left shift, set equal
<< Left shift >>= Right shift, set equal
>> Right shift &= AND, set equal
>= Greater or equal |= Inclusive OR, set equal
> Greater than ^= Exclusive OR, set equal
< Less than ++ Increment2
<= Less or equal -- Decrement2
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits de configuração Bits de configuração
; Bits de configuração
#include <p16f877.inc>
__config _XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _DEBUG_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF
end
17
24/02/2015
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits de configuração Bits de configuração
_FOSC_LP 3FFCh 11111111111100b LP oscillator
_WDTE_OFF
_FOSC_XT 3FFDh 11111111111101b XT oscillator 3FFBh WDT disabled
_WDT_OFF
_FOSC_HS 3FFEh 11111111111110b HS oscillator
_WDTE_ON
_FOSC_EC 3FFFh 11111111111111b ECIO; port I/O function on RA6/OSC2/CLKO 3FFFh WDT enabled
_WDT_ON
INTRC oscillator
_FOSC_INTOSCIO 3FFCh _PWRTE_ON 3FF7h PWRT enabled
port I/O function on both RA6/OSC2/CLKO pin and RA7/OSC1/CLKI pin
_PWRTE_OFF 3FFFh PWRT disabled
INTRC oscillator
_FOSC_INTOSCCLK 3FFDh
CLKO function on RA6/OSC2/CLKO pin and port I/O function on RA7/OSC1/CLKI pin
_FOSC_EXTRCIO 3FFEh EXTRC oscillator; port I/O function on RA6/OSC2/CLKO _MCLRE_OFF
3FDFh RA5/MCLR/VPP pin function is digital I/O, MCLR internally tied to VDD
_FOSC_EXTRCCLK 3FFFh EXTRC oscillator; CLKO function on RA6/OSC2/CLKO _MCLR_OFF
_MCLRE_ON
3FFFh RA5/MCLR/VPP pin function is MCLR
INTRC oscillator _MCLR_ON
_INTRC_IO 3FFCh
port I/O function on both RA6/OSC2/CLKO pin and RA7/OSC1/CLKI pin
_CCPMX_RB3
INTRC oscillator 2FFFh CCP1 function on RB3
_INTRC_CLKOUT 3FFDh _CCP1_RB3
CLKO function on RA6/OSC2/CLKO pin and port I/O function on RA7/OSC1/CLKI pin
_CCPMX_RB0
_EXTRC_IO 3FFEh EXTRC oscillator; port I/O function on RA6/OSC2/CLKO 3FFFh CCP1 function on RB0
_CCP1_RB0
_EXTRC_CLKOUT 3FFFh EXTRC oscillator; CLKO function on RA6/OSC2/CLKO
2 MPASM™
MPASM™ 2 MPASM™
MPASM™
Bits de configuração Bits de configuração
; Bits de configuração
#include <p16f877.inc>
_CPD_ON 3EFFh Data EE memory code‐protected __config _XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _DEBUG_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF
end
_CPD_OFF 3FFFh Code protection off
_CP_ON 1FFFh 0000h to 0FFFh code‐protected (all protected)
_CP_ALL 1FFFh 0000h to 0FFFh code‐protected (all protected) _XT_OSC 3FEDh
_CP_OFF 3FFFh Code protection off
_WDT_OFF 3FFBh
_WRT_ALL
39FFh 0000h to 0FFFh write‐protected
WRT_PROTECT_ALL _PWRTE_OFF 3FFFh
_WRT_2048
WRT 2048 3BFFh 0000h to 07FFh write
0000h to 07FFh write‐protected
protected, 0800h to 0FFFh may be modified by EECON control
0800h to 0FFFh may be modified by EECON control
_WRT_PROTECT_2048 3BFFh 0000h to 07FFh write‐protected, 0800h to 0FFFh may be modified by EECON control _CP_OFF 3FFFh
_WRT_256 3DFFh 0000h to 00FFh write‐protected, 0100h to 0FFFh may be modified by EECON control
3729h
_WRT_PROTECT_256 3DFFh 0000h to 00FFh write‐protected, 0100h to 0FFFh may be modified by EECON control _DEBUG_ON 37FFh
_WRT_OFF
3FFFh Write protection off _BODEN_ON 3FFFh
_WRT_PROTECT_OFF
_LVP_OFF 3F7Fh
_DEBUG_ON 37FFh In‐Circuit Debugger enabled, RB6 and RB7 are dedicated to the debugger
_DEBUG_OFF 3FFFh In‐Circuit Debugger disabled, RB6 and RB7 are general purpose I/O pins
_CPD_OFF 3FFFh
MPLAB® SIM
USAREMOS
18
24/02/2015
USAREMOS
Montagem
19
24/02/2015
USAREMOS
20
24/02/2015
21
24/02/2015
Desmontagem
k = 000 0000 0101 b
Opcode Disassembly k= 5 h
Montagem
• É necessário saber realizar, manualmente, a
montagem e a desmontagem da operação,
24/02/2015 127 24/02/2015 128
com base na folha de dados do chip.
Banco 0
003h, (banco 0)
083h, (banco 1)
103h, (banco 2)
183h, (banco 3)
Banco 1
003h, opcode
Banco 2
A posição indicada por ORG contem o apontador para a posição inicial da flash, 5.
Banco 3
24/02/2015 129 24/02/2015 130
22
24/02/2015
STATUS,RP1
STATUS,RP1
STATUS,RP1
• Neste exemplo, a PIC® usa o endereço do status
register do banco 0 mesmo estando no banco 3.
BCF
BCF
BSF
BSF
• Isto se deve ao fato de que o endereçamento por 7 bits
BSF STATUS,RP0
coincide com o endereçamento por 9 bits no banxo 0.
2 3 • Em outras palavras, o endereçamento por 7 bits é feito
10 11 como se todos os registradores estivessem no banco 0.
24/02/2015 BCF STATUS,RP0 133 24/02/2015 134
Instalação
completa
http://www.microchip.com/stellent/groups/devtools_sg/documents/devtools/%7Eexport/en010046%7E26%7Een006096%7EPressReleaseLayout/118902-3.png
http://www.microchip.com/stellent/groups/devtools_sg/documents/devtools/%7Eexport/en010046%7E26%7Een006096%7EPressReleaseLayout/118902-1.png
Instalação
24/02/2015 137 24/02/2015 mínima 138
23
24/02/2015
Instalação
completa
Instalação
mínima
24/02/2015
141 24/02/2015 142
24
24/02/2015
25
24/02/2015
26
24/02/2015
Possíveis explicações:
• Kit desligado.
• Kit desconectado.
• Defeito de natureza elétrica.
24/02/2015
157 24/02/2015 158
Comandos habilitados
Código
MPLAB® em branco
Chip
• Erro na configuração do CH7.
• Colocar as quatro chaves para baixo.
27
24/02/2015
Lê a EEPROM
28
24/02/2015
Após
• Apagar o chip e
• Ler o chip,
a program memory é:
• Antes da gravação, é preciso executar o comando make.
• Este programa preenche o campo program memory do
MPLAB® com o código montado.
Também é bom verificar se o
• Sempre que o MPLAB® considerar que o código
chip está mesmo em branco.
assembler não corresponde ao código montado,
localizado na program memory do MPLAB®, haverá
24/02/2015 169
solicitação para que se execute a montagem.
24/02/2015 170
29
24/02/2015
30
24/02/2015
Execução
Run
Execução do
24/02/2015 181 24/02/2015
MPLAB® SIM código no182
MPLAB®
31