Ir ao conteúdo
  • Cadastre-se

Tutorial de PIC - Programação em Assembly


Posts recomendados

O mega drive usava assembly... não é ?

A linguagem nativa dos Procesadores/Microcontroladores é ASM.

Com o a evolução dos periféricos,a programação se tornou grande e de nível específico(grande conhecimento em HardWare/Software).

Então 'portaram' a linguagem C para instruções de microcontroladores tornando mais acessível aos iniciantes (ou avançados) a programação,mas com certas limitações da linguagem de alto nível.

De qualquer maneira,se voce não tem conhecimento na linguagem nativa do micro,voce terá problemas em programação avançada pois não entenderá corretamente os DataSheets ou ficará totalmente dependente do compilador de alto nível.

É comum a programação Híbrida (rotinas principais ou 'importantes' em ASM dentro do código de alto nível).

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • 4 semanas depois...
  • 3 semanas depois...
  • 2 semanas depois...

eu tentei fazer o primeiro programa mas ta dando erro pra compilar!

olha o programa como tá:


[B][COLOR="RoyalBlue"]#INCLUDE[/COLOR][/B] <PIC16F628A.INC>

[B][COLOR="RoyalBlue"]__CONFIG[/COLOR][/B] _INTOSC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _BOREN_OFF & _LVP_OFF & _CP_OFF & DATA_CP_OFF

[B][COLOR="RoyalBlue"]#DEFINE[/COLOR][/B] BANCO_0 [B][COLOR="RoyalBlue"]BCF[/COLOR][/B] STATUS,RP0
[B][COLOR="RoyalBlue"]#DEFINE[/COLOR][/B] BANCO_1 [B][COLOR="RoyalBlue"]BSF[/COLOR][/B] STATUS,RP0

[B][COLOR="RoyalBlue"]CBLOCK 0X20[/COLOR][/B]
DELAY_0
DELAY_1
DELAY_2
[B][COLOR="RoyalBlue"]ENDC[/COLOR][/B]

INI_DELAY_0 [B][COLOR="RoyalBlue"]EQU[/COLOR][/B] .255
INI_DELAY_1 [B][COLOR="RoyalBlue"]EQU[/COLOR][/B] .50
INI_DELAY_2 [B][COLOR="RoyalBlue"]EQU[/COLOR][/B] .13

[B][COLOR="RoyalBlue"]#DEFINE[/COLOR][/B] LED PORTA,0

[B][COLOR="RoyalBlue"]ORG 0X00[/COLOR][/B]
[B][COLOR="RoyalBlue"]GOTO[/COLOR][/B] INICIO

[B][COLOR="RoyalBlue"]ORG 0X04[/COLOR][/B]
[B][COLOR="RoyalBlue"]RETFIE[/COLOR][/B]

INICIO
BANCO_1
[B][COLOR="RoyalBlue"]MOVLW[/COLOR][/B] B'11111110'
[B][COLOR="RoyalBlue"]MOVWF[/COLOR][/B] TRISA
[B][COLOR="RoyalBlue"]MOVLW[/COLOR][/B] B'11111111'
[B][COLOR="RoyalBlue"]MOVWF[/COLOR][/B] TRISB
BANCO_0
[B][COLOR="RoyalBlue"]MOVLW[/COLOR][/B] B'00000111'
[B][COLOR="RoyalBlue"]MOVWF[/COLOR][/B] CMCON

[B][COLOR="RoyalBlue"]MOVLW[/COLOR][/B] INI_DELAY_0
[B][COLOR="RoyalBlue"]MOVWF[/COLOR][/B] DELAY_0
[B][COLOR="RoyalBlue"]MOVLW[/COLOR][/B] INI_DELAY_1
[B][COLOR="RoyalBlue"]MOVWF[/COLOR][/B] DELAY_1
[B][COLOR="RoyalBlue"]MOVLW[/COLOR][/B] INI_DELAY_2
[B][COLOR="RoyalBlue"]MOVWF[/COLOR][/B] DELAY_2

