por BolhaDigital » 08 Abr 2010 00:39
bom se eu entendi vc quer limpar a ram do pic, certo?
vai aí uma rotina que limpa toda a memória ram do pic, coloque ela na inicialização e se desejar inserir dados utilizando o mesmo processo é só alterar um pouquinho essa rotina, eu utilizo ela para zerar a ram na inicialização e também para (com pequenas alterações) para introduzir valores as variaveis...
essa rotina serve tanto para pic16 quanto para pic18....
bastando vc alterar os vetores do ponteiro,
;---------------
; *** INICIA BLOCO CLEAR RAM ***
;---------------
;Essa rotina limpa todas as posições de RAM (Pic16F877A)
;
clear_bank0:
bcf status, irp
movlw 0x7f
movwf fsr
loop_bank0:
clrf indf
decf fsr, f
movlw 0x1f
subwf fsr, w
btfss status, z
goto loop_bank0
bcf status, irp
;-----------
clear_bank1:
bcf status, irp
movlw 0xff
movwf fsr
loop_bank1:
clrf indf
decf fsr, f
movlw 0x9f
subwf fsr, w
btfss status, z
goto loop_bank1
bcf status, irp
;-----------
clear_bank2:
bsf status, irp
movlw 0x7f
movwf fsr
loop_bank2:
clrf indf
decf fsr, f
movlw 0x0f
subwf fsr, w
btfss status, z
goto loop_bank2
bcf status, irp
;-----------
clear_bank3:
bsf status, irp
movlw 0xff
movwf fsr
loop_bank3:
clrf indf
decf fsr, f
movlw 0x8f