Olá pessoal,
Estou desde ontem tentando compilar o programa abaixo no MPlab 6.4 e aparece um monte de erros.
Este simples programa compilava na versão 5.7 do MPlab.
Já procurei no fórum antigo e não encontrei resposta.
Agradeço se puderem ajudar.
;# #
;# Rotina de delay (atraso) de 1s utilizando apenas instrucoes #
;# usado para um circuito de pisca led #
;############################################################################
;-----------------------DIRETIVAS AO COMPILADOR------------------------------
LIST P=16F84A
RADIX DEC
INCLUDE <P16F84A.INC>
__CONFIG _XT_OSC & _CP_OFF & _WDT_OFF & _PWRTE_ON
;-------------------VARIAVEIS E EQUIVALENCIAS---------------------------------
x equ 0ch ;variavel auxiliar no delay
milisegundo equ 0dh ;variavel auxiliar no delay
seg equ 0eh ;variavel auxiliar no delay
;--------------------INICIALIZAÇÃO DO PROGRAMA---------------------------------
clrf portb ; Faz todos os bits de portb = zer0
bsf status,rp0 ; vai para o banco 1 da RAM
clrf trisb ; Faz portb todo saida
bcf status,rp0 ; volta ao banco 0 da RAM
;--------------------PROGRAMA PRINCIPAL-----------------------------------------
repete
bsf portb,7 ; Faz bit 7 do portb=1 (apaga o LED)
call s1 ; Chama a subrotina s1 (nosso delay de 1s)
bcf portb,7 ; Faz bit 7 do portb=0 ( acende o Led}
call s1 ; Chama a subrotina s1 (nosso delay de 1s) goto repete ; Vai para o label repete
;-------------------------------- SUB ROTINAS ---------------------------------
;----- inicio da rotina de 1 segundo
s1
movlw 10
movwf seg ; Até aqui incluindo o call gastaram-se 4 us.
ms100
movlw 100 ; 1 us Carrega milisegundo com 100
movwf milisegundo ; 1 us
ms1
movlw 249 ; carrega x com o valor 249 (decimal)
movwf x ; 2 us ( 1 do movlw e 1 do movwf )
ms2
nop ; + 1 us
decfsz x ; + 1 us (no último eh 2 e pula p/ decfsz seg)
goto ms2 ; + 2 us, total 4us.(no último não passa aqui)
; (4 us x 249)-1 totaliza 995 us
decfsz milisegundo ; +1 us (na última pasagem 2 us)
goto ms1 ; +2 us (na última passagem pula)
; total ms1 (1000 x 100)-1 = 99999
decfsz seg ; + 1 us (no último eh 2 e pula p/ return)
goto ms100 ; +2 us (na última passagem pula)
; Total antes do return: 4us (inicio) +10 X 100004
; {(1 do movlw100 + 1 do movwf milisegundo + 99999 da
; rotina ms1 + 1 do decfsz seg + 2 do goto)}- 1 da
; última passagem Total = 1000043 us
return ; + 2 us retorna da sub-rotina apos 1.000.045 us
; aproximadamente 1 segundo
;-----fim da rotina de 1 segundo
;----------------------------- fim do programa ----------------------------------
end
Relatórios de erros:
Error[113] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 24 : Symbol not previously defined (portb)
Error[113] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 25 : Symbol not previously defined (status)
Error[113] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 25 : Symbol not previously defined (rp0)
Error[113] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 26 : Symbol not previously defined (trisb)
Error[113] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 27 : Symbol not previously defined (status)
Error[113] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 27 : Symbol not previously defined (rp0)
Error[113] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 32 : Symbol not previously defined (portb)
Error[113] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 34 : Symbol not previously defined (portb)
Message[305] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 55 : Using default destination of 1 (file).
Message[305] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 58 : Using default destination of 1 (file).
Message[305] C:\DOCUMENTS AND SETTINGS\SP\DESKTOP\RENATO\PISCA.ASM 61 : Using default destination of 1 (file).
Obrigado