PRINCIPAL
[B][COLOR="RoyalBlue"]CLRWDT[/COLOR][/B]
[B][COLOR="RoyalBlue"]DECFSZ[/COLOR][/B] DELAY_0,F
[B][COLOR="RoyalBlue"]GOTO[/COLOR][/B] PRINCIPAL
[B][COLOR="RoyalBlue"]MOVLW[/COLOR][/B] INI_DELAY_0
[B][COLOR="RoyalBlue"]MOVWF[/COLOR][/B] DELAY_0
[B][COLOR="RoyalBlue"]DECFSZ[/COLOR][/B] DELAY_1,F
[B][COLOR="RoyalBlue"]GOTO[/COLOR][/B] PRINCIPAL
[B][COLOR="RoyalBlue"]MOVLW[/COLOR][/B] INI_DELAY_1
[B][COLOR="RoyalBlue"]MOVWF[/COLOR][/B] DELAY_1
[B][COLOR="RoyalBlue"]DECFSZ[/COLOR][/B] DELAY_2,F
[B][COLOR="RoyalBlue"]GOTO[/COLOR][/B] PRINCIPAL
[B][COLOR="RoyalBlue"]MOVLW[/COLOR][/B] INI_DELAY_2
[B][COLOR="RoyalBlue"]MOVWF[/COLOR][/B] DELAY_2
[B][COLOR="RoyalBlue"]BTFSS[/COLOR][/B] LED
[B][COLOR="RoyalBlue"]GOTO[/COLOR][/B] ACENDE_LED
[B][COLOR="RoyalBlue"]BCF[/COLOR][/B] LED
[B][COLOR="RoyalBlue"]GOTO[/COLOR][/B] PRINCIPAL
ACENDE_LED
[B][COLOR="RoyalBlue"]BSF[/COLOR][/B] LED
[B][COLOR="RoyalBlue"]GOTO[/COLOR][/B] PRINCIPAL
[B][COLOR="RoyalBlue"]END[/COLOR][/B]

Link para o comentário
Compartilhar em outros sites

Troque,

#INCLUDE <PIC16F628A.INC>

por

#INCLUDE <P16F628A.INC>

Está faltando tambem o underline aqui;

& DATA_CP_OFF

Troque por;

& _DATA_CP_OFF

Uma dica.

è boa prática,em qualquer linguagem,dar uma lida nos arquivos .Inc.

voce pode abrir usando o Bloco de notas,neste caso voce leria quais as palavras reservadas.

Para o P16F628A.INC,neste caso;

_BODEN_ON                    EQU     H'3FFF' ;Backwards compatability to 16F62X
_BODEN_OFF EQU H'3FBF' ;Backwards compatability to 16F62X
_BOREN_ON EQU H'3FFF'
_BOREN_OFF EQU H'3FBF'
_CP_ON EQU H'1FFF'
_CP_OFF EQU H'3FFF'
_DATA_CP_ON EQU H'3EFF'
_DATA_CP_OFF EQU H'3FFF'
_PWRTE_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FF7'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FFB'
_LVP_ON EQU H'3FFF'
_LVP_OFF EQU H'3F7F'
_MCLRE_ON EQU H'3FFF'
_MCLRE_OFF EQU H'3FDF'
_RC_OSC_CLKOUT EQU H'3FFF'
_RC_OSC_NOCLKOUT EQU H'3FFE'
_ER_OSC_CLKOUT EQU H'3FFF' ;Backwards compatability to 16F62X
_ER_OSC_NOCLKOUT EQU H'3FFE' ;Backwards compatability to 16F62X
_INTOSC_OSC_CLKOUT EQU H'3FFD'
_INTOSC_OSC_NOCLKOUT EQU H'3FFC'
_INTRC_OSC_CLKOUT EQU H'3FFD' ;Backwards compatability to 16F62X
_INTRC_OSC_NOCLKOUT EQU H'3FFC' ;Backwards compatability to 16F62X
_EXTCLK_OSC EQU H'3FEF'
_HS_OSC EQU H'3FEE'
_XT_OSC EQU H'3FED'
_LP_OSC EQU H'3FEC'

Link para o comentário
Compartilhar em outros sites

eu mudei o que vocês falaram e fico com esses problemas:


----------------------------------------------------------------------
Debug build of project `D:\Documents and Settings\Compartilhado\Desktop\Programação e Microcontroladores\Pisca LED\Pisca LED.mcp' started.
Language tool versions: MPASMWIN.exe v5.40, mplink.exe v4.38, mplib.exe v4.38
Preprocessor symbol `__DEBUG' is defined.
Sun Jun 26 15:12:07 2011
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "D:\Arquivos de programas\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F628A "Pisca LED.ASM" /l"Pisca LED.lst" /e"Pisca LED.err" /o"Pisca LED.o" /d__DEBUG=1
Error[113] D:\DOCUMENTS AND SETTINGS\COMPARTILHADO\DESKTOP\PROGRAMAçãO E MICROCONTROLADORES\PISCA LED\PISCA LED.ASM 14 : Symbol not previously defined (_DATA_CP_OFF)
Warning[207] D:\DOCUMENTS AND SETTINGS\COMPARTILHADO\DESKTOP\PROGRAMAçãO E MICROCONTROLADORES\PISCA LED\PISCA LED.ASM 34 : Found label after column 1. (INI_DELAY_0)
Warning[207] D:\DOCUMENTS AND SETTINGS\COMPARTILHADO\DESKTOP\PROGRAMAçãO E MICROCONTROLADORES\PISCA LED\PISCA LED.ASM 35 : Found label after column 1. (INI_DELAY_1)
Warning[207] D:\DOCUMENTS AND SETTINGS\COMPARTILHADO\DESKTOP\PROGRAMAçãO E MICROCONTROLADORES\PISCA LED\PISCA LED.ASM 36 : Found label after column 1. (INI_DELAY_2)
Warning[207] D:\DOCUMENTS AND SETTINGS\COMPARTILHADO\DESKTOP\PROGRAMAçãO E MICROCONTROLADORES\PISCA LED\PISCA LED.ASM 61 : Found label after column 1. (INICIO)
Message[302] D:\DOCUMENTS AND SETTINGS\COMPARTILHADO\DESKTOP\PROGRAMAçãO E MICROCONTROLADORES\PISCA LED\PISCA LED.ASM 64 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\DOCUMENTS AND SETTINGS\COMPARTILHADO\DESKTOP\PROGRAMAçãO E MICROCONTROLADORES\PISCA LED\PISCA LED.ASM 68 : Register in operand not in bank 0. Ensure that bank bits are correct.
Warning[207] D:\DOCUMENTS AND SETTINGS\COMPARTILHADO\DESKTOP\PROGRAMAçãO E MICROCONTROLADORES\PISCA LED\PISCA LED.ASM 93 : Found label after column 1. (PRINCIPAL)
Warning[207] D:\DOCUMENTS AND SETTINGS\COMPARTILHADO\DESKTOP\PROGRAMAçãO E MICROCONTROLADORES\PISCA LED\PISCA LED.ASM 127 : Found label after column 1. (ACENDE_LED)
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `D:\Documents and Settings\Compartilhado\Desktop\Programação e Microcontroladores\Pisca LED\Pisca LED.mcp' failed.
Language tool versions: MPASMWIN.exe v5.40, mplink.exe v4.38, mplib.exe v4.38
Preprocessor symbol `__DEBUG' is defined.
Sun Jun 26 15:12:10 2011
----------------------------------------------------------------------
[B][COLOR="Red"]BUILD FAILED[/COLOR][/B]

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...